/* -------------------------------- Incorporate.com Author: Jason Lunsford Version: 4.0 MAIN.JS -------------------------------- */ (function($) { "use strict"; // Non-Control Elements var $sideMenu = $("#sideMenu"); var $wrapper = $("#wrapper"); var $bigmask = $("#bigmask"); var $navAccordion = $("#navAccordion"); var $mainContent = $("#mainContent"); var $siteFooter = $("#siteFooter"); var $salesHeader = $('#salesHeader'); // Control Elements var $hamburgerButtonSFR = $(".saless-funnel #hamburgerButton"); var $hamburgerButton = $("#hamburgerButton"); var $cartButtonSFR = $(".sales-funnel #cartSliderButton"); var $mobileMenu = $wrapper.find('.menu .navbar-toggle'); // build global footer from SR list globalFooterLinks($('.siteFooter #seoAccordion div')); var $accordionTriggers = $(".accordionTrigger"); // Generic Form Elements var $genericFormElement = $(".form-control"); // Common Variables var windowState; var navAccordionActive = true; var seoAccordionActive = true; /* Settings ---------------------------------------- */ var sideMenuDisplay = { state:false }; var sideMenuConfig = { display:$sideMenu.css("display") }; var wrapperConfig = { position:$wrapper.css("position") }; var bigMaskConfig = { opacity:$bigmask.css("opacity"), visibility:$bigmask.css("visibility") }; /* End Settings -------------------------*/ // switch fluid container for static if ( checkDevice() === "desktop" || checkDevice() === "widescreen" ) { // $mainContent.removeClass("container-fluid").addClass("container"); // $salesHeader.removeClass("container-fluid").addClass("container"); // $genericFormElement.removeClass("input-lg"); } /*else{ //all mobile to SFR but not when selected for the TEST. //************remove this code after testing -----********** $.get("/json/sales_funnel_active.html"); }*/ handleNavAccordion(); handleSeoAccordion(); handleEntityWidget(checkDevice()); handleTabCTAMobile(); $(window).resize(function() { if ( checkDevice() === "desktop" ) { $('.mobile-menu').hide(); //mobile nav will always be closed on screen resize // $mainContent.removeClass("container-fluid").addClass("container"); // $salesHeader.removeClass("container-fluid").addClass("container"); // $('nav div.container-fluid').removeClass("container-fluid").addClass("container"); // $genericFormElement.removeClass("input-lg"); $bigmask.trigger("click"); } else if ( checkDevice() === "tablet" ) { $('.mobile-menu').hide(); //mobile nav will always be closed on screen resize // $mainContent.removeClass("container").addClass("container-fluid"); // $salesHeader.removeClass("container").addClass("container-fluid"); // $('nav div.container').removeClass("container").addClass("container-fluid"); // $genericFormElement.addClass("input-lg"); $bigmask.trigger("click"); } else if ( checkDevice() === "mobile" ) { // $mainContent.removeClass("container").addClass("container-fluid"); // $salesHeader.removeClass("container").addClass("container-fluid"); // $('nav div.container').removeClass("container").addClass("container-fluid"); // $genericFormElement.addClass("input-lg"); } handleNavAccordion(); handleSeoAccordion(); handleEntityWidget(checkDevice()); // $bigmask.hammer().triggerHandler("tap"); homeHeroSticky(); }); function homeHeroSticky(){ if($('html').hasClass('Home')){ //home follow //check height of window var $hero = $('.hero-row'), heroHeight = $hero.offset().top + $hero.outerHeight(), $heroGSN = $('.hero-get-started'), $subHero = $('.sub-hero-quotes'), $window = $(window); if($window.outerHeight() + $window.scrollTop() - $heroGSN.outerHeight() < heroHeight){ setGetStarted('fixed'); } else{ setGetStarted(''); } $window.scroll(function() { if(($window.outerHeight() + $window.scrollTop() - $heroGSN.outerHeight()) > heroHeight){ setGetStarted(''); } else{ setGetStarted('fixed'); } }); } function setGetStarted(e){ if(e == 'fixed'){ $heroGSN.addClass('fixed-getstarted'); $subHero.css('padding-top',($heroGSN.height()-60)); } else{ $heroGSN.removeClass('fixed-getstarted'); $subHero.css('padding-top','initial'); } } } homeHeroSticky(); //home page tab indicators $('.tab-rebrand a[data-toggle="tab"').on('shown.bs.tab', function (e) { var target = $(this).attr('aria-controls'); $('.tab-indicator li').removeClass('active'); $('.tab-indicator li.'+target).addClass('active'); }); var $customers = $('.customers'), $customerLink = $customers.find('.customer-link'), $customerLinks = $customers.find('.customer-links').hide(); $customerLink.on('click',function(e){ e.preventDefault(); $customerLinks.slideToggle().toggleClass('active'); }); $mobileMenu.on('click',function(e){ e.preventDefault(); $('.mobile-menu').slideToggle().find('.panel-collapse.in').removeClass('in'); //if SFR if($('html').hasClass('sales-funnel')){ $('.mobile-menu #sideCartMenu section').remove(); $('.rightRail section').clone().appendTo($('.mobile-menu #sideCartMenu')) .find('#continueSidecart').attr('id','').end() .find('.side-cart-behind').attr('style',''); } }); $('#mobileMenu').on('show.bs.collapse',function(){ $('#mobileMenu .panel-collapse.in').removeClass('in').siblings('.panel-heading h4').toggleClass('active'); }); $('#mobileMenu').on('shown.bs.collapse',function(){ $('#mobileMenu .panel-collapse.in').siblings('.panel-heading h4').toggleClass('active'); }); $('#entityList .panel-collapse').on('shown.bs.collapse',function(e){ $(this).prev().find('.glyphicon').removeClass('glyphicon-tcc-plus3').addClass('glyphicon-tcc-minus3'); }); $('#entityList .panel-collapse').on('hidden.bs.collapse',function(e){ $(this).prev().find('.glyphicon').removeClass('glyphicon-tcc-minus3').addClass('glyphicon-tcc-plus3'); }); // Hamburger Behavior (sub 1024) // Using the Hammer touch UI //$hamburgerButton.hammer().on("tap", $hamburgerButton.on("click", function(event) { handleNavAccordion(); // close Nav accordion right away handleSeoAccordion(); // close SEO accordion right away sideMenuDisplay.state = !sideMenuDisplay.state; sideMenuConfig.display = "block"; wrapperConfig.position = "fixed"; bigMaskConfig.opacity = 0.5; bigMaskConfig.visibility = "visible"; $wrapper.css({ "position":wrapperConfig.position }); $sideMenu.css({ "display": sideMenuConfig.display }); $bigmask.css({ "opacity":bigMaskConfig.opacity, "visibility":bigMaskConfig.visibility }); if($('html').hasClass('sales-funnel')){ $sideMenu.find('section').remove(); $('.rightRail section').clone().appendTo($sideMenu); $('#sideMenu .side-cart-behind') .css('margin-top',0) .find('ul.list-circle') .removeClass('list-circle') .addClass('list-group') .find('li') .addClass('list-group-item') .end() .end() .find('.side-cart-footer ul') .removeClass('list-unstyled') .addClass('list-group') .find('li.col-sm-6') .removeClass('col-sm-6') .addClass('list-group-item'); $wrapper.css({ "position":wrapperConfig.position }); $sideMenu.css({ "display": sideMenuConfig.display }); $bigmask.css({ "opacity":bigMaskConfig.opacity, "visibility":bigMaskConfig.visibility }); $wrapper.animate( {left:"90%"}, { duration: 480, queue: false, complete: function() {} }); $sideMenu.animate( {right:"90%"}, { duration: 480, queue: false, complete: function() {} }); $sideMenu.find('section').animate( {opacity:1 }, { duration: 1200, queue: false, complete: function() { } }); } else{ $wrapper.animate({ left:"260px" }, { duration: 480, queue: false, complete: function() { } }); $sideMenu.animate({ right:"260px" }, { duration: 480, queue: false, complete: function() { } }); $navAccordion.animate({ opacity:1 }, { duration: 1200, queue: false, complete: function() { } }); } }); $cartButtonSFR.on('click',function(event){ event.preventDefault(); // sideMenuDisplay.state = !sideMenuDisplay.state; sideMenuConfig.display = "block"; wrapperConfig.position = "fixed"; bigMaskConfig.opacity = 0.5; bigMaskConfig.visibility = "visible"; $sideMenu.find('section').remove(); $('.rightRail section').clone().appendTo($sideMenu).find('#continueSidecart').attr('id',''); $bigmask.css({ "opacity":bigMaskConfig.opacity, "visibility":bigMaskConfig.visibility }); $wrapper.css({ "position":wrapperConfig.position }); $sideMenu.css({ "display": sideMenuConfig.display }); $wrapper.animate( {right:"90%"}, { duration: 480, queue: false, complete: function() {} }); $sideMenu.animate( {left:"90%"}, { duration: 480, queue: false, complete: function() {} }).addClass('right-slide'); $sideMenu.find('section').animate( {opacity:1 }, { duration: 1200, queue: false, complete: function() {} }); }); //setting cart link /* if($('html').hasClass('.sales-funnel')){ if(!$('html').hasClass('state-business-type')){ $('#cartSliderButton').attr('href','/review_order.html'); } else{ $('#cartSliderButton').attr('href','#'); } } else{ $('#cartSliderButton').attr('href','/review_order.html'); }*/ // Mask listener - removes the mask when user clicks anywhere //$bigmask.on("click" $('#sideMenu button.close-menu').on('click',function(){ closeSideMenu(); }); $bigmask.hammer().on("panleft tap press swipeleft", function(event) { closeSideMenu(); /*if ( sideMenuDisplay.state) { sideMenuDisplay.state = !sideMenuDisplay.state; sideMenuConfig.display = "none"; wrapperConfig.position = "relative"; bigMaskConfig.opacity = 0; bigMaskConfig.visibility = "hidden"; $navAccordion.animate( {opacity:0 }, { duration: 120, queue: false }); $sideMenu.animate( {right:"0px"}, { duration: 480, queue: false, complete: function(){} }).removeClass('right-slide'); $wrapper.animate( {left:"0px"}, { duration: 480, queue: false, complete: function() { $sideMenu.css({ "display": sideMenuConfig.display }); $bigmask.css({ "opacity":bigMaskConfig.opacity, "visibility":bigMaskConfig.visibility }); $wrapper.css({ "position":wrapperConfig.position }); } }); } else{ //cart sideMenuConfig.display = "none"; wrapperConfig.position = "relative"; bigMaskConfig.opacity = 0; bigMaskConfig.visibility = "hidden"; $sideMenu.animate( {left:"0px"}, { duration: 480, queue: false, complete: function(){} }) .find('section').animate( {opacity:1 }, { duration: 100, queue: false, complete: function() {} });; $wrapper.animate( {right:"0px"}, { duration: 480, queue: false, complete: function() { $sideMenu.css({ "display": sideMenuConfig.display }); $bigmask.css({ "opacity":bigMaskConfig.opacity, "visibility":bigMaskConfig.visibility }); $wrapper.css({ "position":wrapperConfig.position }); } }); }*/ }); function closeSideMenu(){ if ( sideMenuDisplay.state) { sideMenuDisplay.state = !sideMenuDisplay.state; sideMenuConfig.display = "none"; wrapperConfig.position = "relative"; bigMaskConfig.opacity = 0; bigMaskConfig.visibility = "hidden"; $navAccordion.animate( {opacity:0 }, { duration: 120, queue: false }); $sideMenu.animate( {right:"0px"}, { duration: 480, queue: false, complete: function(){} }).removeClass('right-slide'); $wrapper.animate( {left:"0px"}, { duration: 480, queue: false, complete: function() { $sideMenu.css({ "display": sideMenuConfig.display }); $bigmask.css({ "opacity":bigMaskConfig.opacity, "visibility":bigMaskConfig.visibility }); $wrapper.css({ "position":wrapperConfig.position }); } }); } else{ //cart sideMenuConfig.display = "none"; wrapperConfig.position = "relative"; bigMaskConfig.opacity = 0; bigMaskConfig.visibility = "hidden"; $sideMenu.animate( {left:"0px"}, { duration: 480, queue: false, complete: function(){} }) .find('section').animate( {opacity:1 }, { duration: 100, queue: false, complete: function() {} });; $wrapper.animate( {right:"0px"}, { duration: 480, queue: false, complete: function() { $sideMenu.css({ "display": sideMenuConfig.display }); $bigmask.css({ "opacity":bigMaskConfig.opacity, "visibility":bigMaskConfig.visibility }); $wrapper.css({ "position":wrapperConfig.position }); } }); } } // Accordion Anchors (Mobile) // $accordionTriggers.hammer().on("tap" $accordionTriggers.on("click", function(event) { if ( $(this).css("background-image") !== "none" ) { if ( $(this).hasClass("accordionTriggerReverse") ) { $accordionTriggers.removeClass("accordionTriggerReverse"); } else { $accordionTriggers.removeClass("accordionTriggerReverse"); $(this).addClass("accordionTriggerReverse"); } } }); // Slide out nav logo link $('.logo-link').hammer().on("tap",function(event){ window.location.href = "/"; }); $('.logoPhoneNumberAnchor').hammer().on("tap",function(event){ var phone = $(this).text(); window.location.href = "tel:"+phone; }); // Nav Accordion Behavior (Mobile) $("#navAccordion").on("show.bs.collapse", function () { if (navAccordionActive) $("#navAccordion .in").collapse("hide"); }); // SEO Accordion Behavior (Mobile) $("#seoAccordion").on("show.bs.collapse", function () { if (seoAccordionActive) $("#seoAccordion .in").collapse("hide"); }); if(window.location.pathname.indexOf('business_glossary') > 0){ $('#tabs').addClass('hidden-xs hidden-sm'); $('',{'class':'visible-xs visible-sm form-control nav-dd'}).insertAfter('#tabs'); $('',{'selected':'selected', 'value':'', 'text':'Go to...'}).appendTo('select.nav-dd'); $('#tabs li').each(function(){ var el = $(this).find('a'); $('',{ 'value':el.attr('href'), 'text':el.text() }).appendTo('select.nav-dd'); }); $('select.nav-dd').change(function() { var sHref = $(this).find('option:selected').val(); $('ul#tabs a[href="'+sHref+'"]').trigger('click'); }); } if(window.location.pathname.indexOf('showWizardResults') > 0){ $('.wizardResultsBody table a:contains("Corporation")').html('CorpCorporation'); $('.wizardResultsBody table a:contains("Nonprofit")').text('Nonprofit'); } // Tab behavior $('#tabs a').click(function (e) { e.preventDefault(); $(this).tab('show'); }); // Simple function to keep track of the content flag state within the body:after pseudo element // function checkDevice() { // var windowState = window.getComputedStyle(document.body,':before').getPropertyValue('content'); // var devices = ["mobile", "tablet", "desktop", "widescreen"]; // for (var i = 0; i < devices.length; i++) { // if ( windowState.indexOf(devices[i]) != -1 ) { return devices[i]; } // } // } function handleNavAccordion() { $(".navAccordionContents").collapse("hide"); $(".navAccordionTrigger").removeClass("accordionTriggerReverse"); } function handleSeoAccordion() { if ( checkDevice() === "mobile" || checkDevice() === "tablet") { // Use case: toggling screen size within mobile breakpoint if (seoAccordionActive) { $(".seoAccordionContents").collapse("hide"); $(".seoAccordionTrigger").removeClass("accordionTriggerReverse"); // Use case: toggling screen size from tablet into mobile } else { seoAccordionActive = true; $(".seoAccordionContents").collapse("hide"); $(".seoAccordionTrigger").attr("data-toggle","collapse"); } // Use case: non-mobile breakpoint behavior } else { seoAccordionActive = false; $(".seoAccordionContents").collapse("show"); $(".seoAccordionTrigger").attr("data-toggle",""); } } function handleTabCTAMobile(){ if(!$('.callToActionSection').length) return; $('.callToActionSection').each(function(){ var $cta = $(this).clone().addClass('visible-xs visible-sm'), isTabPane = $(this).parent().hasClass('tab-pane'), $parent = $(this).parent(); if(isTabPane) $parent.first().prepend($cta); else{ if($parent.children().eq(0).is('h1')){ if($parent.children().eq(1).is('h2')){ $parent.children().eq(1).after($cta); } else{ $parent.children().eq(0).after($cta); } } } }); } function handleEntityWidget(_checkDevice){ if(_checkDevice === "mobile" || _checkDevice === "tablet"){ $(".entity-widget").delegate(".entity-title","click",function(){ var title = $(this).parent('li').attr('id'); $('a[href="#'+title+'"]').trigger('click'); }); } else{ $(".entity-widget").undelegate(".entity-title"); return; } } $('form.lead-collector').each(function(){ var id = $(this).attr('id'); leadCollectionValidate(id); }); // leadCollectionValidate("inc_guide_download"); leadCollectionValidate("inc_guide_download_footer"); //rules and messages for validate.js specific for contact us var contactUsFormRulesMessages = { 'rules': { // covers all required fields subject: { required:true }, firstName: { required:true, minlength:1 }, lastName: { required:true, minlength:2 }, email: { required:true, email:true }, confirmEmailAddress: { required:true, equalTo: "#contactEmail", email:true }, phone: { required:false, phoneUS:true }, message: { required:true } }, 'messages':{ subject: { required: "Forgot your subject!" }, firstName: { required: "We need a first name.", minlength: "No initials please." }, lastName: { required: "We need a last name.", minlength: "No initials please." }, email: { required: "Missing email address.", email: "Please check format." }, confirmEmailAddress: { required: "Please confirm address.", equalTo: "Addresses do not match.", email: "Please check format." }, message: { required: "Forgot your message!" } } }; leadCollectionValidate("contactUsForm", contactUsFormRulesMessages); //rules and messages for validate.js specific for contactForm new sales funnel var contactFormRulesMessages ={ 'rules':{ title:{required:true }, firstName: { required:true, minlength:1 }, lastName: { required:true, minlength:2 }, address1:{required:true }, zipCode:{required:true }, state:{required:true }, city:{required:true}, county:{required:true}, country:{required:true}, internationalProvince:{ required:{ depends:function(){ if( $('#contactForm #country').val() === 'US' || $('#contactForm #country').val() === 'CA') return false; else return true; } } }, phone: { required:true, phoneUS:{ depends:function(){ if( $('#contactForm #country').val() === 'US' || $('#contactForm #country').val() === 'CA') return true; else return false; } } }, cell: { required:false, phoneUS:{ depends:function(){ if( $('#contactForm #country').val() === 'US' || $('#contactForm #country').val() === 'CA') return true; else return false; } } }, email: { required:{ depends:function(element){ $('#noEmail1').parent('.form-group.hidden').show(); return $('#noEmail1').is(':checked')? false:true; } }, email:{ depends:function(element){ return $('#noEmail1').is(':checked')? false:true; } } } }, 'messages':{ title: { required: "Forgot your title!" }, firstName: { required: "We need a first name.", minlength: "No initials please." }, lastName: { required: "We need a last name.", minlength: "No initials please." }, address1:{required:"Please provide address."}, zipCode:{required:"Please provide zip code."}, state:{required:"Please provide state."}, city:{required:"Please provide city."}, county:{required:"Please provide county."}, country:{required:"Please provide country."}, phone:{ required:"Please provide your phone number.", phoneUS:"Please check format." }, cell:{ required:"Please provide your cell number.", phoneUS:"Please check format." }, email: { required: "Missing email address.", email : "Please check format." } } }; leadCollectionValidate('contactForm', contactFormRulesMessages, contactCollectorFormCallback); //lead collector validation // Initialize $.validate() on passed in form // if no rules/messages or submit callback function passed use defualts function leadCollectionValidate(_formID, _rulesMessages, _submitHandlerCallback){ if(_rulesMessages === undefined ){ _rulesMessages ={ 'rules': { // covers all four fields firstName: { required:true, minlength:1 }, lastName: { required:true, minlength:2 }, email: { required:true, email:true }, confirmEmailAddress: { required:true, equalTo: "#contactEmail", email:true }, phone: { required:true } }, 'messages' : { firstName: { required: "We need a first name.", minlength: "No initials please." }, lastName: { required: "We need a last name.", minlength: "No initials please." }, email: { required: "Missing email address.", email: "Please check format." }, confirmEmailAddress: { required: "Please confirm address.", equalTo: "Addresses do not match.", email: "Please check format." }, phone: { required: "Missing phone number." //phoneUS: "Please check format." }, message: { required: "Forgot your message!" } } }; } if( _submitHandlerCallback === undefined ) { _submitHandlerCallback = defaultFormSubmittedCallback; } $("#"+_formID).validate({ errorClass:"alert alert-danger alert-danger-clear", errorElement: "div", errorPlacement: function(error, element) { error.insertAfter(element); }, highlight: function(element, errorClass, validClass) { $(element).siblings('.alert').remove(); // $(element) // .closest('div.form-group') // .addClass('has-error'); }, unhighlight: function(element, errorClass, validClass) { $(element).siblings('.alert').remove().end() .closest('div.form-group') .removeClass('has-error'); }, ignore:".ignore", rules: _rulesMessages.rules, messages: _rulesMessages.messages, submitHandler: function(form) { loadingWidget('show'); return _submitHandlerCallback(form); } }); } $('input[data-campaign]').change(function() { adhocCampaignChange($(this).attr('data-campaign')); }); // Callback handler for the sales funnel contact collector submission of a valid form. function contactCollectorFormCallback(form) { form.submit(); return true; }; // Default form submission callback handler for the leadCollectionValidate method. function defaultFormSubmittedCallback(form) { // Some forms stil use #assetName, keep for legacy reasons var id; ( form.id === undefined ) ? id = "" : id = form.id; $("#" + id + " #assetName").val(globalPageName); //for tv lead form only if(id === 'inc_guide_download_tv' && $('#inc_guide_download_tv #goldMineCampaignId').val() === ''){ $('#'+id+' #goldMineCampaignId').val('Promo Code'); } $.ajax({ type:"POST", url:form.action, data:$(form).serialize(), dataType:'json', success:leadCollectorAjaxPost }); return false; }; //TODO: Delete after testing -- function leadCollectorAjaxPost(json, statusText, xhr, $form) { // Close Modal loadingWidget('hide'); if ( json.error === true ) { var errorMessage = json.errorMessage; if (errorMessage.match(/Phone/) || errorMessage.match(/phone/)) { $("#" + json.formId +" #phone").parent().addClass("has-error"); $("#" + json.formId +" #phone").after('
Authorization Failed.
"; if ( json.error && json.errorMessage.match(/locked/gi) ) { errMsg += ""+json.errorMessage+"
"; } $('#cwReturnUser .alert-cwReturnUser').html(errMsg).removeClass('hidden').fadeIn('slow'); } }) .fail(function(json){ errMsg = "Authorization Failed.
"; $('#cwReturnUser .alert-cwReturnUser').html(errMsg).removeClass('hidden').fadeIn('slow') }); }); //cw change company //side cart continue button $('body ').on('click','.btn-side-cart', function(){ $('#contactForm input#continue, button.btn-continue, #paymentContinue').trigger('click'); }); // Remove button called on the Review Order page $("body").on("click","a.removePoorItemStarter", function(e) { e.preventDefault(); var poorProductName = $(this).next().attr('val'); if ( window.confirm('Are you sure you wish to remove ' + poorProductName + ' from your cart?\nClick OK to remove this item or CANCEL to return to your cart.') ) { $.ajax({ url: '/product/remove_formation.json', type: 'POST', dataType: 'json' }) .done(function() { location.reload(); }) .fail(function( jqXHR, textStatus ) { alert( "Request failed: Please try again."); }) .always(function() { location.reload(); }); } }); $("body").on("click","a.removePoorItem", function(e) { e.preventDefault(); var poorProductName = $(this).next().attr('val'); var poorProductSKU = $(this).next().next().attr('val'); confirmRemoval(poorProductName,poorProductSKU); }); //$('#wrapper').before($('.mic-section')); $('.mic-section .btn-mic').on('click',function(){ $('.mic-lead').slideToggle(); }); $('.mic-section .mic-lead .close').on('click',function(){ $('.mic-lead').slideToggle(); }); $.fn.toggleDisabled = function(){ return this.each(function(){ this.disabled = !this.disabled; }); }; })(jQuery); // Simple function to keep track of the content flag state within the body:after pseudo element function checkDevice() { var windowState = window.getComputedStyle(document.body,':before').getPropertyValue('content'); var devices = ["mobile", "tablet", "desktop", "widescreen"]; for (var i = 0; i < devices.length; i++) { if ( windowState.indexOf(devices[i]) != -1 ) { return devices[i]; } } } function confirmRemoval(productName, sku) { if ( window.confirm('Are you sure you wish to remove ' + productName + ' from your cart?\nClick OK to remove this item or CANCEL to return to your cart.') ) { // Fire up the modal loadWidgetLoadingMessage("start"); // Send the remove product event to omniture s.products=";" + sku.toLowerCase() + ";;;;evar3=" + ( sku.indexOf(".") > -1 ? sku.substring(0, sku.indexOf(".")).toLowerCase() : sku.toLowerCase() ) s.linkTrackVars="products,events"; s.linkTrackEvents="scRemove"; s.events="scRemove"; s.tl(); s.linkTrackVars="None"; s.linkTrackEvents="None"; // Remove item, and either send user to home page if the cart is empty, or simply refresh the page $.get('/product/remove/' + sku + '.html', function(data) { $.ajax({ url : '/getNumberOfCartItems.html', type : 'GET', dataType : 'text', success : function(data) { // Close Modal loadWidgetLoadingMessage("stop"); if (data == "0") { document.location.replace('/index.html'); } else { location.reload(); } } }); }); } } //sales funnel function sideCartFollow(_startPosition){ if(!$('.rightRail').hasClass('col-md-3')) return; var startPos = _startPosition, $sideCart = $('.rightRail .side-cart-behind').animate({marginTop:startPos+"px"},500), $window = $(window), offset = $sideCart.offset(), topPadding = 20, rightRailHeight = $('.rightRail section').outerHeight(); $window.scroll(function() { var overflow = $('.contentCol').outerHeight() > (rightRailHeight + ($window.scrollTop() - offset.top + topPadding) ) ; if ($window.scrollTop() > offset.top ) { if(!overflow) return; var mt = $window.scrollTop() - offset.top + topPadding; if(mt < _startPosition) mt = _startPosition; $sideCart.stop().animate({ marginTop: mt }); } else { $sideCart.stop().animate({ marginTop: _startPosition }); } }); } $('.side-cart-behind, #sideCartMenu').on('click','.item-name',function(){ var target = $(this).attr('data-target'); $(this).toggleClass('glyphicon-tcc-arrow-down5 glyphicon-tcc-arrow-up5'); $(target).toggleClass('hidden'); }); var changeCompanySelector; $(function() { //side cart tooltip $('body').tooltip({ selector: '[data-toggle="tooltip"]',trigger:'click hover focus' }); $('body .set-tooltip').click(function(){ $(this).tooltip('show'); }); // $('span.set-tooltip').tooltip(); $("#cwOverviewNotMyAccount").click(function(e) { $("#notMyAccountField").val("true"); var $form = $(this).closest('form'); $form.find('select, input').addClass('ignore'); $form.submit(); }); $("#cwOverviewChangeCompany").change(function(e) { changeCompanySelector = $(this); if ($("#notListedCompanyOption").length > 0) { confirmedChangeCompany(); } else { showCompanyChangeModal(); } }); $("#notMyAccountField").val(""); $("#changeCompanyField").val(""); $("#continueChangeCompanyButton").click(function(e){ confirmedChangeCompany(); }); $("#cancelChangeCompanyButton").click(function(e){ }); //count characters in comment box on paymentpage $('#payment_page textarea').keyup(function(){ var comments = $(this).val().length; $(this).siblings('.commentCount').html('('+ comments +' of 255 characters used)'); }); }); function showCompanyChangeModal() { $("#companyChangeModal").modal('show'); } function confirmedChangeCompany() { $("#changeCompanyField").val(changeCompanySelector.val()); if(typeof(loadLoadingMessage)=='function'){ loadLoadingMessage('start'); } changeCompanySelector.closest('form').submit(); } function getUrlParameter(sParam) { var sPageURL = window.location.search.substring(1); var sURLVariables = sPageURL.split('&'); for (var i = 0; i < sURLVariables.length; i++) { var sParameterName = sURLVariables[i].split('='); if (sParameterName[0] == sParam) { return sParameterName[1]; } } } // You must call initializeSessionTimeout(SECONDS) from any page that uses it function initializeSessionTimeout(idleSeconds) { $.idleTimeout('#sessionTimeoutModal', '#sessionTimeoutModal #continueSessionButton', { idleAfter: idleSeconds, // user is considered idle after X sec of no movement pollingInterval: 600, // a request to keepalive.html will be sent to the server every Y sec warningLength: 120, // number of secs for logout warning keepAliveURL: 'keepalive.html', serverResponseEquals: 'ok', // the response from keepalive must equal the text "ok" onTimeout: function(){ // redirect the user when they timeout. window.location = "checkout.html?session_timeout=true"; }, onIdle: function(){ // show the dialog when the user idles showSessionTimeoutModal(); }, onCountdown: function(counter){ // update the counter span inside the dialog during each second of the countdown $(".dialog-countdown").html(counter); }, onResume: function(){ $("#sessionTimeoutModal").modal('hide'); // fired after intercepting button click } }); } function disableSessionTimeout() { // no interface provided to stop timer, so this may break in the future: $(document).unbind("idle.idleTimer"); } function showSessionTimeoutModal() { $("#sessionTimeoutModal").modal('show'); } //e bool value to hide/show loading widget function loadingWidget(e){ $('.loading-widget').modal(e); } function loadWidgetLoadingMessage(e){ var pass = e === 'start'? 'show':'hide'; loadingWidget(pass); } $('.modal').on('show.bs.modal', function(){ $('.modal-backdrop').remove(); $('').prependTo('.modal'); }); $('.modal').on('hide.bs.modal', function(){ $('.modal-backdrop').remove(); });