{"version":3,"sources":["scripts.js","shvenergy.utils.js","shvenergy.cookies.js","shvenergy.basket.js","shvenergy.modal.js","shvenergy.404.js","shvenergy.alertbanner.js","shvenergy.anchormenu.js","shvenergy.bounce.js","shvenergy.breadcrumb.js","shvenergy.byndervideoplayer.js","shvenergy.cludo-search.js","shvenergy.cookieconsentcheck.js","shvenergy.compareenergysources.js","shvenergy.contactbannerwithopeninghours.js","shvenergy.cookiewarning.js","shvenergy.customselects.js","shvenergy.dealerlist.js","shvenergy.faq.js","shvenergy.footer.js","shvenergy.footerpopup.js","shvenergy.foreignIpRedirect.js","shvenergy.header-area.js","shvenergy.icons.js","shvenergy.imagewithcaptionandenlargement.js","shvenergy.imagewithinfopointers.js","shvenergy.mainmenu.js","shvenergy.maputils.js","shvenergy.mobilefixedheader.js","shvenergy.mobilemenu.js","shvenergy.news.js","shvenergy.optimization-tracking.js","shvenergy.pagetabs.js","shvenergy.phonenumbers.js","shvenergy.processteaser.js","shvenergy.productoverview.js","shvenergy.responsive-tables.js","shvenergy.retrievequote.js","shvenergy.servicemenu.js","shvenergy.skipheader.js","shvenergy.so-me-sharebuttons.js","shvenergy.sticky-cta.js","shvenergy.tabs.js","shvenergy.video.js","shvenergy.testimonialvideo.js","shvenergy.tracking.js","shvenergy.trackingQueries.js","shvenergy.videoplayer.js","shvenergy.wallpaper.js","scripts.init.js"],"names":["shvenergy","utils","$","isMobile","window","matchMedia","matches","breakpoints","breakpointsObj","small","medium","large","xlarge","xxlarge","xxxlarge","hideOverlay","addClass","setTimeout","removeClass","getUrlParameter","name","replace","results","RegExp","exec","location","search","decodeURIComponent","validateEmail","email","test","toLowerCase","jQuery","cookies","setCookie","value","days","expires","date","Date","setTime","getTime","toGMTString","document","cookie","encodeURIComponent","handleUTMParameters","searchParams","URLSearchParams","utmParams","utmParamsList","i","length","has","get","JSON","stringify","hasCookieCategoryConsent","addEventListener","e","str","detail","consentedCategories","durationDays","getCookie","nameEq","ca","split","c","charAt","substring","indexOf","deleteCookie","cookieName","cookieCategories","cookieConsentSettings","Categories","filter","category","Cookies","some","every","RequireConsent","consentCookie","cookieValueLowerCase","includes","CategoryName","basket","basketCookieNameContainer","basketCookieName","data","numberOfItemsInBasket","text","modal","modalCloseText","cdnvalue","globalStrings","modalScaffolding","isLoadingStore","isLoadingContent","isLoadingContentListener","isLoading","val","this","registerListener","listener","hideModal","remove","append","loadingSpinner","clone","find","on","event","stopPropagation","keyCode","which","showModal","content","t","options","arguments","undefined","html","extraClass","extraBackdropClass","moveCloseButtonTo","appendTo","onShow","focusElement","focus","console","warn","replaceModalContent","_404","thisUrl","referrerUrl","trackingVariables","type","href","referrer","tracking","trackRawEventData","errorCode","urlError","alertbanner","each","banner","bannerCookieName","bannerHasLinks","bannerHasCloseButton","bannerDelay","index","trackEvent","innerText","body","getAttribute","innerWidth","style","marginTop","getElementsByClassName","offsetHeight","anchormenu","alertCloseButton","hashId","am","ul","ulWidth","maxTranslateX","anchors","anchorsArrow","wayponts","positionLeft","prevButton","nextButton","liWidth","resizeDone","goToNext","rightElement","containerWidth","goToAnchor","width","offset","left","goToPrevious","leftElement","leftOffset","liList","calcUlWidth","wrapWidth","getBoundingClientRect","position","setLiWidths","s","liAmount","itemW","css","onResize","toggleBtn","btn","show","animate","opacity","hide","activeAnchor","parseInt","querySelector","scrollLeft","anchorMenuScroll","visibleTop","header","outerHeight","dataset","totopEnabled","scrollTop","top","ulHeight","minimizeStickyElements","height","z-index","hasClass","handleWaypointScrolling","el","id","attr","next","setupVars","innerHeight","idx","preventDefault","reduceScroll","Waypoint","refreshAll","getScript","done","script","textStatus","continuousElements","push","element","handler","direction","fail","jqxhr","settings","exception","log","hash","substr","trigger","history","replaceState","title","bounce","timeoutObj","clearNamed","named","clearTimeout","runNamed","func","ms","run","toString","clear","breadcrumb","breadCrumbItems","breadCrumbWidth","w","outerWidth","$that","klass","byndervideoplayer","playbyndervideo","url","frame","createElement","setAttribute","video","source","appendChild","modalData","searchModalButton","getElementById","cludosearchformid","iterations","getCludoSearchFormId","newId","fetchModalContent","Promise","resolve","reject","generateTopSearches","topSeachLabel","topSearches","TopSearchLabel","TopSearches","forEach","ts","searchResultPageUrl","SearchResultPageUrl","TopSearchQuery","generateHighlightedPages","highlightedPages","highlightedPagesContent","HighlightedPages","page","img","ImageUrl","IntroCopy","tags","firstTag","TrumpetLeft","tag","TrumpetRight","Url","Header","HighlightedPagesHeader","generateModalMarkUp","currentId","SearchResultPage","SearchFieldPlaceholderText","SearchButtonVisuallyHiddenLabel","showSearchModal","markup","shouldCloseOnFirstSearch","CludoService","init","afterSearch","_ref","query","input","resizeCludoBannerImage","cludoBanner","getElementsByTagName","cludoBannerImage","offsetLeft","marginRight","marginLeft","ajax","response","cookieConsent","deleteBrowserCookies","ready","then","loc","action","compareenergysources","isAnimating","currentRow","divider","buts","setWidth","numberOfItems","not","buttons","cols","but","parent","textCloneHeight","maxHeights","maxHeight","siblingColumn","parents","siblings","textClone","siblingColumnActiveTextheight","visibility","Math","max","apply","contactbannerwithopeninghours","currentBanner","timeslots","newAttr","toggleClass","cookiewarning","cookieWarning","cookieWarningButton","cookieExpireDays","customselects","closeAllCustomSelects","selectedItem","uid","closest","selectedText","dealerlist","faq","allHeaders","allContent","otherHeaders","slideUp","slideToggle","headerOffsetTop","footer","trackFooterSocialClick","socialName","allLinkLists","followUsList","slideDown","anchor","footerpopup","popup","button","toggle","target","foreignIpRedirect","request","contextId","contentType","dataType","continueButtonTrackingId","redirectButtonTrackingId","Model","Status","CookieName","elem","parentNode","removeChild","ContinueButtonTrackingId","RedirectButtonTrackingId","BodyCopy","ContinueButtonText","RedirectToThisUrl","RedirectButtonText","innerHTML","jqXhr","error","errorThrown","always","headerarea","trackBannerClick","bannerName","first","pageName","pageType","pagename","click","ogTitle","ogDescription","pageTypeCheck","h1Element","heroId","scriptTag","trim","jsonData","parse","textContent","icons","svgs","iconsLoaded","getSvgArrayFiltered","string","array","getSvgArray","makeSvgArray","buildIconsView","containerSelector","container","iconsWrap","iconsArray","iconSVG","imagewithcaptionandenlargement","enlargeImage","enlargeImageSize","imageWithCaptionBackdrop","closeText","imagewithinfopointers","closeAllInfoPointers","removeClone","allButtons","allInfoTexts","allInfoPoints","one","transitionEvent","closeButton","mobileInfopointText","transitions","transition","OTransition","MozTransition","WebkitTransition","whichTransitionEvent","class","currentButton","textPanel","iconColor","closeButtonClone","prepend","l","handleMobileInfoText","blur","windowWidth","mainmenu","lvl1Buttons","lvl2Buttons","lvl3Buttons","selectedLvl1Button","selectedLvl2Button","selectedLvl3Button","selectedLvl4Blocks","ctaColumn","ctaContainer","ctaIntroCopyContainer","lvl2Menu","lvl3Menu","newsArticleNavSticky","toTopEl","populatePlaceholders","cta1","cta2","introCopyId","ctaIdOne","ctaIdTwo","empty","populateCtaColumn","ctaId","rawHtml","updateToTop","hasStickyElements","elQuery","rect","bottom","documentElement","clientHeight","checkElementInViewport","classList","add","setCta","closeMenu","disableExtraLevels","lvl","border-right","trackMenuClick","mainLevel","linkName","fn","isInViewport","elementTop","elementBottom","viewportTop","viewportBottom","newsArticleNavHide","contains","otherButtons","menuId","lvl2ActiveButton","lvl4Menu","keycode","label","totopLabel","mobile","desktop","scrollTo","setupToTopButton","maputils","mapStyles","featureType","elementType","stylers","mobilefixedheader","$html","$stickyHeader","$pageContent","$offset","$window","enabled","checkScrollPosition","removeAttr","disableScrollPosition","enableScrollPosition","mobilemenu","mobileMenu","initialClasses","subMenuButtons","rootCta","canvasFooterScroll","canvasFooter","flag","closeOffCanvasMenu","_len","ctas","Array","_key","cta","updateCtaLink","findInCtaContainer","currentLvl","previousIndex","Number","news","trackArticleClick","aritcleTitle","articleName","trackRelatedArticleClick","articleContainer","imageContainer","querySelectorAll","$designstudio","contentDocument","eventData","dataLayer","$dixa","$hubspot","setQueryStringParameter","params","set","pathname","accessibleTabs6","setTabsOff","tabList","tabs","setTab","_activateTab","tab","_keypressed","newNo","maxNo","no","_tabHovered","hoverableClass","_setUpTab","panelId","SquareTabID","count","tabPanel","d","children","message","_initialiseAriaAttributes","tabListClass","squareListClass","toggleListClass","onClass","slm","sha","perSlideScroll","current","isSquareList","isToggleList","squareTextCount","switchOn","currentToggleList","nextSlide","moveSlide","tabCount","goToSquare","changeContent","tabname","replaceAll","nextElement","slideMargin","previousElement","previousSlide","slide","margin-left","activeIndex","pointer-events","cfg","listType","tabLists","ctaType","ctatype","defaultTab","list","slice","lastIndexOf","_initialiseTabList","getSquareHrefId","activeToggle","getToogleHrefId","activeSquareAndToggle","handleTabFocusOverlay","toggleOverlays","isStuck","isPageTabVisible","isBottom","stickyTarget","isStickyObserver","MutationObserver","_slicedToArray","tabVisibilityObserver","IntersectionObserver","_ref3","entry","isIntersecting","threshold","isBottomNew","scrollHeight","scrollY","observe","attributes","tablistAnchors","item","tabHeaderWidth","clientWidth","maxWidth","extraTop","listHasStuck","toTopHeight","isTabInViewPort","phonenumbers","phoneNumbersClone","processteaser","processTeasers","processTeaserNavigation","processTeaser","previousButton","processTeaserList","currentProcessTeaser","goToNextButton","currentTarget","parentElement","previousElementSibling","goToProcessTeaser","processTeaserResize","goToPreviousButton","processTeaserLi","firstElementChild","nextElementSibling","lastElementChild","from","processteaserListItem","clientLeft","display","productOverview","$allInputs","$productListTagsCont","$productListCont","toggleTagsContainer","tagNavContainer","onInputChange","usageAreas","products","inp","$inp","prop","currentCookie","GasTypes","UsageAreas","post","beforeSend","xhr","setRequestHeader","headlineTag","Products","Settings","DirectlyLinkToProductCta","items","map","product","rootItem","ProductUrl","animationDelay","ProductImageProtectAssetUrl","aria-hidden","paddingBottom","src","data-lazyload","alt","ProductImage","Alt","productTitle","ShowProductNameTag","ProductNameTagText","ProductName","GasTypeName","ShowProductPrices","Price1","Price2","join","ShowProductPriceTag","PriceTagText","ShowExternalLinkIcon","focusable","viewBox","_container$empty","_toConsumableArray","concat","renderProductList","callApi","cookieLogic","trackingText","trackingAction","responsivetables","template","overlay","responsiveTables","table","wrap","USER_IS_TOUCHING","retrievequote","isFetchingContentStore","quoteRetrivalBlock","templateId","pageHasQuoteRetrievalBlock","trackingCategory","quoteResultId","svgArrow","getQuoteEndpoint","getQuoteByIdEndpoint","generateButtonsMarkup","buttonType","Type","TrackingId","ApiParameters","Text","generateDetailsMarkup","details","detailsList","Label","Value","generateQuoteHasExpiredMarkup","headline","BodyText","Buttons","renderPopup","actual","extend","replaceContent","leftCol","rightCol","ColumnOneData","ColumnTwoData","ColumnOneHeader","ColumnTwoHeader","generateConfirmDetailsMarkup","Content","generateErrorMarkup","fetchApi","isFecthing","shouldReplaceContent","RedirectUrl","status","responseJSON","Message","getQuote","emailIsValid","quoteNumberIsValid","requiredEmailErrorMessage","invalidEmailErrorMessage","requiredQuoteNumberMessage","quoteId","suspendQuoteRetrievalBlock","isFetchingContent","isFetchingContentListener","trackLabel","closeButtonTrackingId","CloseButtonTrackingId","expiresCssClass","IsExpiresTextHighlighted","buttonTrackingId","ButtonTrackingId","Headline","CloseButtonText","ToggleOpenCloseButtonTrackingId","PricePreText","PriceText","PricePostText","ExpiresText","EmailPlaceholderText","EmailRequiredErrorMessage","EmailInvalidErrorMessage","QuoteNumberPlaceHolderText","QuoteNumber","QuoteNumberRequiredErrorMessage","ButtonText","retrieveLpgQuoteHtml","Position","QuoteResultId","servicemenu","allDropdowns","dropdown","otherdropdowns","aria","skipheader","somesharebuttons","trackArticleShareClick","socialPlatform","SoMeButton","MenuButton","stickycta","ctaHandler","triggerOnExitIntent","getEntryIntent","EntryIntent","ctaRoot","pageHasStickyCta","ctaConfig","visibleClass","ctaDuration","isNaN","timer","onHideHandlers","onShowHandlers","shouldShowAgain","fetchSchedulePromise","PageId","IsActive","visible","_this","isActive","off","h","createCTAHandler","desktopIntentListener","removeEventListener","mobileIntentListener","triggerHandler","currentThreshold","isScrollingDown","previousScrollPosition","currentScrollPosition","onScroll","NEGATIVE_INFINITY","previousMatch","unsubscribe","mediaQueryList","ctaTriggerDiv","divIntersectionObserver","entries","rootMargin","unobserve","Tabs","bindUIfunctions","pageLoadCorrectTab","changeTab","toggleMobileMenu","div","onYouTubeIframeAPIReady","iframe","iframeId","YT","Player","events","onStateChange","state","figcaption","getIframe","caption","videoName","testimonialvideo","embed","bynderVideoUrl","videoProvider","interval","indicatorButtons","setActiveItem","ci","eq","autoAdvance","retVal","found","currentButtonIndex","trackingElement","videoUrl","videoSourceProvider","videoplayer","playvideo","clearInterval","setInterval","track","trackingQueries","trackClickEvent","trackingFunction","moduleNameElement","isLink","nodeName","trackingOriginalClickedElement","trackingPageName","moduleName","link","trackingfunction","trackingUrl","documentTracking","trackingdocname","trackingmodulename","function","docName","videos","videoWithTeaserEl","textEl","observer","videoObserver","root","youtubeIFrames","iFrameIndex","captionEl","wallpaper","y","backgroundPositionY","svg4everybody","polyfill","iev","ieold","trident","rv","onFirstTouch","navigator","userAgent","match","$1","appVersion","objectFitImages"],"mappings":"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","file":"../js/scripts.js","sourcesContent":["var shvenergy = shvenergy || {};","shvenergy.utils = (function ($) {\r\n\t\"use strict\";\r\n\r\n\tconst breakpoints = [\r\n\t\t\"small: 0\",\r\n\t\t\"medium: 640\",\r\n\t\t\"large: 1024\",\r\n\t\t\"xlarge: 1200\",\r\n\t\t\"xxlarge: 1366\",\r\n\t\t\"xxxlarge: 1920\"\r\n\t];\r\n\r\n\tconst breakpointsObj = {\r\n\t\tsmall: 0,\r\n\t\tmedium: 640,\r\n\t\tlarge: 1024,\r\n\t\txlarge: 1200,\r\n\t\txxlarge: 1366,\r\n\t\txxxlarge: 1920\r\n\t};\r\n\r\n\tfunction isMobile() {\r\n\r\n\t\treturn window.matchMedia(\"(max-width: 640px)\").matches;\r\n\r\n }\r\n\r\n function hideOverlay() {\r\n $(\"html\").addClass(\"removeoverlay\");\r\n setTimeout(function () {\r\n\t $(\"html\").removeClass(\"removeoverlay show-overlay\");\r\n }, 300);\r\n\t}\r\n\r\n\tfunction getUrlParameter(name) {\r\n\t\tname = name.replace(/[\\[]/, '\\\\[').replace(/[\\]]/, '\\\\]');\r\n\t\tconst regex = new RegExp('[\\\\?&]' + name + '=([^&#]*)');\r\n\t\tconst results = regex.exec(location.search);\r\n\t\treturn results === null ? '' : decodeURIComponent(results[1].replace(/\\+/g, ' '));\r\n\t}\r\n\r\n\tfunction validateEmail(email) {\r\n\t\tconst re = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/i;\r\n\t\treturn re.test(email.toLowerCase());\r\n\t}\r\n\r\n\treturn {\r\n\t\tisMobile: isMobile,\r\n\t\tbreakpoints: breakpoints,\r\n\t\tbreakpointsObj: breakpointsObj,\r\n\t\thideOverlay: hideOverlay,\r\n\t\tgetUrlParameter: getUrlParameter,\r\n\t\tvalidateEmail: validateEmail\r\n\t};\r\n\r\n})(jQuery);","shvenergy.cookies = (function () {\r\n\t\"use strict\";\r\n\r\n\tfunction setCookie(name, value, days) {\r\n\t\tvar expires;\r\n\r\n\t\tif (days) {\r\n\t\t\tconst date = new Date();\r\n\t\t\tdate.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));\r\n\t\t\texpires = `; expires=${date.toGMTString()}`;\r\n\t\t} else {\r\n\t\t\texpires = \"\";\r\n\t\t}\r\n\t\tdocument.cookie = encodeURIComponent(name) + \"=\" + value + expires + \"; path=/\";\r\n\t}\r\n\r\n\tfunction getCookie(name) {\r\n\t\tconst nameEq = encodeURIComponent(name) + \"=\";\r\n\t\tconst ca = document.cookie.split(\";\");\r\n\t\tfor (let i = 0; i < ca.length; i++) {\r\n\t\t\tlet c = ca[i];\r\n\t\t\twhile (c.charAt(0) === \" \") c = c.substring(1, c.length);\r\n\t\t\tif (c.indexOf(nameEq) === 0) return decodeURIComponent(c.substring(nameEq.length, c.length));\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\tfunction deleteCookie(name) {\r\n\t\tsetCookie(name, \"\", -1);\r\n\t}\r\n\r\n\tfunction cookieConsentListener() {\r\n\t\twindow.addEventListener('cookieConsent', function(e) {\r\n\t\t\tvar str = JSON.stringify(e.detail.consentedCategories);\r\n\t\t\tshvenergy.cookies.setCookie('_shvenergy_cookie_consent', str, e.detail.durationDays);\r\n\t\t\thandleUTMParameters();\r\n\t\t});\r\n\t}\r\n\r\n\tfunction getCookieCategories(cookieName) {\r\n\t\tif (!window.cookieConsentSettings) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar categories = cookieConsentSettings.Categories.filter(function(category) {\r\n\t\t\treturn category.Cookies.some(function(cookie) {\r\n return cookie == cookieName;\r\n })\r\n })\r\n\r\n return categories;\r\n }\r\n\r\n\tfunction hasCookieCategoryConsent(cookieName) {\r\n\t\tvar cookieCategories = getCookieCategories(cookieName);\r\n\r\n\t\tif (cookieCategories && cookieCategories.length > 0) {\r\n\t\t\tvar requireConsent = cookieCategories.every(function(category) {\r\n return category.RequireConsent;\r\n })\r\n\r\n\t\t\tif (!requireConsent) {\r\n return true;\r\n\t\t\t}\r\n\r\n\t\t\tvar consentCookie = shvenergy.cookies.getCookie('_shvenergy_cookie_consent');\r\n if (!consentCookie) {\r\n return false;\r\n\t\t\t}\r\n\r\n var cookieValueLowerCase = consentCookie.toLowerCase();\r\n\t\t\tvar result = cookieCategories.some(function(category) {\r\n\t\t\t\treturn cookieValueLowerCase.includes(category.CategoryName.toLowerCase());\r\n })\r\n\r\n return result;\r\n }\r\n\r\n return false;\r\n\t}\r\n\r\n\tfunction handleUTMParameters() {\r\n\t\tvar searchParams = new URLSearchParams(window.location.search);\r\n\t\tvar utmParams = {};\r\n\t\tvar utmParamsList = ['utm_source', 'utm_medium', 'utm_term', 'utm_content', 'utm_campaign', 'gclid'];\r\n\t\tfor (var i = 0; i < utmParamsList.length; i++) {\r\n\t\t\tif (searchParams.has(utmParamsList[i])) {\r\n\t\t\t\tutmParams[utmParamsList[i]] = searchParams.get(utmParamsList[i]);\r\n\t\t\t}\r\n\t\t}\t\t\r\n\t\tutmParams = JSON.stringify(utmParams);\r\n\t\t// Only set cookie if utmParams has any key/value pairs\r\n\t\tif (utmParams !== '{}') {\r\n\t\t\t\r\n\t\t\tif (shvenergy.cookies.hasCookieCategoryConsent('_shvenergy_utm')) {\r\n\t\t\t\tshvenergy.cookies.setCookie('_shvenergy_utm', utmParams, 1/48);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tfunction init() {\r\n\t\tcookieConsentListener();\r\n\t}\r\n\r\n\tinit();\r\n\r\n\treturn {\r\n\t\tsetCookie: setCookie,\r\n\t\tgetCookie: getCookie,\r\n\t\tdeleteCookie: deleteCookie,\r\n\t\thasCookieCategoryConsent: hasCookieCategoryConsent,\r\n\t\thandleUTMParameters: handleUTMParameters\r\n\t};\r\n})();","shvenergy.basket = (function ($) {\r\n\t\"use strict\";\r\n\r\n\tfunction init() {\r\n\r\n\t\tvar basketCookieNameContainer = $(\"[data-basketcookiename]\");\r\n\t\tvar numberOfItemsInBasket = \"0\";\r\n\r\n\t\tif (basketCookieNameContainer.length < 1)\r\n\t\t\treturn;\r\n\r\n\t\tvar basketCookieName = basketCookieNameContainer.data(\"basketcookiename\");\r\n\r\n\t\tif (shvenergy.cookies.hasCookieCategoryConsent(basketCookieName)) {\r\n\t\t\tnumberOfItemsInBasket = shvenergy.cookies.getCookie(basketCookieName);\r\n\t\t\t$(\"[data-basketcount]\").text(numberOfItemsInBasket);\r\n\t\t}\r\n\t}\r\n\r\n\tinit();\r\n\r\n})(jQuery);","shvenergy.modal = (function ($) {\r\n\t\"use strict\";\r\n let modalCloseText = \"Close\";\r\n var cdnvalue = $(\"#cdnInput\").data(\"value\");\r\n if (window.globalStrings) {\r\n modalCloseText = window.globalStrings.modalCloseText;\r\n }\r\n const loadingSpinner =\r\n\t\t`
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
`;\r\n\r\n\tconst modalScaffolding = `
\r\n\t
\r\n\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t
`;\r\n\r\n \r\n\r\n\tconst isLoadingStore = {\r\n\t\tisLoadingContent: false,\r\n\t\tisLoadingContentListener: function (val) {},\r\n\t\tset isLoading(val) {\r\n\t\t\tthis.isLoadingContent = val;\r\n\t\t\tthis.isLoadingContentListener(val);\r\n\t\t},\r\n\t\tget isLoading() {\r\n\t\t\treturn this.isLoadingContent;\r\n\t\t},\r\n\t\tregisterListener: function (listener) {\r\n\t\t\tthis.isLoadingContentListener = listener;\r\n\t\t}\r\n\t};\r\n\r\n\tisLoadingStore.registerListener(function (val) {\r\n\r\n\t\tif (this.isLoading) {\r\n\t\t\t$(\".modal\").append($(loadingSpinner).clone());\r\n\t\t} else {\r\n\t\t\t$(\".modal\").find(\".modal-loader\").remove();\r\n\t\t}\r\n\r\n\t});\r\n\r\n $(document).on(\"click\", \".modal-backdrop\", function () {\r\n\t\thideModal();\r\n\t});\r\n\r\n $(document).on(\"click\", \".modal-backdrop .modal-close\", function (e) {\r\n\t\thideModal();\r\n\t});\r\n\r\n\t$(document).on(\"click\", \".modal-backdrop .modal\", function (event) {\r\n\t\tevent.stopPropagation();\r\n\t});\r\n\r\n\t$(document).on(\"keydown\", function (event) {\r\n\t\tvar key = event.keyCode || event.which;\r\n\t\tif (key === 27) {\r\n\t\t\thideModal();\r\n\t\t}\r\n\t});\r\n\r\n function hideModal() {\r\n\t\tisLoadingStore.isLoading = false;\r\n\t\t$(\".modal-backdrop\").remove();\r\n\t\t$(\"html\").removeClass(\"modal-open\");\r\n\t}\r\n\r\n\tfunction showModal(content, options = {}) {\r\n\t\tif (content === null || content === \"undefined\") {\r\n\t\t\tconsole.warn(\"You need to assign some content to the modal first\");\r\n\t\t\treturn;\r\n } else {\r\n hideModal();\r\n\r\n var t = $(modalScaffolding).clone();\r\n t.find(\".modal-content\").html(content);\r\n $(\"body\").append(t);\r\n $(\"html\").addClass(\"modal-open\");\r\n\r\n if (options.extraClass) {\r\n $(\".modal\").addClass(options.extraClass);\r\n }\r\n if (options.extraBackdropClass) {\r\n $(\".modal-backdrop\").addClass(options.extraBackdropClass);\r\n\t\t\t}\r\n\r\n\t\t\tif (options.moveCloseButtonTo) {\r\n\t\t\t\tvar closeButton = t.find(\".modal-close\");\r\n\t\t\t\t//closeButton.detach();\r\n\t\t\t\tcloseButton.appendTo('.modal ' + options.moveCloseButtonTo);\r\n }\r\n\t\t}\r\n\r\n\t\tsetTimeout(function() {\r\n\t\t\t$('.modal').addClass('animated');\r\n\r\n\t\t\tif (options.onShow) {\r\n\t\t\t\toptions.onShow();\r\n\t\t\t}\r\n\r\n if (options.focusElement) {\r\n $('.modal').find(options.focusElement).focus();\r\n } else {\r\n $(\".modal-close\").focus();\r\n }\r\n\t\t}, 200);\r\n\t}\r\n\r\n\tfunction replaceModalContent(content) {\r\n\r\n\t\tif ($(\".modal\").length) {\r\n\t\t\t$(\".modal-content\").html(content);\r\n\t\t} else {\r\n\t\t\tconsole.warn(\"No modal present on the page in which to replace the content\");\r\n\t\t}\r\n\r\n\t}\r\n\r\n\treturn {\r\n\t\tshowModal: showModal,\r\n\t\thideModal: hideModal,\r\n\t\treplaceModalContent: replaceModalContent,\r\n\t\tisLoadingStore: isLoadingStore\r\n\t};\r\n\r\n})(jQuery);","shvenergy._404 = (function ($) {\r\n \"use strict\";\r\n\r\n function init() {\r\n if (window.trackingVariables && window.trackingVariables.type === 'Error page') {\r\n let thisUrl = window.location.href,\r\n referrerUrl = document.referrer;\r\n\r\n shvenergy.tracking.trackRawEventData({\r\n 'event': 'displayErrorPage',\r\n 'errorCode': '404',\r\n 'urlError': thisUrl,\r\n 'referrerUrl': referrerUrl\r\n });\r\n }\r\n }\r\n $(function() {\r\n init();\r\n });\r\n\r\n})(jQuery);","shvenergy.alertbanner = (function ($) {\r\n\t\"use strict\";\r\n\r\n\tfunction init() {\r\n\r\n\t\tvar alertBanners = $(\"[data-alertbanner]\");\r\n\r\n\t\talertBanners.each(function () {\r\n\r\n\t\t\tvar banner = $(this);\r\n\t\t\tvar bannerCookieName = banner.data(\"alertbannercookiename\");\r\n\t\t\tvar bannerHasLinks = banner.find(\"a\").length > 0;\r\n\t\t\tvar bannerHasCloseButton = banner.find(\"[data-alertclose]\").length > 0;\r\n\t\t\tvar bannerDelay = banner.data(\"alertbanner-delay\");\r\n\r\n\t\t\tif (bannerHasLinks) {\r\n\r\n\t\t\t\tvar bannerLinks = banner.find(\"a\");\r\n\r\n\t\t\t\tbannerLinks.each(function (index) {\r\n\r\n\t\t\t\t\tvar currentLink = $(this);\r\n\t\t\t\t\tcurrentLink.on(\"click\", function (e) {\r\n\t\t\t\t\t\tshvenergy.tracking.trackEvent(\"alertbanner\", \"alertbanner link clicked\", this.innerText);\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t});\r\n\r\n\t\t\t}\r\n\r\n\t\t\twindow.addEventListener(\"resize\", () => {\r\n\t\t\t\tif (document.body.getAttribute(\"data-totop-enabled\") === 'False' && window.innerWidth > 640 && window.innerWidth < 1200) {\r\n\t\t\t\t\tbanner[0].style.marginTop = document.getElementsByClassName(\"mobile-header\")[0].offsetHeight + \"px\";\r\n\t\t\t\t} else {\r\n\t\t\t\t\tbanner[0].style.marginTop = \"0px\";\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\tif (document.body.getAttribute(\"data-totop-enabled\") === 'False' && window.matchMedia(\"(min-width: 640px) and (max-width: 1199px)\").matches) {\r\n\t\t\t\tbanner[0].style.marginTop = document.getElementsByClassName(\"mobile-header\")[0].offsetHeight + \"px\";\r\n\t\t\t}\r\n\r\n\t\t\tif (bannerHasCloseButton) {\r\n\r\n\t\t\t\tvar closeButton = banner.find(\"[data-alertclose]\");\r\n\r\n\t\t\t\tcloseButton.on(\"click\", function () {\r\n\r\n\t\t\t\t\tif (bannerCookieName.length > 0) {\r\n\t\t\t\t\t\tif (shvenergy.cookies.hasCookieCategoryConsent(bannerCookieName)) {\r\n\t\t\t\t\t\t\tshvenergy.cookies.setCookie(bannerCookieName, \"true\", 1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tbanner.remove();\r\n\t\t\t\t});\r\n\r\n\t\t\t}\r\n\r\n\t\t\tif (bannerDelay > 0) {\r\n\t\t\t\tbanner.addClass('alert-banner__hidden');\r\n\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tbanner.removeClass('alert-banner__hidden');\r\n\t\t\t\t}, bannerDelay * 1000);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tbanner.removeClass('alert-banner__hidden');\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tinit();\r\n\r\n})(jQuery);","shvenergy.anchormenu = (function ($) {\r\n \"use strict\";\r\n var cdnvalue = $(\"#cdnInput\").data(\"value\");\r\n var am = $(\"#anchor-menu\");\r\n var ul = $(\"#anchor-menu > .anchor-menu-scrollable > ul\");\r\n var ulWidth = 0,\r\n maxTranslateX = 0;\r\n var anchors = ul.find(\"a\");\r\n let anchorsArrow = ul.find(\"div.active-link-arrow\");\r\n var wayponts = [];\r\n var resetTimeout;\r\n var positionLeft = 0;\r\n var prevButton = am.find(\".anchor-menu__prev\");\r\n var nextButton = am.find(\".anchor-menu__next\");\r\n var liWidth = 0;\r\n var resizeDone = true;\r\n\r\n function getRightAnchorItem() {\r\n var containerWidth = am.width();\r\n var rightElement;\r\n ul.find(\"li\").each(function () {\r\n rightElement = $(this);\r\n if (rightElement.offset().left < containerWidth && rightElement.offset().left + rightElement.width() > containerWidth) {\r\n return false;\r\n }\r\n });\r\n return rightElement;\r\n }\r\n\r\n function goToNext() {\r\n var next = getRightAnchorItem().find(\"a\");\r\n goToAnchor(next);\r\n //triggerReset();\r\n }\r\n\r\n function getLeftAnchorItem() {\r\n var leftOffset = positionLeft - am.width();\r\n var leftElement;\r\n var liList = ul.find(\"li\");\r\n liList.each(function () {\r\n var $this = $(this);\r\n if ($this.offset().left > leftOffset) {\r\n leftElement = $(this);\r\n return false;\r\n }\r\n });\r\n if (!leftElement && liList.length > 0) {\r\n leftElement = $(ul.find(\"li\").get(0));\r\n }\r\n return leftElement;\r\n }\r\n\r\n function goToPrevious() {\r\n var previous = getLeftAnchorItem().find(\"a\");\r\n goToAnchor(previous);\r\n //triggerReset();\r\n }\r\n\r\n function calcUlWidth() {\r\n var width = 0;\r\n var wrapWidth = am[0].getBoundingClientRect().width;\r\n ul.find(\"li\").each(function () {\r\n if (width === 0) {\r\n liWidth = $(this).width();\r\n positionLeft = $(this).position().left;\r\n }\r\n width += $(this).width();\r\n });\r\n\r\n if (width > wrapWidth) {\r\n width += positionLeft;\r\n }\r\n return width;\r\n }\r\n\r\n function setLiWidths() {\r\n var s = $(window).width() > shvenergy.utils.breakpointsObj['xxlarge'] ? shvenergy.utils.breakpointsObj['xxlarge'] : $(window).width();\r\n var li = ul.find('li');\r\n var liAmount = li.length;\r\n var minW = 350;\r\n var maxW = 500;\r\n\r\n if ($(window).width() >= shvenergy.utils.breakpointsObj['medium']) { //tablet or wider\r\n var itemW = s / liAmount;\r\n if (itemW > maxW) { itemW = maxW }\r\n else if (itemW < minW) { itemW = minW }\r\n anchors.css('width', itemW);\r\n }\r\n else {//mobile\r\n anchors.css('width', '65vw');\r\n }\r\n }\r\n\r\n function onResize() {\r\n setLiWidths();\r\n var wrapWidth = am[0].getBoundingClientRect().width;\r\n ulWidth = calcUlWidth();\r\n maxTranslateX = ulWidth - wrapWidth;\r\n\r\n if (anchors.filter(\"a.active\").length) {\r\n goToAnchor(anchors.filter(\"a.active\"));\r\n } else {\r\n goToAnchor(anchors[0]);\r\n }\r\n }\r\n\r\n function setupVars() {\r\n setLiWidths();\r\n var wrapWidth = am[0].getBoundingClientRect().width;\r\n ulWidth = calcUlWidth();\r\n maxTranslateX = ulWidth - wrapWidth;\r\n }\r\n\r\n function triggerReset() {\r\n if (resetTimeout) {\r\n clearTimeout(resetTimeout);\r\n }\r\n resetTimeout = setTimeout(function () {\r\n goToAnchor(anchors[0]);\r\n }, 5000);\r\n }\r\n\r\n function toggleBtn(btn, show) {\r\n if (show) {\r\n btn.animate({ opacity: 1 }, 100, function () {\r\n btn.show();\r\n });\r\n } else {\r\n btn.animate({ opacity: 0 }, 100, function () {\r\n btn.hide();\r\n });\r\n }\r\n }\r\n\r\n function goToAnchor(activeAnchor) {\r\n var index = anchors.index(activeAnchor);\r\n var offset = index * liWidth;\r\n if (offset > maxTranslateX) {\r\n offset = maxTranslateX + 1;\r\n }\r\n\r\n offset = parseInt(offset);\r\n\r\n resetHorizontalScroll();\r\n // ul.css({ \"transform\": 'translateX(-' + offset + 'px)' });\r\n document.querySelector(\"#anchor-menu .anchor-menu-scrollable\").scrollLeft = offset;\r\n\r\n\r\n if (offset > 0) {\r\n toggleBtn(prevButton, true);\r\n } else {\r\n toggleBtn(prevButton, false);\r\n }\r\n\r\n if (offset >= maxTranslateX) {\r\n toggleBtn(nextButton, false);\r\n } else {\r\n toggleBtn(nextButton, true);\r\n }\r\n }\r\n\r\n function anchorMenuResize() {\r\n if (window.matchMedia(\"(min-width: 1200px)\").matches) {\r\n $(window).on(\"scroll\", anchorMenuScroll);\r\n }\r\n else {\r\n $(window).off(\"scroll\", anchorMenuScroll);\r\n ul.css({\r\n 'position': '',\r\n 'top': ''\r\n });\r\n am.css(\"height\", 'auto').removeClass(\"is-stuck\");\r\n }\r\n }\r\n\r\n function anchorMenuScroll() {\r\n let offset = 71;\r\n let visibleTop = document.querySelector(\".visible\");\r\n let header = window.matchMedia(\"(min-width: 1200px)\").matches ? $(\".main-menu-border\").outerHeight() + $(\".service-menu-border\").outerHeight() : $(\".mobile-header\").outerHeight();\r\n\r\n if (document.body.dataset.totopEnabled === 'True') {\r\n offset = 41;\r\n }\r\n\r\n if (resizeDone) {\r\n if ($(document).scrollTop() >= am.offset().top - offset) {\r\n const ulHeight = (document.body.dataset.minimizeStickyElements === 'true') ? 'auto' : ul.height();\r\n\r\n visibleTop ? visibleTop.style.top = header + \"px\" : \"\";\r\n am.css(\"height\", ulHeight).addClass(\"is-stuck\");\r\n\r\n ul.css({\r\n //'position': 'absolute',\r\n 'z-index': '1000'\r\n });\r\n\r\n resizeDone = false;\r\n setTimeout(() => {\r\n resizeDone = true;\r\n },\r\n 500);\r\n } else {\r\n if (visibleTop\r\n && !am.hasClass(\"hide-all\")\r\n && ((am.hasClass(\"hide-mobile\") && !window.matchMedia(\"(max-width: 640px)\").matches && (!window.matchMedia(\"(max-width: 1000px)\").matches || !window.matchMedia(\"(orientation: landscape)\").matches)) ? true : (!am.hasClass(\"hide-mobile\") ? true : false))\r\n ) {\r\n visibleTop.style.top = $(\"#anchor-menu\").height() - 1 + header + \"px\";\r\n }\r\n ul.css({\r\n 'position': '',\r\n 'top': ''\r\n });\r\n am.css(\"height\", 'auto').removeClass(\"is-stuck\");\r\n }\r\n }\r\n }\r\n\r\n function init() {\r\n\r\n if (am.length) {\r\n let alertCloseButton = $(\"[data-alertbanner]\").find(\"[data-alertclose]\");\r\n\r\n setupVars();\r\n setupArrowButtons();\r\n onResize();\r\n $(window).on(\"resize\", onResize);\r\n nextButton.on(\"click\", goToNext);\r\n prevButton.on(\"click\", goToPrevious);\r\n anchors.each(function (idx) {\r\n $(this).data('index', idx);\r\n\r\n // $(this).on('touchstart', (e) => {\r\n // adjustAnchorMenuScrollTranslate();\r\n // });\r\n\r\n $(this).on(\"click\", function (e) {\r\n e.preventDefault();\r\n\r\n var id = $(this).attr(\"href\");\r\n let mainTopPadding = $(\"#main\").css(\"padding-top\");\r\n let reduceScroll = 95;\r\n\r\n if (mainTopPadding == \"0px\") {\r\n reduceScroll = 25;\r\n }\r\n\r\n if (window.matchMedia(\"(min-width: 1200px)\").matches) {\r\n const offset = 220 + 71;\r\n\r\n $(\"html, body\").animate({ scrollTop: $(id).offset().top - 165 }, 350);\r\n } else if (window.matchMedia(\"(max-width: 640px)\").matches && window.matchMedia(\"(orientation: portrait)\").matches) {\r\n $(\"html, body\").animate({ scrollTop: $(id).offset().top - reduceScroll }, 350);\r\n } else {\r\n $(\"html, body\").animate({ scrollTop: $(id).offset().top - 105 }, 350);\r\n }\r\n // adjustAnchorMenuScrollTranslate();\r\n });\r\n\r\n if (alertCloseButton.length) {\r\n alertCloseButton.on(\"click\", function () {\r\n Waypoint.refreshAll();\r\n });\r\n }\r\n });\r\n\r\n //Anchor menu is present on the page, now pull in waypoints library\r\n\r\n $.getScript(\"\" + cdnvalue + \"/dist/js/waypoints.js\").done(function (data, script, textStatus) {\r\n\r\n var continuousElements = $(\".anchor-header\");\r\n for (var i = 0; i < continuousElements.length; i++) {\r\n wayponts.push(\r\n new Waypoint({\r\n element: continuousElements[i],\r\n handler: function (direction) {\r\n if (direction === 'up') {\r\n handleWaypointScrolling(this.element);\r\n }\r\n },\r\n offset: 0\r\n })\r\n );\r\n\r\n wayponts.push(\r\n new Waypoint({\r\n element: continuousElements[i],\r\n handler: function (direction) {\r\n if (direction === 'down') {\r\n handleWaypointScrolling(this.element);\r\n }\r\n },\r\n offset: '25%'\r\n })\r\n );\r\n }\r\n //Waypoint.refreshAll();\r\n }).fail(function (jqxhr, settings, exception) {\r\n console.log(\"Triggered ajaxError handler.\");\r\n });\r\n\r\n anchorMenuScroll();\r\n\r\n $(window).on(\"scroll\", anchorMenuScroll);\r\n\r\n $(window).on(\"resize\", anchorMenuScroll);\r\n\r\n\r\n //Needed if there's an anchor in the URL\r\n //ie. http://localhost:3000/testpages/anchorheader#enter-from-right-100\r\n var hashId = location.hash.substr(1);\r\n if (hashId != '') {\r\n setTimeout(onResize, 50);\r\n onResize();\r\n\r\n $(\"html, body\").animate({ scrollTop: $('#' + hashId).offset().top - 220 }, 350);\r\n $(window).trigger(\"scroll\");\r\n history.replaceState({}, document.title, location.href.substr(0, location.href.length - location.hash.length));\r\n }\r\n\r\n }\r\n }\r\n\r\n function setupArrowButtons() {\r\n if (ul.innerHeight() < 60) {\r\n nextButton.addClass(\"single_line_text\");\r\n prevButton.addClass(\"single_line_text\");\r\n }\r\n }\r\n\r\n function handleWaypointScrolling(el) {\r\n anchors.removeClass(\"active\");\r\n anchorsArrow.removeClass(\"active\");\r\n\r\n var header = $(el).find(\"h2\");\r\n var id = header.attr(\"id\");\r\n var activeAnchor = anchors.filter(\"[href='#\" + id + \"']\");\r\n activeAnchor.next().addClass(\"active\");\r\n activeAnchor.addClass(\"active\");\r\n goToAnchor(activeAnchor);\r\n }\r\n\r\n // function adjustAnchorMenuScrollTranslate() {\r\n // if (ul[0].style) {\r\n // let scrollableMenu = document.querySelector(\"#anchor-menu .anchor-menu-scrollable\");\r\n\r\n // let ulTransformStyle = ul[0].style.transform,\r\n // translateXValue = parseInt(ulTransformStyle.substring(11).slice(0,-3)),\r\n // scrollXValue = scrollXValue = ul[0].scrollLeft,\r\n // scrollAmount = 0;\r\n\r\n // if (translateXValue === 0) {\r\n // scrollAmount = parseInt(scrollXValue);\r\n // }\r\n // else {\r\n // scrollAmount = parseInt(translateXValue);\r\n // }\r\n\r\n // if (scrollAmount !== 0) {\r\n // ul.css({ \"transform\": 'translateX(0px)' });\r\n // ul.scrollLeft(Math.abs(scrollAmount));\r\n\r\n // scrollableMenu.scrollLeft = 50;\r\n // $(scrollableMenu).scrollLeft(scrollAmount);\r\n // }\r\n // }\r\n // }\r\n\r\n function resetHorizontalScroll() {\r\n let ams = document.querySelector('.anchor-menu-scrollable');\r\n\r\n ams.scrollLeft = 0;\r\n }\r\n\r\n init();\r\n\r\n})(jQuery);","shvenergy.bounce = (function ($) {\r\n \"use strict\";\r\n var timeoutObj = {};\r\n function clearNamed(named) {\r\n if (timeoutObj[named]) {\r\n clearTimeout(timeoutObj[named]);\r\n timeoutObj[named] = 0;\r\n }\r\n }\r\n function clear(func) {\r\n clearNamed(func.toString());\r\n }\r\n\r\n function run(func, ms) {\r\n runNamed(func.toString(), func, ms);\r\n }\r\n\r\n function runNamed(named, func, ms) {\r\n clearNamed(named);\r\n timeoutObj[named] = setTimeout(func, ms);\r\n }\r\n\r\n\treturn {\r\n\t\trun: run,\r\n\t\tclear: clear,\r\n\t\trunNamed: runNamed,\r\n\t\tclearNamed: clearNamed\r\n\t};\r\n})(jQuery);","shvenergy.breadcrumb = (function ($) {\r\n\t\"use strict\";\r\n\r\n\tfunction init() {\r\n\r\n\t\tvar breadCrumbItems = $(\".breadcrumb ul li\");\r\n\t\tvar breadCrumbWidth = 0;\r\n\t\tbreadCrumbItems.each(function () {\r\n\t\t\tvar w = $(this).outerWidth(true);\r\n\t\t\tbreadCrumbWidth += w;\r\n\t\t});\r\n\r\n\t\t$(\".breadcrumb ul\").scrollLeft(breadCrumbWidth).on('scroll', function () {\r\n\t\t\tvar $that = $(this),\r\n\t\t\t\tklass = 'repaint';\r\n\r\n\t\t\t$that.addClass(klass);\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\t$that.removeClass(klass);\r\n\t\t\t}, 0);\r\n\t\t});\r\n\t\t\r\n }\r\n\r\n\tinit();\r\n\r\n})(jQuery);","shvenergy.byndervideoplayer = (function ($) {\r\n \"use strict\";\r\n\r\n function playbyndervideo(url) {\r\n\r\n var frame = document.createElement(\"div\");\r\n frame.setAttribute(\"class\", \"videoframe\");\r\n\r\n var video = document.createElement(\"video\");\r\n video.setAttribute(\"controls\", \"\");\r\n video.setAttribute(\"disablepictureinpicture\", \"true\");\r\n video.setAttribute(\"controlslist\", \"nodownload\");\r\n\r\n var source = document.createElement(\"source\");\r\n video.setAttribute(\"src\", url);\r\n video.setAttribute(\"type\", \"video/mp4\");\r\n\r\n video.appendChild(source);\r\n frame.appendChild(video);\r\n shvenergy.modal.showModal(frame);\r\n }\r\n\r\n return {\r\n playbyndervideo: playbyndervideo\r\n };\r\n\r\n})(jQuery);","\"use strict\";\r\n\r\nlet modalData = undefined;\r\nconst searchModalButton = document.getElementById('search-modal-button');\r\nconst cludosearchformid = searchModalButton ? searchModalButton.dataset['cludosearchformid'] : '';\r\nvar cdnvalue = $(\"#cdnInput\").data(\"value\");\r\n\r\nlet iterations = 0;\r\nfunction getCludoSearchFormId() {\r\n\tconst newId = iterations === 0 ? cludosearchformid : `${cludosearchformid}_${iterations}`;\r\n\titerations++;\r\n\treturn newId;\r\n}\r\n\r\nfunction fetchModalContent() {\r\n\treturn new Promise((resolve, reject) => {\r\n\t\tif (modalData !== undefined) {\r\n\t\t\treturn resolve(modalData);\r\n\t\t}\r\n\t\t$.get({ url: '/api/search/getsitesearchpopupcontent' })\r\n\t\t\t.done((data) => {\r\n\t\t\t\tmodalData = data;\r\n\t\t\t\tresolve(data);\r\n\t\t\t})\r\n\t\t\t.fail(reject)\r\n\t});\r\n}\r\n\r\nfunction generateTopSearches(data) {\r\n\r\n\r\n\tlet topSeachLabel = \"\";\r\n\tlet topSearches = \"\";\r\n\r\n\r\n\tif (data.TopSearchLabel && data.TopSearchLabel.length > 0) {\r\n\t\ttopSeachLabel = `
  • ${data.TopSearchLabel}
  • `;\r\n\t}\r\n\r\n\tif (data.TopSearches && data.TopSearches.length > 0) {\r\n\t\ttopSearches = `
    `;\r\n\r\n\t}\r\n\r\n\treturn topSearches;\r\n}\r\n\r\nfunction generateHighlightedPages(data) {\r\n\r\n\tlet highlightedPages = '';\r\n\tlet highlightedPagesContent = '';\r\n\r\n\tif (data.HighlightedPages && data.HighlightedPages.length > 0) {\r\n\r\n\t\tdata.HighlightedPages.forEach(page => {\r\n\r\n\t\t\tconst img = page.ImageUrl ? `
    ` : '';\r\n\t\t\tconst content = page.IntroCopy.length ? `

    ${page.IntroCopy}

    ` : '';\r\n\r\n\t\t\tlet category = \"\";\r\n\t\t\tlet tags = \"\";\r\n\t\t\tlet firstTag = true;\r\n\r\n\t\t\tpage.TrumpetLeft.split(\" \").forEach(tag => {\r\n\r\n\t\t\t\tif (!firstTag)\r\n\t\t\t\t\ttags += \" | \";\r\n\t\t\t\ttags += `${tag}`;\r\n\r\n\t\t\t\tfirstTag = false;\r\n\t\t\t});\r\n\r\n\t\t\tif (page.TrumpetLeft && page.TrumpetRight) {\r\n\t\t\t\tcategory = `${page.TrumpetRight} • ${tags}`;\r\n\t\t\t} else if (page.TrumpetRight) {\r\n\t\t\t\tcategory = `${page.TrumpetRight}`;\r\n\t\t\t}\r\n\r\n\t\t\thighlightedPages += `\r\n ${img}\r\n
    \r\n
    ${category}
    \r\n

    ${page.Header}

    \r\n ${content}\r\n
    \r\n
    `;\r\n\t\t});\r\n\r\n\t\thighlightedPagesContent += `
    \r\n\t\t\t

    ${data.HighlightedPagesHeader}

    \r\n\t\t\t\r\n\t\t
    `;\r\n\r\n\t}\r\n\r\n\treturn highlightedPagesContent;\r\n}\r\n\r\n\r\n// content\r\nfunction generateModalMarkUp(data, currentId) {\r\n\r\n\tconst topSearches = generateTopSearches(data);\r\n\tconst highlightedPages = generateHighlightedPages(data);\r\n\r\n\treturn `
    \r\n
    \r\n \r\n\t\t\t\r\n \r\n
    \r\n ${topSearches}\r\n\t\t${highlightedPages}\r\n
    `;\r\n}\r\n\r\nfunction showSearchModal(data) {\r\n\tconst id = getCludoSearchFormId();\r\n\tconst markup = generateModalMarkUp(data, id);\r\n\r\n\tshvenergy.modal.showModal(markup, {\r\n\t\textraClass: 'search-modal-container',\r\n\t\textraBackdropClass: 'search-modal-backdrop',\r\n\t\tfocusElement: '.search-modal__search-input input',\r\n\t\tonShow: () => {\r\n\t\t\t// aftersearch is triggered immediately whenever the modal opens with a value inside the cludo search input,\r\n\t\t\t// so let's add a flag here to prevent doing that.\r\n\t\t\tlet shouldCloseOnFirstSearch = $('#cludo').val() !== '';\r\n\r\n\t\t\tCludoService.init({\r\n\t\t\t\tid,\r\n\t\t\t\tafterSearch: ({ query }) => {\r\n\t\t\t\t\tif (!shouldCloseOnFirstSearch) {\r\n\t\t\t\t\t\tshouldCloseOnFirstSearch = true;\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tconst input = $('form#cludo-search-form-resultpage input[name=q]');\r\n\r\n\t\t\t\t\tif (input.length > 0) {\r\n\t\t\t\t\t\tinput.val(query);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tshvenergy.tracking.trackRawEventData({\r\n\t\t\t\t\t\t'event': 'clickSearch',\r\n\t\t\t\t\t\tquery: query,\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\tshvenergy.modal.hideModal();\r\n\t\t\t\t\t}, 0);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t});\r\n}\r\n\r\n$(document).ready(function () {\r\n\t$(document).on('click', '#search-modal-button', function () {\r\n\t\tfetchModalContent().then(data => {\r\n\t\t\tshowSearchModal(data);\r\n\t\t})\r\n\t});\r\n\r\n\t$('.sitesearch-banner__form').on('submit', function (event) {\r\n\t\tevent.preventDefault();\r\n\r\n\t\tconst val = $(this).find('#sitesearchBannerSearchField').val();\r\n\t\tif (val.length > 0) {\r\n\t\t\tconst loc = `${this.action}#?cludoquery=${val}`;\r\n\t\t\twindow.location.href = loc;\r\n\t\t}\r\n\t})\r\n})\r\n\r\n$(window).on(\"resize\", resizeCludoBannerImage);\r\n\r\nfunction resizeCludoBannerImage() {\r\n\tlet cludoBanner = document.querySelector(\".cludo-banner\");\r\n\r\n\tif (cludoBanner && (cludoBanner.getElementsByTagName(\"img\").length > 0)) {\r\n\t\tlet cludoBannerImage = cludoBanner.getElementsByTagName(\"img\")[0];\r\n\t\tif (window.matchMedia(\"(min-width: 640px)\").matches) {\r\n\t\t\t(cludoBannerImage.offsetLeft < 100) ? (cludoBannerImage.style.marginRight = \"24px\") : (cludoBannerImage.style.marginLeft = \"24px\");\r\n\t\t} else {\r\n\t\t\t(cludoBannerImage.offsetLeft < 100) ? (cludoBannerImage.style.marginRight = \"0px\") : (cludoBannerImage.style.marginLeft = \"0px\");\r\n\t\t}\r\n\t}\r\n}\r\n","function init() {\r\n\r\n\t$.ajax({\r\n\t\ttype: \"GET\",\r\n\t\turl: \"/api/GetCookieApi/GetCookieConsent\"\r\n\t}).done(function (response) {\r\n\t\tdeleteBrowserCookies(response)\r\n\t});\r\n\r\n\tfunction deleteBrowserCookies(cookieConsent) {\r\n\t\tlet cookieName;\r\n\t\tfor (let i = 0; i < cookieConsent.length; i++) {\r\n\t\t\tcookieName = cookieConsent[i].cookieName;\r\n\t\t\tif (!shvenergy.cookies.hasCookieCategoryConsent(cookieName) && shvenergy.cookies.getCookie(cookieName)) {\r\n\t\t\t\tshvenergy.cookies.setCookie(cookieName, \"\", -1);\r\n\t\t\t}\r\n\t\t}\t\t\r\n\t}\r\n}\r\n\r\ninit();\r\n","shvenergy.compareenergysources = (function ($) {\r\n\t\"use strict\";\r\n\r\n\tfunction init() {\r\n\r\n\t\tvar isAnimating = false;\r\n\t\tvar allRows = $(\".compare-resources-row\");\r\n\r\n\t\tallRows.each(function() {\r\n\r\n\t\t\tvar currentRow = $(this);\r\n\r\n\t\t\tvar divider = currentRow.hasClass(\"centered\") ? 1 : 2;\r\n\r\n\t\t\tvar buts = []; //This will store buttons in active columns. We will need to trigger a click on page load on these\r\n\r\n\t\t\tfunction getCurrentRowWidth() {\r\n\r\n\t\t\t\treturn parseInt(currentRow.width());\r\n\r\n\t\t\t}\r\n\r\n\t\t\tfunction setWidth() {\r\n\t\t\t\tvar numberOfItems = currentRow.find(\"button\").length;\r\n\t\t\t\t//console.log(numberOfItems);\r\n\t\t\t\tvar width = (getCurrentRowWidth() - (80 * numberOfItems) + 80) / divider;\r\n\t\t\t\tcurrentRow.find(\".comparegrid__item\").not(\".active\").css({\r\n\t\t\t\t\t\"width\": \"80px\"\r\n\t\t\t\t});\r\n\t\t\t\tcurrentRow.find(\".comparegrid__item.active\").css(\"width\", width + \"px\");\r\n\t\t\t}\r\n\r\n\t\t\t//This function runs once for each row in allRows\r\n\t\t\tfunction alignHeightsInSiblingColumnsIfCurrentRowIsNotCentered() {\r\n\r\n\t\t\t\t//No need to run this if there is only one centered column\r\n\t\t\t\tif (currentRow.hasClass(\"centered\"))\r\n\t\t\t\t\treturn;\r\n\r\n\t\t\t\tbuts.forEach(function (el) {\r\n\t\t\t\t\t$(el).trigger(\"click\");\r\n\t\t\t\t\t$(el).parent().removeClass(\"load\");\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tcurrentRow.find(\".compare-resources-column\").each(function () {\r\n\t\t\t\tvar el = $(this);\r\n\t\t\t\tvar buttons = el.find(\"button\");\r\n\t\t\t\tvar cols = el.find(\".comparegrid__item\");\r\n\t\t\t\tvar activeButtonParent = el.find(\".comparegrid__item.load\");\r\n\t\t\t\tvar but = activeButtonParent.find(\"button\");\r\n\t\t\t\tbuts.push(but); //we push the first button in each column where the parent has a class of load\r\n\r\n\t\t\t\t//Bind click handler to all buttons\r\n\t\t\t\tbuttons.on(\"click\", function (e) {\r\n\t\t\t\t\te.stopPropagation();\r\n\r\n\t\t\t\t\tif (window.matchMedia(\"(min-width: 1024px)\").matches) {\r\n\r\n\t\t\t\t\t\tvar parent = $(this).parent();\r\n\t\t\t\t\t\tvar siblingColumn = $(this).parents(\".compare-resources-column\").siblings()[0];\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t//handle the active on first\r\n\r\n\t\t\t\t\t\tif (parent.hasClass(\"load\")) {\r\n\t\t\t\t\t\t\t//do nothing, but allow for script further down to run\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tif (parent.hasClass(\"active\") || isAnimating)\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\t\tisAnimating = true;\r\n\r\n\t\t\t\t\t\t//get the text and clone it, so we can put it inside the current active container, measure its height and set the new height\r\n\t\t\t\t\t\tvar textClone = parent.find(\".comparegrid__item__text\").clone();\r\n\t\t\t\t\t\tvar siblingColumnActiveTextheight = $(siblingColumn).find(\".comparegrid__item.active .comparegrid__item__text\").outerHeight();\r\n\r\n\t\t\t\t\t\ttextClone.css({\r\n\t\t\t\t\t\t\t\"visibility\": \"hidden\",\r\n\t\t\t\t\t\t\t\"opacity\": \"0\"\r\n\t\t\t\t\t\t}).addClass(\"textClone\");\r\n\t\t\t\t\t\ttextClone.appendTo(\".comparegrid__item.active\");\r\n\t\t\t\t\t\tvar textCloneHeight = textClone.outerHeight();\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t$(\".textClone\").remove();\r\n\r\n\t\t\t\t\t\tvar maxHeights = [];\r\n\t\t\t\t\t\tmaxHeights.push(textCloneHeight);\r\n\t\t\t\t\t\tmaxHeights.push(siblingColumnActiveTextheight);\r\n\r\n\t\t\t\t\t\tvar maxHeight = Math.max(...maxHeights);\r\n\r\n\t\t\t\t\t\tcols.find(\".comparegrid__item__text.prepare-reveal\").addClass(\"unreveal\");\r\n\r\n\t\t\t\t\t\tsetTimeout(function() {\r\n\r\n\t\t\t\t\t\t\t//unreveal class has been added\r\n\t\t\t\t\t\t\tcols.find(\".comparegrid__item__text.prepare-reveal\").removeClass(\"prepare-reveal unreveal reveal\");\r\n\t\t\t\t\t\t\tcols.css(\"width\", \"80px\").removeClass(\"active\");\r\n\t\t\t\t\t\t\tparent.addClass(\"active\");\r\n\t\t\t\t\t\t\tsetWidth();\r\n\t\t\t\t\t\t\tcurrentRow.find(\".comparegrid\").css(\"min-height\", maxHeight + 18 +\"px\");\r\n\t\t\t\t\t\t\t//new item has been set, now set show/reveal on text element\r\n\t\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\t\tisAnimating = false;\r\n\t\t\t\t\t\t\t\t//this is also where we want to show the content of the item\r\n\t\t\t\t\t\t\t\tparent.find(\".comparegrid__item__text\").addClass(\"prepare-reveal\");\r\n\t\t\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\t\t\tparent.find(\".comparegrid__item__text.prepare-reveal\").addClass(\"reveal\");\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t}, 10);\r\n\r\n\t\t\t\t\t\t\t}, 410);\r\n\r\n\t\t\t\t\t\t}, 210);\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t});\r\n\r\n\t\t\tsetWidth();\r\n\t\t\talignHeightsInSiblingColumnsIfCurrentRowIsNotCentered();\r\n\r\n\t\t\t$(window).on(\"resize\", setWidth);\r\n\t\t\t\r\n\r\n\t\t\t$(\".comparegrid\").on('DOMNodeInserted', function (e) {\r\n\t\t\t\tsetWidth();\r\n\t\t\t});\r\n\r\n\t\t\t$(\".comparegrid\").on('DOMNodeRemoved', function (e) {\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\tsetWidth();\r\n\t\t\t\t}, 100);\r\n\r\n\t\t\t});\r\n\r\n\r\n\t\t});\r\n\r\n }\r\n\r\n init();\r\n\r\n})(jQuery);","shvenergy.contactbannerwithopeninghours = (function ($) {\r\n\t\"use strict\";\r\n\r\n\tfunction init() {\r\n\r\n\t\tvar banners = $(\".support-banner__container--contact\");\r\n\r\n\t\tbanners.each(function() {\r\n\r\n\t\t\tvar currentBanner = $(this);\r\n\r\n\t\t\tvar but = currentBanner.find(\"button.timeslot\");\r\n\t\t\tvar timeslots = currentBanner.find(\"div.timeslot\");\r\n\r\n\t\t\tbut.on(\"click\", function() {\r\n\r\n\t\t\t\tvar attribute = $(this).attr(\"aria-expanded\");\r\n\t\t\t\tvar newAttr = attribute === \"false\" ? \"true\" : \"false\";\r\n\t\t\t\t$(this).attr(\"aria-expanded\", newAttr);\r\n\t\t\t\ttimeslots.toggleClass(\"active\");\r\n\t\t\t});\r\n\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tinit();\r\n\r\n})(jQuery);","shvenergy.cookiewarning = (function ($) {\r\n\t\"use strict\";\r\n\r\n\tfunction init() {\r\n\r\n\t\tvar DEFAULT_COOKIE_EXPIREDAYS = 5;\r\n\r\n\t\tvar cookieWarning = $(\".cookie-banner\");\r\n\r\n\t\tif (cookieWarning.length < 1) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar cookieWarningButton = $(\".cookie-banner button\");\r\n\t\tvar cookieExpireDays = cookieWarning.data(\"cookiedays\");\r\n\r\n\t\ttry {\r\n\t\t\tcookieExpireDays = parseInt(cookieExpireDays);\r\n\t\t} catch (e) {\r\n\t\t\tcookieExpireDays = DEFAULT_COOKIE_EXPIREDAYS;\r\n\t\t}\r\n\r\n\t\tvar currentCookieWarningCookie = shvenergy.cookies.getCookie(\"_shvenergy_cookie_warning\");\r\n\r\n\t\t//For Calor's shop we always include the cookiebanner in the HTML, so we also have to check if the cookie is set or not.\r\n\t\t//If it is set we need to remove it\r\n\t\tif (currentCookieWarningCookie) {\r\n\t\t\tcookieWarning.remove();\r\n\t\t} else {\r\n\r\n\t\t\tcookieWarningButton.on(\"click\", function () {\r\n\r\n\t\t\t\tshvenergy.cookies.setCookie(\"_shvenergy_cookie_warning\", \"true\", cookieExpireDays);\r\n\r\n\t\t\t\tcookieWarning.removeClass(\"is-Shown\");\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\tcookieWarning.remove();\r\n\t\t\t\t}, 600);\r\n\r\n\t\t\t});\r\n\r\n\t\t\tcookieWarning.addClass(\"is-Shown\");\r\n\r\n\t\t}\r\n\r\n\r\n\r\n\t}\r\n\r\n\tinit();\r\n\r\n})(jQuery);","shvenergy.customselects = (function ($) {\r\n\r\n\tfunction init() {\r\n\r\n\t\tvar customSelects = $(\".custom-select\");\r\n\r\n\t\tcustomSelects.each(function (index) {\r\n\r\n\t\t\tvar selectedItem = $(this).find(\".select-selected\");\r\n\t\t\tvar options = $(this).find(\".select-items > div\");\r\n\r\n\t\t\tselectedItem.on(\"keypress\", function (e) {\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t\tif (e.which === 13) {\r\n\r\n\t\t\t\t\tif ($(this).hasClass(\"select-arrow-active\"))\r\n\t\t\t\t\t\tcloseAllCustomSelects();\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t$(this).next(\"div\").toggleClass(\"select-hide\");\r\n\t\t\t\t\t\t$(this).toggleClass(\"select-arrow-active\");\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tselectedItem.on(\"click\", function (e) {\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t\tcloseAllCustomSelects();\r\n\t\t\t\t$(this).next(\"div\").toggleClass(\"select-hide\");\r\n\t\t\t\t$(this).toggleClass(\"select-arrow-active\");\r\n\r\n\t\t\t});\r\n\r\n\t\t\toptions.each(function () {\r\n\r\n\r\n\t\t\t\t$(this).on(\"click\", function () {\r\n\t\t\t\t\tvar uid = $(this).data(\"value\");\r\n\t\t\t\t\t$(this).closest(\".product-categories\").find(\".product-details-tab\").hide();\r\n\t\t\t\t\t$(this).closest(\".product-categories\").find(\"#tab-\" + uid).show();\r\n\r\n\t\t\t\t\tvar selectedText = $(this).text();\r\n\r\n\t\t\t\t\tselectedItem.find(\"span\").text(selectedText);\r\n\t\t\t\t\tshvenergy.tracking.trackEvent(\"product changed\", \"click\", selectedText);\r\n\r\n\t\t\t\t\t//category, action, label\r\n\t\t\t\t});\r\n\r\n\r\n\t\t\t\t$(this).on(\"keypress\", function (e) {\r\n\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\tif (e.which === 13) {\r\n\r\n\t\t\t\t\t\tvar uid = $(this).data(\"value\");\r\n\t\t\t\t\t\t$(this).closest(\".product-categories\").find(\".product-details-tab\").hide();\r\n\t\t\t\t\t\t$(this).closest(\".product-categories\").find(\"#tab-\" + uid).show();\r\n\t\t\t\t\t\tvar selectedText = $(this).text();\r\n\t\t\t\t\t\tselectedItem.find(\"span\").text(selectedText);\r\n\t\t\t\t\t\tshvenergy.tracking.trackEvent(\"product changed\", \"click\", selectedText);\r\n\t\t\t\t\t\tcloseAllCustomSelects();\r\n\t\t\t\t\t\t$(this).closest(\".product-categories\").find(\".select-selected\").focus();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t});\r\n\r\n\t\t});\r\n\r\n\t\tfunction closeAllCustomSelects() {\r\n\r\n\t\t\t$(\".select-selected\").removeClass(\"select-arrow-active\");\r\n\t\t\t$(\".select-items\").addClass(\"select-hide\");\r\n\r\n\t\t}\r\n\r\n\t\t/*if the user clicks anywhere outside the select box,\r\n\t\tthen close all select boxes:*/\r\n\t\tdocument.addEventListener(\"click\", closeAllCustomSelects);\r\n\r\n\t}\r\n\r\n\tinit();\r\n\r\n})(jQuery);","shvenergy.dealerlist = (function ($) {\r\n \"use strict\";\r\n\r\n function init() {\r\n if ($(\"#anchor-menu\").innerHeight() < 50) {\r\n if (document.body.dataset.totopEnabled === 'True') {\r\n if (window.matchMedia('(min-width: 640px)').matches) {\r\n $(\".dealer-list__anchor-list\").css({ \"top\": \"10px\" });\r\n } else {\r\n $(\".dealer-list__anchor-list\").css({ \"top\": \"0px\" });\r\n }\r\n } else {\r\n if (window.matchMedia('(min-width: 0px)').matches && window.matchMedia('(max-width: 640px)').matches) {\r\n $(\".dealer-list__anchor-list\").css({ \"top\": \"48px\" });\r\n } else if (window.matchMedia('(min-width: 641px)').matches && window.matchMedia('(max-width: 1200px)').matches) {\r\n $(\".dealer-list__anchor-list\").css({ \"top\": \"60px\" });\r\n } else {\r\n $(\".dealer-list__anchor-list\").css({ \"top\": \"81px\" });\r\n }\r\n }\r\n }\r\n }\r\n\r\n init();\r\n\r\n})(jQuery);","shvenergy.faq = (function ($) {\r\n\t\"use strict\";\r\n\r\n\tfunction init() {\r\n\t\tvar allFaqs = $('.faq');\r\n var slideTiming = 400;\r\n\t\tallFaqs.each(function () {\r\n\t\t\tvar allHeaders = $(this).find(\".faq__header\");\r\n\t\t\tvar allContent = $(this).find(\".faq__content\");\r\n\t\t\tallHeaders.each(function () {\r\n\r\n\t\t\t\tvar header = $(this);\r\n\t\t\t\tvar otherHeaders = allHeaders.not(header);\r\n\r\n\t\t\t\theader.on(\"click\", function () {\r\n\r\n\t\t\t\t\tif (header.hasClass(\"selected\")) {\r\n\t\t\t\t\t\theader.removeClass(\"selected\").attr(\"aria-expanded\", \"false\");\r\n\t\t\t\t\t\tallContent.slideUp(slideTiming);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\theader.addClass(\"selected\").attr(\"aria-expanded\", \"true\");\r\n\t\t\t\t\totherHeaders.removeClass(\"selected\").attr(\"aria-expanded\", \"false\");\r\n\t\t\t\t\tallContent.slideUp(slideTiming);\r\n\t\t\t\t\t$(this).next(\".faq__content\").slideToggle(slideTiming, function () {\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tvar scrollTop = $(window).scrollTop();\r\n\t\t\t\t\t\tvar headerOffsetTop = header.offset().top;\r\n\t\t\t\t\t\tvar difference = headerOffsetTop - scrollTop;\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t//if the expanded header is outside the viewport then slide it back in\r\n\t\t\t\t\t\tif (difference <= 100) {\r\n\t\t\t\t\t\t\t$(\"html, body\").animate({ scrollTop: headerOffsetTop - 100 }, 350);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tif (shvenergy.tracking) {\r\n\t\t\t\t\t\tshvenergy.tracking.trackEvent('Accordion', 'Open', $(this).find(\".faq__header__text\").text());\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tinit();\r\n\r\n})(jQuery);","shvenergy.footer = (function ($) {\r\n \"use strict\";\r\n\r\n function init() {\r\n\r\n var allHeaders = $(\"button.page-footer__link-list-header\");\r\n var allLinkLists = $(\".page-footer__link-list\");\r\n var followUsList = $(\".page-footer .follow-us__list a\");\r\n\r\n allHeaders.each(function () {\r\n\r\n var header = $(this);\r\n var otherHeaders = allHeaders.not(header);\r\n\r\n header.on(\"click\", function (e) {\r\n e.preventDefault();\r\n\r\n if (shvenergy.utils.isMobile()) {\r\n\r\n if (header.hasClass(\"selected\")) {\r\n header.removeClass(\"selected\").attr(\"aria-expanded\", \"false\");\r\n allLinkLists.slideUp();\r\n } else {\r\n header.addClass(\"selected\").attr(\"aria-expanded\", \"true\");\r\n otherHeaders.removeClass(\"selected\").attr(\"aria-expanded\", \"false\");\r\n allLinkLists.slideUp();\r\n $(this).next(\".page-footer__link-list\").slideDown();\r\n }\r\n }\r\n\r\n });\r\n });\r\n followUsList.each(function () {\r\n let anchor = $(this),\r\n title = anchor.find('.visuallyhidden').text();\r\n anchor.on(\"click\", function() {\r\n trackFooterSocialClick(title);\r\n });\r\n\r\n anchor.on(\"auxclick\", function() {\r\n trackFooterSocialClick(title);\r\n });\r\n });\r\n\r\n function trackFooterSocialClick(title) {\r\n shvenergy.tracking.trackRawEventData({\r\n event: 'clickFooterSocial',\r\n socialName: title\r\n });\r\n }\r\n\t}\r\n\r\n\tinit();\r\n\r\n})(jQuery);","shvenergy.footerpopup = (function ($) {\r\n\t\"use strict\";\r\n\r\n\tfunction init() {\r\n\r\n\t\tvar footerPopups = $(\"[data-footerpopup]\");\r\n\r\n\t\tfooterPopups.each(function () {\r\n\r\n\t\t\tvar popup = $(this);\r\n\r\n\t\t\tvar button = popup.find(\".footer-popup-button\");\r\n\t\t\tvar content = popup.find(\".footer-popup-content\");\r\n\r\n\t\t\tbutton.on(\"click\", () => {\r\n\t\t\t\tvar attr = button.attr(\"aria-expanded\");\r\n\t\t\t\tbutton.attr(\"aria-expanded\", attr === \"false\" ? \"true\" : \"false\").toggleClass(\"selected\");\r\n\t\t\t\tcontent.toggle();\r\n\t\t\t});\r\n\r\n\t\t});\r\n\r\n\r\n\t\tfunction hide() {\r\n\t\t\t$(\".footer-popup-content\").hide();\r\n\t\t\t$(\".footer-popup-button\").attr(\"aria-expanded\", \"false\").removeClass(\"selected\");\r\n\t\t}\r\n\r\n\t\t$(document).on(\"keydown\", function (event) {\r\n\t\t\tvar key = event.keyCode || event.which;\r\n\t\t\tif (key === 27) {\r\n\t\t\t\thide();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t$('body').on('click', function (e) {\r\n\t\t\tif ($(e.target).closest('[data-footerpopup]').length == 0) {\r\n\t\t\t\thide();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tinit();\r\n\r\n})(jQuery);","shvenergy.foreignIpRedirect = (function ($) {\r\n\t\"use strict\";\r\n\r\n\tfunction init() {\r\n\r\n\t\tif (!$(\"#redirectPopupContent\").length)\r\n\t\t\treturn;\r\n\r\n\r\n\t\tvar contextId = $(\"#redirectPopupContent\").data(\"contextid\");\r\n\r\n\t\t//console.log(\"ContextId: \", contextId);\r\n\r\n\t\tif (contextId === \"\")\r\n\t\t\treturn;\r\n\r\n\r\n\t\t//console.log(\"API Url: \" + \"/api/foreignipredirect/getcookie/{\" + contextId + \"}\");\r\n\r\n\r\n\t\tfunction buildMarkup(data) {\r\n\r\n\t\t\tvar header = \"\";\r\n\t\t\tvar continueButtonTrackingId = \"\";\r\n\t\t\tvar redirectButtonTrackingId = \"\";\r\n\t\t\t\r\n\r\n\t\t\tif (data.Model.Header && data.Model.Header !== \"\") {\r\n\t\t\t\theader = `

    ${data.Model.Header}

    `;\r\n\t\t\t}\r\n\r\n\t\t\tif (data.Model.ContinueButtonTrackingId && data.Model.ContinueButtonTrackingId !== \"\") {\r\n\t\t\t\tcontinueButtonTrackingId = `id=\"${data.Model.ContinueButtonTrackingId}\"`;\r\n\t\t\t}\r\n\r\n\t\t\tif (data.Model.RedirectButtonTrackingId && data.Model.RedirectButtonTrackingId !== \"\") {\r\n\t\t\t\tredirectButtonTrackingId = `id=\"${data.Model.RedirectButtonTrackingId}\"`;\r\n\t\t\t}\r\n\r\n\t\t\treturn `
    \r\n\t\t\t\t${header}\r\n\r\n\t\t\t\t${data.Model.BodyCopy}\r\n\r\n\t

    \r\n\r\n\t \r\n\r\n\t \r\n\t ${data.Model.RedirectButtonText}\r\n\t \r\n\r\n\t

    \r\n\t
    `;\r\n\t\t}\r\n\r\n\t\tconst request = $.ajax({\r\n\t\t\ttype: \"GET\",\r\n\t\t\turl: `/api/foreignipredirect/getcookie/${contextId}`,\r\n\t\t\tcontentType: \"application/json; charset=utf-8\",\r\n\t\t\tdataType: \"json\"\r\n\t\t});\r\n\t\trequest.done(function (data) {\r\n\t\t\tconsole.log(\"Data: \", data)\r\n\t\t\tconsole.log(\"Model: \", data.Model)\r\n\t\t\tconsole.log(\"status: \", data.Status)\r\n\t\t\tif (data.Status === true || data.Status === \"true\") {\r\n\r\n\t\t\t\t//console.log(\"Model: \", data.Model);\r\n\r\n\r\n\t\t\t\tconst cookieName = data.Model.CookieName;\r\n\t\t\t\tconsole.log(cookieName);\r\n\r\n\t\t\t\tif (shvenergy.cookies.hasCookieCategoryConsent(cookieName)) {\r\n\r\n\t\t\t\t\tif (shvenergy.cookies.getCookie(cookieName)) {\r\n\t\t\t\t\t\tvar elem = document.getElementById('redirectPopupContent');\r\n\t\t\t\t\t\telem.parentNode.removeChild(elem);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tvar markup = buildMarkup(data);\r\n\t\t\t\t\t\t//console.log(markup);\r\n\t\t\t\t\t\t$(\"#redirectPopupContent\").html(markup);\r\n\t\t\t\t\t\tshvenergy.modal.showModal(document.getElementById(\"redirectPopupContent\").innerHTML);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t} else {\r\n\t\t\t\t//console.log(\"FALSE\");\r\n\t\t\t}\r\n\r\n\t\t});\r\n\t\trequest.fail(function (jqXhr, error, errorThrown) {\r\n\t\t\t//console.log(jqXhr);\r\n\t\t\t//console.log(jqXhr.responseJSON.Message);\r\n\t\t\t//console.log(error);\r\n\t\t\t//console.log(errorThrown);\r\n\t\t});\r\n\t\trequest.always(function () {\r\n\t\t\t//console.log(\"Always\");\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tinit();\r\n\r\n})(jQuery);","shvenergy.headerarea = (function ($) {\r\n\t\"use strict\";\r\n\r\n\tfunction init() {\r\n\t\t$(\".header-area__arrow button\").click(function (event) {\r\n\t\t\t$('html, body').animate({ scrollTop: '+=700px' }, 800);\r\n\t\t});\r\n\r\n\t\t$(\".header-area .hero a.button\").on(\"click\", () => {\r\n\t\t\ttrackBannerClick();\r\n\t\t});\r\n\r\n\t\t$(\".header-area .hero a.button\").on(\"auxclick\", () => {\r\n\t\t\ttrackBannerClick();\r\n\t\t});\r\n\r\n\t\tfunction trackBannerClick() {\r\n\t\t\tlet bannerName = $(\".header-area .hero__headline\").first()[0].innerText,\r\n\t\t\t\tpageName = document.pageType == \"Content page\" ? document.title : document.pageType;\r\n\r\n\t\t\tbannerName = bannerName.replace(\"\\n\", \"\");\r\n\r\n\t\t\tshvenergy.tracking.trackRawEventData({\r\n\t\t\t\t'event':'clickBanner',\r\n\t\t\t\t'bannerName': bannerName,\r\n\t\t\t\t'pagename': pageName\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t$(window).on(\"load\", function () {\r\n\t\t\tlet ogTitle = document.querySelector(\"[property='og:title']\");\r\n\t\t\tlet ogDescription = document.querySelector(\"[property='og:description']\");\r\n\t\t\tlet pageTypeCheck = document.querySelector(\"[pagetype-check]\");\r\n\t\t\tlet h1Element = document.querySelector('h1');\r\n\t\t\tlet pagesInclude = ['newspage', 'blogpage'];\r\n\t\t\tconst heroId = document.getElementById(\"hero\");\r\n\t\t\tconst scriptTag = heroId ? heroId.querySelector('script[type=\"application/ld+json\"]') : heroId;\r\n\r\n\t\t\tif (ogTitle && !ogTitle.content.trim() && h1Element) {\r\n\t\t\t\togTitle.content = h1Element.innerText.trim();\r\n\t\t\t}\r\n\t\t\tif (pageTypeCheck && pagesInclude.includes(pageTypeCheck.getAttribute(\"pagetype-check\")) && ogDescription && !ogDescription.content.trim() && h1Element) {\r\n\t\t\t\togDescription.content = h1Element.innerText.trim();\r\n\t\t\t}\r\n\t\t\tif (scriptTag && h1Element) {\r\n\t\t\t\tconst jsonData = JSON.parse(scriptTag.textContent);\r\n\t\t\t\tif (!jsonData['@graph'][0].name) {\r\n\t\t\t\t\tjsonData['@graph'][0].name = h1Element.innerText.trim();\r\n\t\t\t\t\tscriptTag.textContent = JSON.stringify(jsonData, null, 2);\t\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tinit();\r\n\r\n})(jQuery);","shvenergy.icons = (function ($) {\r\n\tvar svgs;\r\n\tvar svgCache;\r\n\tvar iconsLoaded = false;\r\n var cdnvalue = $(\"#cdnInput\").data(\"value\");\r\n\tfunction init() {\r\n\t\t$.ajax({\r\n url: \"\" + cdnvalue + \"/dist/svgsprite/icons.svg\"\r\n\r\n\t\t}).done(function (data) {\r\n\t\t\tsvgCache = data;\r\n\t\t\tsvgs = makeSvgArray(data);\r\n\t\t\ticonsLoaded = true;\r\n\t\t});\r\n\t}\r\n\r\n\tfunction makeSvgArray(data) {\r\n\t\tvar array = [];\r\n\t\tvar icons = data.getElementsByTagName('symbol');\r\n\t\tfor (var i = 0; i <= icons.length - 1; i++) {\r\n\t\t\tarray.push(icons[i].getAttribute('id'));\r\n\t\t}\r\n\t\treturn array;\r\n\t}\r\n\r\n\tfunction getSvgArrayFiltered(string) {\r\n\r\n\t\tif (!iconsLoaded) {\r\n\t\t\tconsole.warn(\"You need to run 'shvenergy.icons.init()' first\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar array = [];\r\n\t\tfor (var i = 0; i <= svgs.length - 1; i++) {\r\n\t\t\tvar name = svgs[i].toLowerCase();\r\n\t\t\tif (name.indexOf(string.toLowerCase()) !== -1) {\r\n\t\t\t\tarray.push(svgs[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn array;\r\n\r\n\t}\r\n\r\n\tfunction getSvgArray() {\r\n\r\n\t\tif (!iconsLoaded) {\r\n\t\t\tconsole.warn(\"You need to run 'shvenergy.icons.init()' first\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\treturn svgs;\r\n\t}\r\n\r\n\tfunction buildIconsView(containerSelector, filter) {\r\n\r\n\t\tif (!iconsLoaded) {\r\n\t\t\tconsole.warn(\"You need to run 'shvenergy.icons.init()' first\");\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar container = containerSelector || \"body\";\r\n\t\tvar iconsWrap = $(\"
    \");\r\n\t\tvar iconsArray = filter ? getSvgArrayFiltered(filter) : getSvgArray();\r\n\r\n\t\tfor (var i = 0; i < iconsArray.length; i++) {\r\n\t\t\tvar iconSVG = $('
    ' +\r\n '' +\r\n\t\t\t\t'

    ' + iconsArray[i] + '

    ' +\r\n\t\t\t\t'
    ');\r\n\t\t\ticonsWrap.append(iconSVG);\r\n\t\t}\r\n\t\t$(container).append(iconsWrap);\r\n\t\treturn \"succes!\";\r\n\t}\r\n\r\n\treturn {\r\n\t\tinit: init,\r\n\t\tgetSvgArray: getSvgArray,\r\n\t\tgetSvgArrayFiltered: getSvgArrayFiltered,\r\n\t\tbuildIconsView: buildIconsView\r\n\t};\r\n\r\n})(jQuery);\r\n\r\n","shvenergy.imagewithcaptionandenlargement = (function ($) {\r\n\t\"use strict\";\r\n\r\n\tlet enlargeImage = $(\".enlarge-button\");\r\n\r\n\t$(document).on(\"click\", \".imagewithcaption__backdrop .close\", function (e) {\r\n\t\thideEnlargeImage();\r\n\t});\r\n\r\n\tenlargeImage.on(\"mouseenter\", function () {\r\n\t\t$(this).addClass(\"mouseover\");\r\n\t}).on(\"mouseleave\", function () {\r\n\t\t$(this).removeClass(\"mouseover\");\r\n\t});\r\n\t\r\n\tfunction enlargeImageSize(content, options = {}) {\r\n\t\tconst imageWithCaptionBackdrop = `
    \r\n\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t\t
    `;\r\n\r\n\t\tvar t = $(imageWithCaptionBackdrop).clone();\r\n\t\tt.find(\".imagewithcaption-content\").html(content);\r\n\r\n\t\t$(\"body\").append(t);\r\n\t\t$(\"html\").addClass(\"imagewithcaption-open\");\r\n\t\t$(\".imagewithcaption__backdrop__main\").addClass(options.extraClass);\r\n\t}\r\n\r\n\tfunction hideEnlargeImage() {\r\n\t\t$(\".imagewithcaption__backdrop\").remove();\r\n\t\t$(\"html\").removeClass(\"imagewithcaption-open\");\r\n\t}\r\n\r\n\treturn {\r\n\t\tenlargeImageSize: enlargeImageSize\r\n\t};\r\n\r\n})(jQuery);","shvenergy.imagewithinfopointers = (function ($) {\r\n\t\"use strict\";\r\n\r\n\tfunction init() {\r\n\r\n\t\t// Function from David Walsh: http://davidwalsh.name/css-animation-callback\r\n\t\tfunction whichTransitionEvent() {\r\n\t\t\tvar t,\r\n\t\t\t\tel = document.createElement(\"fakeelement\");\r\n\r\n\t\t\tvar transitions = {\r\n\t\t\t\t\"transition\": \"transitionend\",\r\n\t\t\t\t\"OTransition\": \"oTransitionEnd\",\r\n\t\t\t\t\"MozTransition\": \"transitionend\",\r\n\t\t\t\t\"WebkitTransition\": \"webkitTransitionEnd\"\r\n\t\t\t}\r\n\r\n\t\t\tfor (t in transitions) {\r\n\t\t\t\tif (el.style[t] !== undefined) {\r\n\t\t\t\t\treturn transitions[t];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar transitionEvent = whichTransitionEvent();\r\n\r\n\t\tvar allInfoPoints = $(\".infopoint\");\r\n\t\tvar allButtons = $(\".infopoint__button\");\r\n\t\tvar allInfoTexts = $(\".infopoint__text\");\r\n\r\n\t\tfunction closeAllInfoPointers() {\r\n\r\n\t\t\t$(\".infopoint__button.active\").addClass(\"close\");\r\n\t\t\tremoveClone();\r\n\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\tallButtons.removeClass(\"active close\").attr(\"aria-expanded\", \"false\");\r\n\t\t\t\tallInfoTexts.removeClass(\"active\");\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\tallInfoPoints.removeClass(\"active\");\r\n\t\t\t\t \r\n\t\t\t\t}, 700);\r\n\r\n }, 700);\r\n\r\n\t\t\t$(\"html\").removeClass(\"mobileInfoPointActive\");\r\n\t\t}\r\n\r\n\t\tfunction removeClone() {\r\n\t\t\t$(\".infopointtext-offcanvas.active\").one(transitionEvent, function (event) {\r\n\t\t\t\t$(\".infopointtext-offcanvas\").remove();\r\n\t\t\t\tallInfoPoints.removeClass(\"active\");\r\n\t\t\t\tallButtons.removeClass(\"active close\").attr(\"aria-expanded\", \"false\");\r\n }).removeClass(\"active\");\r\n\r\n\t\t\t$(\"html\").removeClass(\"mobileInfoPointActive\");\r\n\t\t}\r\n\r\n\t\tvar closeButton = $(\"\r\n
    \r\n\r\n \r\n \r\n\r\n
    \r\n\r\n
    \r\n\r\n \r\n ${data.PricePreText}${data.PriceText}${data.PricePostText}\r\n \r\n\r\n \r\n \r\n \r\n \r\n ${data.ExpiresText}\r\n \r\n\r\n
    \r\n\r\n
    \r\n

    ${data.BodyCopy}

    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n\r\n
    ${data.EmailRequiredErrorMessage}
    \r\n
    ${data.EmailInvalidErrorMessage}
    \r\n
    \r\n
    \r\n\r\n\r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n
    ${data.QuoteNumberRequiredErrorMessage}
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n\r\n
    `;\r\n\t}\r\n\r\n\tfunction generateApiButton(data, buttonType) {\r\n\r\n\t\tlet type = '';\r\n\t\tif (buttonType === \"secondary\")\r\n\t\t\ttype = 'button--white button--hollow';\r\n\r\n\t\treturn ``;\r\n\t}\r\n\r\n\tfunction generateLink(data, buttonType) {\r\n\r\n\t\tlet type = '';\r\n\t\tif (buttonType === \"secondary\")\r\n\t\t\ttype = 'button--white button--hollow';\r\n\r\n\t\treturn `
    \r\n\t\t\t\t\t\t${data.Text}\r\n\t\t\t\t\t\t${svgArrow}\r\n\t\t\t\t\t`;\r\n\t}\r\n\r\n\tfunction generateButtonsMarkup(data) {\r\n\t\tlet markup = '';\r\n\r\n\t\tlet buttonType = \"secondary\";\r\n\r\n\t\tif (data.length === 1) {\r\n\t\t\tbuttonType = \"primary\";\r\n\t\t}\r\n\r\n\t\tdata.forEach(function (button) {\r\n\r\n\t\t\tswitch (button.Type) {\r\n\t\t\t\tcase \"Api\":\r\n\t\t\t\t\tmarkup += generateApiButton(button, buttonType);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault: // this is equal to data.Type = \"Link\"\r\n\t\t\t\t\tmarkup += generateLink(button, buttonType);\r\n\t\t\t}\r\n\r\n\t\t\tbuttonType = \"primary\";\r\n\r\n\t\t});\r\n\r\n\t\treturn markup;\r\n\t}\r\n\r\n\tfunction generateDetailsMarkup(details) {\r\n\r\n\t\tlet detailsList = \"\";\r\n\t\tdetailsList += ``;\r\n\r\n\t\treturn detailsList;\r\n\t}\r\n\r\n\tfunction generateConfirmDetailsMarkup(data) {\r\n\r\n\t\tshvenergy.tracking.trackEvent(trackingCategory, \"Modal\", \"Confirm details shown\");\r\n\r\n\t\tlet headline = \"\";\r\n\t\tlet leftCol = \"\";\r\n\t\tlet rightCol = \"\";\r\n\t\tlet buttons = \"\";\r\n\r\n\t\tif (data.Header) {\r\n\t\t\theadline = `
    \r\n\t\t\t\t\t\t\t\t

    ${data.Header}

    \r\n\t\t\t\t\t\t\t
    `;\r\n\t\t}\r\n\r\n\t\tif (data.ColumnOneData) {\r\n\t\t\tleftCol = generateDetailsMarkup(data.ColumnOneData);\r\n\t\t}\r\n\r\n\t\tif (data.ColumnTwoData) {\r\n\t\t\trightCol = generateDetailsMarkup(data.ColumnTwoData);\r\n\t\t}\r\n\r\n\t\tif (data.Buttons && data.Buttons.length > 0) {\r\n\t\t\tbuttons += generateButtonsMarkup(data.Buttons);\r\n\t\t}\r\n\r\n\r\n\r\n\t\treturn `
    \r\n\t\t\t\t\t\t${headline}\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    ${data.ColumnOneHeader}
    \r\n\t\t\t\t\t\t\t\t${leftCol}\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    ${data.ColumnTwoHeader}
    \r\n\t\t\t\t\t\t\t\t${rightCol}\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t
    ${buttons}
    \r\n\r\n\t\t\t\t\t
    `;\r\n\r\n\t}\r\n\r\n\tfunction generateQuoteHasExpiredMarkup(data) {\r\n\r\n\t\tshvenergy.tracking.trackEvent(trackingCategory, \"Modal\", \"Quote has expired shown\");\r\n\r\n\t\tlet headline = \"\";\r\n\t\tlet text = \"\";\r\n\t\tlet buttons = \"\";\r\n\r\n\t\tif (data.Header) {\r\n\t\t\theadline = `

    ${data.Header}

    `;\r\n\t\t}\r\n\r\n\t\tif (data.BodyText) {\r\n\t\t\ttext = data.BodyText;\r\n\t\t}\r\n\r\n\r\n\t\t//if (data.Link && data.Link.Url && data.Link.Text) {\r\n\t\t//\tbutton = `\r\n\t\t//\t\t\t\t\t${data.Link.Text}\r\n\t\t//\t\t\t\t\t${svgArrow}\r\n\t\t//\t\t\t\t`;\r\n\t\t//}\r\n\r\n\t\tif (data.Buttons && data.Buttons.length > 0) {\r\n\t\t\tbuttons = generateButtonsMarkup(data.Buttons);\r\n\t\t}\r\n\r\n\t\treturn `
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t${headline}\r\n\t\t\t\t\t\t\t\t${text}\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t
    ${buttons}
    \r\n\r\n\t\t\t\t\t
    `;\r\n\t}\r\n\r\n\tfunction generateErrorMarkup(data) {\r\n\t\t//data object\r\n\t\t//{\r\n\t\t// \"Type\": \"Error\", \r\n\t\t//\"Content\": { \r\n\t\t//\t\"Header\": \"An error has occurred\", \r\n\t\t//\t\"BodyText\": \"

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras gravida id turpis eget laoreet. Aliquam in augue nisi. Donec lobortis nec justo vitae tristique. Sed lacus orci, lacinia id efficitur nec, mattis pellentesque tortor. Suspendisse pellentesque quis odio sit amet rhoncus.

    \", \r\n\t\t//\t\"Buttons\": [\r\n\t\t//\t\t\t{ \"Type\": \"Link\", \"Text\": \"Get new quote\", \"Url\": \"/testpages/wizardtool/domestic-lpg-get-a-quote\" }\r\n\t\t//]\r\n\t\t//}\r\n\r\n\t\tshvenergy.tracking.trackEvent(trackingCategory, \"Modal\", \"Error has occurred shown\");\r\n\r\n\t\tlet headline = \"\";\r\n\t\tlet text = \"\";\r\n\t\tlet buttons = \"\";\r\n\r\n\r\n\t\tif (data.Header) {\r\n\t\t\theadline = `

    ${data.Header}

    `;\r\n\t\t}\r\n\r\n\t\tif (data.BodyText) {\r\n\t\t\ttext = data.BodyText;\r\n\t\t}\r\n\r\n\r\n\r\n\r\n\t\tif (data.Buttons && data.Buttons.length > 0) {\r\n\t\t\tbuttons += generateButtonsMarkup(data.Buttons);\r\n\t\t}\r\n\r\n\t\treturn `
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t${headline}\r\n\t\t\t\t\t\t\t\t${text}\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t
    ${buttons}
    \r\n\r\n\t\t\t\t\t
    `;\r\n\r\n\t}\r\n\r\n\tfunction renderPopup(data, options = {}) {\r\n\r\n\t\tlet markup = \"\";\r\n\t\tconst defaults = {\r\n\t\t\treplaceContent: false\r\n\t\t};\r\n\r\n\t\tconst actual = $.extend({}, defaults, options || {});\r\n\r\n\t\tswitch (data.Type) {\r\n\t\t\tcase \"ConfirmDetails\":\r\n\t\t\t\tmarkup = generateConfirmDetailsMarkup(data.Content);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"QuoteHasExpiredBefore\":\r\n\t\t\t\tmarkup = generateQuoteHasExpiredMarkup(data.Content);\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"QuoteHasExpiredAfter\":\r\n\t\t\t\tmarkup = generateQuoteHasExpiredMarkup(data.Content);\r\n\t\t\t\tbreak;\r\n\t\t\tdefault: // this is equal to data.Type = \"Error\"\r\n\t\t\t\tmarkup = generateErrorMarkup(data.Content);\r\n\t\t}\r\n\r\n\t\tif (actual.replaceContent) {\r\n\t\t\tshvenergy.modal.replaceModalContent(markup);\r\n\t\t} else {\r\n\t\t\tshvenergy.modal.showModal(markup);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tfunction fetchApi(params, url) {\r\n\r\n\r\n\t\tisFetchingContentStore.isFecthing = url === getQuoteEndpoint ? true : false;\r\n\t\tshvenergy.modal.isLoadingStore.isLoading = true;\r\n\r\n\t\tlet shouldReplaceContent = true;\r\n\r\n\t\tif (url === getQuoteEndpoint || url === getQuoteByIdEndpoint) {\r\n\t\t\tshouldReplaceContent = false;\r\n\t\t}\r\n\r\n\t\tconst request = $.ajax({\r\n\t\t\ttype: \"POST\",\r\n\t\t\turl: url,\r\n\t\t\tcontentType: \"application/json; charset=utf-8\",\r\n\t\t\tdataType: \"json\",\r\n\t\t\tdata: JSON.stringify(params)\r\n\t\t});\r\n\t\trequest.done(function (data) {\r\n\r\n\t\t\tif (data.Type && data.Type === \"Redirect\") {\r\n\t\t\t\tshvenergy.modal.hideModal();\r\n\t\t\t\twindow.location.href = data.RedirectUrl;\r\n\t\t\t} else {\r\n\t\t\t\trenderPopup(data, { replaceContent: shouldReplaceContent });\r\n\t\t\t}\r\n\r\n\r\n\t\t});\r\n\t\trequest.fail(function (jqXhr, error, errorThrown) {\r\n\r\n\t\t\t//console.log(jqXhr);\r\n\t\t\t//console.log(jqXhr.responseJSON.Message);\r\n\t\t\t//console.log(error);\r\n\t\t\t//console.log(errorThrown);\r\n\r\n\t\t\tif (jqXhr.status && jqXhr.status === 400) {\r\n\t\t\t\tshvenergy.modal.showModal(`Request failed: ${jqXhr.responseJSON.Message}`);\r\n\t\t\t} else {\r\n\t\t\t\tshvenergy.modal.showModal(`Request failed: ${errorThrown}`);\r\n\t\t\t}\r\n\r\n\t\t});\r\n\t\trequest.always(function () {\r\n\r\n\t\t\tshvenergy.modal.isLoadingStore.isLoading = false;\r\n\t\t\tisFetchingContentStore.isFecthing = false;\r\n\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tfunction checkForm() {\r\n\r\n\t\tlet emailIsValid = false;\r\n\t\tlet quoteNumberIsValid = false;\r\n\r\n\t\tconst requiredEmailErrorMessage = $(\"#requiredEmailErrorMessage\");\r\n\t\tconst invalidEmailErrorMessage = $(\"#invalidEmailErrorMessage\");\r\n\t\tconst requiredQuoteNumberMessage = $(\"#requiredQuoteNumberMessage\");\r\n\r\n\t\trequiredEmailErrorMessage.addClass(\"hide\");\r\n\t\tinvalidEmailErrorMessage.addClass(\"hide\");\r\n\t\trequiredQuoteNumberMessage.addClass(\"hide\");\r\n\r\n\t\t//E-mail\r\n\t\tif (shvenergy.utils.validateEmail($(\"#quoteRetrievalFormEmail\").val())) {\r\n\t\t\tinvalidEmailErrorMessage.addClass(\"hide\");\r\n\t\t\trequiredEmailErrorMessage.addClass(\"hide\");\r\n\t\t\temailIsValid = true;\r\n\t\t} else {\r\n\r\n\t\t\tinvalidEmailErrorMessage.removeClass(\"hide\");\r\n\r\n\t\t\tif ($(\"#quoteRetrievalFormEmail\").val().length <= 0) {\r\n\t\t\t\trequiredEmailErrorMessage.removeClass(\"hide\");\r\n\t\t\t\tinvalidEmailErrorMessage.addClass(\"hide\");\r\n\t\t\t\temailIsValid = false;\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\t//quoteNumber\r\n\t\tif ($(\"#quoteRetrievalFormQuoteNumber\").val().length > 0) {\r\n\t\t\trequiredQuoteNumberMessage.addClass(\"hide\");\r\n\t\t\tquoteNumberIsValid = true;\r\n\t\t} else {\r\n\t\t\trequiredQuoteNumberMessage.removeClass(\"hide\");\r\n\t\t\tquoteNumberIsValid = false;\r\n\t\t}\r\n\r\n\t\treturn emailIsValid && quoteNumberIsValid;\r\n\r\n\t}\r\n\r\n\tfunction getQuote(e) {\r\n\t\te.preventDefault();\r\n\r\n\t\tif (!checkForm()) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tshvenergy.tracking.trackEvent(trackingCategory, \"click\", \"Go to quote\");\r\n\r\n\t\tlet data = {\r\n\t\t\tquoteId: $(\"#quoteRetrievalFormQuoteNumber\").val().trim(),\r\n\t\t\temail: $(\"#quoteRetrievalFormEmail\").val().trim()\r\n\t\t};\r\n\r\n\t\tfetchApi(data, getQuoteEndpoint);\r\n\r\n\t}\r\n\r\n\tfunction suspendQuoteRetrievalBlock() {\r\n\t\tshvenergy.cookies.setCookie(\"_shvenergy_retrive_lpgquote_closed\", \"closed\", 1);\r\n\t\tquoteRetrivalBlock.removeClass(\"isVisible\");\r\n\t\twindow.setTimeout(() => {\r\n\t\t\tquoteRetrivalBlock.remove();\r\n\t\t\t$(\".page-footer__bottom\").removeClass(\"page-footer__bottom--extrabottompadding\");\r\n\t\t}, 310);\r\n\t}\r\n\r\n\tfunction setupEventHandlers() {\r\n\r\n\t\t$(document).on(\"click\", \"button[data-toggle-getquoteform]\", function () {\r\n\t\t\tquoteRetrivalBlock.toggleClass(\"formIsVisible\");\r\n\t\t\tquoteRetrivalBlock.find(\"form\").slideToggle();\r\n\r\n\t\t\tvar trackLabel = quoteRetrivalBlock.hasClass(\"formIsVisible\") ? \"show form\" : \"hide form\";\r\n\t\t\tshvenergy.tracking.trackEvent(trackingCategory, \"toggle form clicked\", trackLabel);\r\n\r\n\t\t});\r\n\r\n\t\t$(document).on(\"click\", \"button[data-suspend-getquoteform]\", function () {\r\n\t\t\tsuspendQuoteRetrievalBlock();\r\n\t\t});\r\n\r\n\t\t//$(\"#quoteRetrievalFormEmail\").on(\"keyup\", function() {\r\n\t\t//\tcheckForm();\r\n\t\t//});\r\n\t\t//$(\"#quoteRetrievalFormEmail\").on(\"keyup\", function () {\r\n\t\t//\tcheckForm();\r\n\t\t//});\r\n\r\n\t\t$(document).on(\"click\", \"button[data-getquote]\", function (e) {\r\n\t\t\tgetQuote(e);\r\n\t\t});\r\n\r\n\t\t$(document).on(\"click\", \"[data-getapi]\", function () {\r\n\t\t\tfetchApi($(this).data(\"params\"), $(this).data(\"apiurl\"));\r\n\t\t});\r\n\r\n\t\t$(document).on(\"click\", \"[data-suspend]\", function () {\r\n\t\t\tsuspendQuoteRetrievalBlock();\r\n\t\t});\r\n\t}\r\n\r\n\tif (pageHasQuoteRetrievalBlock && templateId !== \"\") {\r\n\r\n\t\tvar cookieName = \"_shvenergy_retrive_lpgquote\";\r\n\r\n\t\tif (shvenergy.cookies.hasCookieCategoryConsent(cookieName)) {\r\n\t\t\tif (shvenergy.cookies.getCookie(cookieName)) {\r\n\t\t\t\t//if the enduser has given consent to the _shvenergy_retrive_lpgquote and the cookie exists\r\n\r\n\t\t\t\tsetupEventHandlers();\r\n\r\n\t\t\t\t//console.log(\"templateId: \", templateId);\r\n\r\n\t\t\t\tconst request = $.ajax({\r\n\t\t\t\t\ttype: \"GET\",\r\n\t\t\t\t\turl: `${retrieveLpgQuoteEndpoint}${templateId}`,\r\n\t\t\t\t\tcontentType: \"application/json; charset=utf-8\",\r\n\t\t\t\t\tdataType: \"json\"\r\n\t\t\t\t});\r\n\t\t\t\trequest.done(function (data) {\r\n\r\n\t\t\t\t\tif (data.Status && data.Status === \"true\") {\r\n\r\n\t\t\t\t\t\tconsole.log(data);\r\n\r\n\t\t\t\t\t\tquoteRetrivalBlock.html(retrieveLpgQuoteHtml(data));\r\n\t\t\t\t\t\tquoteRetrivalBlock.attr(\"hidden\", false);\r\n\t\t\t\t\t\t$(\".page-footer__bottom\").addClass(\"page-footer__bottom--extrabottompadding\");\r\n\r\n\t\t\t\t\t\tif (data.Position && data.Position !== \"\") {\r\n\t\t\t\t\t\t\tquoteRetrivalBlock.addClass(data.Position);\r\n\t\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t//console.log(\"FALSE\");\r\n\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t});\r\n\t\t\t\trequest.fail(function (jqXhr, error, errorThrown) {\r\n\r\n\t\t\t\t\t//console.log(jqXhr);\r\n\t\t\t\t\t//console.log(jqXhr.responseJSON.Message);\r\n\t\t\t\t\t//console.log(error);\r\n\t\t\t\t\t//console.log(errorThrown);\r\n\r\n\t\t\t\t\tif (jqXhr.status && jqXhr.status === 400) {\r\n\t\t\t\t\t\tshvenergy.modal.showModal(`Request failed: ${jqXhr.responseJSON.Message}`);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tshvenergy.modal.showModal(`Request failed: ${errorThrown}`);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t});\r\n\t\t\t\trequest.always(function () {\r\n\t\t\t\t\t//do nothing\r\n\r\n\t\t\t\t\tif (quoteResultId && quoteResultId.length > 0) {\r\n\t\t\t\t\t\tlet data = {\r\n\t\t\t\t\t\t\tQuoteResultId: quoteResultId\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\tfetchApi(data, getQuoteByIdEndpoint);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n})(jQuery);","shvenergy.servicemenu = (function ($) {\r\n\t\"use strict\";\r\n\r\n\tfunction init() {\r\n\r\n\t\tvar allDropdowns = $(\".js-servicemenu-dropdown\");\r\n\r\n\t\tallDropdowns.each(function () {\r\n\r\n\t\t\tvar dropdown = $(this);\r\n\t\t\tvar otherdropdowns = allDropdowns.not(dropdown);\r\n\r\n\t\t\tvar but = dropdown.find(\"button\");\r\n\r\n\t\t\tbut.on(\"click\", function () {\r\n\r\n\t\t\t\tvar aria = but.attr(\"aria-expanded\") === \"true\" ? \"false\" : \"true\";\r\n\r\n\t\t\t\tbut.toggleClass(\"selected\").attr(\"aria-expanded\", aria);\r\n\t\t\t\totherdropdowns.find(\"button\").removeClass(\"selected\");\r\n\t\t\t});\r\n\r\n\t\t});\r\n\r\n\t\t$(document).on(\"click\", function (e) {\r\n\t\t\tif ($(e.target).closest(\".js-servicemenu-dropdown\").length === 0) {\r\n\t\t\t\tallDropdowns.find(\"button\").removeClass(\"selected\").attr(\"aria-expanded\", \"false\");\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tinit();\r\n})(jQuery);","shvenergy.skipheader = (function ($) {\r\n \"use strict\";\r\n\r\n function init() {\r\n $(\".skip-header\").on('click', (e) => {\r\n $(\"#main\").attr(\"tabindex\", \"-1\");\r\n });\r\n }\r\n\r\n init();\r\n\r\n})(jQuery);","shvenergy.somesharebuttons = (function ($) {\r\n \"use strict\";\r\n\r\n // Social Media share buttons\r\n function init() {\r\n var inclusiveSoMeButtons = document.querySelectorAll(\"[data-inclusive-menu-opens]\");\r\n\r\n inclusiveSoMeButtons.forEach(function (SoMeButton) {\r\n\r\n if (SoMeButton) {\r\n new MenuButton(SoMeButton);\r\n }\r\n\r\n });\r\n\r\n $('ul.so-me-share__list a').on(\"click\", (el) => {\r\n trackArticleShareClick(el);\r\n });\r\n\r\n $('ul.so-me-share__list a').on(\"auxclick\", (el) => {\r\n trackArticleShareClick(el);\r\n });\r\n\r\n function trackArticleShareClick(el) {\r\n let soMeButton = $(el.target).closest(\"a\")[0],\r\n name = soMeButton.dataset.socialPlatform.trim();\r\n\r\n shvenergy.tracking.trackRawEventData({\r\n 'event': 'clickArticleShare',\r\n 'socialName': name\r\n });\r\n }\r\n\r\n }\r\n\r\n init();\r\n\r\n})(jQuery);","var shvenergy = shvenergy || {};\r\n\r\nshvenergy.stickycta = (function ($) {\r\n\t'use strict';\r\n\r\n\t// /sitecore/content/Global settings/RenderingParameters/StickyCta/Triggers\r\n\tconst EntryIntent = {\r\n\t\tTRIGGER_ON_LOAD: 'trigger-on-page-load',\r\n\t\tTRIGGER_ON_EXIT: 'trigger-on-page-intent',\r\n\t\tTRIGGER_ON_SCROLL: 'trigger-on-scroll',\r\n\t};\r\n\r\n\tconst ctaRoot = $('[data-sticky-cta]');\r\n\tconst pageHasStickyCta = ctaRoot.length > 0;\r\n\r\n\t// This has nothing to do with this element,\r\n\t// however we are not allowed to show this element if there is a quote retrieval form on the page\r\n\tconst quoteRetrivalBlock = $('.quote-retrieval:not([hidden])');\r\n\tconst pageHasQuoteRetrievalBlock = quoteRetrivalBlock.length > 0;\r\n\r\n\tif (!pageHasStickyCta || pageHasQuoteRetrievalBlock) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst fetchSchedule = () => new Promise((resolve) => {\r\n\t\tif (!pageHasStickyCta) return resolve(false);\r\n\r\n\t\tconst url = $(ctaRoot).data('activeapi');\r\n\t\tconst PageId = $(ctaRoot).data('activepageid');\r\n\r\n\t\t$.post({ url, contentType: 'application/json' }, JSON.stringify({ PageId }))\r\n\t\t\t.done((data) => {\r\n\t\t\t\tresolve(data.IsActive);\r\n\t\t\t})\r\n\t\t\t.fail(() => resolve(false));\r\n\t});\r\n\r\n\tconst createCTAHandler = (ctaConfig) => {\r\n\t\tconst {\r\n\t\t\tvisibleClass,\r\n\t\t} = ctaConfig;\r\n\r\n\t\tlet ctaDuration = Number($(ctaRoot).data('duration') || 0) * 1000;\r\n\t\tif (isNaN(ctaDuration)) ctaDuration = 0;\r\n\r\n\t\tlet timer;\r\n\t\tlet onHideHandlers = [];\r\n\t\tlet onShowHandlers = [];\r\n\t\tlet shouldShowAgain = true;\r\n\r\n\t\tconst fetchSchedulePromise = fetchSchedule();\r\n\r\n\t\treturn {\r\n\t\t\tget visible() {\r\n\t\t\t\treturn $(ctaRoot).hasClass(visibleClass);\r\n\t\t\t},\r\n\t\t\tshow() {\r\n\t\t\t\tif (!this.visible && shouldShowAgain) {\r\n\t\t\t\t\tfetchSchedulePromise.then(isActive => {\r\n\t\t\t\t\t\tif (!isActive) return;\r\n\r\n\t\t\t\t\t\t$(ctaRoot).addClass(visibleClass);\r\n\r\n\t\t\t\t\t\tif (ctaDuration > 0) {\r\n\t\t\t\t\t\t\ttimer = setTimeout(() => {\r\n\t\t\t\t\t\t\t\tthis.hide();\r\n\t\t\t\t\t\t\t}, ctaDuration);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tonShowHandlers.forEach(fn => fn());\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\thide() {\r\n\t\t\t\tif (this.visible) {\r\n\t\t\t\t\tif (timer) clearTimeout(timer);\r\n\t\t\t\t\t$(ctaRoot).removeClass(visibleClass);\r\n\t\t\t\t\tshouldShowAgain = false;\r\n\r\n\t\t\t\t\tonHideHandlers.forEach(fn => fn());\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t/**\r\n\t\t\t * @param {'hide' | 'show'} event \r\n\t\t\t * @param {Function} fn \r\n\t\t\t */\r\n\t\t\ton(event, fn) {\r\n\t\t\t\tif (event === 'show') {\r\n\t\t\t\t\tonShowHandlers.push(fn);\r\n\t\t\t\t}\r\n\t\t\t\tif (event === 'hide') {\r\n\t\t\t\t\tonHideHandlers.push(fn);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t/**\r\n\t\t\t * @param {'hide' | 'show'} event \r\n\t\t\t * @param {Function} fn \r\n\t\t\t */\r\n\t\t\toff(event, fn) {\r\n\t\t\t\tif (event === 'show') {\r\n\t\t\t\t\tonShowHandlers = onShowHandlers.filter(h => h !== fn);\r\n\t\t\t\t}\r\n\t\t\t\tif (event === 'hide') {\r\n\t\t\t\t\tonHideHandlers = onHideHandlers.filter(h => h !== fn);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\tconst isLargeCTA = $(ctaRoot).hasClass('sticky-cta-v2');\r\n\r\n\tconst ctaHandler = isLargeCTA\r\n\t\t? createCTAHandler({\r\n\t\t\tvisibleClass: 'sticky-cta-v2--visible',\r\n\t\t})\r\n\t\t: createCTAHandler({\r\n\t\t\tvisibleClass: 'isVisible'\r\n\t\t});\r\n\r\n\tconst triggerOnScroll = () => {\r\n\t\tconst ctaTriggerDiv = document.querySelector('div[data-cta-trigger]');\r\n\r\n\t\tconst divIntersectionObserver = new IntersectionObserver(entries => {\r\n\t\t\tif (entries.some(entry => entry.isIntersecting)) {\r\n\t\t\t\tctaHandler.show();\r\n\t\t\t}\r\n\t\t}, {\r\n\t\t\trootMargin: '0px',\r\n\t\t\tthreshold: 0.1,\r\n\t\t});\r\n\r\n\t\treturn {\r\n\t\t\tinit() {\r\n\t\t\t\tif (!ctaTriggerDiv) return;\r\n\r\n\t\t\t\tctaHandler.on('hide', () => {\r\n\t\t\t\t\tdivIntersectionObserver.unobserve(ctaTriggerDiv);\r\n\t\t\t\t});\r\n\r\n\t\t\t\tdivIntersectionObserver.observe(ctaTriggerDiv);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tconst triggerOnPageLoad = () => ({\r\n\t\tinit() {\r\n\t\t\tctaHandler.show();\r\n\t\t}\r\n\t});\r\n\r\n\tconst triggerOnExitIntent = () => {\r\n\t\tconst mediaQueryList = window.matchMedia(\r\n\t\t\t`(max-width: ${shvenergy.utils.breakpointsObj.medium}px)`\r\n\t\t);\r\n\r\n\t\tconst desktopIntentListener = (handler) => {\r\n\t\t\tdocument.addEventListener('mouseleave', handler);\r\n\r\n\t\t\treturn () => {\r\n\t\t\t\tdocument.removeEventListener('mouseleave', handler);\r\n\t\t\t};\r\n\t\t};\r\n\r\n\t\tconst mobileIntentListener = (handler) => {\r\n\t\t\tlet previousScrollPosition = window.scrollY;\r\n\t\t\tlet currentScrollPosition = window.scrollY;\r\n\t\t\tlet threshold = Number.NEGATIVE_INFINITY;\r\n\r\n\t\t\tconst triggerHandler = () => {\r\n\t\t\t\tconst isScrollingDown = previousScrollPosition < currentScrollPosition;\r\n\r\n\t\t\t\tif (isScrollingDown && currentScrollPosition >= 200) {\r\n\t\t\t\t\tconst currentThreshold = Math.max(0, currentScrollPosition - 700);\r\n\t\t\t\t\tif (currentThreshold > threshold) {\r\n\t\t\t\t\t\tthreshold = currentThreshold;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!isScrollingDown && currentScrollPosition <= threshold) {\r\n\t\t\t\t\thandler();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tpreviousScrollPosition = currentScrollPosition;\r\n\t\t\t}\r\n\r\n\t\t\tconst onScroll = (e) => {\r\n\t\t\t\tcurrentScrollPosition = window.scrollY;\r\n\r\n\t\t\t\ttriggerHandler();\r\n\t\t\t}\r\n\r\n\t\t\tdocument.addEventListener('scroll', onScroll);\r\n\t\t\ttriggerHandler();\r\n\r\n\t\t\treturn () => {\r\n\t\t\t\tdocument.removeEventListener('scroll', onScroll);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tlet previousMatch;\r\n\t\tlet unsubscribe;\r\n\t\tconst registerListener = (isMobile) => {\r\n\t\t\tif (isMobile === previousMatch) return;\r\n\r\n\t\t\tpreviousMatch = isMobile;\r\n\r\n\t\t\tif (unsubscribe) unsubscribe();\r\n\r\n\t\t\tconst listener = isMobile ? mobileIntentListener : desktopIntentListener;\r\n\r\n\t\t\tunsubscribe = listener(() => {\r\n\t\t\t\tctaHandler.show();\r\n\t\t\t})\r\n\t\t};\r\n\r\n\t\treturn {\r\n\t\t\tinit() {\r\n\t\t\t\tregisterListener(mediaQueryList.matches);\r\n\t\t\t\tmediaQueryList.addEventListener('change', (e) => {\r\n\t\t\t\t\tregisterListener(e.matches);\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tconst getEntryIntent = () => {\r\n\t\tconst intent = $(ctaRoot).data('ctatrigger') || EntryIntent.TRIGGER_ON_LOAD;\r\n\r\n\t\tswitch (intent) {\r\n\t\t\tcase EntryIntent.TRIGGER_ON_LOAD: {\r\n\t\t\t\treturn triggerOnPageLoad();\r\n\t\t\t}\r\n\t\t\tcase EntryIntent.TRIGGER_ON_EXIT: {\r\n\t\t\t\treturn triggerOnExitIntent();\r\n\t\t\t}\r\n\t\t\tcase EntryIntent.TRIGGER_ON_SCROLL: {\r\n\t\t\t\treturn triggerOnScroll();\r\n\t\t\t}\r\n\t\t\tdefault: {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tinit() { } // do nothing\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t$(function () {\r\n\t\tconst entryIntent = getEntryIntent();\r\n\t\tentryIntent.init();\r\n\r\n\t\t$(ctaRoot).find('[data-sticky-cta-close]').on('click', function () {\r\n\t\t\tctaHandler.hide();\r\n\t\t});\r\n\t});\r\n})(jQuery);\r\n","var Tabs = {\r\n\r\n\tinit: function () {\r\n\t\tthis.bindUIfunctions();\r\n\t\tthis.pageLoadCorrectTab();\r\n\t},\r\n\r\n\tbindUIfunctions: function () {\r\n\r\n\t\t// Delegation\r\n\t\t$(document)\r\n\t\t\t.on(\"click\", \".transformer-tabs a[href^='#']:not('.active')\", function (event) {\r\n\t\t\t\tshvenergy.tracking.trackEvent(\"product tab\", \"click\", $(this).find(\"span\").text());\r\n\t\t\t\tTabs.changeTab(this.hash);\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t})\r\n\t\t\t.on(\"click\", \".transformer-tabs a.active\", function (event) {\r\n\t\t\t\tTabs.toggleMobileMenu(event, this);\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t});\r\n\r\n\t},\r\n\r\n\tchangeTab: function (hash) {\r\n\r\n\r\n\t\tvar anchor = $(\"[href='\" + hash + \"']\");\r\n\t\tvar div = $(hash);\r\n\r\n\t\t// activate correct anchor (visually)\r\n\t\tanchor.addClass(\"active\").parent().addClass(\"active\").siblings().find(\"a\").removeClass(\"active\");\r\n\t\tanchor.parent().siblings().removeClass(\"active\");\r\n\r\n\t\t// activate correct div (visually)\r\n\t\tdiv.addClass(\"active\").siblings().removeClass(\"active\");\r\n\r\n\t\t// update URL, no history addition\r\n\t\t// You'd have this active in a real situation, but it causes issues in an