(function($) { "use strict"; // Start of use strict /* --------------------------------------------- Scripts initialization --------------------------------------------- */ var minRam = 1; if(window.minRam){ minRam = window.minRam; } var cardPricing = { 'cpu': { 'id': 'coreValue', 'value': 1, 'min': 1, 'max': 48, 'interval': 1 }, 'ram': { 'id': 'ramValue', 'value': 2, 'min': minRam, 'max': 200, 'interval': 1 }, 'storage': { 'id': 'storageValue', 'value': 10, 'min': 10, 'max': 2000, 'interval': 10 } }; $(window).load(function() { }); $(document).ready(function() { verifiedUrl(); _navScroll(); _initScroll(); _initNavUrl(); _initPricing(); ajaxForms(); $('#ramValue').data('old-value', $('#ramValue').val()); }); $(window).resize(function() { }); /* --------------------------------------------- Nav panel classic --------------------------------------------- */ if (window.matchMedia("(min-width: 767px)").matches) { $('ul.nav .dropdown').hover(function() { $(this).find('.dropdown-menu').stop(true, true).delay(200).fadeIn(500); }, function() { $(this).find('.dropdown-menu').stop(true, true).delay(200).fadeOut(500); }); } else { /* the viewport is less than 400 pixels wide */ } function _initScroll() { $(window).scroll(function() { _navScroll(); }); } function _navScroll() { if (!window.non_transparent_navbar_always) { if ($(window).scrollTop() > 10) { $(".navbar").removeClass("navbar-transparent"); $(".navbar-default .btn-link").css("color", "#777"); $(".dropdown-menu").removeClass("navbar-transparent"); $(".dropdown-menu > li > a").css("color", "#777"); } else { $(".navbar").addClass("navbar-transparent"); $(".navbar-default .btn-link").css("color", "#fff"); $(".dropdown-menu").addClass("navbar-transparent"); $(".dropdown-menu > li > a").css("color", "#fff"); } } } _navScroll(); function _initNavUrl() { $('.url-init').each(function(idx, el) { var $this = $(el); var currentPath = window.location.pathname; var thisPaths = $this.attr('href').split('#') if ($this.hasClass('dropdown-toggle') && window.matchMedia("(max-width: 767px)").matches) { $this.removeClass('url-init'); $this.attr('href', ''); } else if ($('#'+thisPaths[1]).length) { $this.removeClass('url-init').addClass('url'); $this.attr('href', '#' + thisPaths[1]); } else { $this.removeClass('url-init'); } }); $('.url').click(function(event) { event.preventDefault(); var $this = $(this); var href = $this.attr('href'); $('.navbar-collapse').removeClass('in'); $('.navbar-collapse').addClass('collapsing'); if (href[0] === "#") { scrollToElement(href); } else if (href) { var path = $(this).prop('href').split('#'); var currentPath = window.location.origin + window.location.pathname; if (currentPath == path[0] && path[1]) { scrollToElement('#' + path[1]); } else { window.location = href; } } }); } function scrollToElement(el) { var $el = $(el); if ($el.length) { $('html, body').animate({ scrollTop: $el.offset().top - 50 }, 1000); } } function verifiedUrl() { if (window.location.href.indexOf('#success') > -1) { form_success(); } } function _initPricing() { _fetchPricing(); $('.fa-minus-circle.left').click(function(event) { var data = $(this).data('minus'); if (cardPricing[data].value > cardPricing[data].min) { if(data === 'ram' && String(cardPricing[data].value) === "1" && minRam === 0.5){ cardPricing[data].value = 0.5; $('#ramValue').val('0.5'); $("#ramValue").attr('step', 0.5); } else { cardPricing[data].value = Number(cardPricing[data].value) - cardPricing[data].interval; } } _fetchPricing(); $('#ramValue').data('old-value', $('#ramValue').val()); }); $('.fa-plus-circle.right').click(function(event) { var data = $(this).data('plus'); if (cardPricing[data].value < cardPricing[data].max) { if(data === 'ram' && String(cardPricing[data].value) === "0.5" && minRam === 0.5){ cardPricing[data].value = 1; $('#ramValue').val('1'); $("#ramValue").attr('step', 1); } else { cardPricing[data].value = Number(cardPricing[data].value) + cardPricing[data].interval; } } _fetchPricing(); $('#ramValue').data('old-value', $('#ramValue').val()); }); $('.input-price').change(function() { var data = $(this).attr("name"); var input = $('input[name=' + data + ']'); var inputValue = input.val(); if(data === 'ram') { var ramInput = $('#ramValue'); if ($('#ramValue').data('old-value') < $('#ramValue').val()) { if($('#ramValue').val() === '1' && minRam === 0.5) { $("#ramValue").attr('step', 1); $('#ramValue').val('1'); } } else { if($('#ramValue').val() === '0' && minRam === 0.5) { $("#ramValue").attr('step', 0.5); $('#ramValue').val('0.5'); } } inputValue = $('#ramValue').val(); $('#ramValue').data('old-value', $('#ramValue').val()); } cardPricing[data].value = inputValue; _fetchPricing(); }); } function _fetchPricing() { Object.keys(cardPricing).map(function(element) { $('input[name=' + element + ']').val(cardPricing[element].value); }); _calcPricing(); } function _calcPricing() { if(typeof window.coresUnitPrice === 'undefined'){ window.coresUnitPrice = 5; } if(typeof window.ramUnitPrice === 'undefined'){ window.ramUnitPrice = 2; } if(typeof window.ssdUnitPrice === 'undefined'){ window.ssdUnitPrice = 0.6; } if(typeof window.discountAmount === 'undefined'){ window.discountAmount = 0; } var total = (cardPricing['cpu'].value * window.coresUnitPrice) + (cardPricing['ram'].value * window.ramUnitPrice) + (cardPricing['storage'].value * window.ssdUnitPrice) + window.vmBasePrice - window.discountAmount; total = parseFloat(total.toFixed(2)); $("#total").text(total); } function form_success() { $('#sucessModal').modal('show'); } function _calculate(numbers, price) { $('#valueTotal').text(numbers * price * 31); } function ajaxForms() { $('body').on('submit', '.ajax-form', function(e){ e.preventDefault(); var $form = $(this); $form.find('[type=submit]').addClass('sending'); $.ajax({ url: $form.attr('action'), type: $form.attr('method'), data: $form.serialize(), success: function(response) { var responseContain = $($form.attr('data-response')); responseContain.html(response); $form.find('[type=submit]').removeClass('sending'); }, error: function() { $form.find('[type=submit]').removeClass('sending'); $form.find('.form-error').removeClass('hide'); } }); }) } })(jQuery);