{"version":3,"sources":["baslider.js","components.js","contactUs.js","digitalSecurity.js","emailSignUp.js","img-responsive.js","main.js","partnerRegistrationForm.js","productDetailModal.js","productDetails.js","savingsCalculator.js"],"names":["$","fn","extend","beforeAfter","options","this","each","$container","$beforeImage","append","handlerImage","startMouseOffset","$control","find","$controlArea","setBarPosition","p","animate","toFixed","f","stop","left","width","getPointerX","e","pageX","originalEvent","targetTouches","er","moveHandler","offset","stopHandler","preventDefault","document","off","on","jQuery","desktopSize","compBG","setBackground","screen","console","log","bg","data","css","$this","bgColorContainer","mediaCheck","media","entry","parent","exit","attr","length","clippedBgIntro","bgimage","slick","slidesToShow","slidesToScroll","arrows","fade","dots","asNavFor","cssEase","focusOnSelect","responsive","breakpoint","settings","centerMode","respondTo","mobileFirst","infinite","prevArrow","nextArrow","speed","rotator","slideLength","$slides","nextSlide","currentSlide","addClass","window","setTimeout","removeClass","event","stickyElem","window_top","scrollTop","top","height","outerHeight","click","hasClass","parents","scrollTo","before","scroll","fixedsticky","toggleSamePageNav","$el","samePageNav","targetId","imagesLoaded","samePageNavHeight","navLinks","linkedIds","linkedIdsOffsets","lastScrollPos","btnDrop","animatingDropdown","push","getLinkedIdsOffsets","_","throttle","i","finishesOffset","updateSamePageNav","direction","shouldUpdate","currentPageOffset","siblings","slideUp","checked","Math","abs","itemToShow","text","easing","easeOutCubic","x","t","b","c","d","firstLinkText","mobileBtn","sideValue","parseFloat","parentWidth","magnificPopup","open","items","src","type","disableOn","iframe","patterns","youtube","index","id","mainClass","removalDelay","preloader","fixedContentPos","midClick","closeBtnInside","autoFocusLast","focus","callbacks","content","adaptiveHeight","unbind","amountToMove","scrollLeft","visibleRow","rowNum","rowNumVisible","changePage","opacity","nextRowIndex","nextRow","nextRowHeader","nextRowCells","input","location","href","val","phoneStartingPos","daywithOffset","daywithHeight","windowScrollTop","windowHeight","phoneHeight","headerHeight","daywithDayContentOffsets","phoneScreen","daywithDayVars","phoneDiff","daywithDayCheck","daywithDayContentCheck","dayContentOffset","scrollFunctions","slide","container","hide","show","$masonry","masonry","itemSelector","gutter","iframe_id","eventMethod","addEventListener","eventer","indexOf","dimensions","split","newheight","getElementById","style","parseInt","offsets","getBoundingClientRect","values","destination","html","change","multiexpand","next","slideDown","$tabContainer","$contentContainer","dest","contentSideTabsMobile","imgArray","slice","call","querySelectorAll","map","guide","dataset","img","customPaging","that","blur","trim","value","tempFilters","productGrid","productList","querySelector","salesForm","firstName","lastName","email","company","address","city","state","country","zip","profession","otherProfession","interests","submitBtn","ValidateField","name","test","isValid","parentNode","classList","add","children","display","remove","commentsTextArea","target","toLowerCase","rows","firstElement","firstObj","element","ValidateOtherProfession","grecaptcha","getResponse","ValidateForm","ajax","method","url","success","response","submit","error","shortForm","emailAddress","privacyCheckBox","validateEmail","validateOnly","emailFormLabel","previousElementSibling","re","validateNames","first","last","ensureChecked","checkbox","checkBoxLabel","readyToSubmit","preventOverlap","cssText","$premisKeys","steps","code","codeStep","keysClicked","currentStep","getRandomNumber","min","max","otherNum","myNum","floor","random","undefined","hideKeys","key1","key2","setStep","$clickedNum","allBlank","showKeys","resetKeypad","unlockDoor","lockDoor","step","stepAsString","toString","$xKeys","flashNum","flash","setInterval","clearInterval","emailForm","emailFormEmail","emailFormFirstName","emailFormLastName","emailFormCheckbox","emailFormPreferenceCheckbox","today","Date","ensurePreferenceChecked","result","getMonth","getFullYear","getDate","imgResponsive","$img","srcset","sources","it","pair","minWidth","replace","onResize","innerWidth","resize","closeMainNavigation","menu","isMobile","subMenu","videoId","currentTime","play","getAttribute","link","createElement","download","body","appendChild","removeChild","markup","srcAction","toggleTarget","targetEl","is","position","transform","closeSearch","keyCode","query","subnav","parentLi","matchMedia","matches","base","prefixes","properties","testElement","n","l","prefixedProperty","charAt","toUpperCase","j","le","property","areClipPathShapesSupported","hover","displayValue","openSearch","baseHostName","heightThreshold","checkOffset","setHeightThreshold","appendTo","constrainedWidth","fullWidth","scrollbarWidth","ceil","documentElement","setProperty","calculateScrollbarWidth","hostname","closest","trigger","regForm","sourceName","confirmUrl","protocol","host","selectedOptions","finish","sParam","sParameterName","sURLVariables","search","substring","decodeURIComponent","getUrlParameter","savingsMinutes","savingsCost","minutes","minutesDefault","minutesEntered","laborEntered","locksEntered","minutesBar","locksNum","timeCost","laborCost","calculatorType","dualCalc","pdfLink","entered","calcData","costDefault","costEntered","updateNumbers","numbers","minutesPercent","lockType","info","title","phone","iskeyControl","encodeURIComponent","addthis","update","addthis_share","email_vars","reportLink","product","formField"],"mappings":"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","file":"../global.js","sourcesContent":["(function ($) {\r\n $.fn.extend({\r\n beforeAfter: function (options) {\r\n\r\n $(this).each(function () {\r\n\r\n var $container = $(this);\r\n var $beforeImage = $('.ba-slider-before', $container);\r\n\r\n $container.append('
' +\r\n '
' +\r\n '
' +\r\n (options && options.handlerImage ? '' : '
') +\r\n '
' +\r\n '
' +\r\n '
');\r\n\r\n var $control = $container.find('.ba-control');\r\n var $controlArea = $control.find('.ba-control-area');\r\n var startMouseOffset;\r\n\r\n setBarPosition(0.5);\r\n\r\n // Drag\r\n $controlArea.on('mousedown touchstart', function (e) {\r\n e.preventDefault();\r\n startMouseOffset = getPointerX(e) - $controlArea.offset().left;\r\n $(document)\r\n .on('mousemove touchmove', moveHandler)\r\n .on('mouseup touchend touchcancel', stopHandler);\r\n });\r\n\r\n // Click\r\n $control.find('.ba-control-bg').on('click', function (e) {\r\n e.preventDefault();\r\n var x = getPointerX(e) - $control.offset().left;\r\n setBarPosition(x / $control.width(), true);\r\n });\r\n\r\n // Functions\r\n function setBarPosition(p, animate) {\r\n p *= 100;\r\n if (p < 0) p = 0;\r\n if (p > 100) p = 100;\r\n p = p.toFixed(3) + '%';\r\n var f = animate ? 'animate' : 'css';\r\n $controlArea.stop()[f]({left: p});\r\n $beforeImage.stop()[f]({width: p});\r\n }\r\n\r\n function getPointerX(e) {\r\n if (e.pageX) {\r\n return e.pageX;\r\n }\r\n try {\r\n return e.originalEvent.targetTouches[0].pageX;\r\n } catch (er) {\r\n return 0;\r\n }\r\n }\r\n\r\n function moveHandler(e) {\r\n var x = getPointerX(e) - startMouseOffset - $control.offset().left;\r\n setBarPosition(x / $control.width());\r\n }\r\n\r\n function stopHandler(e) {\r\n e.preventDefault();\r\n $(document)\r\n .off('mousemove touchmove', moveHandler)\r\n .off('mouseup touchend touchcancel', stopHandler);\r\n }\r\n });\r\n }\r\n });\r\n})(jQuery);","(function () {\r\n // Background image fn (desktop, tablet, mobile)\r\n var compBG = $('[data-bg-desktop]');\r\n\r\n function setBackground(screen) {\r\n console.log(screen)\r\n compBG.each(function () {\r\n var bg = $(this).data('bg-' + screen) || '';\r\n // NOTE FROM CAITLIN: I do not know why these were different before. It was causing issues on mobile for the linked slider. Also has potential x-browser issues so I've commented it out.\r\n //if (screen === 'mobile' && $(this).parents().hasClass('linked-slider__primary')) {\r\n // $(this).css('background', 'linear-gradient(to bottom, rgba(255,255,255,0) 0%,rgba(255,255,255,0.02) 1%,rgba(48,48,52,1) 70%), url(' + bg + ') no-repeat center / cover');\r\n //} else {\r\n // $(this).css('background-image', 'url(' + bg + ')');\r\n //}\r\n $(this).css('background-image', 'url(' + bg + ')');\r\n\r\n if ($(this).data('bg-color')) {\r\n var $this = $(this);\r\n var bgColorContainer = $this.data('bg-color-container');\r\n mediaCheck({\r\n media: '(min-width: 992px)',\r\n entry: function () {\r\n if (bgColorContainer === 'this') {\r\n $this.css('background-color', '#' + $this.data('bg-color'));\r\n } else {\r\n $this.parent('.' + bgColorContainer).css('background-color', '#' + $this.data('bg-color'));\r\n }\r\n },\r\n exit: function () {\r\n if (bgColorContainer === 'this') {\r\n $this.attr('style','');\r\n } else {\r\n $this.parent('.' + bgColorContainer).attr('style','');\r\n }\r\n }\r\n });\r\n }\r\n });\r\n }\r\n var mobileSize;\r\n var desktopSize;\r\n\r\n\tif(!$('.js-angular-module').length) {\r\n\t\tmobileSize = false;\r\n\t desktopSize = false;\r\n }\r\n\r\n mediaCheck({\r\n media: '(max-width: 767px)',\r\n entry: function () {\r\n mobileSize = true;\r\n compBG = $('[data-bg-mobile]');\r\n setBackground('mobile');\r\n },\r\n exit: function () {\r\n mobileSize = false;\r\n }\r\n });\r\n\r\n mediaCheck({\r\n media: '(min-width: 992px)',\r\n entry: function () {\r\n desktopSize = true;\r\n compBG = $('[data-bg-desktop]');\r\n setBackground('desktop');\r\n },\r\n exit: function () {\r\n\r\n }\r\n });\r\n\r\n mediaCheck({\r\n media: '(min-width: 768px) AND (max-width: 991px)',\r\n entry: function () {\r\n desktopSize = false;\r\n compBG = $('[data-bg-desktop]');\r\n setBackground('tablet');\r\n }\r\n })\r\n\r\n // bg image (clipped)\r\n if ($('[data-bg-clipped]').length > 0) {\r\n var clippedBgIntro = $('[data-bg-clipped]');\r\n var setClippedBg = function () {\r\n clippedBgIntro.each(function () {\r\n var bgimage = $(this).data('bg-clipped');\r\n $(this).css('background-image', 'url(\"' + bgimage + '\")');\r\n })\r\n }\r\n\r\n mediaCheck({\r\n media: '(min-width: 992px)',\r\n entry: function () {\r\n setClippedBg();\r\n },\r\n exit: function () {\r\n $('[data-bg-clipped]').css('background-image', 'none');\r\n }\r\n });\r\n }\r\n\r\n // Linked-slider fn\r\n if ($('.linked-slider__primary').length) {\r\n $('.linked-slider__primary').slick({\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n arrows: false,\r\n fade: true,\r\n dots: false,\r\n asNavFor: '.linked-slider__secondary',\r\n cssEase: 'ease-in'\r\n });\r\n }\r\n\r\n if ($('.linked-slider__primary').length) {\r\n $('.linked-slider__secondary').slick({\r\n slidesToShow: 6,\r\n slidesToScroll: 3,\r\n asNavFor: '.linked-slider__primary',\r\n focusOnSelect: true,\r\n responsive: [\r\n {\r\n breakpoint: 768,\r\n settings: {\r\n slidesToShow: 3,\r\n arrows: false,\r\n slidesToScroll: 2,\r\n asNavFor: '.linked-slider__primary',\r\n dots: false,\r\n centerMode: true,\r\n focusOnSelect: true,\r\n respondTo: 'slider'\r\n }\r\n }\r\n ]\r\n });\r\n }\r\n\r\n\r\n /* HERO ROTATOR */\r\n if ($('.hero-rotator').length) {\r\n $('.hero-rotator').each(function () {\r\n $(this).slick({\r\n mobileFirst: true,\r\n dots: true,\r\n infinite: false,\r\n prevArrow: '',\r\n nextArrow: '',\r\n responsive: [\r\n {\r\n breakpoint: 991,\r\n settings: {\r\n fade: true,\r\n mobileFirst: true,\r\n speed: 0,\r\n infinite: true\r\n }\r\n }\r\n ]\r\n });\r\n });\r\n\r\n var rotator = $('.hero-rotator').slick('getSlick');\r\n var slideLength = rotator.$slides.length;\r\n $('.slick-prev, .slick-next', $('.hero-rotator')).off('click');\r\n $('.slick-prev', $('.hero-rotator')).on('click', function (e) {\r\n e.preventDefault();\r\n var currentSlide = $('.hero-rotator').slick('slickCurrentSlide'),\r\n nextSlide;\r\n if (currentSlide === 0) {\r\n nextSlide = slideLength - 1;\r\n } else {\r\n nextSlide = currentSlide - 1;\r\n }\r\n $(rotator.$slides[nextSlide]).find('.hero-rotator__mask').addClass('hero-rotator__mask--animating-left');\r\n window.setTimeout(function () {\r\n $('.hero-rotator').slick('slickPrev');\r\n }, 100);\r\n\r\n });\r\n\r\n $('.slick-next', $('.hero-rotator')).on('click', function (e) {\r\n var currentSlide = $('.hero-rotator').slick('slickCurrentSlide'),\r\n nextSlide;\r\n if (currentSlide === slideLength) {\r\n nextSlide = 0;\r\n } else {\r\n nextSlide = currentSlide + 1;\r\n }\r\n $(rotator.$slides[nextSlide]).find('.hero-rotator__mask').removeClass('hero-rotator__mask--animating-left');\r\n window.setTimeout(function () {\r\n $('.hero-rotator').slick('slickNext');\r\n }, 100);\r\n });\r\n\r\n $('.hero-rotator').on('beforeChange', function (event, slick, currentSlide, nextSlide) {\r\n $(slick.$slides[nextSlide]).removeClass('slick-viewed');\r\n\r\n // prevents the currently visible slide from animating for a bit\r\n $(slick.$slides[currentSlide]).addClass('slick-viewed');\r\n window.setTimeout(function () {\r\n $(slick.$slides[currentSlide]).removeClass('slick-viewed');\r\n }, 1000);\r\n });\r\n\r\n $('.hero-rotator').on('afterChange', function (event, slick, currentSlide) {\r\n //$(slick.$slides[currentSlide]).find('hero-rotator__mask').removeClass('hero-rotator__mask--animating-left');\r\n });\r\n }\r\n\r\n // component is accordion on mobile\r\n $('.js--mobile-accordion').each(function () {\r\n // todo\r\n });\r\n\r\n // Side navigation select\r\n if ($('.sidenav').length) {\r\n // open dropdown\r\n $('.sidenav__btn-drop').click(function (e) {\r\n e.preventDefault();\r\n if ($(this).hasClass('sidenav__btn-drop--open')) {\r\n $(this).removeClass('sidenav__btn-drop--open');\r\n $(this).parents('.sidenav').find('.sidenav__link').attr('tabindex', -1);\r\n // TODO: remove listener to close if you click on the body\r\n } else {\r\n $(this).addClass('sidenav__btn-drop--open');\r\n $(this).parents('.sidenav').find('.sidenav__link').attr('tabindex', 0);\r\n // TODO: add a listener to close this we click on the body\r\n }\r\n });\r\n }\r\n\r\n // Scrolltop elements\r\n if ($('.js--scroll').length) {\r\n $('.js--scroll').click(function (e) {\r\n e.preventDefault();\r\n var scrollTo = $(this).attr('href');\r\n\r\n $('html,body').animate({\r\n scrollTop: $(scrollTo).offset().top\r\n }, 500);\r\n });\r\n }\r\n\r\n // Sticky elements\r\n if ($('.js--sticky').length) {\r\n $('.js--sticky').before(\"
\");\r\n $(window).scroll(stickyElem);\r\n stickyElem();\r\n }\r\n\r\n function stickyElem() {\r\n var window_top = $(window).scrollTop();\r\n var div_top = $('.js--sticky-point').offset().top;\r\n\r\n if (window_top > div_top) {\r\n $('.js--sticky').addClass('stick');\r\n $('.js--sticky-point').height($('.js--sticky').outerHeight());\r\n $('.js--sticky-point').css('margin', ($('.js--sticky').css('margin')));\r\n } else {\r\n $('.js--sticky').removeClass('stick');\r\n $('.js--sticky-point').height(0);\r\n $('.js--sticky-point').attr('style', '');\r\n }\r\n }\r\n\r\n // polyfill\r\n $('.fixedsticky').fixedsticky();\r\n\r\n mediaCheck({\r\n media: '(min-width: 992px)',\r\n entry: function () {\r\n $('.fixedsticky-desktop').fixedsticky();\r\n },\r\n exit: function () {\r\n $('.fixedsticky-desktop').fixedsticky('destroy');\r\n }\r\n });\r\n\r\n\r\n\tif(!$('.js-angular-module').length) {\r\n\t\tvar toggleSamePageNav = function ($el) {\r\n\t\t if ($el.hasClass('same-page-nav__btn-drop--open')) {\r\n\t\t\t $el.removeClass('same-page-nav__btn-drop--open');\r\n\t\t\t $el.parents('.same-page-nav').find('.same-page-nav__link').attr('tabindex', -1);\r\n\t\t } else {\r\n\t\t\t $el.addClass('same-page-nav__btn-drop--open');\r\n\t\t\t $el.parents('.same-page-nav').find('.same-page-nav__link').attr('tabindex', 0);\r\n\t\t }\r\n\t }\r\n }\r\n\r\n\r\n // make sure an angular module isnt using samepagenav before we run this function\r\n if(!$('.js-angular-module').length) {\r\n // same page nav\r\n\t if ($('.same-page-nav').length > 0) {\r\n\t\t (function () {\r\n\t\t\t var samePageNavHeight;\r\n\r\n\t\t\t if(!$('.same-page-nav__item--selected').length) {\r\n\t\t\t\t $('.same-page-nav__item:first-child').addClass('same-page-nav__item--selected')\r\n\t\t\t }\r\n\r\n\t\t\t // open dropdown\r\n\t\t\t $('.same-page-nav__btn-drop').click(function (e) {\r\n\t\t\t\t e.preventDefault();\r\n\t\t\t\t toggleSamePageNav($(this));\r\n\t\t\t });\r\n\r\n\t\t\t // handle traveling to different parts of page. go to id with offset so not covering content, and close the nav so it isn't covering content\r\n\t\t\t $('.same-page-nav__link').on(\"click\",function (e) {\r\n\t\t\t\t e.preventDefault();\r\n\t\t\t\t var samePageNav = $(this).parents('.same-page-nav');\r\n\t\t\t\t var targetId = $(this).attr('href');\r\n\t\t\t\t $('html,body').animate({\r\n\t\t\t\t\t scrollTop: $(targetId).offset().top - 46 // 46 = height of nav\r\n\t\t\t\t }, 500);\r\n\t\t\t\t $('.same-page-nav__btn-drop', samePageNav).removeClass('same-page-nav__btn-drop--open');\r\n\t\t\t });\r\n\r\n\t\t\t // figure out what text to show on the dropdown button\r\n\t\t\t $('.site-body').imagesLoaded(function () {\r\n\t\t\t\t $('.same-page-nav').each(function () { // this needs to happen for each component on the page\r\n\t\t\t\t\t var navLinks = $('.same-page-nav__link', $(this)),\r\n\t\t\t\t\t\t linkedIds = [],\r\n\t\t\t\t\t\t linkedIdsOffsets = [],\r\n\t\t\t\t\t\t windowHeight,\r\n\t\t\t\t\t\t lastScrollPos = 0,\r\n\t\t\t\t\t\t btnDrop = $('.same-page-nav__btn-drop', $(this)),\r\n\t\t\t\t\t\t samePageNav = $(this),\r\n\t\t\t\t\t\t samePageNavHeight,\r\n\t\t\t\t\t\t animatingDropdown = false;\r\n\r\n\t\t\t\t\t if (samePageNav.hasClass('same-page-nav--product-details') && desktopSize) {\r\n\t\t\t\t\t\t samePageNavHeight = samePageNav.height() + 60; // 60 is the max height of this section\r\n\t\t\t\t\t } else {\r\n\t\t\t\t\t\t samePageNavHeight = samePageNav.height();\r\n\t\t\t\t\t }\r\n\r\n\t\t\t\t\t navLinks.each(function () {\r\n\t\t\t\t\t\t linkedIds.push($(this).attr('href'));\r\n\t\t\t\t\t });\r\n\r\n\t\t\t\t\t // get top offsets for each div and set finishes height\r\n\t\t\t\t\t var getLinkedIdsOffsets = _.throttle(function () {\r\n\t\t\t\t\t\t windowHeight = $(window).height();\r\n\t\t\t\t\t\t linkedIdsOffsets = [];\r\n\t\t\t\t\t\t finishesOffset = 0;\r\n\t\t\t\t\t\t for (var i = 0; i < linkedIds.length; i++) {\r\n\t\t\t\t\t\t\t if ($(linkedIds[i]).length > 0) {\r\n\t\t\t\t\t\t\t\t linkedIdsOffsets.push($(linkedIds[i]).offset().top)\r\n\t\t\t\t\t\t\t }\r\n\r\n\t\t\t\t\t\t }\r\n\t\t\t\t\t\t if ($('.finish-switcher').length > 0) {\r\n\t\t\t\t\t\t\t if ($('.same-page-nav--product-thumbnails').length > 0) {\r\n\t\t\t\t\t\t\t\t finishesOffset = $('.same-page-nav').height() - 100 - 16;\r\n\t\t\t\t\t\t\t } else {\r\n\t\t\t\t\t\t\t\t finishesOffset = $('.same-page-nav').height();\r\n\t\t\t\t\t\t\t }\r\n\t\t\t\t\t\t\t $('.finish-switcher').css('top', finishesOffset + 'px')\r\n\t\t\t\t\t\t }\r\n\t\t\t\t\t }, 250);\r\n\r\n\t\t\t\t\t // update same page nav label (for mobile) and selected state (for everything)\r\n\t\t\t\t\t var updateSamePageNav = _.throttle(function () {\r\n\t\t\t\t\t\t // only do this if you've reached the first offset point\r\n\t\t\t\t\t\t var shouldUpdate = false,\r\n\t\t\t\t\t\t\t currentPageOffset = $(window).scrollTop(),\r\n\t\t\t\t\t\t\t direction;\r\n\r\n\r\n\t\t\t\t\t\t // update the labels and selected states\r\n\t\t\t\t\t\t if ((currentPageOffset + samePageNavHeight) > linkedIdsOffsets[0]) {\r\n\t\t\t\t\t\t\t shouldUpdate = true;\r\n\t\t\t\t\t\t\t samePageNav.addClass('same-page-nav--anchored');\r\n\t\t\t\t\t\t } else {\r\n\t\t\t\t\t\t\t shouldUpdate = false;\r\n\t\t\t\t\t\t\t samePageNav.removeClass('same-page-nav--anchored');\r\n\t\t\t\t\t\t }\r\n\t\t\t\t\t\t if (shouldUpdate) {\r\n\t\t\t\t\t\t\t // close the nav if it is open\r\n\t\t\t\t\t\t\t if ($('.same-page-nav__btn-drop--open', samePageNav).length > 0) {\r\n\t\t\t\t\t\t\t\t if (!animatingDropdown) {\r\n\t\t\t\t\t\t\t\t\t animatingDropdown = true;\r\n\t\t\t\t\t\t\t\t\t $('.same-page-nav__btn-drop--open', samePageNav).siblings('.same-page-nav__text-links').slideUp(function () {\r\n\t\t\t\t\t\t\t\t\t\t animatingDropdown = false;\r\n\t\t\t\t\t\t\t\t\t\t $(this).attr('style', '')\r\n\t\t\t\t\t\t\t\t\t\t $('.same-page-nav__btn-drop--open', samePageNav).removeClass('same-page-nav__btn-drop--open');\r\n\t\t\t\t\t\t\t\t\t })\r\n\t\t\t\t\t\t\t\t }\r\n\r\n\t\t\t\t\t\t\t }\r\n\r\n\t\t\t\t\t\t\t // checking if the position has changed by more than 10.\r\n\t\t\t\t\t\t\t var checked = false;\r\n\t\t\t\t\t\t\t if (!checked) {\r\n\t\t\t\t\t\t\t\t checked = true;\r\n\t\t\t\t\t\t\t\t if (Math.abs(currentPageOffset - lastScrollPos) > 10) {\r\n\t\t\t\t\t\t\t\t\t if (currentPageOffset - lastScrollPos < 0) {\r\n\t\t\t\t\t\t\t\t\t\t // we scrolled up\r\n\t\t\t\t\t\t\t\t\t\t direction = 'up';\r\n\t\t\t\t\t\t\t\t\t } else {\r\n\t\t\t\t\t\t\t\t\t\t // we scrolled down\r\n\t\t\t\t\t\t\t\t\t\t direction = 'down';\r\n\t\t\t\t\t\t\t\t\t }\r\n\t\t\t\t\t\t\t\t\t lastScrollPos = currentPageOffset;\r\n\t\t\t\t\t\t\t\t }\r\n\t\t\t\t\t\t\t\t checked = false;\r\n\t\t\t\t\t\t\t }\r\n\r\n\t\t\t\t\t\t\t if (direction === 'up') {\r\n\t\t\t\t\t\t\t\t // user is scrolling up\r\n\t\t\t\t\t\t\t\t for (var i = (linkedIdsOffsets.length - 1); i >= 0; i--) {\r\n\t\t\t\t\t\t\t\t\t //if ((currentPageOffset + windowHeight - samePageNav.height()) > linkedIdsOffsets[i]) {\r\n\t\t\t\t\t\t\t\t\t var itemToShow;\r\n\t\t\t\t\t\t\t\t\t // get current div ( if scrollTop < offset, grab the previous div to get the current div (previous div cannot be lower than 0). Otherwise, it's linkedIds.length - 1.\r\n\t\t\t\t\t\t\t\t\t if (currentPageOffset + samePageNavHeight >= linkedIdsOffsets[i]) {\r\n\t\t\t\t\t\t\t\t\t\t if (i === (linkedIds.length - 1)) {\r\n\t\t\t\t\t\t\t\t\t\t\t itemToShow = linkedIds[i]\r\n\t\t\t\t\t\t\t\t\t\t } else if (i === 0) {\r\n\t\t\t\t\t\t\t\t\t\t\t itemToShow = linkedIds[0]\r\n\t\t\t\t\t\t\t\t\t\t } else {\r\n\t\t\t\t\t\t\t\t\t\t\t itemToShow = linkedIds[i]\r\n\t\t\t\t\t\t\t\t\t\t }\r\n\t\t\t\t\t\t\t\t\t\t //console.log(itemToShow, i);\r\n\t\t\t\t\t\t\t\t\t\t btnDrop.text($('.same-page-nav__link[href=\"' + itemToShow + '\"]').text());\r\n\t\t\t\t\t\t\t\t\t\t $('.same-page-nav__item').removeClass('same-page-nav__item--selected')\r\n\t\t\t\t\t\t\t\t\t\t $('.same-page-nav__link[href=\"' + itemToShow + '\"]').parents('li').addClass('same-page-nav__item--selected');\r\n\t\t\t\t\t\t\t\t\t\t break;\r\n\t\t\t\t\t\t\t\t\t } else {\r\n\t\t\t\t\t\t\t\t\t\t itemToShow = linkedIds[0]\r\n\t\t\t\t\t\t\t\t\t }\r\n\r\n\r\n\t\t\t\t\t\t\t\t\t //btnDrop.text($('.same-page-nav__link[href=\"' + itemToShow + '\"]').text());\r\n\t\t\t\t\t\t\t\t\t //$('.same-page-nav__item').removeClass('same-page-nav__item--selected')\r\n\t\t\t\t\t\t\t\t\t //$('.same-page-nav__link[href=\"' + itemToShow + '\"]').parents('li').addClass('same-page-nav__item--selected');\r\n\t\t\t\t\t\t\t\t\t //break;\r\n\t\t\t\t\t\t\t\t\t //}\r\n\t\t\t\t\t\t\t\t }\r\n\t\t\t\t\t\t\t } else {\r\n\t\t\t\t\t\t\t\t for (var i = 0; i < linkedIdsOffsets.length; i++) {\r\n\t\t\t\t\t\t\t\t\t //console.log(windowHeight, 'window height');\r\n\t\t\t\t\t\t\t\t\t //console.log(currentPageOffset, 'current offset');\r\n\t\t\t\t\t\t\t\t\t //console.log(Math.abs(currentPageOffset - linkedIdsOffsets[i]), 'abs value');\r\n\t\t\t\t\t\t\t\t\t // user is scrolling down (probably)\r\n\t\t\t\t\t\t\t\t\t if ((currentPageOffset + samePageNavHeight) >= linkedIdsOffsets[i]) {\r\n\t\t\t\t\t\t\t\t\t\t //console.log($('.same-page-nav__link[href=\"' + linkedIds[i] + '\"]').text());\r\n\t\t\t\t\t\t\t\t\t\t btnDrop.text($('.same-page-nav__link[href=\"' + linkedIds[i] + '\"]').text());\r\n\t\t\t\t\t\t\t\t\t\t $('.same-page-nav__item').removeClass('same-page-nav__item--selected')\r\n\t\t\t\t\t\t\t\t\t\t $('.same-page-nav__link[href=\"' + linkedIds[i] + '\"]').parents('li').addClass('same-page-nav__item--selected');\r\n\t\t\t\t\t\t\t\t\t }\r\n\t\t\t\t\t\t\t\t }\r\n\t\t\t\t\t\t\t }\r\n\t\t\t\t\t\t }\r\n\t\t\t\t\t }, 10);\r\n\r\n\t\t\t\t\t $.extend($.easing, {\r\n\t\t\t\t\t\t easeOutCubic: function (x, t, b, c, d) {\r\n\t\t\t\t\t\t\t return c * ((t = t / d - 1) * t * t + 1) + b;\r\n\t\t\t\t\t\t },\r\n\t\t\t\t\t });\r\n\r\n\t\t\t\t\t getLinkedIdsOffsets(); // run once\r\n\t\t\t\t\t updateSamePageNav(); // run once\r\n\r\n\t\t\t\t\t $(window).on('resize', getLinkedIdsOffsets); // run on resize\r\n\t\t\t\t\t $(window).on('scroll', updateSamePageNav); // run on scroll\r\n\r\n\r\n\t\t\t\t\t var firstLink = navLinks[0];\r\n\t\t\t\t\t var firstLinkText = firstLink.text;\r\n\r\n\r\n\t\t\t\t\t $('.same-page-nav__btn-drop').text(firstLinkText);\r\n\r\n\t\t\t\t\t // if there's more than 1 button, we need to determine what the mobile-only button will be and append it to the page\r\n\t\t\t\t\t if ($('.same-page-nav__btn').length > 1) {\r\n\t\t\t\t\t \tif($('.same-page-nav__btn-group').data('mobile-link') && $('.same-page-nav__btn-group').data('mobile-link-text')) {\r\n\t\t\t\t\t\t\t $('.same-page-nav__btn').addClass('desktop-only');\r\n\t\t\t\t\t\t\t var mobileLink = $(this).find('.same-page-nav__btn-group').data('mobile-link');\r\n\t\t\t\t\t\t\t var mobileText = $(this).find('.same-page-nav__btn-group').data('mobile-link-text');\r\n\t\t\t\t\t\t\t var mobileBtn = '' + mobileText + '';\r\n\t\t\t\t\t\t\t $('.same-page-nav__btn-group').append(mobileBtn);\r\n\t\t\t\t\t\t }\r\n\t\t\t\t\t }\r\n\t\t\t\t });\r\n\t\t\t });\r\n\t\t })();\r\n }\r\n }\r\n\r\n // interactive photo\r\n if ($('.interactive-photo').length > 0) {\r\n\r\n\r\n $('.interactive-photo__pin-holder').each(function () {\r\n var $this = $(this),\r\n sideValue = parseFloat($this.css('left')),\r\n parentWidth = $this.parents('.interactive-photo').width();\r\n\r\n // determine if any of the pins are close to the edge\r\n if ((sideValue / parentWidth) <= 0.1) {\r\n $this.addClass('interactive-photo__pin-holder--left-edge');\r\n } else if ((sideValue / parentWidth) >= 0.9) {\r\n $this.addClass('interactive-photo__pin-holder--right-edge');\r\n }\r\n\r\n });\r\n\r\n $('.interactive-photo__pin').click(function (e) {\r\n e.preventDefault();\r\n var targetId = $(this).attr('href');\r\n if (desktopSize) {\r\n console.log(targetId);\r\n $('.interactive-photo__content').removeClass('mfp-hide');\r\n $('.interactive-photo__content--open').removeClass('interactive-photo__content--open');\r\n $(targetId).addClass('interactive-photo__content--open');\r\n } else {\r\n $.magnificPopup.open({\r\n items: {\r\n src: targetId\r\n },\r\n type: 'inline'\r\n });\r\n }\r\n });\r\n\r\n $('.interactive-photo__close').click(function (e) {\r\n e.preventDefault();\r\n\r\n var interactivePhoto = $(this).parents('.interactive-photo__content');\r\n interactivePhoto.removeClass('interactive-photo__content--open');\r\n });\r\n\r\n mediaCheck({\r\n media: '(min-width: 992px)',\r\n entry: function () {\r\n $('.interactive-photo__content--open').removeClass('interactive-photo__content--open');\r\n },\r\n exit: function () {\r\n $('.interactive-photo__content--open').removeClass('interactive-photo__content--open');\r\n }\r\n });\r\n }\r\n\r\n // Magnific Popup Video - video popup on modal\r\n // Element with classname 'js--popup' requires to have href=\"\" with video link\r\n $('.js--popup').magnificPopup({\r\n disableOn: 700,\r\n type: 'iframe',\r\n iframe: {\r\n patterns: {\r\n youtube: {\r\n index: 'youtube.com',\r\n id: 'v=',\r\n src: '//www.youtube.com/embed/%id%?rel=0&autoplay=0'\r\n }\r\n }\r\n },\r\n mainClass: 'mfp-fade',\r\n removalDelay: 160,\r\n preloader: false,\r\n fixedContentPos: true\r\n });\r\n\r\n $('.js--popup-text').magnificPopup({\r\n type: 'inline',\r\n midClick: true,\r\n mainClass: 'modal modal--text'\r\n });\r\n\r\n $('.js--popup-modalDiv').magnificPopup({\r\n type: 'inline',\r\n closeBtnInside: true,\r\n autoFocusLast: true,\r\n focus: \".modal-title\"\r\n });\r\n\r\n $('.js--popup-rotator').magnificPopup({\r\n type: 'inline',\r\n midClick: true,\r\n mainClass: 'modal modal--rotator',\r\n callbacks: {\r\n open: function () {\r\n $($(this)[0].content[0]).find('.js--slick').slick({\r\n fade: true,\r\n dots: true,\r\n prevArrow: '',\r\n nextArrow: '',\r\n adaptiveHeight: true\r\n });\r\n }\r\n }\r\n });\r\n\r\n if ($('.comparison-table').length > 0) {\r\n\r\n var comparisonTableMobileSetup = function () {\r\n $('.comparison-table__row:first-child .comparison-table__body-header').addClass('comparison-table__body-header--visible');\r\n $('.comparison-table__row').addClass('comparison-table__row--hidden');\r\n $('.comparison-table__row:first-of-type').removeClass('comparison-table__row--hidden');\r\n $('.comparison-table-holder__btn').unbind('click');\r\n $('.comparison-table-holder__btn').click(function (e) {\r\n e.preventDefault();\r\n var visibleRow = $('.comparison-table__row:visible'),\r\n rowNum = $('.comparison-table__row').length,\r\n rowNumVisible = visibleRow.index() + 1,\r\n visibleHeader = $('.comparison-table__body-header--visible');\r\n\r\n var changePage = function (direction, rowNumVisible) {\r\n // set opacity to 0, then animate to opacity 0 for table header\r\n visibleRow.find('.comparison-table__body-header').css({\r\n opacity: 1\r\n }).animate({\r\n opacity: 0\r\n }, 250, function () {\r\n $(this).removeClass('comparison-table__body-header--visible');\r\n $(this).attr('style', '');\r\n });\r\n\r\n // set opacity to 1, then animate to opacity 0 for table cell content\r\n visibleRow.find('.comparison-table__cell-content').css({\r\n opacity: 1\r\n }).animate({\r\n opacity: 0\r\n }, 250, function () {\r\n // remove inline styles\r\n $(this).attr('style', '');\r\n // hide the whole row and hide the row's header\r\n visibleRow.addClass('comparison-table__row--hidden');\r\n\r\n // figure out which is the next row\r\n var nextRowIndex;\r\n if (direction == 'left') {\r\n // first item\r\n if (rowNumVisible === 1) {\r\n nextRowIndex = rowNum - 1;\r\n } else {\r\n nextRowIndex = rowNumVisible - 2;\r\n }\r\n } else {\r\n // not last item\r\n if (rowNumVisible !== rowNum) {\r\n nextRowIndex = rowNumVisible;\r\n } else {\r\n // last item\r\n nextRowIndex = 0;\r\n }\r\n }\r\n\r\n //find the next row\r\n var nextRow = $($('.comparison-table__row')[nextRowIndex]),\r\n nextRowHeader = nextRow.find('.comparison-table__body-header'),\r\n nextRowCells = nextRow.find('.comparison-table__cell-content');\r\n\r\n // make the row display block, with both header and content at opacity 0\r\n nextRowHeader.css({ opacity: 0 });\r\n nextRowCells.css({ opacity: 0 });\r\n nextRow.removeClass('comparison-table__row--hidden');\r\n // then animate to 1.\r\n nextRowHeader.animate({\r\n opacity: 1\r\n }, 250, function () {\r\n $(this).addClass('comparison-table__body-header--visible');\r\n $(this).attr('style', '');\r\n });\r\n nextRowCells.animate({\r\n opacity: 1\r\n }, 250, function () {\r\n $(this).attr('style', '');\r\n });\r\n });\r\n }\r\n\r\n if ($(this).hasClass('comparison-table-holder__btn--left')) {\r\n // left\r\n changePage('left', rowNumVisible);\r\n } else {\r\n // right\r\n changePage('right', rowNumVisible);\r\n }\r\n });\r\n };\r\n\r\n var comparisonTableDesktopSetup = function () {\r\n $('.comparison-table-holder__btn').unbind('click');\r\n // use buttons to go back and forth\r\n $('.comparison-table-holder__btn').click(function (e) {\r\n e.preventDefault();\r\n var amountToMove = $('.comparison-table').width() - $('.comparison-table__body-header').width();\r\n if ($(this).hasClass('comparison-table-holder__btn--left')) {\r\n // go left\r\n $('.comparison-table-wrapper').animate({\r\n scrollLeft: '-=' + amountToMove\r\n });\r\n\r\n } else {\r\n // go right\r\n $('.comparison-table-wrapper').animate({\r\n scrollLeft: '+=' + amountToMove\r\n });\r\n }\r\n });\r\n }\r\n var comparisonTableMobile;\r\n mediaCheck({\r\n media: '(min-width: 992px)',\r\n entry: function () {\r\n comparisonTableMobile = false;\r\n comparisonTableDesktopSetup();\r\n },\r\n exit: function () {\r\n comparisonTableMobile = true;\r\n comparisonTableMobileSetup();\r\n }\r\n });\r\n }\r\n\r\n // mini form that allows to jump to different pages\r\n if ($('.js--form-jump-to-page').length > 0) {\r\n $('.js--form-jump-to-page').each(function () {\r\n var input = $(this).find('.input-group__select');\r\n var btn = $(this).find('.btn');\r\n\r\n // go to relative url specified in the input\r\n btn.click(function (e) {\r\n window.location.href = input.val();\r\n });\r\n });\r\n }\r\n\r\n // Day With Panel\r\n if ($('#dayWithPanel').length > 0) {\r\n var phoneStartingPos, phoneEndingPos, daywithOffset, daywithHeight, windowScrollTop, windowHeight, daywithDayContentOffsets = [], phoneHeight, headerHeight, daywithImageHeight;\r\n\r\n for (var i = 0; i < $('.day-with__block').length; i++) {\r\n var phoneScreen = $($('.day-with__block')[i]).data('phonescreen');\r\n $($('#dayWithPanelPhone .day-with__phone-inner')[i]).css('background-image', 'url(' + phoneScreen + ')');\r\n }\r\n\r\n var daywithDayVars = _.throttle(function () {\r\n daywithOffset = $('#dayWithPanel').offset().top;\r\n daywithHeight = $('#dayWithPanel').height();\r\n windowHeight = $(window).height();\r\n phoneHeight = $('#dayWithPanelPhone').height();\r\n headerHeight = ($('.same-page-nav.fixedsticky').length > 0) ? $('.same-page-nav.fixedsticky').height() : $('.site-header').height();\r\n phoneStartingPos = (windowHeight - phoneHeight) / 2 + headerHeight;\r\n phoneEndingPos = -(phoneStartingPos - headerHeight);\r\n phoneDiff = phoneStartingPos - headerHeight * 2;\r\n\r\n var i = 0;\r\n $('.day-with__day-content').each(function () {\r\n var $this = $(this);\r\n daywithDayContentOffsets[i] = $this.offset().top;\r\n i++;\r\n });\r\n }, 100);\r\n\r\n var daywithDayCheck = _.throttle(function () {\r\n windowScrollTop = $(window).scrollTop();\r\n daywithOffset = $('#dayWithPanel').offset().top;\r\n if (windowScrollTop > daywithOffset && ((windowScrollTop + windowHeight) < daywithOffset + daywithHeight)) {\r\n $('#dayWithPanel').addClass('day-with--fixed').removeClass('day-with--bottom');\r\n var percent = -((windowScrollTop - daywithOffset + windowHeight) / (daywithHeight) * 100);\r\n } else {\r\n if (daywithOffset > (windowScrollTop - headerHeight)) {\r\n $('#dayWithPanel').removeClass('day-with--fixed');\r\n } else if (((daywithOffset + daywithHeight) > (windowScrollTop - headerHeight))) {\r\n $('#dayWithPanel').removeClass('day-with--fixed').addClass('day-with--bottom');\r\n }\r\n }\r\n }, 10);\r\n\r\n var daywithDayContentCheck = _.throttle(function () {\r\n for (var i = 0; i < daywithDayContentOffsets.length; i++) {\r\n var dayContentOffset = daywithDayContentOffsets[i];\r\n var phoneScreen = $($('.day-with__block')[i]).data('phonescreen');\r\n if ((windowScrollTop + headerHeight + windowHeight) > (dayContentOffset + (windowHeight * 0.3))) {\r\n $($('.day-with__day-content')[i]).addClass('day-with__day-content--visible');\r\n $('.day-with__image').removeClass('day-with__image--visible');\r\n $('.day-with__content').removeClass('day-with__content--active');\r\n $('.day-with__phone-inner').removeClass('day-with__phone-inner--visible')\r\n $($('.day-with__content')[i]).addClass('day-with__content--active');\r\n $($('.day-with__image')[i]).addClass('day-with__image--visible');\r\n $($('.day-with__phone-inner')[i]).addClass('day-with__phone-inner--visible');\r\n }\r\n }\r\n }, 100);\r\n\r\n daywithDayVars();\r\n\r\n $('#dayWithPanelPhone').css('top', phoneStartingPos);\r\n\r\n var scrollFunctions = function () {\r\n daywithDayCheck();\r\n daywithDayContentCheck();\r\n }\r\n\r\n mediaCheck({\r\n media: '(min-width: 1150px)',\r\n entry: function () {\r\n $(window).on('scroll', scrollFunctions);\r\n $(window).on('resize', daywithDayVars);\r\n if ($('#dayWithPanel').hasClass('slick-slider')) {\r\n $('#dayWithPanel').slick('unslick');\r\n }\r\n daywithDayVars();\r\n },\r\n exit: function () {\r\n $(window).off('scroll', scrollFunctions);\r\n $(window).off('resize', daywithDayVars);\r\n\r\n $('#dayWithPanel').slick({\r\n slide: '.day-with__block',\r\n infinite: false,\r\n dots: true\r\n });\r\n daywithDayVars();\r\n }\r\n });\r\n }\r\n\r\n // List with Icon collapsable fn\r\n if ($('.list-icons--collapsable').length > 0) {\r\n $('body').on('click', '.list-icons--collapsable-toggle', function (e) {\r\n e.preventDefault();\r\n\r\n var container = $(this).parent();\r\n\r\n if (container.hasClass('list-icons--opened')) {\r\n container.removeClass('list-icons--opened');\r\n container.find('.list-icons__text').hide();\r\n container.find('.list-icons--collapsable-toggle-text').text('View');\r\n } else {\r\n $('.list-icons--collapsable').find('.list-icons--collapsable-toggle-text').text('View');\r\n $('.list-icons--collapsable').find('.list-icons__text').hide();\r\n $('.list-icons--opened').removeClass('list-icons--opened');\r\n container.addClass('list-icons--opened');\r\n container.find('.list-icons__text').show();\r\n container.find('.list-icons--collapsable-toggle-text').text('Hide');\r\n }\r\n });\r\n\r\n mediaCheck({\r\n media: '(max-width: 414px)',\r\n exit: function () {\r\n $('.list-icons--opened').removeClass('list-icons--opened');\r\n $('.list-icons--collapsable').find('.list-icons__text').attr('style', '');\r\n $('.list-icons--collapsable').find('.list-icons--collapsable-toggle-text').text('View');\r\n }\r\n });\r\n }\r\n\r\n if ($('.masonry-container').length) {\r\n $masonry = $('.masonry-container').masonry({\r\n itemSelector: '.masonry-item'\r\n });\r\n\r\n $(window).on(\"load\", function () {\r\n $masonry.masonry('layout');\r\n });\r\n\r\n mediaCheck({\r\n media: '(max-width: 991px)',\r\n entry: function () {\r\n $masonry.masonry({ 'gutter': 20 });\r\n },\r\n exit: function () {\r\n $masonry.masonry({ 'gutter': 30 });\r\n }\r\n });\r\n }\r\n\r\n // where to buy iframe\r\n if ($('#buyKwikset').length > 0) {\r\n var iframe_id = \"buyKwikset\"; // replace with id of the iframe to dynamically resize\r\n var eventMethod = window.addEventListener ? \"addEventListener\" : \"attachEvent\";\r\n var eventer = window[eventMethod];\r\n var messageEvent = eventMethod == \"attachEvent\" ? \"onmessage\" : \"message\";\r\n\r\n eventer(messageEvent, function (e) {\r\n console.log(e.data);\r\n if (typeof(e.data) === 'string' && e.data.indexOf(\"w2gi:iframeHeightUpdated\") !== -1) {\r\n var dimensions = e.data.split(\"//\");\r\n autoResize(dimensions[1], dimensions[2]);\r\n } if (typeof (e.data) === 'string' && e.data.indexOf(\"w2gi:scrollPage\") !== -1) {\r\n var offsets = document.getElementById(iframe_id).getBoundingClientRect();\r\n var values = e.data.split(\"//\");\r\n var destination = values[1];\r\n var offset = values[2];\r\n window.scrollTo(0, destination + offsets.top);\r\n }\r\n }, false);\r\n function autoResize(newheight, newwidth) {\r\n document.getElementById(iframe_id).style.height = parseInt(newheight) + 40 + \"px\";\r\n }\r\n }\r\n\r\n\r\n //if ($('.interactive-header').length > 0) {\r\n // mediaCheck({\r\n // media: '(min-width: 992px) AND (max-width: 1200px)',\r\n // entry: function () {\r\n // if (!Modernizr.flexboxtweener) {\r\n // $('.interactive-header__item').hover(function () {\r\n // TweenLite.to($(this), 0.5, { minWidth: \"50%\", ease: Power2.easeOut });\r\n // }, function () {\r\n // TweenLite.to($(this), 0.5, { minWidth: \"24%\", ease: Power2.easeOut });\r\n // });\r\n // }\r\n\r\n // },\r\n // exit: function () {\r\n // if (!Modernizr.flexboxtweener) {\r\n // $('.interactive-header__item').unbind('mouseenter mouseleave');\r\n // $('.interactive-header__item').attr('style', '');\r\n // }\r\n\r\n // }\r\n // });\r\n //}\r\n\r\n // Resize heading__input width to be as long as currently selected option (instead of as wide as longest option)\r\n $(\".heading__option--temp\").html($('.heading__input option:selected').text());\r\n $(\".heading__input\").width($(\".heading__input--temp\").width());\r\n\r\n $('.heading__input').change(function () {\r\n $(\".heading__option--temp\").html($('.heading__input option:selected').text());\r\n $(this).width($(\".heading__input--temp\").width());\r\n });\r\n\r\n\r\n if ($('.accordion').length > 0) {\r\n $('.accordion').each(function () {\r\n var $this = $(this);\r\n var multiexpand = true;\r\n if ($this.data('multiexpand') === false || $this.data('multiexpand') === 'false') {\r\n multiexpand = false;\r\n }\r\n $('.accordion__trigger', $this).click(function (e) {\r\n e.preventDefault();\r\n if ($(this).hasClass('accordion__trigger--expanded')) {\r\n $(this).removeClass('accordion__trigger--expanded');\r\n $(this).attr('aria-expanded', 'false');\r\n $(this).next('.accordion__drawer').slideUp(250, function () {\r\n $(this).attr('style', '');\r\n $(this).removeClass('accordion__drawer--expanded')\r\n });\r\n } else {\r\n if (!multiexpand) {\r\n $('.accordion__drawer', $this).siblings('.accordion__trigger').removeClass('accordion__trigger--expanded').attr('aria-expanded', 'false');\r\n $('.accordion__drawer', $this).slideUp(250, function () {\r\n $(this).removeClass('accordion__drawer--expanded')\r\n $(this).attr('style', '');\r\n });\r\n }\r\n $(this).addClass('accordion__trigger--expanded');\r\n $(this).attr('aria-expanded', 'true');\r\n $(this).next('.accordion__drawer').slideDown(250, function () {\r\n $(this).attr('style', '');\r\n $(this).addClass('accordion__drawer--expanded')\r\n });\r\n }\r\n\r\n });\r\n });\r\n }\r\n\r\n // ++ NAV TABS\r\n $('.nav-tabs a').click(function (e) {\r\n e.preventDefault();\r\n\r\n var clicked = $(this);\r\n var $tabContainer = $(this).parents('.nav-tabs'); // container for the tabs\r\n var $contentContainer = $('#' + $tabContainer.data('nav-for')); // container for the content that will be controlled by tabs\r\n var viewThreshold = $contentContainer.offset().top + 150;\r\n var dest = $(this).attr('href'); // #destination\r\n\r\n //document.location = updateQueryStringParameter(window.location.href, 'tab', dest.split('#')[1]);\r\n\r\n // tab controls\r\n $('.nav-tabs__tab', $tabContainer).removeClass('nav-tabs__tab--selected'); // remove selected class from all tabs\r\n $(this).parent('li').addClass('nav-tabs__tab--selected'); // add selected class to the clicked tab\r\n\r\n // content controls\r\n $('.nav-tabs-wrap__content-wrapper', $contentContainer).addClass('nav-tabs-wrap__content-wrapper--hidden'); // hide all tab content\r\n $(dest).removeClass('nav-tabs-wrap__content-wrapper--hidden'); // show the destination tab content\r\n\r\n });\r\n\r\n var guides = [].slice.call(document.querySelectorAll(\".inline-guide\"));\r\n var imgArray = guides.map(function (guide, i) {\r\n return guide.dataset.img;\r\n });\r\n $(\".inline-guide-slider\").slick({\r\n arrows: true,\r\n dots: true,\r\n arrows: false,\r\n speed: 0,\r\n customPaging: function (slick, index) {\r\n var btnText = ''\r\n return btnText;\r\n }\r\n });\r\n\r\n var contentSideTabsMobile;\r\n mediaCheck({\r\n media: '(min-width: 992px)',\r\n entry: function () {\r\n contentSideTabsMobile = false;\r\n },\r\n exit: function () {\r\n contentSideTabsMobile = true;\r\n\r\n }\r\n });\r\n\r\n $('.content-side-tabs').each(function () {\r\n $('a', $(this)).click(function (e) {\r\n var href = $(this).attr('href');\r\n if (contentSideTabsMobile) {\r\n e.preventDefault();\r\n $.magnificPopup.open({\r\n type: 'image',\r\n items: {\r\n src: href\r\n }\r\n });\r\n } else {\r\n e.preventDefault();\r\n var href = $(this).attr('href');\r\n $(this).parent('li').siblings('li').removeClass('content-side-tabs__side-tab--selected');\r\n $(this).parent('li').addClass('content-side-tabs__side-tab--selected');\r\n $('.content-side-tabs__image img').attr('src', href);\r\n }\r\n });\r\n });\r\n\r\n\t//Modernizr.addTest('coarsepointer', function () {\r\n\t//\treturn Modernizr.mq('(pointer: coarse)') && !Modernizr.mq('(any-pointer: fine)');\r\n\t//});\r\n\r\n\t//Modernizr.addTest('ie11', function () {\r\n\t//\tif (window.navigator.userAgent.match(/Trident\\/7\\./)) {\r\n\t//\t\treturn true;\r\n\t//\t} else {\r\n\t//\t\treturn false;\r\n\t//\t}\r\n\t//});\r\n\r\n // label inside inputs\r\n if ($('.input-group--label-inside').length > 0) {\r\n $('.input-group--label-inside').each(function () {\r\n var that = $(this);\r\n var input = $(this).find('.input-group__input');\r\n var label = $(this).find('.input-group__label');\r\n input.focus(function () {\r\n that.addClass('input-group--focused');\r\n });\r\n input.blur(function () {\r\n var inputText = $.trim(input[0].value)\r\n if (inputText.length > 0) {\r\n that.addClass('input-group--text-filled')\r\n } else {\r\n that.removeClass('input-group--text-filled')\r\n }\r\n that.removeClass('input-group--focused');\r\n });\r\n });\r\n }\r\n\r\n // email signup\r\n // if ($('#mc-embedded-subscribe-form').length > 0) {\r\n // $('#mc-embedded-subscribe').click(function (e) {\r\n // // check if first name, last name, email, and privacy policy check are filled out\r\n // var firstName = $('#mce-FNAME');\r\n // var lastName = $('#mce-LNAME');\r\n // var email = $('#mce-EMAIL');\r\n // var optIn = $('#gdpr_207');\r\n // if (valid) {\r\n\r\n // } else {\r\n // e.preventDefault();\r\n // // show errors\r\n // }\r\n // });\r\n // }\r\n\r\n})();\r\n\r\n/* temporary scripts to fake functionality that will be added in angular later */\r\n\r\nvar tempFilters = function () {\r\n console.log('temp filters');\r\n $('body').addClass('full-screen-modal');\r\n $('.product-listings__options').addClass('product-listings__options--open')\r\n};\r\n\r\nmediaCheck({\r\n media: '(min-width: 992px)',\r\n entry: function () {\r\n $('body').removeClass('full-screen-modal');\r\n $('.product-listings__options').removeClass('product-listings__options--open')\r\n },\r\n exit: function () {\r\n\r\n }\r\n});\r\n\r\nvar productGrid = function () {\r\n console.log('change to product grid');\r\n $('.product-listing').removeClass('product-listing--list');\r\n};\r\n\r\nvar productList = function () {\r\n console.log('change to product list');\r\n $('.product-listing').addClass('product-listing--list');\r\n};\r\n","(function ($) {\r\n if (document.querySelector(\".contactsales__form\")) {\r\n // Elements \r\n var salesForm = document.querySelector(\".contactsales__form\");\r\n var firstName = salesForm.querySelector(\".contactsales__form-first\");\r\n var lastName = salesForm.querySelector(\".contactsales__form-last\");\r\n var email = salesForm.querySelector(\".contactsales__form-email\");\r\n var company = salesForm.querySelector(\".contactsales__form-company\");\r\n var address = salesForm.querySelector(\".contactsales__form-address1\");\r\n var city = salesForm.querySelector(\".contactsales__form-city\");\r\n var state = salesForm.querySelector(\".contactsales__form-state\");\r\n var country = salesForm.querySelector(\".contactsales__form-country\");\r\n var zip = salesForm.querySelector(\".contactsales__form-zip\");\r\n var profession = salesForm.querySelector(\".contactsales__form-profession\");\r\n var otherProfession = salesForm.querySelector(\".contactsales__form-otherProfession\");\r\n var interests = salesForm.querySelector(\".contactsales__form-interest\");\r\n var submitBtn = salesForm.querySelector(\"#btnSubmitContactSales\");\r\n\r\n document.querySelector(\"#retURL\").value = window.location.href + \"/thankyou\"; \r\n\r\n\r\n email.addEventListener(\"blur\", function () { ValidateField(email); });\r\n firstName.addEventListener(\"blur\", function () { ValidateField(firstName); });\r\n lastName.addEventListener(\"blur\", function () { ValidateField(lastName); });\r\n company.addEventListener(\"blur\", function () { ValidateField(company); });\r\n address.addEventListener(\"blur\", function () { ValidateField(address); });\r\n city.addEventListener(\"blur\", function () { ValidateField(city); });\r\n state.addEventListener(\"blur\", function () { ValidateField(state); });\r\n zip.addEventListener(\"blur\", function () { ValidateField(zip); });\r\n country.addEventListener(\"blur\", function () { ValidateField(country); });\r\n otherProfession.addEventListener(\"blur\", function () { ValidateField(otherProfession); });\r\n interests.addEventListener(\"change\", function () { ValidateField(interests); });\r\n\r\n profession.addEventListener(\"change\", checkProfession);\r\n salesForm.addEventListener(\"submit\", SubmitSalesForm);\r\n\r\n function ValidateField(input) {\r\n if (input.name == \"email\" && input.value != \"\") {\r\n var re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n if (re.test(input.value)) {\r\n isValid = true;\r\n $(\".contactusemailvalid\").hide();\r\n } else {\r\n isValid = false;\r\n input.focus();\r\n $(\".contactusemailvalid\").show();\r\n input.parentNode.classList.add(\"contactus__form-input-group--warning\");\r\n input.parentNode.parentNode.children[0].style.display = \"none\";\r\n return true;\r\n }\r\n }\r\n if (input.name == \"zip\" && input.value != \"\") {\r\n if (country.value != \"\") {\r\n if (country.value == \"USA\") {\r\n if (/^[0-9]{5}(?:-[0-9]{4})?$/.test(input.value) == false) { \r\n isValid = false;\r\n input.focus();\r\n $(\".contactuszipvalid\").show();\r\n input.parentNode.classList.add(\"contactus__form-input-group--warning\");\r\n input.parentNode.parentNode.children[0].style.display = \"none\";\r\n return true;\r\n }\r\n else {\r\n $(\".contactuszipvalid\").hide();\r\n }\r\n\r\n }\r\n else {\r\n if (/^[ABCEGHJKLMNPRSTVXY]\\d[ABCEGHJKLMNPRSTVWXYZ] *\\d[ABCEGHJKLMNPRSTVWXYZ]\\d$/i.test(input.value) == false) { \r\n isValid = false;\r\n input.focus();\r\n $(\".contactuszipvalid\").show();\r\n input.parentNode.classList.add(\"contactus__form-input-group--warning\");\r\n input.parentNode.parentNode.children[0].style.display = \"none\";\r\n return true;\r\n }\r\n else {\r\n $(\".contactuszipvalid\").hide();\r\n }\r\n }\r\n }\r\n else {\r\n\r\n }\r\n }\r\n if (input.value !== \"\") {\r\n input.parentNode.classList.remove(\"contactus__form-input-group--warning\");\r\n input.parentNode.parentNode.children[0].style.display = \"none\";\r\n return true;\r\n } else {\r\n input.parentNode.classList.add(\"contactus__form-input-group--warning\");\r\n input.parentNode.parentNode.children[0].style.display = \"block\";\r\n return false;\r\n }\r\n }\r\n\r\n function SubmitSalesForm(e) { \r\n if (ValidateForm()) {\r\n e.preventDefault();\r\n // reCAPTCHA - Server-side verification and if verification passes then form submission.\r\n $.ajax({\r\n method: 'POST',\r\n url: '/api/recaptcha/verify?response=' + grecaptcha.getResponse(),\r\n success: function (response) {\r\n if (response == true) {\r\n $(\"#recaptchaMessage\").hide(); \r\n $(\"#contactsales\").submit(); \r\n } else {\r\n $(\"#recaptchaMessage\").show(); \r\n return false;\r\n }\r\n },\r\n error: function () {\r\n $(\"#recaptchaMessage\").show();\r\n return false;\r\n },\r\n });\r\n } else {\r\n e.preventDefault();\r\n return false;\r\n }\r\n } \r\n\r\n function ValidateForm() {\r\n var isValid = true; \r\n var firstElement = \"\";\r\n var firstObj = 0;\r\n $(\"#contactsales .isRequired\").each(\r\n function (index, element) {\r\n if (!ValidateField(element)) {\r\n firstObj = firstObj + 1;\r\n isValid = false;\r\n if (firstObj == 1) {\r\n firstElement = element;\r\n }\r\n }\r\n }\r\n );\r\n \r\n if (firstElement != \"\") {\r\n firstElement.focus();\r\n }\r\n\r\n if (!ValidateOtherProfession() || !CheckRecaptcha()) {\r\n isValid = false;\r\n }\r\n console.log(isValid);\r\n return isValid;\r\n }\r\n // Validate if Other profession is filled when Other option is selected\r\n function ValidateOtherProfession() {\r\n var isValid = true;\r\n if (profession.value.toLowerCase() == \"other\") {\r\n if (!ValidateField(otherProfession))\r\n isValid = false;\r\n }\r\n return isValid;\r\n }\r\n\r\n function CheckRecaptcha() {\r\n if (grecaptcha && grecaptcha.getResponse().length > 0) {\r\n $(\"#contactsales #recaptchaMessage\").hide();\r\n return true;\r\n } else {\r\n $(\"#contactsales #recaptchaMessage\").show();\r\n return false;\r\n }\r\n }\r\n\r\n function checkProfession(e) {\r\n ValidateField(profession);\r\n var commentsTextArea = document.querySelector(\".contactsales__form-comments\");\r\n if (e.target.value.toLowerCase() == \"other\") {\r\n document.querySelector(\"#otherProfessionDiv\").style.display = \"block\";\r\n commentsTextArea.rows = \"11\";\r\n } else {\r\n document.querySelector(\"#otherProfessionDiv\").style.display = \"none\";\r\n commentsTextArea.rows = \"8\";\r\n }\r\n }\r\n }\r\n\r\n if (document.querySelector(\".contactus_short__form\")) {\r\n // Elements \r\n var shortForm = document.querySelector(\".contactus_short__form\");\r\n var emailAddress = shortForm.querySelector(\".contactus_short__form-email\");\r\n var firstName = shortForm.querySelector(\".contactus_short__form-first\");\r\n var lastName = shortForm.querySelector(\".contactus_short__form-last\");\r\n var privacyCheckBox = shortForm.querySelector(\".contactus_short__form-privacy\");\r\n var submitBtn = shortForm.querySelector(\"#btnSubmitShortForm\");\r\n document.querySelector(\"#retURL\").value = window.location.href + \"/thankyou\";\r\n // Functions\r\n function validateEmail(email, validateOnly) {\r\n var emailFormLabel = emailAddress.previousElementSibling;\r\n var re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n if (validateOnly) {\r\n if (re.test(email)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n if (re.test(email)) {\r\n emailFormLabel.parentNode.classList.remove(\"contactus__form-input-group--warning\");\r\n emailFormLabel.parentNode.parentNode.children[0].style.display = \"none\";\r\n return true;\r\n } else {\r\n emailFormLabel.parentNode.classList.add(\"contactus__form-input-group--warning\");\r\n emailFormLabel.parentNode.parentNode.children[0].style.display = \"block\";\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n function validateNames(first, last) {\r\n if (first !== \"\" && last !== \"\") {\r\n firstName.parentNode.classList.remove(\"contactus__form-input-group--warning\");\r\n lastName.parentNode.classList.remove(\"contactus__form-input-group--warning\");\r\n firstName.parentNode.parentNode.children[0].style.display = \"none\";\r\n lastName.parentNode.parentNode.children[0].style.display = \"none\";\r\n return true;\r\n } else if (first == \"\" && last !== \"\") {\r\n firstName.parentNode.classList.add(\"contactus__form-input-group--warning\");\r\n firstName.parentNode.parentNode.children[0].style.display = \"block\";\r\n lastName.parentNode.parentNode.children[0].style.display = \"none\";\r\n return false;\r\n } else if (last == \"\" && first !== \"\") {\r\n lastName.parentNode.classList.add(\"contactus__form-input-group--warning\");\r\n lastName.parentNode.parentNode.children[0].style.display = \"block\";\r\n firstName.parentNode.parentNode.children[0].style.display = \"none\";\r\n return false;\r\n } else {\r\n firstName.parentNode.classList.add(\"contactus__form-input-group--warning\");\r\n lastName.parentNode.classList.add(\"contactus__form-input-group--warning\");\r\n firstName.parentNode.parentNode.children[0].style.display = \"block\";\r\n lastName.parentNode.parentNode.children[0].style.display = \"block\";\r\n return false;\r\n }\r\n }\r\n\r\n function ensureChecked(checkbox, validateOnly) {\r\n var checkBoxLabel = document.querySelector(\".contactus__form-label--checkbox\");\r\n if (validateOnly) {\r\n if (checkbox.checked) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n if (checkbox.checked) {\r\n checkBoxLabel.parentNode.classList.remove(\"contactus__form-input-group--checkbox-warning\");\r\n checkBoxLabel.parentNode.children[0].style.display = \"none\";\r\n checkBoxLabel.classList.remove(\"contactus__form-label--warn\");\r\n return true;\r\n } else {\r\n checkBoxLabel.parentNode.classList.add(\"contactus__form-input-group--checkbox-warning\");\r\n checkBoxLabel.parentNode.children[0].style.display = \"block\";\r\n checkBoxLabel.classList.add(\"contactus__form-label--warn\");\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n function ValidateShortForm(e) {\r\n if (validateEmail(emailAddress.value, false) && validateNames(firstName.value, lastName.value) && ensureChecked(privacyCheckBox)) {\r\n return true;\r\n } else {\r\n e.preventDefault();\r\n return false;\r\n }\r\n }\r\n\r\n function readyToSubmit() {\r\n if (\r\n validateEmail(emailAddress.value, true) &&\r\n validateNames(firstName.value, lastName.value) &&\r\n ensureChecked(privacyCheckBox, true)\r\n ) {\r\n $(submitBtn).attr(\"disabled\", false);\r\n } else {\r\n $(submitBtn).attr(\"disabled\", true);\r\n }\r\n }\r\n\r\n function preventOverlap(input) {\r\n if ($(input).val().length > 0) {\r\n input.previousElementSibling.style.cssText =\r\n \"top: 0; left: 6%; font-size: 16px; font-weight: 500; opacity: 1; padding-top: 3px;\";\r\n } else {\r\n input.previousElementSibling.style.cssText = \"\";\r\n }\r\n }\r\n\r\n // Event Listeners\r\n submitBtn.addEventListener(\"submit\", ValidateShortForm);\r\n $(emailAddress).focus(function () {\r\n preventOverlap(emailAddress);\r\n });\r\n $(firstName).focus(function () {\r\n preventOverlap(firstName);\r\n });\r\n $(lastName).focus(function () {\r\n preventOverlap(lastName);\r\n });\r\n emailAddress.addEventListener(\"blur\", function () {\r\n preventOverlap(emailAddress);\r\n validateEmail(emailAddress.value, false);\r\n readyToSubmit();\r\n });\r\n firstName.addEventListener(\"blur\", function () {\r\n preventOverlap(firstName);\r\n readyToSubmit();\r\n });\r\n lastName.addEventListener(\"blur\", function () {\r\n preventOverlap(lastName);\r\n validateNames(firstName.value, lastName.value);\r\n readyToSubmit();\r\n });\r\n privacyCheckBox.addEventListener(\"change\", function () {\r\n ensureChecked(privacyCheckBox);\r\n readyToSubmit();\r\n });\r\n privacyCheckBox.addEventListener(\"blur\", function () {\r\n ensureChecked(privacyCheckBox);\r\n readyToSubmit();\r\n });\r\n }\r\n})(jQuery);\r\n\r\n","(function () {\r\n if ($('#premisCode').length > 0) {\r\n $('#premisCode').attr('ontouchstart', '');\r\n var $premisKeys = $('.premis-code__key');\r\n var steps = [1, 2, 3, 4];\r\n var code = [1, 3, 5, 7];\r\n var codeStep = 0;\r\n var keysClicked = 0;\r\n var currentStep = steps[0];\r\n\r\n var getRandomNumber = function (min, max, otherNum) {\r\n var myNum = Math.floor(Math.random() * (max - min + 1)) + min;\r\n // other number is passed in so we need to make sure they don't match\r\n if (otherNum !== undefined) {\r\n // check to see if they match... if they do, we need a new number\r\n if (myNum === otherNum) {\r\n return getRandomNumber(min, max, otherNum);\r\n } else {\r\n // otherwise myNum is good to go\r\n return myNum;\r\n }\r\n } else {\r\n return myNum;\r\n }\r\n }\r\n\r\n // step 1: securescreen. tap screen to show 2 numbers.\r\n $('.premis-code__securescreen').click(function () {\r\n $(this).addClass('premis-code__securescreen--off');\r\n // disable all keys in prep for securescreen keys\r\n hideKeys();\r\n var key1 = getRandomNumber(0, 9);\r\n var key2 = getRandomNumber(0, 9, key1);\r\n\r\n $('.premis-code__key--' + key1 + ', .premis-code__key--' + key2).removeClass('premis-code__key--blank');\r\n setStep(1);\r\n });\r\n\r\n // touching keys\r\n $premisKeys.click(function (e) {\r\n e.preventDefault();\r\n var $clickedNum = $(this);\r\n if ($(this).hasClass('.premis-code__key--blank')) {\r\n return;\r\n } else {\r\n if (currentStep == 2) {\r\n $(this).addClass('premis-code__key--blank');\r\n var allBlank = true;\r\n $premisKeys.each(function () {\r\n if (!$(this).hasClass('premis-code__key--blank')) {\r\n allBlank = false;\r\n }\r\n });\r\n // if all keys are blank we can move to step 3\r\n if (allBlank) {\r\n setStep(2);\r\n showKeys();\r\n }\r\n } else if (currentStep == 3 || currentStep == 'err') {\r\n // we don't want to run this code if the error code is running (codeStep is -1 while the x is flashing)\r\n if (codeStep >= 0) {\r\n // click the numbers in order\r\n if (parseInt($clickedNum.text()) === code[codeStep]) {\r\n codeStep++;\r\n }\r\n keysClicked++;\r\n if (keysClicked === 4 && codeStep !== 4) {\r\n setStep('err');\r\n resetKeypad();\r\n } else if (codeStep === 4) {\r\n setStep(3);\r\n unlockDoor();\r\n }\r\n }\r\n } else if (currentStep === 4) {\r\n if ($clickedNum.text() === 'lock') {\r\n lockDoor();\r\n }\r\n }\r\n }\r\n });\r\n\r\n // make keys blank\r\n var hideKeys = function () {\r\n $premisKeys.addClass('premis-code__key--blank');\r\n }\r\n\r\n var showKeys = function () {\r\n $premisKeys.removeClass('premis-code__key--blank');\r\n }\r\n\r\n var setStep = function (step) {\r\n // set step\r\n if (step === 'err') {\r\n currentStep = 'err';\r\n } else {\r\n currentStep = steps[step];\r\n }\r\n\r\n $('.ss-tooltips').animate({\r\n 'opacity': 0\r\n }, 500, function () {\r\n // set tooltip\r\n var stepAsString = step.toString();\r\n $('.ss-tooltip').addClass('ss-tooltip--hidden');\r\n $('.ss-tooltip').each(function () {\r\n //console.log($(this).data('step'));\r\n //console.log(stepAsString, 'step as string');\r\n if ($(this).data('step').toString() === stepAsString) {\r\n $(this).removeClass('ss-tooltip--hidden');\r\n }\r\n });\r\n $('.ss-tooltips').animate({\r\n 'opacity': 1\r\n }, 500);\r\n });\r\n };\r\n\r\n // this occurs after an error\r\n var resetKeypad = function () {\r\n codeStep = -1;\r\n keysClicked = 0;\r\n // hide all keys\r\n hideKeys();\r\n // show 1, 3, 5, 7, 9 in an x pattern, 3 flashes\r\n var $xKeys = $('.premis-code__key--1, .premis-code__key--3, .premis-code__key--5, .premis-code__key--7, .premis-code__key--9');\r\n var flashNum = 0;\r\n var flash = setInterval(function () {\r\n // if the keys are blank, show them. otherwise, hide them.\r\n if ($('.premis-code__key--1').hasClass('premis-code__key--blank')) {\r\n $xKeys.removeClass('premis-code__key--blank');\r\n } else {\r\n $xKeys.addClass('premis-code__key--blank');\r\n }\r\n flashNum++;\r\n if (flashNum === 6) {\r\n clearInterval(flash);\r\n showKeys();\r\n codeStep = 0;\r\n }\r\n }, 400);\r\n };\r\n\r\n var unlockDoor = function () {\r\n hideKeys();\r\n var showDoorLocked = setTimeout(function () {\r\n $('.premis-code__key--check').removeClass('premis-code__key--blank');\r\n setTimeout(function () {\r\n showKeys();\r\n keysClicked = 0;\r\n codeStep = 0;\r\n $('.premis-code-bg').addClass('premis-code-bg--unlocked');\r\n }, 1000);\r\n }, 500);\r\n }\r\n\r\n var lockDoor = function () {\r\n setTimeout(function () {\r\n keysClicked = 0;\r\n codeStep = 0;\r\n setStep(0);\r\n $('.premis-code__securescreen').removeClass('premis-code__securescreen--off');\r\n $('.premis-code-bg').removeClass('premis-code-bg--unlocked');\r\n }, 1000);\r\n }\r\n }\r\n})();","(function () {\r\n if (document.querySelector(\".site-footer__form\")) {\r\n // Elements\r\n var emailForm = document.querySelector(\".site-footer__form\");\r\n var emailFormGroup = emailForm.querySelector(\".site-footer__form-group\");\r\n var emailFormTitle = emailForm.querySelector(\".site-footer__form-title\");\r\n var emailFormEmail = emailForm.querySelector(\".site-footer__form-email\");\r\n var emailFormFirstName = emailForm.querySelector(\r\n \".site-footer__form-first\"\r\n );\r\n var emailFormLastName = emailForm.querySelector(\".site-footer__form-last\");\r\n var emailFormCheckbox = emailForm.querySelector(\r\n \".site-footer__form-checkbox\"\r\n );\r\n var emailFormPreferenceCheckbox = emailForm.querySelectorAll(\r\n \".site-footer__form-preference-checkbox\"\r\n );\r\n var emailFormSuccess = emailForm.querySelector(\r\n \".site-footer__form-success\"\r\n );\r\n var submitBtn = emailForm.querySelector(\"#mc-embedded-subscribe\");\r\n var today = new Date;\r\n var currentMonth = emailForm.querySelector(\"#mce-MMERGE6-month\");\r\n currentMonth.value = (\"0\" + (today.getMonth() + 1)).slice(-2);\r\n var currentYear = emailForm.querySelector(\"#mce-MMERGE6-year\");\r\n currentYear.value = today.getFullYear();\r\n var currentDay = emailForm.querySelector(\"#mce-MMERGE6-day\");\r\n currentDay.value = (\"0\" + today.getDate()).slice(-2);\r\n\r\n // Functions\r\n function validateEmail(email, validateOnly) {\r\n var emailFormLabel = emailFormEmail.previousElementSibling;\r\n var re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n if (validateOnly) {\r\n if (re.test(email)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n if (re.test(email)) {\r\n emailFormLabel.parentNode.classList.remove(\r\n \"site-footer__form-input-group--warning\"\r\n );\r\n emailFormLabel.parentNode.parentNode.children[0].style.display =\r\n \"none\";\r\n return true;\r\n } else {\r\n emailFormLabel.parentNode.classList.add(\r\n \"site-footer__form-input-group--warning\"\r\n );\r\n emailFormLabel.parentNode.parentNode.children[0].style.display =\r\n \"block\";\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n function validateNames(first, last) {\r\n if (first !== \"\" && last !== \"\") {\r\n emailFormFirstName.parentNode.classList.remove(\r\n \"site-footer__form-input-group--warning\"\r\n );\r\n emailFormLastName.parentNode.classList.remove(\r\n \"site-footer__form-input-group--warning\"\r\n );\r\n emailFormFirstName.parentNode.parentNode.children[0].style.display =\r\n \"none\";\r\n emailFormLastName.parentNode.parentNode.children[0].style.display =\r\n \"none\";\r\n return true;\r\n } else if (first == \"\" && last !== \"\") {\r\n emailFormFirstName.parentNode.classList.add(\r\n \"site-footer__form-input-group--warning\"\r\n );\r\n emailFormFirstName.parentNode.parentNode.children[0].style.display =\r\n \"block\";\r\n emailFormLastName.parentNode.parentNode.children[0].style.display =\r\n \"none\";\r\n return false;\r\n } else if (last == \"\" && first !== \"\") {\r\n emailFormLastName.parentNode.classList.add(\r\n \"site-footer__form-input-group--warning\"\r\n );\r\n emailFormLastName.parentNode.parentNode.children[0].style.display =\r\n \"block\";\r\n emailFormFirstName.parentNode.parentNode.children[0].style.display =\r\n \"none\";\r\n return false;\r\n } else {\r\n emailFormFirstName.parentNode.classList.add(\r\n \"site-footer__form-input-group--warning\"\r\n );\r\n emailFormLastName.parentNode.classList.add(\r\n \"site-footer__form-input-group--warning\"\r\n );\r\n emailFormFirstName.parentNode.parentNode.children[0].style.display =\r\n \"block\";\r\n emailFormLastName.parentNode.parentNode.children[0].style.display =\r\n \"block\";\r\n return false;\r\n }\r\n }\r\n\r\n function ensureChecked(checkbox, validateOnly) {\r\n var checkBoxLabel = document.querySelector(\r\n \".site-footer__form-label--checkbox\"\r\n );\r\n if (validateOnly) {\r\n if (checkbox.checked) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n if (checkbox.checked) {\r\n checkBoxLabel.parentNode.classList.remove(\r\n \"site-footer__form-input-group--checkbox-warning\"\r\n );\r\n checkBoxLabel.parentNode.children[0].style.display = \"none\";\r\n checkBoxLabel.classList.remove(\"site-footer__form-label--warn\");\r\n return true;\r\n } else {\r\n checkBoxLabel.parentNode.classList.add(\r\n \"site-footer__form-input-group--checkbox-warning\"\r\n );\r\n checkBoxLabel.parentNode.children[0].style.display = \"block\";\r\n checkBoxLabel.classList.add(\"site-footer__form-label--warn\");\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n function ensurePreferenceChecked(validateOnly) {\r\n if (validateOnly) {\r\n var result = false;\r\n for (var i = 0; i < emailFormPreferenceCheckbox.length; i++) {\r\n if (emailFormPreferenceCheckbox[i].checked) {\r\n result = true;\r\n }\r\n }\r\n return result;\r\n } else {\r\n var result = false;\r\n for (var i = 0; i < emailFormPreferenceCheckbox.length; i++) {\r\n if (emailFormPreferenceCheckbox[i].checked) {\r\n result = true;\r\n } \r\n }\r\n if (result) {\r\n $(\".preference-required\").hide();\r\n return true;\r\n } else {\r\n $(\".preference-required\").show();\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n function preventOverlap(input) {\r\n if ($(\".site-footer__form--microsite\").length === 0) {\r\n if ($(input).val().length > 0) {\r\n input.previousElementSibling.style.cssText =\r\n \"top: 0; left: 6%; font-size: 16px; font-weight: 500; opacity: 1; padding-top: 3px;\";\r\n } else {\r\n input.previousElementSibling.style.cssText = \"\";\r\n }\r\n }\r\n }\r\n\r\n function handleSubmit(e) {\r\n validateEmail(emailFormEmail.value, false);\r\n validateNames(emailFormFirstName.value, emailFormLastName.value);\r\n ensureChecked(emailFormCheckbox);\r\n \r\n if ($('.site-footer__form-preference-checkbox').length) {\r\n ensurePreferenceChecked(false);\r\n\r\n if (\r\n validateEmail(emailFormEmail.value, false) &&\r\n validateNames(emailFormFirstName.value, emailFormLastName.value) &&\r\n ensureChecked(emailFormCheckbox) &&\r\n ensurePreferenceChecked(false)\r\n ) {\r\n //emailFormTitle.textContent = \"Thank you for signing up!\";\r\n //$(emailFormGroup).hide();\r\n //emailFormSuccess.style.display = \"block\";\r\n //e.preventDefault();\r\n //var form = $(\".substitute-form\");\r\n //ajaxSubmit(form);\r\n } else {\r\n e.preventDefault();\r\n console.log(\"We're sorry, something went wrong.\");\r\n }\r\n }\r\n else {\r\n if (\r\n validateEmail(emailFormEmail.value, false) &&\r\n validateNames(emailFormFirstName.value, emailFormLastName.value) &&\r\n ensureChecked(emailFormCheckbox)\r\n ) {\r\n //emailFormTitle.textContent = \"Thank you for signing up!\";\r\n //$(emailFormGroup).hide();\r\n //emailFormSuccess.style.display = \"block\";\r\n //e.preventDefault();\r\n //var form = $(\".substitute-form\");\r\n //ajaxSubmit(form);\r\n } else {\r\n e.preventDefault();\r\n console.log(\"We're sorry, something went wrong.\");\r\n }\r\n }\r\n }\r\n\r\n function ajaxSubmit($form) {\r\n var inputs = $form.find(\":input\");\r\n var data = {\r\n name: inputs[0].value + \" \" + inputs[1].value,\r\n email: inputs[2].value,\r\n subscribed: (inputs[4].value = \"Y\" ? true : false)\r\n };\r\n var settings = {\r\n async: true,\r\n crossDomain: true,\r\n url: \"/api/subscribeemail/post\",\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"cache-control\": \"no-cache\",\r\n \"Postman-Token\": \"ba50825d-c9df-4474-87ee-08e250df6229\"\r\n },\r\n processData: false,\r\n data: JSON.stringify(data)\r\n };\r\n $.ajax(settings).done(function (response) {\r\n if (response.statusCode !== 200) {\r\n $(\".site-footer__form-error b\").text(\r\n \"Please double check your info and try again.\"\r\n );\r\n } else {\r\n emailFormTitle.textContent = \"Thank you for signing up!\";\r\n $(emailFormGroup).hide();\r\n emailFormSuccess.style.display = \"block\";\r\n }\r\n });\r\n }\r\n\r\n function readyToSubmit() {\r\n document.querySelector(\"#mc-embedded-subscribe-form\");\r\n if ($('.site-footer__form-preference-checkbox').length) {\r\n if (\r\n validateEmail(emailFormEmail.value, true) &&\r\n validateNames(emailFormFirstName.value, emailFormLastName.value) &&\r\n ensureChecked(emailFormCheckbox, true) &&\r\n ensurePreferenceChecked(true)\r\n ) {\r\n $(submitBtn).attr(\"disabled\", false);\r\n } else {\r\n $(submitBtn).attr(\"disabled\", true);\r\n }\r\n } else {\r\n if (\r\n validateEmail(emailFormEmail.value, true) &&\r\n validateNames(emailFormFirstName.value, emailFormLastName.value) &&\r\n ensureChecked(emailFormCheckbox, true)\r\n ) {\r\n $(submitBtn).attr(\"disabled\", false);\r\n } else {\r\n $(submitBtn).attr(\"disabled\", true);\r\n }\r\n }\r\n }\r\n\r\n // Event Listeners\r\n submitBtn.addEventListener(\"click\", handleSubmit);\r\n $(emailFormEmail).focus(function () {\r\n preventOverlap(emailFormEmail);\r\n });\r\n $(emailFormFirstName).focus(function () {\r\n preventOverlap(emailFormFirstName);\r\n });\r\n $(emailFormLastName).focus(function () {\r\n preventOverlap(emailFormLastName);\r\n });\r\n emailFormEmail.addEventListener(\"blur\", function () {\r\n preventOverlap(emailFormEmail);\r\n validateEmail(emailFormEmail.value, false);\r\n readyToSubmit();\r\n });\r\n emailFormFirstName.addEventListener(\"blur\", function () {\r\n preventOverlap(emailFormFirstName);\r\n readyToSubmit();\r\n });\r\n emailFormLastName.addEventListener(\"blur\", function () {\r\n preventOverlap(emailFormLastName);\r\n validateNames(emailFormFirstName.value, emailFormLastName.value);\r\n readyToSubmit();\r\n });\r\n emailFormCheckbox.addEventListener(\"change\", function () {\r\n ensureChecked(emailFormCheckbox);\r\n readyToSubmit();\r\n });\r\n emailFormCheckbox.addEventListener(\"blur\", function () {\r\n ensureChecked(emailFormCheckbox);\r\n readyToSubmit();\r\n });\r\n if ($('.site-footer__form-preference-checkbox').length) {\r\n for (var i = 0; i < emailFormPreferenceCheckbox.length; i++) {\r\n emailFormPreferenceCheckbox[i].addEventListener('change', function (event) {\r\n ensurePreferenceChecked(false);\r\n readyToSubmit();\r\n });\r\n emailFormPreferenceCheckbox[i].addEventListener('blur', function (event) {\r\n ensurePreferenceChecked(false);\r\n readyToSubmit();\r\n });\r\n }\r\n //emailFormPreferenceCheckbox.addEventListener(\"change\", function () {\r\n // ensureChecked(emailFormPreferenceCheckbox);\r\n // readyToSubmit();\r\n //});\r\n //emailFormPreferenceCheckbox.addEventListener(\"blur\", function () {\r\n // ensureChecked(emailFormPreferenceCheckbox);\r\n // readyToSubmit();\r\n //});\r\n }\r\n }\r\n})();\r\n","(function ($) {\r\n\r\n $.fn.extend({\r\n imgResponsive: function (options) {\r\n $(this).each(function () {\r\n var $img = $(this);\r\n var srcset = $img.data('srcset');\r\n if (srcset) {\r\n var sources = srcset.split(/\\s*,\\s*/).map(function (it) {\r\n var pair = it.split(/\\s+/);\r\n return {\r\n src: pair[0],\r\n minWidth: pair[1] ? parseInt(pair[1].replace(/[^\\d]/g, '')) : 1e+6\r\n };\r\n });\r\n\r\n function onResize() {\r\n var width = window.innerWidth;\r\n for (var i = 0; i < sources.length; i++) {\r\n if (width <= sources[i].minWidth) {\r\n $img.attr('src', sources[i].src);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n $(window).resize(onResize);\r\n onResize();\r\n }\r\n });\r\n }\r\n });\r\n}(jQuery));","(function () {\r\n\t// play html5 video\r\n\t// href of link should be a direct link to video, data-video attribute should point to the video id name (no #)\r\n\t$('.js--play-video').click(function (e) {\r\n\t\te.preventDefault();\r\n\t\tvar videoId = $(this).data('video');\r\n\t\t$('#' + videoId)[0].addEventListener('ended', function () {\r\n\t\t\tthis.currentTime = 0;\r\n\t\t});\r\n\t\tdocument.getElementById(videoId).play();\r\n\t});\r\n\r\n\t$('.js-file-download').click(function (e) {\r\n\t\te.preventDefault();\r\n\t\tvar url = this.getAttribute(\"href\");\r\n\t\tvar link = document.createElement('a')\r\n\t\tlink.href = url\r\n\t\tlink.download = url\r\n\t\tdocument.body.appendChild(link)\r\n\t\tlink.click()\r\n\t\tdocument.body.removeChild(link);\r\n\t});\r\n\r\n\r\n\t$('.js-video-popup').magnificPopup({\r\n\t\ttype: 'iframe',\r\n\t\tiframe: {\r\n\t\t\tmarkup: '
' +\r\n\t\t\t\t'
' +\r\n\t\t\t\t'' +\r\n\t\t\t\t'
', // HTML markup of popup, `mfp-close` will be replaced by the close button\r\n\t\t\tpatterns: {\r\n\t\t\t\tyoutube: {\r\n\t\t\t\t\tindex: 'youtube.com/', // String that detects type of video (in this case YouTube). Simply via url.indexOf(index).\r\n\r\n\t\t\t\t\tid: 'v=', // String that splits URL in a two parts, second part should be %id%\r\n\t\t\t\t\t// Or null - full URL will be returned\r\n\t\t\t\t\t// Or a function that should return %id%, for example:\r\n\t\t\t\t\t// id: function(url) { return 'parsed id'; }\r\n\r\n\t\t\t\t\tsrc: '//www.youtube.com/embed/%id%?enablejsapi=1&autoplay=1&mute=1&rel=0&modestbranding=1&showinfo=0' // URL that will be set as a source for iframe.\r\n\t\t\t\t},\r\n\t\t\t\tsrcAction: 'iframe_src', // Templating object key. First part defines CSS selector, second attribute. \"iframe_src\" means: find \"iframe\" and set attribute \"src\".\r\n\t\t\t},\r\n\t\t\tmainClass: 'modal-zoom'\r\n\t\t}\r\n\t});\r\n\r\n\t// image toggle component\r\n\tif ($('[data-toggle-target]')) {\r\n\t\t$('[data-toggle-target]').click(function (e) {\r\n\t\t\tvar $this = $(this);\r\n\t\t\tvar toggleTarget = $(this).data('toggle-target');\r\n\t\t\tvar targetEl = $('[data-toggle-item=' + toggleTarget + ']');\r\n\t\t\tif (targetEl.is(':visible')) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\t$this\r\n\t\t\t\t.parent('.image-toggle__item')\r\n\t\t\t\t.siblings()\r\n\t\t\t\t.find('.image-toggle__button')\r\n\t\t\t\t.removeClass('image-toggle__button--selected');\r\n\t\t\t$this.addClass('image-toggle__button--selected');\r\n\t\t\ttargetEl.removeClass('image-content__image--hidden');\r\n\t\t\ttargetEl.css({\r\n\t\t\t\tposition: 'absolute',\r\n\t\t\t\ttop: '50%',\r\n\t\t\t\tleft: 0,\r\n\t\t\t\ttransform: 'translateY(-50%)',\r\n\t\t\t\topacity: 0\r\n\t\t\t});\r\n\t\t\ttargetEl.animate(\r\n\t\t\t\t{\r\n\t\t\t\t\topacity: 1\r\n\t\t\t\t},\r\n\t\t\t\t200,\r\n\t\t\t\tfunction () {\r\n\t\t\t\t\ttargetEl.attr('style', '');\r\n\t\t\t\t\ttargetEl.removeClass('image-content__image--hidden');\r\n\t\t\t\t\ttargetEl.siblings().addClass('image-content__image--hidden');\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t});\r\n\t}\r\n\r\n\t/*\r\n\t * * * * * * * * * *\r\n\t * * * * * * * * * *\r\n\t * * SITE NAV * * *\r\n\t * * * * * * * * * *\r\n\t * * * * * * * * * *\r\n\t */\r\n\tfunction closeMainNavigation() {\r\n\t\tconsole.log('closing main navigation');\r\n\t\tvar menu = $('.site-header__nav-wrap');\r\n\t\t$('#menuBtn').removeClass('site-header__button--menu-closed');\r\n\t\tif (isMobile) {\r\n\t\t\tconsole.log('mobie')\r\n\t\t\tmenu.slideUp(function () {\r\n\t\t\t\t$(this).removeClass('js--open');\r\n\t\t\t\t$(this).attr('style', '');\r\n\t\t\t});\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\t$('.main-nav__item--has-subnav').each(function (subMenu) {\r\n\t\t\t\t\t$(this).removeClass('js--open');\r\n\t\t\t\t});\r\n\t\t\t\t$('.main-nav__subnav-container').each(function (subMenu) {\r\n\t\t\t\t\t$(this).removeClass('js--open');\r\n\t\t\t\t});\r\n\t\t\t}, 400);\r\n\t\t} else {\r\n\t\t\tmenu.removeClass('js--open');\r\n\t\t\t$('.main-nav__item--has-subnav').each(function (subMenu) {\r\n\t\t\t\t$(this).removeClass('js--open');\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tfunction openMainNavigation() {\r\n\t\tvar menu = $('.site-header__nav-wrap');\r\n\t\tconsole.log('opening main navigation');\r\n\t\t// if search is open, close it - we never want those both open at the same time;\r\n\t\tcloseSearch();\r\n\t\t$('#menuBtn').addClass('site-header__button--menu-closed');\r\n\t\tmenu.slideDown(function () {\r\n\t\t\t$(this).addClass('js--open');\r\n\t\t\t$(this).attr('style', '');\r\n\t\t});\r\n\t}\r\n\r\n\t// open mobile nav\r\n\t$('#menuBtn').click(function (e) {\r\n\t\te.preventDefault();\r\n\t\tvar menu = $('.site-header__nav-wrap');\r\n\t\tif (menu.hasClass('js--open')) {\r\n\t\t\t// if mobile nav was already open, close it\r\n\t\t\tcloseMainNavigation();\r\n\t\t} else {\r\n\t\t\topenMainNavigation();\r\n\t\t}\r\n\t});\r\n\r\n\t// for support pages search box\r\n\t$('#supportSearchInput').on(\"keyup\", function (event) {\r\n\t\t// Number 13 is the \"Enter\" key on the keyboard\r\n\t\tif (event.keyCode === 13) {\r\n\t\t\t// Cancel the default action, if needed\r\n\t\t\tevent.preventDefault();\r\n\t\t\t// Trigger the button element with a click\r\n\t\t\tdocument.getElementById(\"supportSearchButton\").click();\r\n\t\t}\r\n\t});\r\n\r\n\t$('#supportSearchButton').click(function (e) {\r\n\t\te.preventDefault();\r\n\t\tvar query = $('#supportSearchInput').val();\r\n\t\tif (query.length >= 1)\r\n\t\t\twindow.location.href = '/search?FilterCriteria.Query=' + query + '&FilterCriteria.Tab=support';\r\n\r\n\t});\r\n\r\n\t//For global search box\r\n\t$('#globalSearchInput').on(\"keyup\", function (event) {\r\n\t\t// Number 13 is the \"Enter\" key on the keyboard\r\n\t\tif (event.keyCode === 13) {\r\n\t\t\t// Cancel the default action, if needed\r\n\t\t\tevent.preventDefault();\r\n\t\t\t// Trigger the button element with a click\r\n\t\t\tdocument.getElementById(\"globalSearchButton\").click();\r\n\t\t}\r\n\t});\r\n\r\n\t$('#globalSearchButton').click(function (e) {\r\n\t\te.preventDefault();\r\n\t\tvar query = $('#globalSearchInput').val();\r\n\t\tif (query.length >= 1)\r\n\t\t\twindow.location.href = '/search?FilterCriteria.Query=' + query;\r\n\r\n\t});\r\n\r\n\tfunction calculateScrollbarWidth() {\r\n\t\tvar $el = $('
');\r\n\t\t$el.appendTo('body');\r\n\t\tvar constrainedWidth = $el.width();\r\n\r\n\t\t$el.css('width', '100vw');\r\n\t\tvar fullWidth = $el.width();\r\n\t\tvar scrollbarWidth = Math.ceil(fullWidth - constrainedWidth);\r\n\r\n\t\tdocument.documentElement.style.setProperty(\r\n\t\t\t'--scrollbar-width',\r\n\t\t\tscrollbarWidth + 'px'\r\n\t\t);\r\n\r\n\t\t$el.remove();\r\n\t}\r\n\r\n\t// open mobile subnav (both main and footer)\r\n\t$(\r\n\t\t'.main-nav__item--has-subnav .main-nav__link, .mainfooter-nav__link, .site-footer__heading .site-footer__link'\r\n\t).click(function (e) {\r\n\t\te.preventDefault();\r\n\t\tvar $this = $(this),\r\n\t\t\tsubnav,\r\n\t\t\tparentLi;\r\n\t\tif ($this.hasClass('main-nav__link')) {\r\n\t\t\t// main nav\r\n\t\t\tsubnav = $(this).siblings('.main-nav__subnav-container');\r\n\t\t\tparentLi = $(this).parents('.main-nav__item--has-subnav');\r\n\t\t} else if ($this.hasClass('mainfooter-nav__link')) {\r\n\t\t\t// main nav\r\n\t\t\tsubnav = $(this).siblings('.mainfooter-nav__subnav-container');\r\n\t\t\tparentLi = $(this).parents('.mainfooter-nav__item--has-subnav');\r\n\t\t} else {\r\n\t\t\t// sub nav\r\n\t\t\t// only allow main link interaction for site footer if below 768px\r\n\t\t\tif (window.matchMedia('(min-width: 768px)').matches) {\r\n\t\t\t\treturn;\r\n\t\t\t} else {\r\n\t\t\t\tsubnav = $(this)\r\n\t\t\t\t\t.parent()\r\n\t\t\t\t\t.siblings('.site-footer__list');\r\n\t\t\t\tparentLi = $(this).parents('.site-footer__nav-group');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// check if subnav is already open\r\n\t\tif (subnav.hasClass('js--open')) {\r\n\t\t\tparentLi.removeClass('js--open');\r\n\t\t\tsubnav.slideUp(function () {\r\n\t\t\t\t$(this).removeClass('js--open');\r\n\t\t\t\t$(this).attr('style', '');\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\t// open subnav\r\n\t\t\tparentLi.addClass('js--open');\r\n\t\t\tsubnav.slideDown(function () {\r\n\t\t\t\t$(this).addClass('js--open');\r\n\t\t\t\t$(this).attr('style', '');\r\n\t\t\t});\r\n\t\t}\r\n\t});\r\n\r\n\t// clip path support\r\n\tvar areClipPathShapesSupported = function () {\r\n\t\tvar base = 'clipPath',\r\n\t\t\tprefixes = ['webkit', 'moz', 'ms', 'o'],\r\n\t\t\tproperties = [base],\r\n\t\t\ttestElement = document.createElement('testelement'),\r\n\t\t\tattribute = 'polygon(50% 0%, 0% 100%, 100% 100%)';\r\n\r\n\t\t// Push the prefixed properties into the array of properties.\r\n\t\tfor (var n = 0, l = prefixes.length; n < l; n++) {\r\n\t\t\tvar prefixedProperty =\r\n\t\t\t\tprefixes[n] + base.charAt(0).toUpperCase() + base.slice(1); // remember to capitalize!\r\n\t\t\tproperties.push(prefixedProperty);\r\n\t\t}\r\n\r\n\t\t// Interate over the properties and see if they pass two tests.\r\n\t\tfor (var j = 0, le = properties.length; j < le; j++) {\r\n\t\t\tvar property = properties[j];\r\n\r\n\t\t\t// First, they need to even support clip-path (IE <= 11 does not)...\r\n\t\t\tif (testElement.style[property] === '') {\r\n\t\t\t\t// Second, we need to see what happens when we try to create a CSS shape...\r\n\t\t\t\ttestElement.style[property] = attribute;\r\n\t\t\t\tif (testElement.style[property] !== '') {\r\n\t\t\t\t\t$('html').addClass('allows-clip-path');\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t$('html').addClass('no-allows-clip-path');\r\n\t};\r\n\tareClipPathShapesSupported();\r\n\r\n\t// toggle search\r\n\tvar isMobile = true;\r\n\tmediaCheck({\r\n\t\tmedia: '(min-width:768px)',\r\n\t\tentry: function () {\r\n\t\t\tisMobile = false;\r\n\t\t},\r\n\t\texit: function () {\r\n\t\t\tisMobile = true;\r\n\t\t}\r\n\t});\r\n\r\n\tfunction closeSearch() {\r\n\t\tif ($('.header-search').hasClass('header-search--open')) {\r\n\t\t\tconsole.log('close search');\r\n\t\t\tvar displayValue = 'flex';\r\n\t\t\tif (isMobile) {\r\n\t\t\t\tdisplayValue = 'block';\r\n\t\t\t}\r\n\t\t\t$('.header-search')\r\n\t\t\t\t.css({\r\n\t\t\t\t\topacity: 1\r\n\t\t\t\t})\r\n\t\t\t\t.animate(\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\topacity: 0\r\n\t\t\t\t\t},\r\n\t\t\t\t\t250,\r\n\t\t\t\t\tfunction () {\r\n\t\t\t\t\t\t$(this).attr('style', '');\r\n\t\t\t\t\t\t$('.header-search').removeClass('header-search--open');\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t$('.js-header-quick-search-input').blur();\r\n\t\t\t$('.js-header-quick-search-input').val('');\r\n\t\t\t$('.site-header__button--search-open').removeClass(\r\n\t\t\t\t'site-header__button--search-open'\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tfunction openSearch() {\r\n\t\tconsole.log('open search');\r\n\t\t// close the main nav if it is open (on mobile)\r\n\t\tcloseMainNavigation();\r\n\t\tvar displayValue = 'flex';\r\n\t\tif (isMobile) {\r\n\t\t\tdisplayValue = 'block';\r\n\t\t}\r\n\t\t$('.site-header__button--search').addClass(\r\n\t\t\t'site-header__button--search-open'\r\n\t\t).animate({opacity: 1}, 1);\r\n\t\t$('.js-header-quick-search-results').removeClass('state-visible');\r\n\t\t$('.header-search')\r\n\t\t\t.css({\r\n\t\t\t\tdisplay: displayValue,\r\n\t\t\t\topacity: 0\r\n\t\t\t})\r\n\t\t\t.animate(\r\n\t\t\t\t{\r\n\t\t\t\t\topacity: 1\r\n\t\t\t\t},\r\n\t\t\t\t250,\r\n\t\t\t\tfunction () {\r\n\t\t\t\t\t$(this).attr('style', '');\r\n\t\t\t\t\t$('.header-search').addClass('header-search--open');\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t$('.js-header-quick-search-input').focus();\r\n\t}\r\n\r\n\t$('.main-nav__item--has-subnav').hover(function () {\r\n\t\tconsole.log('hovering over a thing with subnav');\r\n\t\tcloseSearch();\r\n\t})\r\n\t$('.btn-search, .site-header__button--search, .header-search__close').click(\r\n\t\tfunction () {\r\n\r\n\t\t\tif ($('.header-search').hasClass('header-search--open')) {\r\n\t\t\t\tcloseSearch();\r\n\t\t\t} else {\r\n\t\t\t\t// open search\r\n\t\t\t\topenSearch();\r\n\t\t\t\t// $('.js-header-quick-search-input').val('').get(0).focus();\r\n\t\t\t}\r\n\t\t}\r\n\t);\r\n\r\n\tfunction setExternalLinks() {\r\n\t\tvar baseHostName = window.location.hostname;\r\n\r\n\t\t$('a[href^=http], a[href^=https]').each(function () {\r\n\t\t\tvar $this = $(this);\r\n\t\t\tif (\r\n\t\t\t\tthis.hostname != baseHostName &&\r\n\t\t\t\t!$(this).attr('target') &&\r\n\t\t\t\t!$this.hasClass('js-allow-external')\r\n\t\t\t) {\r\n\t\t\t\t$this.addClass('link--external');\r\n\t\t\t\tthis.target = '_blank';\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t$('a[href$=\".pdf\"], a[href$=\".doc\"], a[href$=\".docx\"]').attr(\r\n\t\t\t'target',\r\n\t\t\t'_blank'\r\n\t\t);\r\n\t}\r\n\r\n\t// back to top\r\n\tvar heightThreshold = $(window).height() / 3;\r\n\r\n\tvar checkOffset = _.throttle(function () {\r\n\t\tif ($(window).scrollTop() > heightThreshold) {\r\n\t\t\t$('body').addClass('show-back-to-top');\r\n\t\t} else {\r\n\t\t\t$('body').removeClass('show-back-to-top');\r\n\t\t}\r\n\t}, 250);\r\n\r\n\tvar setHeightThreshold = _.throttle(function () {\r\n\t\theightThreshold = $(window).height() / 3;\r\n\t}, 100);\r\n\r\n\t//run once\r\n\tcheckOffset();\r\n\tsetHeightThreshold();\r\n\tcalculateScrollbarWidth();\r\n\tsetExternalLinks();\r\n\r\n\t$(window).on('scroll', checkOffset); // run on scroll\r\n\t$(window).on('resize', setHeightThreshold); // run on scroll\r\n\r\n\r\n\t//Entry Mode panel\r\n\tvar entryBtns = $('.demo__options'),\r\n\t\tentryPanels = $('.entry-mode');\r\n\r\n\t$('.demo__options').click(function (e) {\r\n\t\te.preventDefault();\r\n\t\t$('.demo__options--selected').removeClass('demo__options--selected');\r\n\t\t$('.demo__options-arrows--selected').removeClass('demo__options-arrows--selected');\r\n\t\t$('.entry-mode').removeClass('entry-mode--selected');\r\n\r\n\t\t$(this).siblings('.demo__options-arrows--selected').removeClass('demo__options-arrows--selected');\r\n\t\t$(this).addClass('demo__options--selected');\r\n\t\t$('#' + $(this).data('id')).addClass('entry-mode--selected');\r\n\t});\r\n\r\n\t$('.notification-close').click(function (event) {\r\n\t\tevent.preventDefault();\r\n\t\t$(this).closest('.notification-box').hide();\r\n\t\t$(window).trigger('resize');\r\n\t});\r\n})();\r\n","(function ($) {\r\n if (document.querySelector(\".divPartnerRegisterForm\")) {\r\n // Elements \r\n var regForm = document.querySelector(\".divPartnerRegisterForm\");\r\n var firstName = regForm.querySelector(\".js-first\");\r\n var lastName = regForm.querySelector(\".js-last\");\r\n var email = regForm.querySelector(\".js-email\");\r\n var company = regForm.querySelector(\".js-company\");\r\n var address = regForm.querySelector(\".js-address1\");\r\n var city = regForm.querySelector(\".js-city\");\r\n var state = regForm.querySelector(\".js-state\");\r\n var country = regForm.querySelector(\".js-country\");\r\n var zip = regForm.querySelector(\".js-zip\");\r\n var event = regForm.querySelector(\".js-event\");\r\n var sourceName = regForm.querySelector(\".js-source\");\r\n var submitBtn = regForm.querySelector(\"#btnSubmitRegistration\");\r\n var confirmUrl = document.querySelector(\"#retURL\");\r\n var selectedEvent = document.querySelector(\"#event\");\r\n confirmUrl.value = window.location.protocol + \"//\" + window.location.host + \"/partner-training-registration/registration-form/registration-confirmation\";\r\n\r\n\r\n email.addEventListener(\"blur\", function () { ValidateField(email); });\r\n firstName.addEventListener(\"blur\", function () { ValidateField(firstName); });\r\n lastName.addEventListener(\"blur\", function () { ValidateField(lastName); });\r\n company.addEventListener(\"blur\", function () { ValidateField(company); });\r\n address.addEventListener(\"blur\", function () { ValidateField(address); });\r\n city.addEventListener(\"blur\", function () { ValidateField(city); });\r\n state.addEventListener(\"blur\", function () { ValidateField(state); });\r\n zip.addEventListener(\"blur\", function () { ValidateField(zip); });\r\n country.addEventListener(\"blur\", function () { ValidateField(country); });\r\n event.addEventListener(\"blur\", function () { ValidateField(event); });\r\n\r\n event.addEventListener(\"change\", UpdateSourceValue);\r\n \r\n regForm.addEventListener(\"submit\", SubmitRegistrationForm);\r\n\r\n function ValidateField(input) {\r\n if (input.name == \"email\" && input.value != \"\") {\r\n var re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n if (re.test(input.value)) {\r\n isValid = true;\r\n $(\".contactusemailvalid\").hide();\r\n } else {\r\n isValid = false;\r\n input.focus();\r\n $(\".contactusemailvalid\").show();\r\n input.parentNode.classList.add(\"contactus__form-input-group--warning\");\r\n input.parentNode.parentNode.children[0].style.display = \"none\";\r\n return true;\r\n }\r\n }\r\n if (input.value !== \"\") {\r\n input.parentNode.classList.remove(\"contactus__form-input-group--warning\");\r\n input.parentNode.parentNode.children[0].style.display = \"none\";\r\n return true;\r\n } else {\r\n input.parentNode.classList.add(\"contactus__form-input-group--warning\");\r\n input.parentNode.parentNode.children[0].style.display = \"block\";\r\n return false;\r\n }\r\n }\r\n function UpdateSourceValue(e) {\r\n sourceName.value = event.selectedOptions[0].text;\r\n }\r\n\r\n function SubmitRegistrationForm(e) {\r\n if (ValidateForm()) {\r\n console.log(country.value);\r\n sourceName.value = event.selectedOptions[0].text;\r\n confirmUrl.value = window.location.protocol + \"//\" + window.location.host + \"/partner-training-registration/registration-form/registration-confirmation?eventId=\" + event.value;\r\n \r\n } else {\r\n e.preventDefault();\r\n return false;\r\n }\r\n }\r\n\r\n function ValidateForm() {\r\n var isValid = true;\r\n var firstElement = \"\";\r\n var firstObj = 0;\r\n $(\"#partner-register-form .isRequired\").each(\r\n function (index, element) {\r\n if (!ValidateField(element)) {\r\n firstObj = firstObj + 1;\r\n isValid = false;\r\n if (firstObj === 1) {\r\n firstElement = element;\r\n }\r\n }\r\n }\r\n );\r\n\r\n if (firstElement !== \"\") {\r\n firstElement.focus();\r\n }\r\n console.log(isValid);\r\n return isValid;\r\n }\r\n }\r\n})(jQuery);","$(\".js--buyModalBtn\").magnificPopup({\r\n type: \"inline\",\r\n midClick: true // allow opening popup on middle mouse click. Always set it to true if you don't provide alternative source.\r\n});\r\n","(function () {\r\n // image zoom\r\n\t/*if ($('.js-list-primary-link').length > 0) {\r\n\t\tvar zoomOptions = {\r\n\t\t\tzoomPosition: 4,\r\n\t\t\tzoomFlyOut: false,\r\n\t\t\tzoomImage: $('.js-list-primary-link').attr('href'),\r\n\t\t\tzoomSizeMode: 'zoom'\r\n\t\t};\r\n\r\n\t\t$('.js-list-primary-link').on('click', function (e) {\r\n\t\t\te.preventDefault();\r\n\t\t\tzoomOptions.zoomImage = $(this).attr('href');\r\n\t\t\t$(this).find('img').CloudZoom(zoomOptions);\r\n\t\t});\r\n\r\n\t\tvar checkZoom = function ($clicked) {\r\n\t\t\t$('.js-list-primary-link img').each(function () {\r\n\t\t\t\tif ($(this).data('CloudZoom')) {\r\n\t\t\t\t\t$(this).data('CloudZoom').destroy();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tmediaCheck({\r\n\t\t\tmedia: '(min-width: 768px)',\r\n\t\t\tentry: function () {\r\n\t\t\t\t$('.js-list-primary-link img').each(function () {\r\n\t\t\t\t\tif ($(this).data('CloudZoom')) {\r\n\t\t\t\t\t\t$(this).data('CloudZoom').destroy();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tzoomOptions.zoomPosition = 4;\r\n\t\t\t\tzoomOptions.zoomOffsetX = 15;\r\n\t\t\t},\r\n\t\t\texit: function () {\r\n\t\t\t\t$('.js-list-primary-link img').each(function () {\r\n\t\t\t\t\tif ($(this).data('CloudZoom')) {\r\n\t\t\t\t\t\t$(this).data('CloudZoom').destroy();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tzoomOptions.zoomPosition = 'inside';\r\n\t\t\t\tzoomOptions.zoomOffsetX = 0;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\r\n\t$('.js-enlarge-photo').magnificPopup({\r\n\t\ttype: 'image'\r\n\t});\r\n\r\n\r\n\t/*\r\n\t// image & video switching\r\n\tif ($('.product-image-thumbnails').length > 0) {\r\n\t\t//setInitialElement\r\n\r\n\r\n\t\tvar mainImages = $('.product-images__main-list li'),\r\n\t\t\tthumbnailImageLinks = $('.js-product-image-link');\r\n\r\n\t\t// when a thumbnail is clicked...\r\n\t\tthumbnailImageLinks.on('click', function (e) {\r\n\t\t\t$('.product-image-thumbnails__item').removeClass('product-image-thumbnails_tem--selected');\r\n\t\t\te.preventDefault();\r\n\t\t\tvar $this = $(this);\r\n\t\t\tvar clickedLi = $(this).parent();\r\n\r\n\t\t\tif(clickedLi.data('type') === \"image\") {\r\n\t\t\t\tvar preThumbSrc = $this.find('.js-product-image-image').attr('src');\r\n\t\t\t\tvar altText = $this.find('.js-product-image-image').attr('alt');\r\n\t\t\t\tvar thumbSrc = preThumbSrc.split('?')[0];\r\n\t\t\t\tvar largeSrc = thumbSrc+'?$kwsProductLarge$';\r\n\t\t\t\tvar zoomableSrc = thumbSrc+'?$kwsZoomableImage$';\r\n\t\t\t\tvar primaryImageLi = $('.js-list-primary-image');\r\n\t\t\t\tvar enlargePhotoLink = $('.js-enlarge-photo');\r\n\t\t\t\tprimaryImageLi.find('.js-list-primary-link').attr('href', zoomableSrc);\r\n\t\t\t\tprimaryImageLi.find('.js-primary-image').attr('src', largeSrc);\r\n\t\t\t\tprimaryImageLi.find('.js-primary-image').attr('alt', (altText+\" - Large\"));\r\n\t\t\t\tclickedLi.addClass('product-image-thumbnails__item--selected');\r\n\t\t\t\tprimaryImageLi.addClass('product-images__main-list-item--selected');\r\n\t\t\t\tenlargePhotoLink.attr('href', zoomableSrc);\r\n\t\t\t} else if(clickedLi.data('type') === \"threesixty\") {\r\n\r\n\t\t\t} else if(clickedLi.data('type') === \"more\") {\r\n\r\n\t\t\t}\r\n\r\n\r\n\t\t\tif ($('.js-list-primary-link').length > 0) {\r\n\t\t\t\tcheckZoom($(this));\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t$('.js-product-image-link:first').trigger('click');\r\n\r\n\t\t// thumbnail pagination if needed\r\n\t\tif ($('.product-image-thumbnails__item').length > 3) {\r\n\t\t\t$('.product-image-thumbnails').imagesLoaded(function () {\r\n\t\t\t\tmediaCheck({\r\n\t\t\t\t\tmedia: '(max-width: 599px)',\r\n\t\t\t\t\tentry: function () {\r\n\t\t\t\t\t\t$('.product-image-thumbnails').slick({\r\n\t\t\t\t\t\t\tinfinite: false,\r\n\t\t\t\t\t\t\tslidesToShow: 3,\r\n\t\t\t\t\t\t\tslidesToScroll: 3\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t},\r\n\t\t\t\t\texit: function () {\r\n\r\n\t\t\t\t\t\tif ($('.product-image-thumbnails').hasClass('slick-initialized')) {\r\n\t\t\t\t\t\t\t$('.product-image-thumbnails').slick(\"unslick\");\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t});\r\n\r\n\t\t}\r\n\t}\r\n\t*/\r\n if ($('#premisAppFeatures').length > 0) {\r\n mediaCheck({\r\n media: '(min-width: 992px)',\r\n entry: function () {\r\n if ($('#premisAppFeatures').hasClass('slick-slider')) {\r\n $('#premisAppFeatures').slick('unslick');\r\n }\r\n },\r\n exit: function () {\r\n $('#premisAppFeatures').slick({\r\n slide: '.col-md-4',\r\n infinite: false,\r\n dots: true\r\n });\r\n\r\n }\r\n });\r\n }\r\n\r\n\tvar getUrlParameter = function getUrlParameter(sParam) {\r\n\t\tvar sPageURL = window.location.search.substring(1),\r\n\t\t\tsURLVariables = sPageURL.split('&'),\r\n\t\t\tsParameterName,\r\n\t\t\ti;\r\n\r\n\t\tfor (i = 0; i < sURLVariables.length; i++) {\r\n\t\t\tsParameterName = sURLVariables[i].split('=');\r\n\r\n\t\t\tif (sParameterName[0] === sParam) {\r\n\t\t\t\treturn sParameterName[1] === undefined ? true : decodeURIComponent(sParameterName[1]);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n //Get the finish from the params if no params, set the first item to the defaull selected finish\r\n\tvar finish = getUrlParameter('finish');\r\n\tif(finish){\r\n $('.js-finishes-item').each(function(i){\r\n var $this = $(this);\r\n\r\n if($this.data('id') === finish) {\r\n $this.addClass('finishes__item--selected');\r\n }\r\n });\r\n\t} else {\r\n $('.js-finishes-item:first').addClass('finishes__item--selected');\r\n\t}\r\n\r\n \r\n})();","/* theoretically the same js can be used for all the savings calculators assuming they are relatively similar */\r\n\r\n(function () {\r\n $('.js--savings-calculator').each(function () {\r\n\r\n // dom elements\r\n var savingsMinutes = $('[data-savingsmin]', $(this)); // set to number\r\n var savingsCost = $('[data-savingsCost]', $(this)); // set to number\r\n var minutes = $('[data-minutes]', $(this)); // set to number\r\n var minutesDefault = $('[data-minutesdefault]', $(this)); // set to number\r\n var minutesEntered = $('[data-minutesentered]', $(this)); // set to number\r\n var laborEntered = $('[data-laborentered]', $(this)); // set to number\r\n var locksEntered = $('[data-locksentered]', $(this)); // set to number\r\n var minutesBar = $('[data-minutesbar]', $(this)); // set css width to percentage\r\n var locksNum = $('.js--input-locks-num', $(this));\r\n var timeCost = $('.js--input-time-cost', $(this));\r\n var laborCost = $('.js--input-labor-cost', $(this));\r\n var calculatorType = $('[data-kwiksettype]', $(this));\r\n var dualCalc = false;\r\n var pdfLink = \"/SavingsCalculatorPdf.ashx?minsPerLock=10&costPerLock=25&numberOfLocks=5;\";\r\n\r\n // only for the 2 page calculator, looks for id starting with dualCalcForm\r\n if ($('[id^=dualCalcForm]').length > 0) {\r\n dualCalc = true;\r\n var entered = {};\r\n }\r\n\r\n // user entered data\r\n var calcData = {\r\n locksNum: locksNum.val(),\r\n minutes: locksNum.val() * 1,\r\n minutesDefault: locksNum.val() * timeCost.val(),\r\n costDefault: locksNum.val() * laborCost.val(),\r\n minutesEntered: timeCost.val(),\r\n costEntered: laborCost.val()\r\n }\r\n\r\n var updateNumbers = function (numbers) {\r\n console.log(numbers)\r\n var minutesPercent = numbers.minutes / numbers.minutesDefault * 100;\r\n minutes.text(numbers.minutes);\r\n savingsMinutes.text(numbers.minutesDefault - numbers.minutes);\r\n minutesEntered.text(numbers.minutesEntered);\r\n savingsCost.text('$' + numbers.costDefault);\r\n laborEntered.text(numbers.costEntered);\r\n minutesDefault.text(numbers.minutesDefault);\r\n minutesBar.css('width', minutesPercent + '%');\r\n calculatorType.text(numbers.lockType);\r\n locksEntered.text(numbers.locksNum)\r\n }\r\n\r\n var updateContactInfo = function (info) {\r\n $('address strong[data-enteredName]').text(info.name);\r\n $('address span[data-enteredPhone]').text(info.phone);\r\n $('address span[data-enteredCompany]').text(info.company);\r\n $('address span[data-enteredTitle]').text(info.title);\r\n $('address span[data-enteredEmail]').text(info.email);\r\n }\r\n\r\n updateNumbers(calcData);\r\n\r\n // submit button\r\n $('.js--calculate-savings', $(this)).click(function (e) {\r\n var $this = $(this);\r\n // update the data\r\n calcData.lockType = $this.data('locktype') || \"Key Control Deadbolt\";\r\n if (dualCalc) {\r\n var parent = $this.parents('.calculator-form__form');\r\n if (calcData.lockType == \"SmartKey Deadbolt\") {\r\n entered.name = $('input[name*=Name]').val();\r\n entered.company = $('input[name*=Company]').val();\r\n entered.title = $('input[name*=Title]').val();\r\n entered.phone = $('input[name*=Phone]').val();\r\n entered.email = $('input[name*=Email]').val();\r\n //locksNum = $this.find(locksNum);\r\n //timeCost = $this.find(timeCost);\r\n //laborCost = $this.find(laborCost);\r\n }\r\n else {\r\n entered.name = $('input[name*=Name]', parent).val();\r\n entered.company = $('input[name*=Company]', parent).val();\r\n entered.title = $('input[name*=Title]', parent).val();\r\n entered.phone = $('input[name*=Phone]', parent).val();\r\n entered.email = $('input[name*=Email]', parent).val();\r\n locksNum = parent.find(locksNum);\r\n timeCost = parent.find(timeCost);\r\n laborCost = parent.find(laborCost);\r\n }\r\n }\r\n \r\n\r\n calcData.locksNum = locksNum.val();\r\n calcData.minutes = calcData.locksNum * $this.data('mincost');\r\n calcData.minutesDefault = calcData.locksNum * timeCost.val();\r\n calcData.costDefault = calcData.locksNum * laborCost.val();\r\n calcData.minutesEntered = timeCost.val();\r\n calcData.costEntered = laborCost.val();\r\n\r\n // now update the view\r\n updateNumbers(calcData);\r\n if (dualCalc) {\r\n updateContactInfo(entered);\r\n }\r\n\r\n if (dualCalc) {\r\n $('#calculatorResults').removeClass('calculator-results--hidden');\r\n $('.dual-calc-wrapper').hide();\r\n if (calcData.lockType === 'Key Control') {\r\n $('.js--keycontrol-desc').show();\r\n $('.js--smartkey-desc').hide();\r\n } else {\r\n $('.js--keycontrol-desc').hide();\r\n $('.js--smartkey-desc').show();\r\n }\r\n $('html,body').animate({\r\n scrollTop: $('.js--savings-calculator').offset().top\r\n }, 200)\r\n }\r\n\r\n var iskeyControl = false;\r\n if (calcData.lockType == \"Key Control Deadbolt\") { iskeyControl = true };\r\n\r\n pdfLink = '/SavingsCalculatorPdf.ashx?minsPerLock=' + timeCost.val() + '&costPerLock=' + laborCost.val() + '&numberOfLocks=' + locksNum.val();\r\n pdfLink += '&contactCompany=' + encodeURIComponent(entered.company) + '&contactTitle=' + entered.title + '&contactName=' + encodeURIComponent(entered.name) + '&contractPhone=' + entered.phone + '&contactEmail=' + entered.email;\r\n pdfLink += '&isKeyControl=' + iskeyControl;\r\n $('#generatePdfLink').attr('href', pdfLink); \r\n\r\n addthis.update('share', 'email_template', 'calc-email');\r\n addthis.update('share', 'url', \"http://www.kwikset.com\");\r\n addthis.update('share', 'title', \"Savings Calculator\"); \r\n addthis_share = { email_vars: { 'reportLink': (location.protocol + '//'+ location.host + pdfLink), 'product': calcData.lockType}} ; \r\n });\r\n \r\n // add or subtract to the number of locks\r\n $('.input-increment__btn', $(this)).click(function (e) {\r\n e.preventDefault();\r\n var formField = $('#' + $(this).data('affects'));\r\n \r\n if ($(this).data('action') === 'add') {\r\n formField[0].value++;\r\n } else {\r\n if (formField[0].value > 1) {\r\n formField[0].value--;\r\n }\r\n }\r\n }); \r\n\r\n }) \r\n\r\n})();"]}