{"version":3,"sources":["master.js","helpers/utility.helper.js","lib/aspnet-validation.js","01-atoms/overlay/novicell.overlay.js","grid-editors/accordion/accordion.js","03-organisms/list/list.js","grid-editors/brand-slider/brand-slider.js","grid-editors/embed-media/embed-media.js","03-organisms/contact-wizard/contact-wizard.js","grid-editors/key-numbers/key-numbers.js","grid-editors/slideshow/slideshow.js","grid-editors/some-share/facebookShareLinks.js","02-molecules/filter-section/filter-section.js","02-molecules/top-banner/top-banner.js","03-organisms/navigation/site-navigation/site-navigation.js"],"names":["novicell","projectName","resize","keyNumbers","init","onScroll","document","addEventListener","cookieInfo","slideshow","list","wizard","brandSlider","filterSection","embedMedia","accordion","helper","buttonsWithLink","aspnetValidation","setTimeout","svg4everybody","e","window","onscroll","debounce","onresize","Element","prototype","matches","msMatchesSelector","webkitMatchesSelector","closest","s","el","this","call","parentElement","parentNode","nodeType","querySelectorAll","length","i","classList","add","findAncestor","cls","contains","toggleClass","className","toggle","classes","split","existingIndex","indexOf","splice","push","join","hasClass","isVisible","element","rect","getBoundingClientRect","html","documentElement","top","left","bottom","innerHeight","clientHeight","right","innerWidth","clientWidth","ValidationService","bootstrap","overlay","overlayElem","overlayContainer","overlayContent","backdrop","content","self","options","isVideo","constructOverlay","btnClose","createElement","id","target","destroy","querySelector","appendChild","hasOwnProperty","class","setupOverlay","innerHTML","setupOverlayContainer","type","keyCode","onLoaded","create","opts","onCreate","selector","console","warn","currElement","error","videoId","src","autoplay","iframe","setAttribute","outerHTML","removeChild","removeEventListener","remove","onDestroy","accordionTriggers","accordionImages","itemOpenClass","imageOverlaySelector","accordionImageOverlay","openAccordionItem","parent","currentTarget","closeItem","openItems","currentItem","closeAllItemsInAccordion","item","openImageInOverlay","imageClicked","event","getAttribute","data","listWrappers","Vue","directive","bind","binding","vnode","arg","map","index","toUpperCase","substring","context","value","currentList","listItems","filteredListItems","pageSize","pageStep","hideShowMore","usePaging","filters","ellipsis","mounted","computed","colorThemeClass","ListTheme","methods","showMore","addSelectedFilters","filterItem","filterGroup","currentGroup","filterItems","_filteredListItem","k","currentFilter","filter","selectedGroup","FilterGroups","find","group","Id","FilterItems","containsObject","obj","some","Name","getDataFilters","dataFilterString","getFilterItemsFromGroup","groupName","slideshowElm","Flickity","cellAlign","contain","wrapAround","pageDots","groupCells","playButtons","preventDefault","videoType","iframeContainer","currentButton","dataset","createIframe","name","wizardData","foldOut","countryOptions","contactsNotAvailable","showReadyAnimation","regionControlActive","chosenOptions","animalSegment","region","country","employees","currentContactStatus","status","countryControlActive","attributePhone","phone","replace","attributeEmail","email","toggleWizard","setAnimalSegment","findContact","setRegion","chosenRegion","RegionTitle","Countries","_this","possibleEmployees","Employees","emp","correctCountry","LocationList","includes","correctAnimalSegment","AnimalSegments","seg","slice","resetFoundContact","currentkeyNumber","countUp","CountUp","useEasing","useGrouping","separator","start","slideshows","_loop","cellSelector","arrowShape","on","select","resetVideoIframes","iframes","getElementsByTagName","facebookShareLinks","getElementsByClassName","facebookShareLink","shareOnFacebook","u","location","href","t","title","open","encodeURIComponent","filterDropdDownActiveClass","handleEsc","closeAll","classHolder","y","filterDropdownTriggers","newTarget","topbanners","autoPlayMilliSeconds","inViewport","addClassForSlideHeight","sliderElement","flkty","videosInSlider","slidesCount","$refs","slideshowList","children","videoNodesInSlider","Array","observeVideoSliderInViewport","initSlider","resizeSlider","IntersectionObserver","sliderIsInViewPort","threshold","observe","$el","entries","forEach","entry","isIntersecting","videoEl","videoSrc","selectCell","playVideo","currentSlide","currentVideo","stopVideosInThisSlider","currentTime","play","pause","autoPlay","pauseAutoPlayOnHover","prevNextButtons","ready","selectedCell","globalHeader","getElementById","hasBackground","onlyBgOutsideTopBanner","burgerActive","showDropDown","showMobileDropDownLevel2","showMobileDropDownLevel3","languagePicker","languagePickerList","languagePickerActiveClass","searchIsOpen","searchInput","pageHeader","handleScroll","hideAllDropDowns","searchInputField","languagePickerClickTrigger","languagePickerCloseOverlayHandler","languagePickerHandleEsc","languagePickerHandleClick","languagePickerCloseLanguagePicker","handleClick","targetElement","pageHeaderRect","globalHeaderRect","height","toggleBurgerActive","hideAllMobileDropDownsLevel2","hideAllMobileDropDownsLevel3","foldOutMobileNavOnOpen","body","stopProp","stopPropagation","_this2","Object","keys","key","set","mobileFindTriggerAndClick","triggerParent","triggerLevel","trigger","click","activePage","selected","activePageLevel","triggerParent3","triggerParent2","_this3","_this4","toggleNavigation","elId","matchMedia","stopImmediatePropagation","show","toggleMobileSubLevel3","toggleMobileSubLevel2","searchButtonClick","closeSearchOverlay","openSearchOverlay","searchHandleClick","focus","blur"],"mappings":"AAAA,aAMA,IAAIA,SAAWA,UAAY,GACvBC,YAAcA,aAAe,GAmCjC,SAASC,SACLF,SAASG,WAAWC,OAExB,SAASC,WACLL,SAASG,WAAWC,OApCxBE,SAASC,iBAAiB,mBAAoB,WAC1CP,SAASQ,WAAWJ,OACpBJ,SAASS,UAAUL,OACnBJ,SAASU,KAAKN,OACdJ,SAASW,OAAOP,OAChBJ,SAASY,YAAYR,OACrBJ,SAASa,cAAcT,OACvBJ,SAASG,WAAWC,OACpBJ,SAASc,WAAWV,OACpBJ,SAASe,UAAUX,OAGnBJ,SAASgB,OAAOC,kBAGhBjB,SAASkB,iBAAiBd,OAG1Be,WAAW,WACPC,oBAIRd,SAASC,iBAAiB,SAAU,SAAUc,GAC1CrB,SAASG,WAAWC,SAIxBkB,OAAOC,SAAWvB,SAASwB,SAASnB,SAAU,KAE9CiB,OAAOG,SAAWzB,SAASwB,SAAStB,OAAQ,KAUvCwB,QAAQC,UAAUC,UACnBF,QAAQC,UAAUC,QAAUF,QAAQC,UAAUE,mBAC9CH,QAAQC,UAAUG,uBAGjBJ,QAAQC,UAAUI,UACnBL,QAAQC,UAAUI,QAAU,SAASC,GACjC,IAAIC,EAAKC,KAET,EAAG,CACC,GAAIR,QAAQC,UAAUC,QAAQO,KAAKF,EAAID,GACnC,OAAOC,EAEXA,EAAKA,EAAGG,eAAiBH,EAAGI,iBAChB,OAAPJ,GAA+B,IAAhBA,EAAGK,UAC3B,OAAO,QC/DXtC,SAAWA,UAAY,IAElBgB,OAAShB,SAASgB,QAAU,IAAI,WAErCkB,KAAKjB,gBAAkB,WACnB,IAAIA,EAAkBX,SAASiC,iBAAiB,eAChD,GAAKtB,KAAmBA,EAAgBuB,QAAU,GAIlD,IAAK,IAAIC,EAAI,EAAGA,EAAIxB,EAAgBuB,OAAQC,IAAK,CACzBxB,EAAgBwB,GACTJ,WAEpBK,UAAUC,IAAI,sBAI7BT,KAAKU,aAAe,SAAUX,EAAIY,GAC9B,GAAU,MAANZ,EAGJ,MAAQA,EAAKA,EAAGG,iBAAmBH,EAAGS,UAAUI,SAASD,IACrD,OAAOZ,GAIfC,KAAKa,YAAc,SAAUd,EAAIe,GAC7B,GAAIf,EAAGS,UACHT,EAAGS,UAAUO,OAAOD,OACjB,CACH,IAAIE,EAAUjB,EAAGe,UAAUG,MAAM,KAC7BC,EAAgBF,EAAQG,QAAQL,GAEf,GAAjBI,EACAF,EAAQI,OAAOF,EAAe,GAE9BF,EAAQK,KAAKP,GAGjBf,EAAGe,UAAYE,EAAQM,KAAK,OAIpCtB,KAAKuB,SAAW,SAAUxB,EAAIe,GAC1B,QAAIf,EAAGS,UAAUI,SAASE,IAO9Bd,KAAKwB,UAAY,SAAUC,GACvB,IAAIC,EAAOD,EAAQE,wBACfC,EAAOxD,SAASyD,gBAEpB,OACgB,GAAZH,EAAKI,KACQ,GAAbJ,EAAKK,MACLL,EAAKM,SAAW5C,OAAO6C,aAAeL,EAAKM,eAC3CR,EAAKS,QAAU/C,OAAOgD,YAAcR,EAAKS,gBC5DjDvE,SAAWA,UAAY,IAElBkB,iBAAmBlB,SAASkB,kBAAoB,IAAI,WACzDgB,KAAK9B,KAAO,YAEA,IAAIc,iBAAiBsD,mBAC3BC,eCCNzE,SAAWA,UAAY,IAElB0E,QAAU1E,SAAS0E,SAAW,IAAI,WACvC,IAEIC,EACAC,EACAC,EACAC,EACAC,EANAC,EAAO9C,KACP+C,EAAU,GASVC,GAAU,EAkGd,SAASC,IA8ET,IAEQC,GAxDJN,EAAWxE,SAAS+E,cAAc,QACzB3C,UAAUC,IAAI,iBACvBmC,EAASQ,GAAK,mBAEdR,EAASvE,iBAAiB,QAAS,SAASc,IACrCA,EAAEkE,OAAO7C,UAAUI,SAAS,iBAAmBzB,EAAEkE,OAAO7C,UAAUI,SAAS,6BAC1EkC,EAAKQ,YAKblF,SAASmF,cAAc,QAAQC,YAAYZ,GAM/C,YAEIH,EAAcrE,SAAS+E,cAAc,QACzB3C,UAAUC,IAAI,gBAC1BgC,EAAYW,GAAK,kBAGbL,EAAQU,eAAe,UACvBhB,EAAYjC,UAAUC,IAAIsC,EAAQW,OAKtCd,EAASY,YAAYf,GAjDrBkB,GAoDJ,YAEIjB,EAAmBtE,SAAS+E,cAAc,QACzB3C,UAAUC,IAAI,4BAG/BkC,EAAiBvE,SAAS+E,cAAc,QACzB3C,UAAUC,IAAI,yBAE1BuC,GACCL,EAAenC,UAAUC,IAAI,gCAIjCkC,EAAeiB,UAAYf,EAC3BH,EAAiBc,YAAYb,GAG7BF,EAAYe,YAAYd,GAnExBmB,IAwEIX,EAAW9E,SAAS+E,cAAc,WAC7B3C,UAAUC,IAAI,qBAAsB,iBAC7CyC,EAASY,KAAO,SAChBZ,EAASE,GAAK,wBAGdF,EAAS7E,iBAAiB,QAASyE,EAAKQ,SAGxClF,SAASC,iBAAiB,UAAW,SAAUc,GACzB,KAAdA,EAAE4E,SACFjB,EAAKQ,YAKbX,EAAea,YAAYN,GAlF3B9E,SAASyD,gBAAgBrB,UAAUC,IAAI,aAGP,mBAArBsC,EAAQiB,UACfjB,EAAQiB,WAlHhBhE,KAAKiE,OAAS,SAAUC,GAcpB,GARgC,mBAHhCnB,EAAUmB,GAGSC,UACfpB,EAAQoB,WANDnE,KAUNsD,UAGDP,EAAQU,eAAe,aAAoC,OAArBV,EAAQqB,SAAmB,CACjE,IAAI3C,EAAUrD,SAASmF,cAAcR,EAAQqB,UAE7C,IAAI3C,EAKA,YADA4C,QAAQC,KAAK,gHAHbzB,EAAUpB,EAAQmC,UAClBX,SAMH,GAAIF,EAAQU,eAAe,YAAkC,OAApBV,EAAQtB,QAAkB,CACpE,IAAI8C,EAAcxB,EAAQtB,QAE1B,IAAI8C,EAKA,YADAF,QAAQC,KAAK,gHAHbzB,EAAU0B,EAAYX,UACtBX,QAOH,CAAA,IAAIF,EAAQU,eAAe,WAiC5B,YADAY,QAAQG,MAAM,oFA/Bd,GAAwB,OAApBzB,EAAQ0B,QA0BR,YADAJ,QAAQC,KAAK,mIAxBb,IAAII,EAAM,GAGV,GAFA1B,GAAU,EAES,SAAhBD,EAAQe,KACPY,EAAM,kCAAoC3B,EAAQ0B,QAAU,aAAe1B,EAAQ4B,aAElF,CAAA,GAAmB,WAAhB5B,EAAQe,KAIZ,OAHAY,EAAM,iCAAmC3B,EAAQ0B,QAAU,aAAe1B,EAAQ4B,SAAW,SAMjG,IAAIC,EAASxG,SAAS+E,cAAc,UACpCyB,EAAOC,aAAa,MAAOH,GAC3BE,EAAOC,aAAa,cAAe,GACnCD,EAAOC,aAAa,kBAAmB,IACvCD,EAAOC,aAAa,QAAS,QAC7BD,EAAOC,aAAa,SAAU,QAE9BhC,EAAU+B,EAAOE,UAEjB7B,MAaZjD,KAAKsD,QAAU,WACRlF,SAASmF,cAAc,sBAEtBd,EAAYvC,cAAc6E,YAAYtC,GACtCG,EAAS1C,cAAc6E,YAAYnC,GAGnCxE,SAAS4G,oBAAoB,QAASlC,EAAKQ,SAG3ClF,SAASyD,gBAAgBrB,UAAUyE,OAAO,YAAa,sBAGvDjC,GAAU,EAGuB,mBAAtBD,EAAQmC,WACfnC,EAAQmC,gBCjHpBpH,SAAWA,UAAY,IAElBe,UAAYf,SAASe,WAAa,IAAI,WAC3C,IAAMsG,EAAoB/G,SAASiC,iBAAiB,8BAC9C+E,EAAkBhH,SAASiC,iBAAiB,4BAC5CgF,EAAgB,uBAChBC,EAAuB,sCACvBC,EAAwBnH,SAASmF,cAAc+B,GA4BrD,SAASE,EAAkBrG,GACvB,IACIsG,EADctG,EAAEuG,cACKvF,WAEtBrC,SAASgB,OAAOyC,SAASkE,EAAQJ,GAChCM,EAAUF,KAQlB,SAAkC5G,GAG9B,IAFA,IAAI+G,EAAY/G,EAAUwB,iBAAiB,2CAElCE,EAAI,EAAGA,EAAIqF,EAAUtF,OAAQC,IAAK,CACvC,IAAIsF,EAAcD,EAAUrF,GAE5BoF,EAAUE,IAXVC,CAAyBL,EAAOtF,YACvBsF,EAeRjF,UAAUC,IAAI4E,IAGvB,SAASM,EAAUI,GACfA,EAAKvF,UAAUyE,OAAOI,GAG1B,SAASW,IACL,IAAIC,EAAeC,MAAMR,cAAcnC,cAAc,OAClCgC,EAAsBhC,cAAc,OAE1CsB,aAAa,WAAYoB,EAAaE,aAAa,QAEhErI,SAAS0E,QAAQyB,OAAO,CACpBP,MAAS,0BACTU,SAAYkB,IAjEpBtF,KAAK9B,KAAO,WACR,GAAKiH,KAAqBA,EAAkB7E,QAAU,GAAtD,CAIA,IAAK,IAAIC,EAAI,EAAGA,EAAI4E,EAAkB7E,OAAQC,IAAK,CAC1B4E,EAAkB5E,GAExBlC,iBAAiB,QAAS,SAAS6H,GAC9CV,EAAkBU,KAI1B,GAAId,KAAmBA,EAAgB9E,QAAU,GAIjD,IAAK,IAAIC,EAAI,EAAGA,EAAI6E,EAAgB9E,OAAQC,IAAK,CAC1B6E,EAAgB7E,GAEtBlC,iBAAiB,QAAS,WACnC2H,WC9BZlI,SAAWA,UAAY,IAElBU,KAAOV,SAASU,MAAQ,IAAI,WACjCwB,KAAK9B,KAAO,SAAUkI,GAClB,IAAMC,EAAejI,SAASiC,iBAAiB,iBAE/C,GAAKgG,EAAL,CAIAC,IAAIC,UAAU,OAAQ,CAClBC,KAAM,SAAUzG,EAAI0G,EAASC,GAEzB,IAAIC,EAAMF,EAAQE,IAAI1F,MAAM,KAAK2F,IAAI,SAACD,EAAKE,GACvC,OAAgB,EAARA,EAAaF,EAAI,GAAGG,cAAgBH,EAAII,UAAU,GAAKJ,IAChErF,KAAK,IAERoF,EAAMM,QAAQL,GAAOF,EAAQQ,SAIrC,IAAK,IAAI1G,EAAI,EAAGA,EAAI8F,EAAa/F,OAAQC,IAAK,CAC1C,IAAI2G,EAAcb,EAAa9F,GAE/B,IAAI+F,IAAI,CACJvG,GAAImH,EACJd,KAAM,CACFe,UAAW,GACXC,kBAAmB,GACnBC,SAAuD,EAA7CH,EAAYf,aAAa,kBACnCmB,SAAuD,EAA7CJ,EAAYf,aAAa,kBACnCoB,cAAc,EACdC,UAA0D,QAA/CN,EAAYf,aAAa,mBACpCsB,QAAS,IAEbA,QAAS,CACLC,SAAU,SAAUT,GAMhB,MAJgC,MAA5BA,EAAMA,EAAM3G,OAAS,KACrB2G,EAAQA,EAAMF,UAAU,EAAGE,EAAM3G,OAAS,IAG1C2G,EAAM3G,OAAS,IACR2G,EAEAA,EAAMF,UAAU,EAAG,KAAO,MAI7CY,QAAS,WACL3H,KAAKoH,kBAAoBpH,KAAKmH,UAC1BnH,KAAKwH,YACLxH,KAAKqH,SAAWrH,KAAKoH,kBAAkB9G,QAKxCN,KAAKqH,UAAYrH,KAAKoH,kBAAkB9G,SACvCN,KAAKuH,cAAe,IAG5BK,SAAU,CACNC,gBAAiB,WACb,MAA0B,kBAAnB7H,KAAK8H,UAAgC,UAAY,YAGhEC,QAAS,CACLC,SAAU,WACNhI,KAAKqH,UAAYrH,KAAKsH,SACnBtH,KAAKqH,UAAYrH,KAAKoH,kBAAkB9G,SACvCN,KAAKuH,cAAe,IAG5BU,mBAAoB,SAAUC,EAAYC,GACtC,IAAIC,EAAepI,KAAKyH,QAAQU,GAE3BC,GAAiBA,EAAa9H,SAC/B8H,EAAe,IAGnB,IAAIvB,EAAQuB,EAAajH,QAAQ+G,IACpB,EAATrB,EACAuB,EAAahH,OAAOyF,EAAO,GAE3BuB,EAAa/G,KAAK6G,GAGtBlI,KAAKyH,QAAQU,GAAeC,EAC5BpI,KAAKqI,eAETA,YAAa,WACT,IAAIC,EAAoBtI,KAAKmH,UAC7B,IAAK,IAAIoB,KAAKvI,KAAKyH,QACf,GAAIzH,KAAKyH,QAAQhE,eAAe8E,GAAI,CAChC,IAAIC,EAAgBxI,KAAKyH,QAAQc,GAE7BC,EAAclI,SACdgI,EAAoBA,EAAkBG,OAAO,SAAU1C,GACnD,IAAI2C,EAAgB3C,EAAK4C,aAAaC,KAAK,SAAUC,GACjD,OAAOA,EAAMC,IAAMP,IAGvB,GAAIG,EACA,OAAOA,EAAcK,YAAYH,KAAK,SAAUV,GAC5C,OAA+C,EAAxCM,EAAcrH,QAAQ+G,EAAWY,SAShE9I,KAAKoH,kBAAoBkB,GAE7BU,eAAgB,SAAUC,EAAKzK,GAC3B,OAAOA,EAAK0K,KAAK,SAAUnD,GACvB,OAAOkD,EAAIE,OAASpD,EAAKoD,QAIjCC,eAAgB,SAAUrD,GACtB,IAAIsD,EAAmB,GAEvB,GAAKtD,EAAKgD,aAAgBhD,EAAKgD,YAAYzI,OAA3C,CAIA,IAAK,IAAIC,EAAI,EAAGA,EAAIwF,EAAKgD,YAAYzI,OAAQC,IAAK,CAE9C8I,GADoBtD,EAAKgD,YAAYxI,GACeuI,GAGhDvI,EAAI,GAAKwF,EAAKgD,YAAYzI,SAC1B+I,GAAoB,KAG5B,OAAOA,IAEXC,wBAAyB,SAAUC,GAG/B,MAFkB,YC5ItCzL,SAAWA,UAAY,IAElBY,YAAcZ,SAASY,aAAe,IAAI,WAC/CsB,KAAK9B,KAAO,SAASkI,GACjB,IAAM1H,EAAcN,SAASiC,iBAAiB,iBAE9C,GAAI3B,EAIJ,IAAK,IAAI6B,EAAI,EAAGA,EAAI7B,EAAY4B,OAAQC,IACpC,CAAA,IAAMiJ,EAAe9K,EAAY6B,GACnB,IAAIkJ,SAAUD,EAAc,CAEtCE,UAAW,OACXC,SAAS,EACTC,YAAY,EACZC,UAAU,EACVC,WAAY,QClBxBhM,SAAWA,UAAY,IAElBc,WAAad,SAASc,YAAc,IAAI,WAC7C,IAAImL,EAAc3L,SAASiC,iBAAiB,6BAC5CL,KAAK9B,KAAO,WACR,IAAK,IAAI2I,EAAQ,EAAGA,EAAQkD,EAAYzJ,OAAQuG,IAAS,CACxCkD,EAAYlD,GAClBxI,iBAAiB,QAAS,SAASc,GACtCA,EAAE6K,iBACF,IAQsBvF,EAASwF,EACnCxE,EACAyE,EAVQC,EAAgBhL,EAAEuG,cAClBjB,EAAU0F,EAAcC,QAAQ3F,QAChCwF,EAAYE,EAAcC,QAAQH,UAMhBxF,EALSA,EAKAwF,EALSA,EAM5CxE,EAkCR,SAAuB1F,EAAIY,GACvB,MAAQZ,EAAKA,EAAGG,iBAAmBH,EAAGS,UAAUI,SAASD,KACzD,OAAOZ,EApCMW,CANWyJ,EAMU,eAC9BD,EAAkBzE,EAAOlC,cAAc,kCAI/C,SAAuBkB,EAASwF,EAAWC,EAAiBzE,GACxD,CAAA,GAAgB,OAAZhB,EAyBA,OADAJ,QAAQC,KAAK,mIAvBb,IAAII,EAAM,GACV,GAAgB,SAAbuF,EACCvF,EAAM,kCAAoCD,EAAU,kBAEnD,CAAA,GAAgB,WAAbwF,EAIJ,OAHAvF,EAAM,iCAAmCD,EAAU,oBAMvD,IAAIG,EAASxG,SAAS+E,cAAc,UACpCyB,EAAOC,aAAa,MAAOH,GAC3BE,EAAOC,aAAa,cAAe,GACnCD,EAAOC,aAAa,kBAAmB,IACvCD,EAAOC,aAAa,QAAS,QAC7BD,EAAOC,aAAa,SAAU,QAE9BqF,EAAgBtG,UAAYgB,EAAOE,UAEnCW,EAAOjF,UAAUC,IAAI,wBAzBzB4J,CAAa5F,EAASwF,EAAWC,EAAiBzE,SCpBtD3H,SAAWA,UAAY,IAElBW,OAASX,SAASW,QAAU,IAAI,WACrCuB,KAAK9B,KAAO,SAAUkI,GAClB,IAAMC,EAAejI,SAASiC,iBAAiB,mBAC/C,GAAKgG,EAAL,CAGAC,IAAIC,UAAU,OAAQ,CAClBC,KAAM,SAAUzG,EAAI0G,EAASC,GAEzB,IAAIC,EAAMF,EAAQE,IAAI1F,MAAM,KAAK2F,IAAI,SAACD,EAAKE,GACvC,OAAgB,EAARA,EAAaF,EAAI,GAAGG,cAAgBH,EAAII,UAAU,GAAKJ,IAChErF,KAAK,IAERoF,EAAMM,QAAQL,GAAOF,EAAQQ,SAGrC,IAAK,IAAI1G,EAAI,EAAGA,EAAI8F,EAAa/F,OAAQC,IAAK,CAC1C,IAAI2G,EAAcb,EAAa9F,GAE/B,IAAI+F,IAAI,CACJvG,GAAImH,EACJoD,KAAM,gBACNlE,KAAM,CACFmE,WAAY,GACZC,SAAS,EACTC,eAAgB,GAChBC,sBAAsB,EACtBC,oBAAoB,EACpBC,qBAAqB,EACrBC,cAAe,CACXC,cAAe,GACfC,OAAQ,GACRC,QAAS,GACTC,UAAW,KAGnBrD,SAAU,CACNsD,qBAAsB,WAElB,IAAIC,EAAS,EAOb,OANGnL,KAAK0K,qBACJS,EAAS,EACJnL,KAAK6K,cAAcI,UAAU3K,SAClC6K,EAAS,GAGNA,GAKXC,qBAAsB,WAClB,MAAqC,KAA9BpL,KAAK6K,cAAcE,SAKlChD,QAAS,CACLsD,eAAgB,SAAUC,GACtB,OAAOA,EAAMC,QAAQ,OAAQ,KAEjCC,eAAgB,SAAUC,GACtB,OAAOA,EAAMF,QAAQ,OAAQ,KAEjCG,aAAc,WACV1L,KAAKwK,SAAWxK,KAAKwK,SAEzBmB,iBAAkB,SAAU7H,GACrB9D,KAAK6K,cAAcC,gBAAkBhH,EACpC9D,KAAK6K,cAAcC,cAAgB,GAEnC9K,KAAK6K,cAAcC,cAAgBhH,EAEvC9D,KAAK4L,eAETC,UAAW,SAAUC,GACdA,EAAaC,cAAe/L,KAAK6K,cAAcE,SAC9C/K,KAAK6K,cAAcE,OAASe,EAAaC,YACzC/L,KAAKyK,eAAiBqB,EAAaE,UACnChM,KAAK6K,cAAcG,QAAU,GAC7BhL,KAAK4L,gBAGbA,YAAa,WAAY,IAAAK,EAAAjM,KAErB,GADAA,KAAK2K,oBAAqB,EACO,KAA9B3K,KAAK6K,cAAcE,QAAgD,KAA/B/K,KAAK6K,cAAcG,QAAgB,CACtE,IAAIkB,EAAoBlM,KAAKuK,WAAW4B,UAAU1D,OAAO,SAAC2D,GACtD,IACMC,EAAiBD,EAAIE,aAAaC,SAASN,EAAKpB,cAAcG,SAChEwB,GAAuB,EACxBH,IACyC,KAArCJ,EAAKpB,cAAcC,gBAIlB0B,EAAoD,EAHxBJ,EAAIK,eAAehE,OAAO,SAACiE,GACnD,OAAOA,EAAIvD,OAAS8C,EAAKpB,cAAcC,gBAEAxK,SAGnD,OAAO+L,GAAkBG,IAIzBN,EAAkB5L,QAIlBN,KAAK6K,cAAcI,UAAYiB,EAAkBS,MAAM,EAAG,GAC1D3M,KAAK0K,sBAAuB,EAC5BzL,WAAW,WACPgN,EAAKtB,oBAAqB,GAC5B,OAPF3K,KAAK4M,oBACL5M,KAAK0K,sBAAuB,QAShC1K,KAAK4M,oBACL5M,KAAK0K,sBAAuB,GAIpCkC,kBA7DK,WA8DD5M,KAAK6K,cAAcI,UAAY,YCzHnDnN,SAAWA,UAAY,IAElBG,WAAaH,SAASG,YAAc,IAAI,WAC7C+B,KAAK9B,KAAO,WACR,IAAMD,EAAaG,SAASiC,iBAAiB,mBAG7C,GAAKpC,KAAcA,EAAWqC,QAAU,GAKxC,IAAK,IAAIC,EAAI,EAAGA,EAAItC,EAAWqC,OAAQC,IAAK,CACxC,IAAIsM,EAAmB5O,EAAWsC,GAElC,GAAIzC,SAASgB,OAAO0C,UAAUqL,KAAsBA,EAAiBrM,UAAUI,SAAS,4BAA6B,CACjH,IAAMqG,EAAQ4F,EAAiB1G,aAAa,eAMxC2G,EAAU,IAAIC,QAAQF,EAAkB,EAAG5F,EAAO,EAAG,IALzC,CACZ+F,WAAW,EACXC,aAAa,EACbC,UAAW,MAIVJ,EAAQtI,MAGTH,QAAQG,MAAMsI,EAAQtI,OAFtBsI,EAAQK,QAIZN,EAAiBrM,UAAUC,IAAI,iCCxB3C3C,SAAWA,UAAY,IAGlBS,UAAYT,SAASS,WAAa,IAAI,WAC3C,IAAM6O,EAAahP,SAASiC,iBAAiB,iBAE7CL,KAAK9B,KAAO,WAAY,IAAA+N,EAAAjM,KACpB,GAAKoN,EAGL,IAJoB,IAAAC,EAAA,SAIX9M,GACL,IAAMiJ,EAAe4D,EAAW7M,GAC1BuC,EAAAA,EACQ,IAAI2G,SAASD,EAAc,CAErCE,UAAW,OACX4D,aAAc,mBACd3D,SAAS,EACTC,YAAY,EACZC,UAAU,EACV0D,WAAY,wDACZC,GAAI,CACAC,OAAQ,SAAStO,GACb2D,EAAK4K,kBAAkBlE,QAb9BjJ,EAAI,EAAGA,EAAI6M,EAAW9M,OAAQC,IAAK8M,EAAnC9M,IAqBbP,KAAK0N,kBAAoB,SAAUlE,GAE/B,IADA,IAAMmE,EAAUnE,EAAaoE,qBAAqB,UACzCrN,EAAI,EAAGA,EAAIoN,EAAQrN,OAAQC,IAChCoN,EAAQpN,GAAGL,cAAcA,cAAcM,UAAUyE,OAAO,uBACxD0I,EAAQpN,GAAG0E,WCtCvB,IAFA,IAAM4I,mBAAqBzP,SAAS0P,uBAAuB,wCAElDvN,EAAI,EAAIA,EAAIsN,mBAAmBvN,OAASC,IAAK,CAClD,IAAMwN,kBAAoBF,mBAAmBtN,GAC7C,IAAI+F,IAAI,CACJvG,GAAIgO,kBACJzD,KAAM,sBACNvC,QAAS,CACLiG,gBADK,WAED,IAAMC,EAAEC,SAASC,KACXC,EAAEhQ,SAASiQ,MAEjB,OADAjP,OAAOkP,KAAK,wCAAwCC,mBAAmBN,GAAG,MAAMM,mBAAmBH,GAAG,SAAS,4CACxG,OCZnBtQ,SAAWA,UAAY,IAElBa,cAAgBb,SAASa,eAAiB,IAAI,WACnD,IAAM6P,EAA6B,kCAyCnC,SAASC,EAAUtP,GACG,KAAdA,EAAE4E,SACF2K,IAIR,SAASA,EAASjN,GAKd,IAFA,IAAIkN,EAAcvQ,SAAS0P,uBAAuB,2BAEzCc,EAAI,EAAGA,EAAID,EAAYrO,OAAQsO,IAAK,CACpBD,EAAYC,GAClBpO,UAAUyE,OAAOuJ,GAGpCpQ,SAAS4G,oBAAoB,UAAWyJ,GAAW,GAvDvDzO,KAAK9B,KAAO,SAAUkI,GAClB,IAAIyI,EAAyBzQ,SAASiC,iBAAiB,uCAEvD,GAAKwO,EAIL,IAAK,IAAItO,EAAI,EAAGA,EAAIsO,EAAuBvO,OAAQC,IAAK,CAC/BsO,EAAuBtO,GAE7BlC,iBAAiB,QAAS,WACrC,IAcYoD,EAdRA,EAAUyE,MAAM7C,OAAOnD,cAEvBpC,SAASgB,OAAOyC,SAASE,EAAS+M,GAClCE,KAEAA,IACAjN,EAAQjB,UAAUC,IAAI+N,GAQd/M,EAPOA,EAU3BrD,SAASC,iBAAiB,QAAS,SAAU6H,GAEzC,GAAIpI,SAASgB,OAAOyC,SAASE,EAAS+M,GAA6B,CAC/D,IAAIM,EAAYrN,EAAQb,SAASsF,EAAM7C,QAClCyL,GACDJ,OAdAtQ,SAASC,iBAAiB,UAAWoQ,GAAW,SCzBpE,IAAMM,WAAa3Q,SAAS0P,uBAAuB,4BAEnD,IAASvN,EAAI,EAAGA,EAAIwO,WAAWzO,OAAQC,IACnC,IAAI+F,IAAI,CACJvG,GAAIgP,WAAWxO,GACf+J,KAAM,aACNlE,KAAM,CACF4I,qBAAqB,IACrBC,YAAY,EACZC,wBAAwB,EACxBC,cAAc,KACdC,MAAO,KACPC,eAAgB,GAChBC,YAAa,GAEjB3H,QAZI,WAcA,GADA3H,KAAKmP,cAAgBnP,KAAKuP,MAAMC,cAC5BxP,KAAKmP,cAAT,CAEAnP,KAAKsP,YAActP,KAAKmP,cAAcM,SAASnP,OAC/C,IAAMoP,EAAqB1P,KAAKmP,cAAcrB,uBAAuB,qBACrE9N,KAAKqP,eAAiBM,MAAMlQ,UAAUkN,MAAM1M,KAAKyP,GACjD1P,KAAK4P,+BACL5P,KAAK6P,aACL7P,KAAK8P,iBAET/H,QAAS,CACL6H,6BADK,WAG0B,IAAIG,qBAAqB/P,KAAKgQ,mBADzC,CAAEC,UAAW,IAEVC,QAAQlQ,KAAKmQ,MAEpCH,mBANK,SAMcI,GAAQ,IAAAnE,EAAAjM,KACvBoQ,EAAQC,QAAQ,SAACC,GACTA,EAAMC,gBACNtE,EAAKgD,YAAa,EAClBhD,EAAKoD,eAAegB,QAChB,SAACG,GACG,IAAMC,EAAWD,EAAQrK,aAAa,aACtCqK,EAAQ5M,UAAY6M,IAG5BxE,EAAKmD,MAAMsB,WAAY,GAAG,GAAO,KAGjCzE,EAAKgD,YAAa,EAClBhD,EAAKoD,eAAegB,QAChB,SAACG,GACGA,EAAQ5M,UAAY,SAMxC+M,UA5BK,SA4BKC,GACN,GAAG5Q,KAAKiP,YAAc2B,EAAapQ,UAAUI,SAAS,+BAAgC,CAClF,IAAMiQ,EAAeD,EAAa9C,uBAAuB,qBAAqB,IAAM,KACpF,IAAI+C,EAEA,YADA7Q,KAAK8Q,yBAGa,EAAnB9Q,KAAKsP,cACJtP,KAAK8Q,yBACLD,EAAaE,YAAc,GAE/BF,EAAaG,SAGrBF,uBA1CK,WA4CD,IADA,IAAMzB,EAAiBrP,KAAKmP,cAAcrB,uBAAuB,qBACzDvN,EAAI,EAAGA,EAAI8O,EAAe/O,OAAQC,IACtC8O,EAAe9O,GAAG0Q,SAG1BpB,WAhDK,WAiDD,IAAM/M,EAAO9C,KACP6J,EAA8B,EAAnB7J,KAAKsP,YACtBtP,KAAKoP,MAAQ,IAAI3F,SAAUzJ,KAAKmP,cAAe,CAC3CvF,YAAY,EACZsH,SAA6B,EAAnBlR,KAAKsP,aAAkBtP,KAAKgP,qBACtCmC,sBAAsB,EACtBC,iBAAiB,EACjBvH,SAAUA,EACV2D,GAAI,CACA6D,MAAO,SAASlS,GACZ2D,EAAKoM,wBAAuB,EACzBlP,MAAQA,KAAKsR,cACZxO,EAAK6N,UAAU3Q,KAAKsR,aAAa7P,UAGzCgM,OAAQ,SAAStO,GACVa,MAAQA,KAAKsR,cACZxO,EAAK6N,UAAU3Q,KAAKsR,aAAa7P,cAMrDqO,aAxEK,WAyED,IAAMhN,EAAO9C,KACbZ,OAAOf,iBAAiB,SAAS,WAC7ByE,EAAKoM,wBAAuB,EAC5BlP,KAAKf,WAAW,WACZ6D,EAAKoM,wBAAuB,UCvGhDpR,SAAWA,UAAY,GAA3B,IACMyT,aAAenT,SAASoT,eAAe,sBAEzCD,cACA,IAAIjL,IAAI,CACJvG,GAAIwR,aACJjH,KAAM,eACNlE,KAAM,CACFqL,eAAe,EACfC,wBAAwB,EACxBC,cAAc,EACdC,aAAa,GACbC,yBAAyB,GACzBC,yBAAyB,GACzBC,eAAe,KACfC,mBAAmB,KACnBC,0BAA2B,0BAC3BC,cAAc,EACdC,YAAa,MAEjBxK,QAhBI,WAgBM,IAAAsE,EAAAjM,KACAoS,EAAahU,SAAS0P,uBAAuB,cAE9CsE,EAAW9R,QAGZN,KAAK0R,wBAAyB,EAC9B1R,KAAKqS,aAAaD,EAAW,KAH7BpS,KAAKyR,eAAgB,EAKzBrT,SAASC,iBAAiB,SAAU,WAChC4N,EAAKoG,aAAaD,EAAW,MAGjChU,SAASC,iBAAiB,WAAY,WAClC4N,EAAKqG,qBAETtS,KAAK+R,eAAiB/R,KAAKuP,MAAMwC,eACjC/R,KAAKgS,mBAAqBhS,KAAKuP,MAAMyC,mBACrChS,KAAKmS,YAAcnS,KAAKuP,MAAMgD,kBAElCxK,QAAS,CACLyK,2BADK,SACsBrT,GACvBA,EAAE6K,iBAEFhK,KAAKyS,oCACLzS,KAAK+R,eAAevR,UAAUC,IAAIT,KAAKiS,4BAE3CQ,kCAPK,WAQDrU,SAASC,iBAAiB,UAAW2B,KAAK0S,yBAAyB,GACnEtU,SAASC,iBAAiB,QAAS2B,KAAK2S,2BAA2B,IAEvEC,kCAXK,WAYDxU,SAAS4G,oBAAoB,QAAShF,KAAK6S,aAAa,IAE5DF,0BAdK,SAcqBxT,GACtB,IAAI2T,EAAgB3T,EAAEkE,OACtB,EAAG,CACC,GAAIyP,GAAiB9S,KAAKgS,mBAEtB,OAEJc,EAAgBA,EAAc3S,iBACzB2S,GAGT9S,KAAK4S,qCAETP,aA3BK,SA2BQD,GACT,GAAIpS,KAAK0R,uBAAwB,CAC7B,IAAMqB,EAAiBX,EAAWzQ,wBAC5BqR,EAAmBhT,KAAKmQ,IAAIxO,wBAClC3B,KAAKyR,cAAiBsB,EAAejR,IAAMkR,EAAiBC,OAAUF,EAAeE,QAAU,IAGvGC,mBAlCK,WAmCDlT,KAAK2R,cAAgB3R,KAAK2R,aACvB3R,KAAK2R,eACJ3R,KAAKmT,+BACLnT,KAAKoT,+BACLpT,KAAKqT,0BAETvV,SAASgB,OAAO+B,YAAYzC,SAASkV,KAAM,cAE/CC,SA3CK,SA2CIpU,GACLA,EAAEqU,mBAENlB,iBA9CK,WA8Ca,IAAAmB,EAAAzT,KACd0T,OAAOC,KAAK3T,KAAK4R,cAAcvB,QAAQ,SAACuD,GACpCtN,IAAIuN,IAAIJ,EAAK7B,aAAcgC,GAAK,MAGxCE,0BAnDK,SAmDqBC,GACtB,IAAMC,EAAeD,EAActE,SAE7BwE,EADoBtE,MAAMlQ,UAAUkN,MAAM1M,KAAK+T,GACnBvL,OAAO,SAAA1I,GAAA,OAAMA,EAAGS,UAAUI,SAAS,iDAAgD,GAClHqT,GACCA,EAAQC,SAGhBb,uBA3DK,WA4DD,IAAMc,EAAanU,KAAKuP,MAAM6E,SAC9B,GAAGD,EAAW,CACV,IAAIE,EAAkB,EAQtB,GAPGF,EAAW3T,UAAUI,SAAS,mCAC7ByT,EAAkB,GAEnBF,EAAW3T,UAAUI,SAAS,mCAC7ByT,EAAkB,GAGC,IAApBA,EAAuB,CACtB,IAAMN,EAAgBI,EAAWjU,cAAcA,cAAcA,cAAcA,cAC3EF,KAAK8T,0BAA0BC,QAC7B,GAAuB,IAApBM,EAAuB,CAC5B,IAAMC,EAAiBH,EAAWjU,cAAcA,cAChDF,KAAK8T,0BAA0BQ,GAC/B,IAAMC,EAAiBJ,EAAWtU,QAAQ,+BAC1CG,KAAK8T,0BAA0BS,QAE9B,GAAuB,IAApBF,EAAuB,CAC3B,IAAMC,EAAiBH,EAAWjU,cAAcA,cAAcA,cAAcA,cAC5EF,KAAK8T,0BAA0BQ,GAC/B,IAAMC,EAAiBJ,EAAWtU,QAAQ,+BAC1CG,KAAK8T,0BAA0BS,MAI3CpB,6BAvFK,WAuFyB,IAAAqB,EAAAxU,KAC1B0T,OAAOC,KAAK3T,KAAK6R,0BAA0BxB,QAAQ,SAACuD,GAChDtN,IAAIuN,IAAIW,EAAK3C,yBAA0B+B,GAAK,MAGpDR,6BA5FK,WA4FyB,IAAAqB,EAAAzU,KAC1B0T,OAAOC,KAAK3T,KAAK8R,0BAA0BzB,QAAQ,SAACuD,GAChDtN,IAAIuN,IAAIY,EAAK3C,yBAA0B8B,GAAK,MAGpDc,iBAjGK,SAiGYvV,EAAEwV,GAEf,GADiBvV,OAAOwV,WAAW,uBACpBlV,QAAS,CACpBP,EAAE6K,iBACF7K,EAAEqU,kBACFrU,EAAE0V,2BACF,IAAIC,GAAO,EACP9U,KAAK4R,aAAa+C,KAClBG,GAAO,GAEX9U,KAAKsS,mBACLhM,IAAIuN,IAAI7T,KAAK4R,aAAc+C,EAAMG,KAGzCC,sBA/GK,SA+GiBJ,GAClB,IAAIG,GAAO,EACP9U,KAAK8R,yBAAyB6C,KAC9BG,GAAO,GAGXxO,IAAIuN,IAAI7T,KAAK8R,yBAA0B6C,EAAMG,IAEjDE,sBAvHK,SAuHiBL,GAClB,IAAIG,GAAO,EACP9U,KAAK6R,yBAAyB8C,KAC9BG,GAAO,GAGXxO,IAAIuN,IAAI7T,KAAK6R,yBAA0B8C,EAAMG,IAEjDG,kBA/HK,SA+Ha9V,EAAEwV,GACX3U,KAAKkS,aAGNlS,KAAKkV,qBAFLlV,KAAKmV,oBAITnV,KAAK0U,iBAAiBvV,EAAEwV,IAE5BQ,kBAvIK,WAyID/W,SAASC,iBAAiB,QAAS2B,KAAKoV,mBAAmB,GAC3DhX,SAASkV,KAAK9S,UAAUC,IAAI,uBAC5BT,KAAKmS,YAAYkD,QAEjBrV,KAAKkS,cAAe,GAExBgD,mBA/IK,WAgJD9W,SAASkV,KAAK9S,UAAUyE,OAAO,uBAC/BjF,KAAKmS,YAAYmD,OACjBtV,KAAKmS,YAAYlL,MAAQ,GAEzB7I,SAAS4G,oBAAoB,QAAShF,KAAKoV,mBAAmB,GAE9DpV,KAAKkS,cAAe,GAExBkD,kBAxJK,SAwJajW,GACd,IAAI2T,EAAgB3T,EAAEkE,OAElByP,EAAcjT,QAAQ,uBAAyBiT,EAAcjT,QAAQ,+BAKzEG,KAAKkV","file":"master.min.js","sourcesContent":["'use strict';\r\n/*\r\n* Novicell master\r\n* Use this file to call functions in other files, on document ready, window.resize etc.\r\n*/\r\n\r\nvar novicell = novicell || {};\r\nvar projectName = projectName || {};\r\n\r\n// Document ready\r\ndocument.addEventListener('DOMContentLoaded', function(){\r\n novicell.cookieInfo.init();\r\n novicell.slideshow.init(); \r\n novicell.list.init();\r\n novicell.wizard.init();\r\n novicell.brandSlider.init();\r\n novicell.filterSection.init();\r\n novicell.keyNumbers.init();\r\n novicell.embedMedia.init();\r\n novicell.accordion.init();\r\n\r\n /* Helpers */\r\n novicell.helper.buttonsWithLink();\r\n\r\n /* Lib */\r\n novicell.aspnetValidation.init();\r\n \r\n //SetTimeout to fix latency with loaded elements in e.g. Vue components\r\n setTimeout(() => {\r\n svg4everybody(); // Fix SVG spritemap in IE/Edge\r\n });\r\n});\r\n\r\ndocument.addEventListener('scroll', function (e) {\r\n novicell.keyNumbers.init();\r\n});\r\n\r\n// Docs for debounce https://github.com/component/debounce\r\nwindow.onscroll = novicell.debounce(onScroll, 100);\r\n\r\nwindow.onresize = novicell.debounce(resize, 200);\r\n\r\nfunction resize() {\r\n novicell.keyNumbers.init();\r\n}\r\nfunction onScroll() {\r\n novicell.keyNumbers.init();\r\n}\r\n\r\n\r\nif (!Element.prototype.matches) {\r\n Element.prototype.matches = Element.prototype.msMatchesSelector || \r\n Element.prototype.webkitMatchesSelector;\r\n}\r\n\r\nif (!Element.prototype.closest) {\r\n Element.prototype.closest = function(s) {\r\n var el = this;\r\n \r\n do {\r\n if (Element.prototype.matches.call(el, s)) {\r\n return el;\r\n }\r\n el = el.parentElement || el.parentNode;\r\n } while (el !== null && el.nodeType === 1);\r\n return null;\r\n };\r\n}\r\n","'use strict';\r\n\r\nvar novicell = novicell || {};\r\n\r\nnovicell.helper = novicell.helper || new function () {\r\n\r\n this.buttonsWithLink = function () {\r\n var buttonsWithLink = document.querySelectorAll('a > .button');\r\n if (!buttonsWithLink || buttonsWithLink.length <= 0) {\r\n return;\r\n }\r\n\r\n for (let i = 0; i < buttonsWithLink.length; i++) {\r\n const currentLink = buttonsWithLink[i];\r\n const parent = currentLink.parentNode;\r\n\r\n parent.classList.add('button-with-link');\r\n }\r\n };\r\n\r\n this.findAncestor = function (el, cls) {\r\n if (el == null) {\r\n return;\r\n }\r\n while ((el = el.parentElement) && !el.classList.contains(cls)) {\r\n return el;\r\n }\r\n };\r\n\r\n this.toggleClass = function (el, className) {\r\n if (el.classList) {\r\n el.classList.toggle(className);\r\n } else {\r\n var classes = el.className.split(' ');\r\n var existingIndex = classes.indexOf(className);\r\n \r\n if (existingIndex >= 0) {\r\n classes.splice(existingIndex, 1);\r\n } else {\r\n classes.push(className);\r\n }\r\n \r\n el.className = classes.join(' ');\r\n }\r\n };\r\n\r\n this.hasClass = function (el, className) {\r\n if (el.classList.contains(className)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n this.isVisible = function (element) {\r\n var rect = element.getBoundingClientRect();\r\n var html = document.documentElement;\r\n\r\n return (\r\n rect.top >= 0 &&\r\n rect.left >= 0 &&\r\n rect.bottom <= (window.innerHeight || html.clientHeight) &&\r\n rect.right <= (window.innerWidth || html.clientWidth)\r\n );\r\n };\r\n\r\n};","'use strict';\r\n\r\nvar novicell = novicell || {};\r\n\r\nnovicell.aspnetValidation = novicell.aspnetValidation || new function () {\r\n this.init = function() {\r\n \r\n let v = new aspnetValidation.ValidationService();\r\n v.bootstrap();\r\n };\r\n};\r\n","'use strict';\r\n/**\r\n * @name Novicell overlay\r\n * @desc Simple script that opens an overlay / modal with some content form either a selector or an URL\r\n * @author Danni Larsen (DLA), Michael Sølvsteen (MSL), Signe Helbo Poulsen (SHP)\r\n * @example novicell.overlay.create({ 'selector': SELECTOR, 'url': URL, 'class':'CLASSNAME', 'onCreate': FUNCTIONNAME, 'onLoaded': FUNCTIONNAME, 'onDestroy': FUNCTIONNAME });\r\n * @requires none\r\n */\r\n\r\nvar novicell = novicell || {};\r\n\r\nnovicell.overlay = novicell.overlay || new function () {\r\n var self = this;\r\n var options = {};\r\n var overlayElem;\r\n var overlayContainer;\r\n var overlayContent;\r\n var backdrop;\r\n var content;\r\n var onCreate;\r\n var onLoaded;\r\n var onDestroy;\r\n var isVideo = false;\r\n\r\n this.create = function (opts) {\r\n var self = this;\r\n // Set global options\r\n options = opts;\r\n\r\n // Call onCreate callback\r\n if (typeof options.onCreate === 'function') {\r\n options.onCreate();\r\n }\r\n\r\n // Remove existing overlays\r\n self.destroy();\r\n\r\n // Check if content comes from a HTML element\r\n if (options.hasOwnProperty('selector') && options.selector !== null) {\r\n var element = document.querySelector(options.selector);\r\n \r\n if (element) {\r\n content = element.innerHTML;\r\n constructOverlay();\r\n } else {\r\n console.warn('novicell.overlay: element does not exist. Please provide a valid selector for use in document.querySelector.');\r\n return;\r\n }\r\n }\r\n else if (options.hasOwnProperty('element') && options.element !== null) {\r\n var currElement = options.element;\r\n \r\n if (currElement) {\r\n content = currElement.innerHTML;\r\n constructOverlay();\r\n } else {\r\n console.warn('novicell.overlay: element does not exist. Please provide a valid selector for use in document.querySelector.');\r\n return;\r\n }\r\n }\r\n // Or if content comes from an URL\r\n else if (options.hasOwnProperty('videoId')) {\r\n if (options.videoId !== null) {\r\n var src = '';\r\n isVideo = true;\r\n\r\n if(options.type == 'vimeo') {\r\n src = 'https://player.vimeo.com/video/' + options.videoId + '?autoplay=' + options.autoplay;\r\n }\r\n else if(options.type == 'youtube') {\r\n src = 'https://www.youtube.com/embed/' + options.videoId + '?autoplay=' + options.autoplay + '&rel=0';\r\n }\r\n else {\r\n return;\r\n }\r\n\r\n var iframe = document.createElement('iframe');\r\n iframe.setAttribute('src', src);\r\n iframe.setAttribute('frameborder', 0);\r\n iframe.setAttribute('allowfullscreen', '');\r\n iframe.setAttribute('width', '100%');\r\n iframe.setAttribute('height', '100%');\r\n\r\n content = iframe.outerHTML;\r\n \r\n constructOverlay();\r\n } else {\r\n console.warn('novicell.overlay: video-id is empty. Please provide a video-id for use in video embed code (we support only Vimeo and YouTube).');\r\n return;\r\n }\r\n }\r\n // If nothing is working, send error to los consolé\r\n else {\r\n console.error('novicell.overlay: no content to display! Please set a selector or a url to load.');\r\n return;\r\n }\r\n };\r\n\r\n this.destroy = function () {\r\n if(document.querySelector('#js-novi-overlay')) {\r\n // Remove elements\r\n overlayElem.parentElement.removeChild(overlayElem);\r\n backdrop.parentElement.removeChild(backdrop);\r\n\r\n // Stop listening for close overlay events\r\n document.removeEventListener('keyup', self.destroy);\r\n\r\n // Remove class on body\r\n document.documentElement.classList.remove('no-scroll', 'novi-overlay--open');\r\n\r\n // Reset video variable\r\n isVideo = false;\r\n\r\n // Call onDestroy callback\r\n if (typeof options.onDestroy === 'function') {\r\n options.onDestroy();\r\n }\r\n }\r\n };\r\n\r\n function constructOverlay() {\r\n // Create backdrop\r\n setupBackdrop();\r\n\r\n // Create the overlay\r\n setupOverlay();\r\n\r\n // Create content for overlay\r\n setupOverlayContainer();\r\n\r\n // Create close button\r\n setupCloseButton();\r\n\r\n // Add class to body-element\r\n document.documentElement.classList.add('no-scroll');\r\n\r\n // Call onLoaded callback\r\n if (typeof options.onLoaded === 'function') {\r\n options.onLoaded();\r\n }\r\n }\r\n\r\n function setupBackdrop() {\r\n // Create the backdrop\r\n backdrop = document.createElement('div');\r\n backdrop.classList.add('novi-backdrop');\r\n backdrop.id = 'js-novi-backdrop';\r\n\r\n backdrop.addEventListener('click', function(e){\r\n if(e.target.classList.contains('novi-overlay') || e.target.classList.contains('novi-overlay__container')) {\r\n self.destroy();\r\n }\r\n });\r\n\r\n // Add backdrop to overlay element\r\n document.querySelector('body').appendChild(backdrop);\r\n }\r\n\r\n /*\r\n * Helper functions for HTML elements\r\n */\r\n function setupOverlay() {\r\n // Create the overlay\r\n overlayElem = document.createElement('div');\r\n overlayElem.classList.add('novi-overlay');\r\n overlayElem.id = 'js-novi-overlay';\r\n\r\n // Set class for the overlay, if set in options\r\n if (options.hasOwnProperty('class')) {\r\n overlayElem.classList.add(options.class);\r\n }\r\n\r\n // Add overlay to overlay element\r\n // document.querySelector('body').appendChild(overlayElem);\r\n backdrop.appendChild(overlayElem);\r\n }\r\n\r\n function setupOverlayContainer() {\r\n // Create content for overlay\r\n overlayContainer = document.createElement('div');\r\n overlayContainer.classList.add('novi-overlay__container');\r\n\r\n // Create scroll element\r\n overlayContent = document.createElement('div');\r\n overlayContent.classList.add('novi-overlay__content');\r\n\r\n if(isVideo) {\r\n overlayContent.classList.add('novi-overlay__content--video');\r\n }\r\n\r\n // Set content\r\n overlayContent.innerHTML = content;\r\n overlayContainer.appendChild(overlayContent);\r\n\r\n // Add overlayContainer to overlay element\r\n overlayElem.appendChild(overlayContainer);\r\n }\r\n\r\n function setupCloseButton() {\r\n // Create the button\r\n var btnClose = document.createElement('button');\r\n btnClose.classList.add('novi-overlay-close', 'button--close');\r\n btnClose.type = 'button';\r\n btnClose.id = 'js-novi-overlay-close';\r\n\r\n // Add eventlistener for button click\r\n btnClose.addEventListener('click', self.destroy);\r\n\r\n // Add eventlistener for esc key\r\n document.addEventListener('keydown', function (e) {\r\n if (e.keyCode === 27) {\r\n self.destroy();\r\n }\r\n });\r\n\r\n // Add close button to overlay element\r\n overlayContent.appendChild(btnClose);\r\n }\r\n\r\n /*\r\n * Helper functions for getting content\r\n */\r\n function get(url) {\r\n // Return a new promise.\r\n return new Promise(function (resolve, reject) {\r\n // Do the usual XHR stuff\r\n var req = new XMLHttpRequest();\r\n req.open('GET', url);\r\n\r\n req.onload = function () {\r\n if (req.status >= 200 && req.status < 400) {\r\n // Success!!\r\n resolve(req.response);\r\n } else {\r\n // Error!!\r\n reject(Error(req.statusText));\r\n }\r\n };\r\n\r\n // Handle network errors\r\n req.onerror = function () {\r\n reject(Error(\"Network Error\"));\r\n };\r\n\r\n // Make the request\r\n req.send();\r\n });\r\n }\r\n\r\n}();","'use strict';\r\n\r\nvar novicell = novicell || {};\r\n\r\nnovicell.accordion = novicell.accordion || new function () {\r\n const accordionTriggers = document.querySelectorAll('.js-accordion-item-trigger');\r\n const accordionImages = document.querySelectorAll('.js-accordion-item-image');\r\n const itemOpenClass = 'accordion-item--open';\r\n const imageOverlaySelector = '.js-accordion-image-overlay-content';\r\n const accordionImageOverlay = document.querySelector(imageOverlaySelector);\r\n\r\n this.init = function () {\r\n if (!accordionTriggers && accordionTriggers.length <= 0) {\r\n return;\r\n }\r\n\r\n for (let i = 0; i < accordionTriggers.length; i++) {\r\n let currentTrigger = accordionTriggers[i];\r\n\r\n currentTrigger.addEventListener('click', function(event) {\r\n openAccordionItem(event);\r\n });\r\n }\r\n\r\n if(!accordionImages && accordionImages.length <= 0) {\r\n return;\r\n }\r\n\r\n for (let i = 0; i < accordionImages.length; i++) {\r\n let currentImage = accordionImages[i];\r\n\r\n currentImage.addEventListener('click', function() {\r\n openImageInOverlay();\r\n });\r\n }\r\n };\r\n\r\n function openAccordionItem(e) {\r\n let triggerItem = e.currentTarget;\r\n let parent = triggerItem.parentNode;\r\n\r\n if(novicell.helper.hasClass(parent, itemOpenClass)) {\r\n closeItem(parent);\r\n\r\n } else {\r\n closeAllItemsInAccordion(parent.parentNode);\r\n openItem(parent);\r\n }\r\n }\r\n\r\n function closeAllItemsInAccordion(accordion) {\r\n let openItems = accordion.querySelectorAll('.js-accordion-item.accordion-item--open');\r\n\r\n for (let i = 0; i < openItems.length; i++) {\r\n let currentItem = openItems[i];\r\n\r\n closeItem(currentItem);\r\n }\r\n }\r\n\r\n function openItem(item) {\r\n item.classList.add(itemOpenClass);\r\n }\r\n\r\n function closeItem(item) {\r\n item.classList.remove(itemOpenClass);\r\n }\r\n\r\n function openImageInOverlay() {\r\n let imageClicked = event.currentTarget.querySelector('img');\r\n let overlayImage = accordionImageOverlay.querySelector('img');\r\n\r\n overlayImage.setAttribute('data-src', imageClicked.getAttribute('src'));\r\n\r\n novicell.overlay.create({\r\n 'class': 'accordion-image-overlay',\r\n 'selector': imageOverlaySelector\r\n });\r\n }\r\n};\r\n","'use strict';\r\n\r\nvar novicell = novicell || {};\r\n\r\nnovicell.list = novicell.list || new function () {\r\n this.init = function (data) {\r\n const listWrappers = document.querySelectorAll('.list-wrapper');\r\n\r\n if (!listWrappers) {\r\n return;\r\n }\r\n\r\n Vue.directive('init', {\r\n bind: function (el, binding, vnode) {\r\n // convert kebab-case to camelCase\r\n let arg = binding.arg.split('-').map((arg, index) => {\r\n return (index > 0) ? arg[0].toUpperCase() + arg.substring(1) : arg;\r\n }).join('');\r\n\r\n vnode.context[arg] = binding.value;\r\n }\r\n });\r\n\r\n for (var i = 0; i < listWrappers.length; i++) {\r\n let currentList = listWrappers[i];\r\n\r\n new Vue({\r\n el: currentList,\r\n data: {\r\n listItems: [],\r\n filteredListItems: [],\r\n pageSize: currentList.getAttribute('data-page-size') * 1, //How many items to show\r\n pageStep: currentList.getAttribute('data-page-step') * 1, //How much page size increases pr. stephideShowMore: false, //Hide the show more button\r\n hideShowMore: false, //Hide the show more button\r\n usePaging: currentList.getAttribute('data-use-paging') == 'True',\r\n filters: {}\r\n },\r\n filters: {\r\n ellipsis: function (value) {\r\n\r\n if (value[value.length - 1] === '.') {\r\n value = value.substring(0, value.length - 1);\r\n }\r\n\r\n if (value.length < 100) {\r\n return value;\r\n } else {\r\n return value.substring(0, 100) + '…';\r\n }\r\n }\r\n },\r\n mounted: function () {\r\n this.filteredListItems = this.listItems;\r\n if(!this.usePaging){\r\n this.pageSize = this.filteredListItems.length;\r\n }else {\r\n \r\n }\r\n \r\n if(this.pageSize >= this.filteredListItems.length){\r\n this.hideShowMore = true;\r\n }\r\n },\r\n computed: {\r\n colorThemeClass: function () {\r\n return this.ListTheme === 'Natural green' ? 'theme-5' : 'theme-4';\r\n }\r\n },\r\n methods: {\r\n showMore: function(){\r\n this.pageSize += this.pageStep;\r\n if(this.pageSize >= this.filteredListItems.length){\r\n this.hideShowMore = true;\r\n }\r\n },\r\n addSelectedFilters: function (filterItem, filterGroup) {\r\n var currentGroup = this.filters[filterGroup];\r\n\r\n if (!currentGroup || !currentGroup.length) {\r\n currentGroup = [];\r\n }\r\n\r\n var index = currentGroup.indexOf(filterItem);\r\n if (index > -1) {\r\n currentGroup.splice(index, 1);\r\n } else {\r\n currentGroup.push(filterItem);\r\n }\r\n\r\n this.filters[filterGroup] = currentGroup;\r\n this.filterItems();\r\n },\r\n filterItems: function () {\r\n var _filteredListItem = this.listItems;\r\n for (var k in this.filters) {\r\n if (this.filters.hasOwnProperty(k)) {\r\n var currentFilter = this.filters[k];\r\n\r\n if (currentFilter.length) {\r\n _filteredListItem = _filteredListItem.filter(function (item) {\r\n var selectedGroup = item.FilterGroups.find(function (group) {\r\n return group.Id == k;\r\n });\r\n\r\n if (selectedGroup) {\r\n return selectedGroup.FilterItems.find(function (filterItem) {\r\n return currentFilter.indexOf(filterItem.Id) > -1;\r\n });\r\n }\r\n });\r\n }\r\n\r\n }\r\n }\r\n\r\n this.filteredListItems = _filteredListItem;\r\n },\r\n containsObject: function (obj, list) {\r\n return list.some(function (item) {\r\n return obj.Name === item.Name;\r\n });\r\n },\r\n // Returns comma seperated string with all filters for an item\r\n getDataFilters: function (item) {\r\n let dataFilterString = '';\r\n\r\n if (!item.FilterItems || !item.FilterItems.length) {\r\n return;\r\n }\r\n\r\n for (let i = 0; i < item.FilterItems.length; i++) {\r\n let currentFilter = item.FilterItems[i];\r\n dataFilterString = dataFilterString + currentFilter.Id;\r\n\r\n //Add comma after each filter, exept the last one\r\n if (i + 1 != item.FilterItems.length) {\r\n dataFilterString += ',';\r\n }\r\n }\r\n return dataFilterString;\r\n },\r\n getFilterItemsFromGroup: function (groupName) {\r\n let filterItems = [];\r\n\r\n return filterItems;\r\n }\r\n }\r\n });\r\n }\r\n };\r\n}();","'use strict';\r\n\r\nvar novicell = novicell || {};\r\n\r\nnovicell.brandSlider = novicell.brandSlider || new function () {\r\n this.init = function(data) {\r\n const brandSlider = document.querySelectorAll('.brand-slider');\r\n\r\n if(!brandSlider) {\r\n return;\r\n }\r\n\r\n for (let i = 0; i < brandSlider.length; i++) {\r\n const slideshowElm = brandSlider[i];\r\n const flkty = new Flickity( slideshowElm, {\r\n // options\r\n cellAlign: 'left',\r\n contain: true,\r\n wrapAround: false,\r\n pageDots: false,\r\n groupCells: 1\r\n });\r\n \r\n }\r\n\r\n };\r\n}();","'use strict';\r\n\r\nvar novicell = novicell || {};\r\n\r\nnovicell.embedMedia = novicell.embedMedia || new function () {\r\n var playButtons = document.querySelectorAll('.js-video-overlay-trigger');\r\n this.init = function() {\r\n for (var index = 0; index < playButtons.length; index++) {\r\n var button = playButtons[index];\r\n button.addEventListener(\"click\", function(e){\r\n e.preventDefault();\r\n var currentButton = e.currentTarget;\r\n var videoId = currentButton.dataset.videoId;\r\n var videoType = currentButton.dataset.videoType;\r\n setVideoContent(currentButton, videoId, videoType);\r\n });\r\n }\r\n };\r\n \r\n function setVideoContent (button, videoId, videoType) {\r\n var parent = findAncestor(button, 'embed-media');\r\n var iframeContainer = parent.querySelector('.embed-media__iframe-container');\r\n createIframe(videoId, videoType, iframeContainer, parent);\r\n }\r\n\r\n function createIframe (videoId, videoType, iframeContainer, parent) {\r\n if (videoId !== null) {\r\n var src = '';\r\n if(videoType == 'vimeo') {\r\n src = 'https://player.vimeo.com/video/' + videoId + '?autoplay=1';\r\n }\r\n else if(videoType == 'youtube') {\r\n src = 'https://www.youtube.com/embed/' + videoId + '?autoplay=1&rel=0';\r\n }\r\n else {\r\n return;\r\n }\r\n\r\n var iframe = document.createElement('iframe');\r\n iframe.setAttribute('src', src);\r\n iframe.setAttribute('frameborder', 0);\r\n iframe.setAttribute('allowfullscreen', '');\r\n iframe.setAttribute('width', '100%');\r\n iframe.setAttribute('height', '100%');\r\n\r\n iframeContainer.innerHTML = iframe.outerHTML;\r\n\r\n parent.classList.add('embed-media--active');\r\n\r\n } else {\r\n console.warn('novicell.overlay: video-id is empty. Please provide a video-id for use in video embed code (we support only Vimeo and YouTube).');\r\n return;\r\n }\r\n }\r\n function findAncestor (el, cls) {\r\n while ((el = el.parentElement) && !el.classList.contains(cls));\r\n return el;\r\n }\r\n}();","'use strict';\r\n\r\nvar novicell = novicell || {};\r\n\r\nnovicell.wizard = novicell.wizard || new function () {\r\n this.init = function (data) {\r\n const listWrappers = document.querySelectorAll('.contact-wizard');\r\n if (!listWrappers) {\r\n return;\r\n }\r\n Vue.directive('init', {\r\n bind: function (el, binding, vnode) {\r\n // convert kebab-case to camelCase\r\n let arg = binding.arg.split('-').map((arg, index) => {\r\n return (index > 0) ? arg[0].toUpperCase() + arg.substring(1) : arg;\r\n }).join('');\r\n\r\n vnode.context[arg] = binding.value;\r\n }\r\n });\r\n for (var i = 0; i < listWrappers.length; i++) {\r\n let currentList = listWrappers[i];\r\n\r\n new Vue({\r\n el: currentList,\r\n name: 'contactWizard',\r\n data: {\r\n wizardData: {},\r\n foldOut: false,\r\n countryOptions: [],\r\n contactsNotAvailable: false,\r\n showReadyAnimation: false,\r\n regionControlActive: true,\r\n chosenOptions: {\r\n animalSegment: '',\r\n region: '',\r\n country: '',\r\n employees: []\r\n }\r\n },\r\n computed: {\r\n currentContactStatus: function () {\r\n /* statuses are: ['optionsNotSelected','noContactsAvailable','contacsFound'] */\r\n let status = 0;\r\n if(this.contactsNotAvailable) {\r\n status = 1;\r\n }else if(this.chosenOptions.employees.length) {\r\n status = 2;\r\n }\r\n\r\n return status;\r\n },\r\n // regionControlActive: function () {\r\n // return this.chosenOptions.animalSegment !== '';\r\n // },\r\n countryControlActive: function () {\r\n return this.chosenOptions.region !== '';\r\n }\r\n \r\n \r\n },\r\n methods: {\r\n attributePhone: function (phone) {\r\n return phone.replace(/\\s+/g, '');\r\n },\r\n attributeEmail: function (email) {\r\n return email.replace(/\\s+/g, '');\r\n },\r\n toggleWizard: function () {\r\n this.foldOut = !this.foldOut;\r\n },\r\n setAnimalSegment: function (type) {\r\n if(this.chosenOptions.animalSegment === type) {\r\n this.chosenOptions.animalSegment = '';\r\n }else {\r\n this.chosenOptions.animalSegment = type;\r\n }\r\n this.findContact();\r\n },\r\n setRegion: function (chosenRegion) {\r\n if(chosenRegion.RegionTitle !==this.chosenOptions.region){\r\n this.chosenOptions.region = chosenRegion.RegionTitle;\r\n this.countryOptions = chosenRegion.Countries;\r\n this.chosenOptions.country = '';\r\n this.findContact();\r\n }\r\n },\r\n findContact: function () {\r\n this.showReadyAnimation = false;\r\n if(this.chosenOptions.region !== '' && this.chosenOptions.country !== '') {\r\n var possibleEmployees = this.wizardData.Employees.filter((emp)=>{\r\n let useEmp = false;\r\n const correctCountry = emp.LocationList.includes(this.chosenOptions.country);\r\n let correctAnimalSegment = true;\r\n if(correctCountry) {\r\n if(this.chosenOptions.animalSegment !== '') {\r\n const checkAnimalSegments = emp.AnimalSegments.filter((seg)=>{\r\n return seg.Name === this.chosenOptions.animalSegment;\r\n });\r\n correctAnimalSegment = checkAnimalSegments.length > 0;\r\n }\r\n }\r\n return correctCountry && correctAnimalSegment;\r\n });\r\n\r\n\r\n if(!possibleEmployees.length){\r\n this.resetFoundContact();\r\n this.contactsNotAvailable = true;\r\n }else{\r\n this.chosenOptions.employees = possibleEmployees.slice(0, 3);\r\n this.contactsNotAvailable = false;\r\n setTimeout(()=> {\r\n this.showReadyAnimation = true; //won't work without delay\r\n },100);\r\n }\r\n }else {\r\n this.resetFoundContact();\r\n this.contactsNotAvailable = false;\r\n }\r\n \r\n },\r\n resetFoundContact() {\r\n this.chosenOptions.employees = [];\r\n }\r\n }\r\n });\r\n }\r\n };\r\n}();","'use strict';\r\n\r\nvar novicell = novicell || {};\r\n\r\nnovicell.keyNumbers = novicell.keyNumbers || new function () {\r\n this.init = function () {\r\n const keyNumbers = document.querySelectorAll('.js-key-numbers');\r\n\r\n // return if no keynumbers\r\n if (!keyNumbers || keyNumbers.length <= 0) {\r\n return;\r\n }\r\n\r\n // loop all keynumbers\r\n for (let i = 0; i < keyNumbers.length; i++) {\r\n let currentkeyNumber = keyNumbers[i];\r\n // animate if is visible and not already animated\r\n if (novicell.helper.isVisible(currentkeyNumber) && !currentkeyNumber.classList.contains('js-key-numbers--animated')) {\r\n const value = currentkeyNumber.getAttribute('data-number');\r\n const options = {\r\n useEasing: true,\r\n useGrouping: true,\r\n separator: '.',\r\n };\r\n let countUp = new CountUp(currentkeyNumber, 0, value, 0, 2.5, options);\r\n\r\n if (!countUp.error) {\r\n countUp.start();\r\n } else {\r\n console.error(countUp.error);\r\n }\r\n currentkeyNumber.classList.add('js-key-numbers--animated'); \r\n }\r\n }\r\n };\r\n}();\r\n","'use strict';\r\n\r\n/**\r\n * @author Henrik Reinbach Madsen\r\n * @requires flickity.js https://github.com/metafizzy/flickity\r\n */\r\n\r\nvar novicell = novicell || {};\r\n\r\n\r\nnovicell.slideshow = novicell.slideshow || new function () {\r\n const slideshows = document.querySelectorAll('.js-slideshow');\r\n\r\n this.init = function () {\r\n if (!slideshows) {\r\n return;\r\n }\r\n for (let i = 0; i < slideshows.length; i++) {\r\n const slideshowElm = slideshows[i];\r\n const self = this;\r\n const flkty = new Flickity(slideshowElm, {\r\n // options\r\n cellAlign: 'left',\r\n cellSelector: '.slideshow-slide',\r\n contain: true,\r\n wrapAround: true,\r\n pageDots: false,\r\n arrowShape: 'M71.3,100 21.3,50 71.3,0 78.7,7.5 36.2,50 78.7,92.5 z',\r\n on: {\r\n select: function(e) {\r\n self.resetVideoIframes(slideshowElm);\r\n }\r\n }\r\n });\r\n\r\n }\r\n };\r\n\r\n this.resetVideoIframes = function (slideshowElm) {\r\n const iframes = slideshowElm.getElementsByTagName('iframe');\r\n for (var i = 0; i < iframes.length; i++) {\r\n iframes[i].parentElement.parentElement.classList.remove('embed-media--active');\r\n iframes[i].remove();\r\n }\r\n };\r\n}();\r\n","'use strict';\r\n\r\nconst facebookShareLinks = document.getElementsByClassName('js-some-share__link-button--facebook');\r\n\r\nfor (let i = 0 ; i < facebookShareLinks.length ; i++) {\r\n const facebookShareLink = facebookShareLinks[i];\r\n new Vue({\r\n el: facebookShareLink,\r\n name: 'Facebook Share Link',\r\n methods: {\r\n shareOnFacebook() {\r\n const u=location.href;\r\n const t=document.title;\r\n window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(u)+'&t='+encodeURIComponent(t),'sharer','toolbar=0,status=0,width=626,height=436');\r\n return false;\r\n }\r\n }\r\n });\r\n}\r\n\r\n","'use strict';\r\n\r\nvar novicell = novicell || {};\r\n\r\nnovicell.filterSection = novicell.filterSection || new function () {\r\n const filterDropdDownActiveClass = 'filter-section-dropdown--active';\r\n\r\n this.init = function (data) {\r\n var filterDropdownTriggers = document.querySelectorAll('.js-filter-section-dropdown-trigger');\r\n\r\n if (!filterDropdownTriggers) {\r\n return;\r\n }\r\n\r\n for (var i = 0; i < filterDropdownTriggers.length; i++) {\r\n let currentTrigger = filterDropdownTriggers[i];\r\n\r\n currentTrigger.addEventListener('click', function () {\r\n var element = event.target.parentElement;\r\n\r\n if (novicell.helper.hasClass(element, filterDropdDownActiveClass)) {\r\n closeAll();\r\n } else {\r\n closeAll();\r\n element.classList.add(filterDropdDownActiveClass);\r\n clickedOutside(element);\r\n document.addEventListener('keydown', handleEsc, true);\r\n }\r\n });\r\n }\r\n };\r\n\r\n function clickedOutside(element) {\r\n\r\n // add click event to document\r\n document.addEventListener('click', function (event) {\r\n // check if item is open\r\n if (novicell.helper.hasClass(element, filterDropdDownActiveClass)) {\r\n let newTarget = element.contains(event.target);\r\n if (!newTarget) {\r\n closeAll();\r\n }\r\n }\r\n });\r\n }\r\n\r\n function handleEsc(e) {\r\n if (e.keyCode === 27) {\r\n closeAll();\r\n }\r\n }\r\n\r\n function closeAll(element) {\r\n\r\n // find all and remove active\r\n let classHolder = document.getElementsByClassName('filter-section-dropdown');\r\n\r\n for (let y = 0; y < classHolder.length; y++) {\r\n let currentElement = classHolder[y];\r\n currentElement.classList.remove(filterDropdDownActiveClass);\r\n }\r\n\r\n document.removeEventListener('keydown', handleEsc, true);\r\n }\r\n}();\r\n","'use strict';\r\nconst topbanners = document.getElementsByClassName('js-top-banner__slideshow');\r\n\r\nfor (var i = 0; i < topbanners.length; i++) {\r\n new Vue({\r\n el: topbanners[i],\r\n name: 'top-banner',\r\n data: {\r\n autoPlayMilliSeconds:7000,\r\n inViewport: false,\r\n addClassForSlideHeight: false,\r\n sliderElement:null,\r\n flkty: null,\r\n videosInSlider: [],\r\n slidesCount: 0\r\n },\r\n mounted() {\r\n this.sliderElement = this.$refs.slideshowList;\r\n if(!this.sliderElement){return;}\r\n \r\n this.slidesCount = this.sliderElement.children.length;\r\n const videoNodesInSlider = this.sliderElement.getElementsByClassName('top-banner__video');\r\n this.videosInSlider = Array.prototype.slice.call(videoNodesInSlider);\r\n this.observeVideoSliderInViewport();\r\n this.initSlider();\r\n this.resizeSlider();\r\n },\r\n methods: {\r\n observeVideoSliderInViewport(){\r\n const options = { threshold: 0 };\r\n const backgroundObserver = new IntersectionObserver(this.sliderIsInViewPort, options);\r\n backgroundObserver.observe(this.$el);\r\n },\r\n sliderIsInViewPort(entries){\r\n entries.forEach((entry) => {\r\n if (entry.isIntersecting) {\r\n this.inViewport = true;\r\n this.videosInSlider.forEach(\r\n (videoEl)=>{\r\n const videoSrc = videoEl.getAttribute('data-html');\r\n videoEl.innerHTML = videoSrc;\r\n }\r\n );\r\n this.flkty.selectCell( 0, false, true ); // to trigger start of video on first slide\r\n }\r\n else {\r\n this.inViewport = false;\r\n this.videosInSlider.forEach(\r\n (videoEl)=>{\r\n videoEl.innerHTML = '';\r\n }\r\n );\r\n }\r\n });\r\n },\r\n playVideo(currentSlide){\r\n if(this.inViewport && currentSlide.classList.contains('top-banner__item--has-video')) {\r\n const currentVideo = currentSlide.getElementsByClassName('top-banner__video')[0] || null;\r\n if(!currentVideo){\r\n this.stopVideosInThisSlider();\r\n return;\r\n }\r\n if(this.slidesCount > 1){\r\n this.stopVideosInThisSlider();\r\n currentVideo.currentTime = 0;\r\n }\r\n currentVideo.play();\r\n }\r\n },\r\n stopVideosInThisSlider() {\r\n const videosInSlider = this.sliderElement.getElementsByClassName('top-banner__video');\r\n for(let i = 0; i < videosInSlider.length; i++) {\r\n videosInSlider[i].pause();\r\n }\r\n },\r\n initSlider(){\r\n const self = this;\r\n const pageDots = this.slidesCount > 1;\r\n this.flkty = new Flickity( this.sliderElement, {\r\n wrapAround: true,\r\n autoPlay: this.slidesCount > 1 ? this.autoPlayMilliSeconds : false,\r\n pauseAutoPlayOnHover: false,\r\n prevNextButtons: false,\r\n pageDots: pageDots,\r\n on: {\r\n ready: function(e) {\r\n self.addClassForSlideHeight=true;\r\n if(this && this.selectedCell){\r\n self.playVideo(this.selectedCell.element);\r\n }\r\n },\r\n select: function(e) {\r\n if(this && this.selectedCell){\r\n self.playVideo(this.selectedCell.element);\r\n }\r\n }\r\n }\r\n });\r\n },\r\n resizeSlider(){\r\n const self = this;\r\n window.addEventListener('resize',function(){\r\n self.addClassForSlideHeight=false;\r\n this.setTimeout(function(){\r\n self.addClassForSlideHeight=true;\r\n });\r\n });\r\n }\r\n }\r\n });\r\n}\r\n","'use strict';\r\nvar novicell = novicell || {};\r\nconst globalHeader = document.getElementById('js-site-navigation');\r\n\r\nif (globalHeader) {\r\n new Vue({\r\n el: globalHeader,\r\n name: 'globalHeader',\r\n data: {\r\n hasBackground: false,\r\n onlyBgOutsideTopBanner: false,\r\n burgerActive: false,\r\n showDropDown:{},\r\n showMobileDropDownLevel2:{},\r\n showMobileDropDownLevel3:{},\r\n languagePicker:null,\r\n languagePickerList:null,\r\n languagePickerActiveClass: 'language-picker--active',\r\n searchIsOpen: false,\r\n searchInput: null\r\n },\r\n mounted() {\r\n const pageHeader = document.getElementsByClassName('top-banner');\r\n \r\n if (!pageHeader.length) {\r\n this.hasBackground = true;\r\n } else {\r\n this.onlyBgOutsideTopBanner = true;\r\n this.handleScroll(pageHeader[0]);\r\n }\r\n document.addEventListener('scroll', () => {\r\n this.handleScroll(pageHeader[0]);\r\n });\r\n\r\n document.addEventListener('touchend', () => {\r\n this.hideAllDropDowns();\r\n });\r\n this.languagePicker = this.$refs.languagePicker;\r\n this.languagePickerList = this.$refs.languagePickerList;\r\n this.searchInput = this.$refs.searchInputField;\r\n },\r\n methods: {\r\n languagePickerClickTrigger(e){\r\n e.preventDefault();\r\n\r\n this.languagePickerCloseOverlayHandler();\r\n this.languagePicker.classList.add(this.languagePickerActiveClass);\r\n },\r\n languagePickerCloseOverlayHandler() {\r\n document.addEventListener('keydown', this.languagePickerHandleEsc, true);\r\n document.addEventListener('click', this.languagePickerHandleClick, true);\r\n },\r\n languagePickerCloseLanguagePicker() {\r\n document.removeEventListener('click', this.handleClick, true);\r\n },\r\n languagePickerHandleClick(e) {\r\n var targetElement = e.target;\r\n do {\r\n if (targetElement == this.languagePickerList) {\r\n // This is a click inside. Do nothing, just return.\r\n return;\r\n }\r\n targetElement = targetElement.parentNode;\r\n } while (targetElement);\r\n \r\n // This is a click outside.\r\n this.languagePickerCloseLanguagePicker();\r\n },\r\n handleScroll(pageHeader) {\r\n if (this.onlyBgOutsideTopBanner) {\r\n const pageHeaderRect = pageHeader.getBoundingClientRect();\r\n const globalHeaderRect = this.$el.getBoundingClientRect();\r\n this.hasBackground = (pageHeaderRect.top - globalHeaderRect.height) + pageHeaderRect.height <= 0;\r\n }\r\n },\r\n toggleBurgerActive() {\r\n this.burgerActive = !this.burgerActive;\r\n if(this.burgerActive) {\r\n this.hideAllMobileDropDownsLevel2();\r\n this.hideAllMobileDropDownsLevel3();\r\n this.foldOutMobileNavOnOpen();\r\n }\r\n novicell.helper.toggleClass(document.body, 'no-scroll');\r\n },\r\n stopProp(e){\r\n e.stopPropagation();\r\n },\r\n hideAllDropDowns(){\r\n Object.keys(this.showDropDown).forEach((key) =>{\r\n Vue.set(this.showDropDown, key, false);\r\n });\r\n },\r\n mobileFindTriggerAndClick(triggerParent){\r\n const triggerLevel = triggerParent.children;\r\n const triggerLevelArray = Array.prototype.slice.call(triggerLevel);\r\n const trigger = triggerLevelArray.filter(el => el.classList.contains('site-navigation-list__sub-navigation-toggle'))[0];\r\n if(trigger) {\r\n trigger.click();\r\n }\r\n },\r\n foldOutMobileNavOnOpen(){\r\n const activePage = this.$refs.selected;\r\n if(activePage){\r\n let activePageLevel = 4;\r\n if(activePage.classList.contains('sub-navigation__item--level-2')) {\r\n activePageLevel = 2;\r\n }\r\n if(activePage.classList.contains('sub-navigation__item--level-3')) {\r\n activePageLevel = 3;\r\n }\r\n // const activePageLevel = activePage.classList.contains('sub-navigation__item--level-2 ') ? 2 : 3;\r\n if(activePageLevel === 2) {\r\n const triggerParent = activePage.parentElement.parentElement.parentElement.parentElement;\r\n this.mobileFindTriggerAndClick(triggerParent);\r\n }else if(activePageLevel === 3) {\r\n const triggerParent3 = activePage.parentElement.parentElement;\r\n this.mobileFindTriggerAndClick(triggerParent3);\r\n const triggerParent2 = activePage.closest('.site-navigation-list__item');\r\n this.mobileFindTriggerAndClick(triggerParent2);\r\n }\r\n else if(activePageLevel === 4) {\r\n const triggerParent3 = activePage.parentElement.parentElement.parentElement.parentElement;\r\n this.mobileFindTriggerAndClick(triggerParent3);\r\n const triggerParent2 = activePage.closest('.site-navigation-list__item');\r\n this.mobileFindTriggerAndClick(triggerParent2);\r\n }\r\n }\r\n },\r\n hideAllMobileDropDownsLevel2(){\r\n Object.keys(this.showMobileDropDownLevel2).forEach((key) =>{\r\n Vue.set(this.showMobileDropDownLevel2, key, false);\r\n });\r\n },\r\n hideAllMobileDropDownsLevel3(){\r\n Object.keys(this.showMobileDropDownLevel3).forEach((key) =>{\r\n Vue.set(this.showMobileDropDownLevel3, key, false);\r\n });\r\n },\r\n toggleNavigation(e,elId) {\r\n var mediaQuery = window.matchMedia(\"(min-width: 1200px)\");\r\n if (mediaQuery.matches) { // If media query matches\r\n e.preventDefault();\r\n e.stopPropagation();\r\n e.stopImmediatePropagation();\r\n let show = false;\r\n if(!this.showDropDown[elId]) {\r\n show = true;\r\n }\r\n this.hideAllDropDowns();\r\n Vue.set(this.showDropDown, elId, show);\r\n }\r\n },\r\n toggleMobileSubLevel3(elId) {\r\n let show = false;\r\n if(!this.showMobileDropDownLevel3[elId]) {\r\n show = true;\r\n }\r\n // this.hideAllMobileDropDownsLevel3();\r\n Vue.set(this.showMobileDropDownLevel3, elId, show);\r\n },\r\n toggleMobileSubLevel2(elId) {\r\n let show = false;\r\n if(!this.showMobileDropDownLevel2[elId]) {\r\n show = true;\r\n }\r\n // this.hideAllMobileDropDownsLevel2();\r\n Vue.set(this.showMobileDropDownLevel2, elId, show);\r\n },\r\n searchButtonClick(e,elId){\r\n if (!this.searchIsOpen) {\r\n this.openSearchOverlay();\r\n } else {\r\n this.closeSearchOverlay();\r\n }\r\n this.toggleNavigation(e,elId);\r\n },\r\n openSearchOverlay() {\r\n // document.addEventListener('keydown', handleEsc, true);\r\n document.addEventListener('click', this.searchHandleClick, true);\r\n document.body.classList.add('search-overlay-open');\r\n this.searchInput.focus();\r\n \r\n this.searchIsOpen = true;\r\n },\r\n closeSearchOverlay() {\r\n document.body.classList.remove('search-overlay-open');\r\n this.searchInput.blur();\r\n this.searchInput.value = '';\r\n // document.removeEventListener('keydown', handleEsc, true);\r\n document.removeEventListener('click', this.searchHandleClick, true);\r\n \r\n this.searchIsOpen = false;\r\n },\r\n searchHandleClick(e) {\r\n var targetElement = e.target;\r\n \r\n if (targetElement.closest('.js-search-overlay') || targetElement.closest('.js-search-overlay-trigger')) {\r\n return;\r\n }\r\n \r\n // This is a click outside.\r\n this.closeSearchOverlay();\r\n }\r\n }\r\n });\r\n}\r\n"]}