// also declared in datacenterlight/js/main.js function _initNavUrl() { // $('.url').click(function(event) { // event.preventDefault(); // var href = $(this).attr('href'); // $('.navbar-collapse').removeClass('in'); // $('.navbar-collapse').addClass('collapsing'); // if ($(href).length) { // $('html, body').animate({ // scrollTop: $(href).offset().top // }, 1000); // } else { // window.location.href = '/datacenterlight' + href; // } // }); $('.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 href = $(this).attr('href'); $('.navbar-collapse').removeClass('in'); $('.navbar-collapse').addClass('collapsing'); if ($(href).length) { $('html, body').animate({ scrollTop: $(href).offset().top }, 1000); } }); } /* --------------------------------------------- Nav panel classic --------------------------------------------- */ if (window.matchMedia("(min-width: 767px)").matches) { $('ul.nav li.dropdown').hover(function() { $(this).find('.dropdown-menu').stop(true, true).fadeIn(500); }, function() { $(this).find('.dropdown-menu').stop(true, true).fadeOut(500); }); } else { /* the viewport is less than 400 pixels wide */ } $( document ).ready(function() { $('[data-toggle="tooltip"]').tooltip(); _initNavUrl(); /* * Replace all SVG images with inline SVG */ $('.svg-img').each(function() { var $img = $(this); var imgID = $img.attr('id'); var imgClass = $img.attr('class'); var imgURL = $img.attr('src'); jQuery.get(imgURL, function(data) { // Get the SVG tag, ignore the rest var $svg = jQuery(data).find('svg'); // Add replaced image's ID to the new SVG if(typeof imgID !== 'undefined') { $svg = $svg.attr('id', imgID); } // Add replaced image's classes to the new SVG if(typeof imgClass !== 'undefined') { $svg = $svg.attr('class', imgClass+' replaced-svg'); } // Remove any invalid XML tags as per http://validator.w3.org $svg = $svg.removeAttr('xmlns:a'); // Check if the viewport is set, if the viewport is not set the SVG wont't scale. if(!$svg.attr('viewBox') && $svg.attr('height') && $svg.attr('width')) { $svg.attr('viewBox', '0 0 ' + $svg.attr('height') + ' ' + $svg.attr('width')) } // Replace image with new SVG $img.replaceWith($svg); }, 'xml'); }); $('.alt-text').on('mouseenter mouseleave', function(e){ var $this = $(this); var txt = $this.text(); var alt = $this.attr('data-alt'); $this.text(alt); $this.attr('data-alt', txt); }); }); function getScrollbarWidth() { var outer = document.createElement("div"); outer.style.visibility = "hidden"; outer.style.width = "100px"; outer.style.msOverflowStyle = "scrollbar"; // needed for WinJS apps document.body.appendChild(outer); var widthNoScroll = outer.offsetWidth; // force scrollbars outer.style.overflow = "scroll"; // add innerdiv var inner = document.createElement("div"); inner.style.width = "100%"; outer.appendChild(inner); var widthWithScroll = inner.offsetWidth; // remove divs outer.parentNode.removeChild(outer); return widthNoScroll - widthWithScroll; } // globally stores the width of scrollbar var scrollbarWidth = getScrollbarWidth(); var paddingAdjusted = false; $( document ).ready(function() { // add proper padding to fixed topnav on modal show $('body').on('click', '[data-toggle=modal]', function(){ var $body = $('body'); if ($body[0].scrollHeight > $body.height()) { scrollbarWidth = getScrollbarWidth(); var topnavPadding = parseInt($('.navbar-fixed-top.topnav').css('padding-right')); $('.navbar-fixed-top.topnav').css('padding-right', topnavPadding+scrollbarWidth); paddingAdjusted = true; } }); // remove added padding on modal hide $('body').on('hidden.bs.modal', function(){ if (paddingAdjusted) { var topnavPadding = parseInt($('.navbar-fixed-top.topnav').css('padding-right')); $('.navbar-fixed-top.topnav').css('padding-right', topnavPadding-scrollbarWidth); } }); /* --------------------------------------------- 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 } }; 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.discountAmount; total = parseFloat(total.toFixed(2)); $("#total").text(total); } _initPricing(); $('#ramValue').data('old-value', $('#ramValue').val()); });