{"version":3,"sources":["Custom.js"],"names":["Pico","Object","create","HandlebarsUtils","handlebars","registerHelper","guid","width","height","src","GlobalSettings","PerfionApiUrl","Handlebars","SafeString","inGallery","youtubeLinks","vimeoLinks","options","hasVideos","videoLinks","videoType","some","feature","view","fn","this","inverse","name","productNumber","price","currency","searchString","Cookiebot","consent","marketing","fbq","content_name","content_category","content_ids","value","search_string","handlebarsUtils","defineProperties","renderTemplate","templateId","containerId","data","fireEvents","container","document","getElementById","scriptTemplate","eventData","detail","dispatchEvent","CustomEvent","compiledHtml","compile","innerHTML","template","CustomRequest","prototype","newRequest","url","method","successCallback","errorCallback","returnJson","headers","xhr","XMLHttpRequest","open","onreadystatechange","error","message","console","warn","response","readyState","DONE","status","responseType","trim","indexOf","JSON","parse","e","setRequestHeader","isFormContent","names","getOwnPropertyNames","prop","propName","propValue","send","stringify","Fetch","self","get","post","CustomCart","request","UpdateCart","command","preloader","overlayElement","createElement","className","setAttribute","overlayElementIcon","style","top","window","pageYOffset","appendChild","parentNode","insertBefore","miniCartButtons","getElementsByClassName","i","length","classList","add","overlayNode","removeChild","HandlebarsBolt","UpdateContent","miniCartCounters","cartCounter","remove","CreateItemsFromJson","getAttribute","event","location","reload","Content-Type","log","Array","map","callback","T","A","k","TypeError","O","len","arguments","kValue","mappedValue","call","fun","thisArg","t","every","callbackfn","toString","languageUrlFeed","querySelector","languages","index","AreaId","href","Link","X-NavTag","navTag","X-AreaIDs","areaIds","X-GroupID","groupId","X-ProductID","productId","X-VariantID","productVariantId","onload","a","innerHeight","documentElement","clientHeight","body","offsetHeight","marginTop","pico","carousels","loadYoutube","links","filter","link","videoFeature","text","smallImage","largeImage","pushArray","array","elements","push","addEventListener","tabsContainer","galleryImagesContainer","galleryModal","querySelectorAll","forEach","el","videos","ajaxContainer","ajaxContainerElement","hasAttribute","id","Gallery","Init","carousel","CarouselModule","slidesInView","direction","preloaderSize","showCounter","isModal","videoEvent","EventTarget","reqCount","videoImages","vimeoImages","obj","thumbnail_small","thumbnail_large","loadVideos","payload","images","contains","defineProperty","writable","configurable","inputs","inputElement","target","type","inputChecked","checked","toggleProductFeature","toggle","accordionContent","nextSibling","maxHeight","scrollHeight"],"mappings":"AACA,IAAAA,KAAAA,MAAAC,OAAAC,OAAA,MAIAC,gBAAA,SAAAC,GACAA,EAAAC,eAAA,mBAAA,SAAAC,EAAAC,EAAAC,GACA,IAAAC,EASA,OALAA,EADA,yCAAAH,EACA,qCAAAC,EAAA,eAAAC,EAAA,qHAEAE,eAAAC,cAAA,0BAAAL,EAAA,SAAAC,EAAA,IAAAC,EAAA,cAGA,IAAAI,WAAAC,WAAAJ,MAGAL,EAAAC,eAAA,aAAA,SAAAS,EAAAC,EAAAC,EAAAC,GACA,IAAAC,EAAA,SAAAC,EAAAC,GACA,OAAAD,EAAAE,MAAA,SAAAC,GAAA,OAAAA,EAAAC,OAAAH,MAKA,OAAAN,EACAI,EAAAH,EAHA,YAGAG,EAAAF,EAHA,WAGAC,EAAAO,GAAAC,MAAAR,EAAAS,QAAAD,MAGAP,EAAAH,EAPA,eAOAG,EAAAF,EAPA,cAOAC,EAAAO,GAAAC,MAAAR,EAAAS,QAAAD,SAGArB,EAAAC,eAAA,uBACA,SAAAsB,EAAAC,EAAAC,EAAAC,EAAAC,GACA,GAAAC,UAAAC,QAAAC,UAAA,CACA,IAAAC,IAAA,OAEAA,IAAA,QAAA,SAAA,CACAC,aAAAT,EACAU,iBAAA,WACAC,YAAA,CAAAV,GACAW,MAAAV,EACAC,SAAAA,EACAU,cAAAT,QAKA,IAAAU,EAAAxC,OAAAC,OAAA,MA4BA,OANAD,OAAAyC,iBAAAD,EAAA,CACAE,eAAA,CACAJ,MAtBA,SAAAK,EAAAC,EAAAC,EAAAC,GACA,IAAAC,EAAAC,SAAAC,eAAAL,GACAM,EAAAF,SAAAC,eAAAN,GACAQ,EAAA,CAAAC,OAAA,CAAAR,YAAAA,EAAAD,WAAAA,EAAAE,KAAAA,IAMA,GAJAC,GACAC,EAAAM,cAAA,IAAAC,YAAA,oBAAAH,IAGAJ,GAAAG,EAAA,CACA,IACAK,EADA5C,WAAA6C,QAAAN,EAAAO,UACAC,CAAAb,GACAE,EAAAU,UAAAF,EAGAT,GACAC,EAAAM,cAAA,IAAAC,YAAA,mBAAAH,QAUAX,EAxEA,CAyEA7B,YAIAgD,cAAA,WACA,SAAAA,KAmGA,OAjGAA,EAAAC,UAAAC,WAAA,SAAAC,EAAAC,EAAAlB,EAAAmB,EAAAC,EAAAC,EAAAC,GACA,MAAAD,IACAA,GAAA,GAGA,IAAAE,EAAA,IAAAC,eACAD,EAAAE,KAAAP,EAAAD,GAAA,GACAM,EAAAG,mBAAA,WACA,SAAAC,EAAAC,GACAC,QAAAC,KAAAF,GAEA,mBAAAR,GACAA,EAAAzC,KAAAoD,UAIA,GAAApD,KAAAqD,YAAAR,eAAAS,MAAA,KAAAtD,KAAAuD,OAAA,CACA,IAAAlC,EAQA,GALAA,EADA,SAAArB,KAAAwD,aACAxD,KAAAoD,SAAAH,QAAAQ,OAEAzD,KAAAoD,SAAAK,OAGAf,EACA,GAAA,IAAArB,EACA6B,QAAAC,KAAAb,EAAA,uBACAjB,EAAA,OACA,CAAA,GAAA,GAAAA,EAAAqC,QAAA,KAEA,YADAV,EAAAV,EAAA,uCAGA,IACAjB,EAAAsC,KAAAC,MAAAvC,GACA,MAAAwC,GAEA,YADAb,EAAAV,EAAA,oCAMA,mBAAAE,GACAA,EAAAnB,QAEArB,KAAAqD,YAAAR,eAAAS,MAAA,KAAAtD,KAAAuD,QACAP,EAAAV,EAAA,4BAIAM,EAAAkB,iBAAA,gBAAA,wDACAlB,EAAAkB,iBAAA,gBAAA,aACAlB,EAAAkB,iBAAA,UAAA,KACAlB,EAAAkB,iBAAA,UAAA,gCACAlB,EAAAkB,iBAAA,SAAA,YAEA,IAAAC,GAAA,EACA,GAAApB,GAAA,iBAAAA,EAAA,CACA,IAAAqB,EAAAxF,OAAAyF,oBAAAtB,GAEA,IAAA,IAAAuB,KAAA1F,OAAAyF,oBAAAtB,GAAA,CACA,IAAAwB,EAAAH,EAAAE,GACAE,EAAAzB,EAAAwB,GAEA,iBAAAA,GAAA,qCAAAC,IACAL,GAAA,GAGAnB,EAAAkB,iBAAAK,EAAAC,IAIA/C,EACA0C,EACAnB,EAAAyB,KAAAhD,GAEAuB,EAAAyB,KAAAV,KAAAW,UAAAjD,IAGAuB,EAAAyB,QAIAlC,EAAAC,UAAAmC,MAAA,WACA,IAAAC,EAAAxE,KAEA,MAAA,CACAyE,IAAA,SAAAnC,EAAAE,EAAAC,EAAAC,EAAAC,GACA6B,EAAAnC,WAAAC,EAAA,MAAA,KAAAE,EAAAC,EAAAC,EAAAC,IAGA+B,KAAA,SAAApC,EAAAjB,EAAAmB,EAAAC,EAAAC,EAAAC,GACA6B,EAAAnC,WAAAC,EAAA,OAAAjB,EAAAmB,EAAAC,EAAAC,EAAAC,MAKA,IAAAR,EApGA,GAsGAwC,WAAA,SAAAC,GACA,SAAAD,KAyEA,OAvEAA,EAAAvC,UAAAyC,WAAA,SAAAzD,EAAAkB,EAAAwC,EAAAC,GACA,GAAA3D,EAAA,CAKA,GAAA,GAAA2D,EAAA,CACA,IAAAC,EAAAxD,SAAAyD,cAAA,OACAD,EAAAE,UAAA,oBACAF,EAAAG,aAAA,KAAA,eACA,IAAAC,EAAA5D,SAAAyD,cAAA,OACAG,EAAAF,UAAA,iCACAE,EAAAC,MAAAC,IAAAC,OAAAC,YAAA,KACAR,EAAAS,YAAAL,GAEA5D,SAAAC,eAAA,WAAAiE,WAAAC,aAAAX,EAAAxD,SAAAC,eAAA,YAIA,IADA,IAAAmE,EAAApE,SAAAqE,uBAAA,uBACAC,EAAA,EAAAA,EAAAF,EAAAG,OAAAD,IAAA,CACAtE,SAAAqE,uBAAA,uBAAAC,GACAE,UAAAC,IAAA,oBAOA3D,GAAA,oBACAsC,EAAAL,QAAAG,KAAApC,EAAAwC,GAEA,SAAAzD,GACA,GAAA,GAAA0D,EAAA,CACA,IAAAmB,EAAA1E,SAAAC,eAAA,eACAyE,EAAAR,WAAAS,YAAAD,GAGA1E,SAAAC,eAAAL,IAAA,YAAAA,GACAgF,eAAAC,cAAAjF,EAAAkB,GAKA,IAFA,IAAAgE,EAAA9E,SAAAqE,uBAAA,wBAEAC,EAAA,EAAAA,EAAAQ,EAAAP,OAAAD,IAAA,CACA,IAAAS,EAAAD,EAAAR,GAEA,GAAAS,EAAA,CACAA,EAAAtE,UAAA,GAEA,IAAA2D,EAAApE,SAAAqE,uBAAA,uBACA,IAAAC,EAAA,EAAAA,EAAAF,EAAAG,OAAAD,IAAA,CACAtE,SAAAqE,uBAAA,uBAAAC,GACAE,UAAAQ,OAAA,oBAGAJ,eAAAK,oBAAApF,EAAAkF,EAAAG,aAAA,QAIA,IAAAC,EAAA,IAAA7E,YAAA,cAAA,CAAAF,OAAA,CAAAkD,QAAAA,EAAA1D,YAAAA,EAAAkB,IAAAA,EAAAyC,UAAAA,EAAA1D,KAAAA,KACAG,SAAAK,cAAA8E,MAGA,SAAAtF,GACAuF,SAAAC,SAEA,IAAAF,EAAA,IAAA7E,YAAA,cAAA,CAAAF,OAAA,CAAAkD,QAAAA,EAAA1D,YAAAA,EAAAkB,IAAAA,EAAAyC,UAAAA,EAAA1D,KAAAA,KACAG,SAAAK,cAAA8E,MAtCA,EAAA,CAAAG,eAAA,2CA3BA5D,QAAA6D,IAAA,uCAqEA,IAAApC,EA1EA,CA2EAxC,eAOA6E,MAAA5E,UAAA6E,MACAD,MAAA5E,UAAA6E,IAAA,SAAAC,GACA,IAAAC,EAAAC,EAAAC,EAEA,GAAA,MAAArH,KACA,MAAA,IAAAsH,UAAA,+BAKA,IAAAC,EAAA/I,OAAAwB,MAKAwH,EAAAD,EAAAxB,SAAA,EAIA,GAAA,mBAAAmB,EACA,MAAA,IAAAI,UAAAJ,EAAA,sBAiBA,IAbAO,UAAA1B,OAAA,IACAoB,EAAAM,UAAA,IAMAL,EAAA,IAAAJ,MAAAQ,GAGAH,EAAA,EAGAA,EAAAG,GAAA,CAEA,IAAAE,EAAAC,EAQAN,KAAAE,IAIAG,EAAAH,EAAAF,GAKAM,EAAAT,EAAAU,KAAAT,EAAAO,EAAAL,EAAAE,GAmBAH,EAAAC,GAAAM,GAGAN,IAIA,OAAAD,IAIAJ,MAAA5E,UAAAxC,OACAoH,MAAA5E,UAAAxC,KAAA,SAAAiI,EAAAC,GACA,aAEA,GAAA,MAAA9H,KACA,MAAA,IAAAsH,UAAA,oDAGA,GAAA,mBAAAO,EACA,MAAA,IAAAP,UAMA,IAHA,IAAAS,EAAAvJ,OAAAwB,MACAwH,EAAAO,EAAAhC,SAAA,EAEAD,EAAA,EAAAA,EAAA0B,EAAA1B,IACA,GAAAA,KAAAiC,GAAAF,EAAAD,KAAAE,EAAAC,EAAAjC,GAAAA,EAAAiC,GACA,OAAA,EAIA,OAAA,IAIAf,MAAA5E,UAAA4F,QACAhB,MAAA5E,UAAA4F,MAAA,SAAAC,EAAAH,GACA,aACA,IAAAX,EAAAE,EAEA,GAAA,MAAArH,KACA,MAAA,IAAAsH,UAAA,+BAKA,IAAAC,EAAA/I,OAAAwB,MAKAwH,EAAAD,EAAAxB,SAAA,EAGA,GAAA,mBAAAkC,GAAA,sBAAAzJ,OAAA4D,UAAA8F,SAAAN,KAAAK,GACA,MAAA,IAAAX,UAYA,IARAG,UAAA1B,OAAA,IACAoB,EAAAW,GAIAT,EAAA,EAGAA,EAAAG,GAAA,CAEA,IAAAE,EAQA,GAAAL,KAAAE,IAIAG,EAAAH,EAAAF,KAMAF,EAAAc,EAAAL,KAAAT,EAAAO,EAAAL,EAAAE,GACAU,EAAAP,EAAAL,EAAAE,KAIA,OAAA,EAGAF,IAEA,OAAA,IAQA,oBAAAc,kBAIA3G,SAAA4G,cAAA,2BAAApC,UAAAC,IAAA,YACA9D,cAAAoC,QAAAE,IAAA0D,iBAAA,SAAAE,GACA,IAAA,IAAAC,KAAAD,EACA7G,SAAA4G,cAAA,SAAAC,EAAAC,GAAAC,QACAC,KAAAH,EAAAC,GAAAG,KAGAjH,SAAA4G,cAAA,2BAAApC,UAAAQ,OAAA,eACA,WACAtD,QAAAC,KAAA,kCACA,EAAA,CACAuF,WAAAC,OACAC,YAAAC,QACAC,YAAAC,QACAC,cAAAC,UACAC,cAAAC,oBAMA5D,OAAA6D,OAAA,WAUA,IAIAC,EAZA,CACAtK,OACAwG,OAAA+D,aACA9H,SAAA+H,gBAAAC,cACAhI,SAAAiI,KAAAD,cAMAzK,OACAyC,SAAAC,eAAA,eAAAiI,aAGA,GAAAL,EAAA,EACA7H,SAAAC,eAAA,UAAA4D,MAAAsE,UAAAN,EAAA,MAKA,SAAA9D,EAAAqE,GACA,IAAAC,EAAA,GAEA,SAAAC,EAAAC,GACA,OAAAA,EAAAC,QAAA,SAAAC,GACA,MAAA,YAAAA,EAAAnK,QACAmH,KAAA,SAAAiD,GACA,MAAA,CACAD,KAAA,iCAAAC,EAAAC,KAAA,SACAC,WAAA,8BAAAF,EAAAC,KAAA,eACAE,WAAA,8BAAAH,EAAAC,KAAA,yBAiBA,SAAAG,EAAAC,EAAAC,GACA,IAAA,IAAAlC,KAAAkC,EACAD,EAAAE,KAAAD,EAAAlC,IA0CA/C,EAAAmF,iBAAA,oBAAA,WAEA,IAAAC,EAAAnJ,SAAAC,eAAA,QACAmJ,EAAApJ,SAAAC,eAAA,0BACAoJ,EAAArJ,SAAAC,eAAA,gBAGAD,SAAAsJ,iBAAA,yBAAAC,SAAA,SAAAC,GACAA,EAAAxE,YAIAmE,GACAA,EAAAD,iBAAA,iBAAA,SAAA/D,GACA,IAAA/E,EAAA+E,EAAA/E,OACAqJ,EAAA,GAEA,GAAArJ,EAAAP,KAAA,CACAO,EAAAP,KAAA/B,cACAgL,EAAAW,EACArJ,EAAAP,KAAA/B,aAAA0K,QAAA,SAAAC,GACA,MAAA,eAAAA,EAAAnK,QACAmH,KAAA,SAAAiD,GACA,MAAA,CACAD,KAAA,iCAAAC,EAAAC,KAAA,cAKAvI,EAAAP,KAAA9B,YACA+K,EAAAW,EACArJ,EAAAP,KAAA9B,WAAAyK,QAAA,SAAAC,GACA,MAAA,eAAAA,EAAAnK,QACAmH,KAAA,SAAAiD,GACA,MAAA,CACAD,KAAA,kCAAAC,EAAAC,KAAA,4BAKAvI,EAAAP,KAAA4J,OAAAA,EAGAvM,gBAAAwC,eAAA,gBAAA,OAAAU,EAAAP,MAKA,IAFA,IAAA6J,EAAA1J,SAAAsJ,iBAAA,6BAEAhF,EAAA,EAAAA,EAAAoF,EAAAnF,OAAAD,IAAA,CACA,IAAAqF,EAAAD,EAAApF,GAEAqF,EAAAzE,aAAA,mBACAxD,QAAA6D,IAAA,6EAGAoE,EAAAC,aAAA,qBAAAD,EAAAzE,aAAA,qBACAN,eAAAC,cAAA8E,EAAAE,GAAAF,EAAAzE,aAAA,mBAAA,EAAAyE,EAAAzE,aAAA,iBAAAyE,EAAAzE,aAAA,wBAQAmE,GACAA,EAAAH,iBAAA,oBAAA,SAAA/D,GAIA,IAAA,IAAA2B,KAHAgD,QAAAC,OAGA1B,EAAA,CACA,IAAA2B,EAAA3B,EAAAvB,GAEA,iBAAAkD,EAAAH,KAEA9F,EAAAiG,EAAAH,IAAA,IAAAI,eAAA,IAAAD,EAAAH,GACA,CACAK,aAAAF,EAAAE,aACAC,UAAAH,EAAAG,UACAC,cAAAJ,EAAAI,cACAC,YAAAL,EAAAM,UAGAvG,EAAAiG,EAAAH,IAAAE,OACA/J,SAAAsJ,iBAAA,yBAAAC,SAAA,SAAAC,GACAA,EAAAxE,iBAQAoE,IACAA,EAAAF,iBAAA,oBAAA,SAAA/D,GACAA,EAAA/E,OAAAP,KAMA,IAAA,IAAAiH,KAHAgD,QAAAC,OAGA1B,EAAA,CACA,IAAA2B,EAAA3B,EAAAvB,GACA,mBAAAkD,EAAAH,KAEA9F,EAAAiG,EAAAH,IAAA,IAAAI,eAAA,IAAAD,EAAAH,GACA,CACAK,aAAAF,EAAAE,aACAC,UAAAH,EAAAG,UACAC,cAAAJ,EAAAI,cACAC,YAAAL,EAAAM,UAEAvG,EAAAiG,EAAAH,IAAAE,OACA/J,SAAAsJ,iBAAA,yBAAAC,SAAA,SAAAC,GACAA,EAAAxE,iBAOAoE,EAAAF,iBAAA,iBAAA,SAAA/D,GACA,IAAAtF,EAAAsF,EAAA/E,OAAAP,KAGAA,GAlKA,SAAAA,EAAA6F,GACA,IAAA+D,EAAA,GAGA,GAAA5J,EAAA9B,YAAA8B,EAAA9B,WAAAwG,OAAA,EAAA,CACA,IAAAgG,EAAA,IAAAC,YACAC,EAAA5K,EAAA9B,WAAAwG,OACAmG,EAAA,GAQA,IAAA,IAAApG,KANAiG,EAAArB,iBAAA,eAAA,SAAA/D,GA3BA,IAAAoD,EAAAoC,EA4BA7B,EAAAW,EAAAnB,EAAAzI,EAAA/B,eACAgL,EAAAW,GA7BAlB,EA6BA1I,EAAA9B,WA7BA4M,EA6BAxF,EAAA/E,OA5BAmI,EAAAC,QAAA,SAAAC,GACA,MAAA,YAAAA,EAAAnK,QACAmH,KAAA,SAAAiD,GACA,MAAA,CACAD,KAAA,kCAAAC,EAAAC,KAAA,uBACAC,WAAA+B,EAAAjC,EAAAC,MAAAC,WACAC,WAAA8B,EAAAjC,EAAAC,MAAAE,iBAuBAnD,EAAA+D,MAGA5J,EAAA9B,WACA4C,cAAAE,WAAA,kCAAAhB,EAAA9B,WAAAuG,GAAAqE,KAAA,QAAA,MAAA,MAAA,SAAA9I,GACA,IAAA+K,EAAA5N,OAAAC,OAAA,MACAD,OAAAyC,iBAAAmL,EAAA,CACAhC,WAAA,CAAAtJ,MAAAO,EAAA,GAAAgL,iBACAhC,WAAA,CAAAvJ,MAAAO,EAAA,GAAAiL,mBAEAJ,EAAA7K,EAAA,GAAAgK,IAAAe,EAGA,KAAAH,GACAF,EAAAlK,cAAA,IAAAC,YAAA,cAAA,CAAAF,OAAAsK,QAEA,SAAAjJ,GACAC,QAAAC,KAAAF,WAGA5B,EAAA/B,eACAgL,EAAAW,EAAAnB,EAAAzI,EAAA/B,eACA4H,EAAA+D,IAiIAsB,CAAAlL,GACA,SAAA4J,GACA,IAAAuB,EAAA,CACAC,OAAApL,EAAAoL,OACAxB,OAAAA,GAGA,IAAA,IAAA3C,KAAAuB,EAAA,CACA,IAAA2B,EAAA3B,EAAAvB,GAKA,mBAAAkD,EAAAH,IAAA7J,SAAAC,eAAA+J,EAAAH,IAAArF,UAAA0G,SAAA,wBAEAnH,EAAAiG,EAAAH,IAAA,IAAAI,eAAA,IAAAD,EAAAH,GACA,CACAK,aAAAF,EAAAE,aACAC,UAAAH,EAAAG,UACAC,cAAAJ,EAAAI,cACAC,YAAAL,EAAAM,UAEAvG,EAAAiG,EAAAH,IAAAE,QAKA7M,gBAAAwC,eAAA,uBAAA,eAAAsL,GAAA,aAWAhO,OAAAmO,eAAA/C,EAAA,iBAAA,CAAAgD,UAAA,EAAAC,cAAA,EAAA/L,MAJA,SAAAuK,EAAAK,EAAAC,EAAAC,EAAAE,GACAjC,EAAAY,KAAA,CAAAY,GAAAA,EAAAK,aAAAA,EAAAC,UAAAA,EAAAC,cAAAA,EAAAE,QAAAA,OAvOA,CA2OAvG,OAAAhH,MAIA,SAAAiD,GAEA,IAAAsL,EAAAtL,EAAAsJ,iBAAA,mCAEAgC,EAAA/B,SAAA,SAAAC,GACAA,EAAAN,iBAAA,SAAA,SAAA7G,GACA,IAAAkJ,EAAAlJ,EAAAmJ,OAEA,GAAA,aAAAD,EAAAE,KAAA,CACA,IAAAC,EAAAH,EAAAI,QAEA,IAAA,IAAA7E,KAAAwE,EAAA,CACAA,EAAAxE,GACA6E,SAAA,EAGAJ,EAAAI,QAAAD,SAhBA,CAoBA1L,UAIA+D,OAAA6H,qBAAA,SAAAzG,GAEAA,EAAAqG,OAAAhH,UAAAqH,OAAA,UACA,IAAAC,EAAA3G,EAAAqG,OAAAO,YAAAA,YAEAD,EAAAjI,MAAAmI,UACAF,EAAAjI,MAAAmI,UAAA,KAEAF,EAAAjI,MAAAmI,UAAAF,EAAAG,aAAA","file":"custom.min.js","sourcesContent":["// #region Pico stuff\r\nvar Pico = Pico || Object.create(null);\r\n// #endregion\r\n\r\n// #region Handlebars\r\nvar HandlebarsUtils = (function (handlebars) {\r\n handlebars.registerHelper('PerfionImageSrc', function (guid, width, height) {\r\n var src;\r\n\r\n // placeholder image when missing\r\n if (guid === \"00000000-0000-0000-0000-000000000000\") {\r\n src = \"/Admin/Public/GetImage.ashx?width=\" + width + \"&height=\" + height + \"&crop=5&Compression=75&DoNotUpscale=true&FillCanvas=true&image=/Files/Images/missing_image.jpg\";\r\n } else {\r\n src = GlobalSettings.PerfionApiUrl + \"/Perfion/Image.aspx?id=\" + guid + \"&size=\" + width + \"x\" + height + \"&format=png\";\r\n }\r\n\r\n return new Handlebars.SafeString(src);\r\n });\r\n\r\n handlebars.registerHelper('hasVideos', function (inGallery, youtubeLinks, vimeoLinks, options) {\r\n var hasVideos = function (videoLinks, videoType) {\r\n return videoLinks.some(function (feature) { return feature.view === videoType; });\r\n };\r\n var specsVideo = \"WebVariant\";\r\n var galleryVideo = \"WebList\";\r\n\r\n if (inGallery) {\r\n return hasVideos(youtubeLinks, galleryVideo) || hasVideos(vimeoLinks, galleryVideo) ? options.fn(this) : options.inverse(this);\r\n }\r\n\r\n return hasVideos(youtubeLinks, specsVideo) || hasVideos(vimeoLinks, specsVideo) ? options.fn(this) : options.inverse(this);\r\n });\r\n\r\n handlebars.registerHelper('facebookPixelSearch',\r\n function (name, productNumber, price, currency, searchString) {\r\n if (Cookiebot.consent.marketing) {\r\n if (!fbq) { return; }\r\n\r\n fbq('track', 'Search', {\r\n content_name: name,\r\n content_category: 'Products',\r\n content_ids: [productNumber],\r\n value: price,\r\n currency: currency,\r\n search_string: searchString\r\n });\r\n }\r\n });\r\n\r\n var handlebarsUtils = Object.create(null);\r\n\r\n function renderTemplate(templateId, containerId, data, fireEvents) {\r\n var container = document.getElementById(containerId);\r\n var scriptTemplate = document.getElementById(templateId);\r\n var eventData = { 'detail': { 'containerId': containerId, \"templateId\": templateId, \"data\": data } };\r\n\r\n if (fireEvents) {\r\n container.dispatchEvent(new CustomEvent('templateRendering', eventData));\r\n }\r\n\r\n if (container && scriptTemplate) {\r\n var template = Handlebars.compile(scriptTemplate.innerHTML);\r\n var compiledHtml = template(data);\r\n container.innerHTML = compiledHtml;\r\n }\r\n\r\n if (fireEvents) {\r\n container.dispatchEvent(new CustomEvent('templateRendered', eventData));\r\n }\r\n };\r\n\r\n Object.defineProperties(handlebarsUtils, {\r\n renderTemplate: {\r\n value: renderTemplate\r\n }\r\n });\r\n\r\n return handlebarsUtils;\r\n})(Handlebars);\r\n// #endregion\r\n\r\n// #region Custom DW objects\r\nvar CustomRequest = (function () {\r\n function CustomRequest() { }\r\n\r\n CustomRequest.prototype.newRequest = function (url, method, data, successCallback, errorCallback, returnJson, headers) {\r\n if (returnJson == null) {\r\n returnJson = true;\r\n }\r\n\r\n var xhr = new XMLHttpRequest();\r\n xhr.open(method, url, true);\r\n xhr.onreadystatechange = function () {\r\n function error(message) {\r\n console.warn(message);\r\n\r\n if (typeof errorCallback == \"function\") {\r\n errorCallback(this.response);\r\n }\r\n }\r\n\r\n if (this.readyState == XMLHttpRequest.DONE && this.status == 200) {\r\n var data;\r\n\r\n if (this.responseType === 'json') {\r\n data = this.response.message.trim();\r\n } else {\r\n data = this.response.trim();\r\n }\r\n\r\n if (returnJson) {\r\n if (data == \"\") {\r\n console.warn(url + \": Response is empty\");\r\n data = {};\r\n } else if (data.indexOf(\"<\") == 0) {\r\n error(url + \": URL returned HTML instead of JSON\");\r\n return;\r\n } else {\r\n try {\r\n data = JSON.parse(data);\r\n } catch (e) {\r\n error(url + \": Could not parse the JSON data\");\r\n return;\r\n }\r\n }\r\n }\r\n\r\n if (typeof successCallback == \"function\") {\r\n successCallback(data);\r\n }\r\n } else if (this.readyState == XMLHttpRequest.DONE && this.status != 200) {\r\n error(url + \": XMLHttpRequest failed\");\r\n }\r\n };\r\n\r\n xhr.setRequestHeader('cache-control', 'no-cache, must-revalidate, post-check=0, pre-check=0');\r\n xhr.setRequestHeader('cache-control', 'max-age=0');\r\n xhr.setRequestHeader('expires', '0');\r\n xhr.setRequestHeader('expires', 'Tue, 01 Jan 1980 1:00:00 GMT');\r\n xhr.setRequestHeader('pragma', 'no-cache');\r\n\r\n var isFormContent = false;\r\n if (headers && typeof headers === \"object\") {\r\n var names = Object.getOwnPropertyNames(headers);\r\n\r\n for (var prop in Object.getOwnPropertyNames(headers)) {\r\n var propName = names[prop];\r\n var propValue = headers[propName];\r\n\r\n if (propName === \"Content-Type\" && propValue == \"application/x-www-form-urlencoded\") {\r\n isFormContent = true;\r\n }\r\n\r\n xhr.setRequestHeader(propName, propValue);\r\n }\r\n }\r\n\r\n if (data) {\r\n if (isFormContent) {\r\n xhr.send(data);\r\n } else {\r\n xhr.send(JSON.stringify(data));\r\n }\r\n } else {\r\n xhr.send();\r\n }\r\n };\r\n\r\n CustomRequest.prototype.Fetch = function () {\r\n var self = this;\r\n\r\n return {\r\n get: function (url, successCallback, errorCallback, returnJson, headers) {\r\n self.newRequest(url, \"GET\", null, successCallback, errorCallback, returnJson, headers);\r\n },\r\n\r\n post: function (url, data, successCallback, errorCallback, returnJson, headers) {\r\n self.newRequest(url, \"POST\", data, successCallback, errorCallback, returnJson, headers);\r\n }\r\n };\r\n };\r\n\r\n return new CustomRequest();\r\n})();\r\nvar CustomCart = (function (request) {\r\n function CustomCart() { }\r\n\r\n CustomCart.prototype.UpdateCart = function (containerId, url, command, preloader) {\r\n if (!containerId) {\r\n console.log(\"Cart: The container does not exist\");\r\n return;\r\n }\r\n\r\n if (preloader == true) {\r\n var overlayElement = document.createElement('div');\r\n overlayElement.className = \"preloader-overlay\";\r\n overlayElement.setAttribute('id', \"CartOverlay\");\r\n var overlayElementIcon = document.createElement('div');\r\n overlayElementIcon.className = \"preloader-overlay__icon dw-mod\";\r\n overlayElementIcon.style.top = window.pageYOffset + \"px\";\r\n overlayElement.appendChild(overlayElementIcon);\r\n\r\n document.getElementById('content').parentNode.insertBefore(overlayElement, document.getElementById('content'));\r\n }\r\n\r\n var miniCartButtons = document.getElementsByClassName(\"js-mini-cart-button\");\r\n for (var i = 0; i < miniCartButtons.length; i++) {\r\n var cartButton = document.getElementsByClassName(\"js-mini-cart-button\")[i];\r\n cartButton.classList.add(\"mini-cart-update\");\r\n }\r\n\r\n //var queryParams = new QueryArray(url);\r\n //queryParams.combineWithParams(command);\r\n //queryParams.setValue(\"feedtype\", \"Counter\");\r\n\r\n url += \"&feedtype=Counter\";\r\n request.Fetch().post(url, command, updateSuccess, updateFailed, true, { 'Content-Type': 'application/x-www-form-urlencoded' });\r\n\r\n function updateSuccess(data) {\r\n if (preloader == true) {\r\n var overlayNode = document.getElementById('CartOverlay');\r\n overlayNode.parentNode.removeChild(overlayNode);\r\n }\r\n\r\n if (document.getElementById(containerId) && containerId != \"miniCart\") {\r\n HandlebarsBolt.UpdateContent(containerId, url);\r\n }\r\n\r\n var miniCartCounters = document.getElementsByClassName(\"js-mini-cart-counter\");\r\n\r\n for (var i = 0; i < miniCartCounters.length; i++) {\r\n var cartCounter = miniCartCounters[i];\r\n\r\n if (cartCounter) {\r\n cartCounter.innerHTML = \"\";\r\n\r\n var miniCartButtons = document.getElementsByClassName(\"js-mini-cart-button\");\r\n for (var i = 0; i < miniCartButtons.length; i++) {\r\n var cartButton = document.getElementsByClassName(\"js-mini-cart-button\")[i];\r\n cartButton.classList.remove(\"mini-cart-update\");\r\n }\r\n\r\n HandlebarsBolt.CreateItemsFromJson(data, cartCounter.getAttribute(\"id\"));\r\n }\r\n }\r\n\r\n var event = new CustomEvent('cartUpdated', { 'detail': { \"command\": command, \"containerId\": containerId, \"url\": url, \"preloader\": preloader, \"data\": data } });\r\n document.dispatchEvent(event);\r\n }\r\n\r\n function updateFailed(data) {\r\n location.reload();\r\n\r\n var event = new CustomEvent('cartUpdated', { 'detail': { \"command\": command, \"containerId\": containerId, \"url\": url, \"preloader\": preloader, \"data\": data } });\r\n document.dispatchEvent(event);\r\n }\r\n }\r\n\r\n return new CustomCart();\r\n})(CustomRequest);\r\n// #endregion\r\n\r\n// #region Polyfills\r\n(function () {\r\n // Production steps of ECMA-262, Edition 5, 15.4.4.19\r\n // Reference: http://es5.github.io/#x15.4.4.19\r\n if (!Array.prototype.map) {\r\n Array.prototype.map = function (callback/*, thisArg*/) {\r\n var T, A, k;\r\n\r\n if (this == null) {\r\n throw new TypeError('this is null or not defined');\r\n }\r\n\r\n // 1. Let O be the result of calling ToObject passing the |this| \r\n // value as the argument.\r\n var O = Object(this);\r\n\r\n // 2. Let lenValue be the result of calling the Get internal \r\n // method of O with the argument \"length\".\r\n // 3. Let len be ToUint32(lenValue).\r\n var len = O.length >>> 0;\r\n\r\n // 4. If IsCallable(callback) is false, throw a TypeError exception.\r\n // See: http://es5.github.com/#x9.11\r\n if (typeof callback !== 'function') {\r\n throw new TypeError(callback + ' is not a function');\r\n }\r\n\r\n // 5. If thisArg was supplied, let T be thisArg; else let T be undefined.\r\n if (arguments.length > 1) {\r\n T = arguments[1];\r\n }\r\n\r\n // 6. Let A be a new array created as if by the expression new Array(len) \r\n // where Array is the standard built-in constructor with that name and \r\n // len is the value of len.\r\n A = new Array(len);\r\n\r\n // 7. Let k be 0\r\n k = 0;\r\n\r\n // 8. Repeat, while k < len\r\n while (k < len) {\r\n\r\n var kValue, mappedValue;\r\n\r\n // a. Let Pk be ToString(k).\r\n // This is implicit for LHS operands of the in operator\r\n // b. Let kPresent be the result of calling the HasProperty internal \r\n // method of O with argument Pk.\r\n // This step can be combined with c\r\n // c. If kPresent is true, then\r\n if (k in O) {\r\n\r\n // i. Let kValue be the result of calling the Get internal \r\n // method of O with argument Pk.\r\n kValue = O[k];\r\n\r\n // ii. Let mappedValue be the result of calling the Call internal \r\n // method of callback with T as the this value and argument \r\n // list containing kValue, k, and O.\r\n mappedValue = callback.call(T, kValue, k, O);\r\n\r\n // iii. Call the DefineOwnProperty internal method of A with arguments\r\n // Pk, Property Descriptor\r\n // { Value: mappedValue,\r\n // Writable: true,\r\n // Enumerable: true,\r\n // Configurable: true },\r\n // and false.\r\n\r\n // In browsers that support Object.defineProperty, use the following:\r\n // Object.defineProperty(A, k, {\r\n // value: mappedValue,\r\n // writable: true,\r\n // enumerable: true,\r\n // configurable: true\r\n // });\r\n\r\n // For best browser support, use the following:\r\n A[k] = mappedValue;\r\n }\r\n // d. Increase k by 1.\r\n k++;\r\n }\r\n\r\n // 9. return A\r\n return A;\r\n };\r\n }\r\n\r\n if (!Array.prototype.some) {\r\n Array.prototype.some = function (fun, thisArg) {\r\n 'use strict';\r\n\r\n if (this == null) {\r\n throw new TypeError('Array.prototype.some called on null or undefined');\r\n }\r\n\r\n if (typeof fun !== 'function') {\r\n throw new TypeError();\r\n }\r\n\r\n var t = Object(this);\r\n var len = t.length >>> 0;\r\n\r\n for (var i = 0; i < len; i++) {\r\n if (i in t && fun.call(thisArg, t[i], i, t)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n };\r\n }\r\n\r\n if (!Array.prototype.every) {\r\n Array.prototype.every = function (callbackfn, thisArg) {\r\n 'use strict';\r\n var T, k;\r\n\r\n if (this == null) {\r\n throw new TypeError('this is null or not defined');\r\n }\r\n\r\n // 1. Let O be the result of calling ToObject passing the this \r\n // value as the argument.\r\n var O = Object(this);\r\n\r\n // 2. Let lenValue be the result of calling the Get internal method\r\n // of O with the argument \"length\".\r\n // 3. Let len be ToUint32(lenValue).\r\n var len = O.length >>> 0;\r\n\r\n // 4. If IsCallable(callbackfn) is false, throw a TypeError exception.\r\n if (typeof callbackfn !== 'function' && Object.prototype.toString.call(callbackfn) !== '[object Function]') {\r\n throw new TypeError();\r\n }\r\n\r\n // 5. If thisArg was supplied, let T be thisArg; else let T be undefined.\r\n if (arguments.length > 1) {\r\n T = thisArg;\r\n }\r\n\r\n // 6. Let k be 0.\r\n k = 0;\r\n\r\n // 7. Repeat, while k < len\r\n while (k < len) {\r\n\r\n var kValue;\r\n\r\n // a. Let Pk be ToString(k).\r\n // This is implicit for LHS operands of the in operator\r\n // b. Let kPresent be the result of calling the HasProperty internal \r\n // method of O with argument Pk.\r\n // This step can be combined with c\r\n // c. If kPresent is true, then\r\n if (k in O) {\r\n var testResult;\r\n // i. Let kValue be the result of calling the Get internal method\r\n // of O with argument Pk.\r\n kValue = O[k];\r\n\r\n // ii. Let testResult be the result of calling the Call internal method \r\n // of callbackfn with T as the this value if T is not undefined \r\n // else is the result of calling callbackfn \r\n // and argument list containing kValue, k, and O.\r\n if (T) testResult = callbackfn.call(T, kValue, k, O);\r\n else testResult = callbackfn(kValue, k, O)\r\n\r\n // iii. If ToBoolean(testResult) is false, return false.\r\n if (!testResult) {\r\n return false;\r\n }\r\n }\r\n k++;\r\n }\r\n return true;\r\n };\r\n }\r\n})();\r\n// #endregion\r\n\r\n// #region Language Picker urls\r\n(function () {\r\n if (typeof languageUrlFeed === \"undefined\") {\r\n return;\r\n }\r\n\r\n document.querySelector(\"#pp__language-preloader\").classList.add('u-hidden');\r\n CustomRequest.Fetch().get(languageUrlFeed, function (languages) {\r\n for (var index in languages) {\r\n var languageLink = document.querySelector(\"#lang-\" + languages[index].AreaId);\r\n languageLink.href = languages[index].Link;\r\n }\r\n\r\n document.querySelector(\"#pp__language-container\").classList.remove('u-hidden');\r\n }, function () {\r\n console.warn(\"Could not get language urls\");\r\n }, true, {\r\n \"X-NavTag\": navTag,\r\n \"X-AreaIDs\": areaIds,\r\n \"X-GroupID\": groupId,\r\n \"X-ProductID\": productId,\r\n \"X-VariantID\": productVariantId\r\n });\r\n})();\r\n// #endregion\r\n\r\n//Calculate min-height of content - footer margin-top\r\nwindow.onload = function () {\r\n function getBrowserDimensions() {\r\n return {\r\n height:\r\n window.innerHeight ||\r\n document.documentElement.clientHeight ||\r\n document.body.clientHeight\r\n };\r\n }\r\n\r\n var browser_dims = getBrowserDimensions();\r\n\r\n var height = browser_dims.height;\r\n var sitecontent = document.getElementById(\"sitecontent\").offsetHeight;\r\n var a = height - sitecontent;\r\n\r\n if (a > 0) {\r\n var x = document.getElementById(\"footer\").style.marginTop = a + \"px\";\r\n }\r\n};\r\n\r\n// #region Video Gallery\r\n(function (window, pico) {\r\n var carousels = [];\r\n\r\n function loadYoutube(links) {\r\n return links.filter(function (link) {\r\n return link.view === \"WebList\";\r\n }).map(function (videoFeature) {\r\n return {\r\n link: \"https://www.youtube.com/embed/\" + videoFeature.text + \"?rel=0\",\r\n smallImage: \"https://img.youtube.com/vi/\" + videoFeature.text + \"/default.jpg\",\r\n largeImage: \"https://img.youtube.com/vi/\" + videoFeature.text + \"/maxresdefault.jpg\"\r\n };\r\n });\r\n }\r\n\r\n function loadVimeo(links, vimeoImages) {\r\n return links.filter(function (link) {\r\n return link.view === \"WebList\";\r\n }).map(function (videoFeature) {\r\n return {\r\n link: \"https://player.vimeo.com/video/\" + videoFeature.text + \"?byline=0&portrait=0\",\r\n smallImage: vimeoImages[videoFeature.text].smallImage,\r\n largeImage: vimeoImages[videoFeature.text].largeImage\r\n };\r\n });\r\n }\r\n\r\n function pushArray(array, elements) {\r\n for (var index in elements) {\r\n array.push(elements[index]);\r\n }\r\n };\r\n\r\n function loadVideos(data, callback) {\r\n var videos = [];\r\n\r\n // fetch vimeo images (call webservice)\r\n if (data.vimeoLinks && data.vimeoLinks.length > 0) {\r\n var videoEvent = new EventTarget();\r\n var reqCount = data.vimeoLinks.length;\r\n var videoImages = {};\r\n\r\n videoEvent.addEventListener(\"ResolvedAll\", function (event) {\r\n pushArray(videos, loadYoutube(data.youtubeLinks));\r\n pushArray(videos, loadVimeo(data.vimeoLinks, event.detail));\r\n callback(videos);\r\n });\r\n\r\n for (var i in data.vimeoLinks) {\r\n CustomRequest.newRequest(\"https://vimeo.com/api/v2/video/\" + data.vimeoLinks[i].text + \".json\", \"GET\", null, function (data) {\r\n var obj = Object.create(null);\r\n Object.defineProperties(obj, {\r\n smallImage: { value: data[0].thumbnail_small },\r\n largeImage: { value: data[0].thumbnail_large }\r\n });\r\n videoImages[data[0].id] = obj;\r\n\r\n // all requests have been resolved\r\n if (--reqCount === 0) {\r\n videoEvent.dispatchEvent(new CustomEvent(\"ResolvedAll\", { detail: videoImages }));\r\n }\r\n }, function (message) {\r\n console.warn(message);\r\n });\r\n }\r\n } else if (data.youtubeLinks) {\r\n pushArray(videos, loadYoutube(data.youtubeLinks));\r\n callback(videos);\r\n }\r\n }\r\n\r\n window.addEventListener('DOMContentLoaded', function () {\r\n // custom video\r\n var tabsContainer = document.getElementById('Tabs');\r\n var galleryImagesContainer = document.getElementById(\"GalleryImagesContainer\");\r\n var galleryModal = document.getElementById(\"GalleryModal\");\r\n\r\n\r\n document.querySelectorAll(\".js-remove-after-load\").forEach(function (el) {\r\n el.remove();\r\n });\r\n\r\n // tab section\r\n if (tabsContainer) {\r\n tabsContainer.addEventListener(\"contentLoaded\", function (event) {\r\n var detail = event.detail;\r\n var videos = [];\r\n\r\n if (detail.data) {\r\n if (detail.data.youtubeLinks) {\r\n pushArray(videos,\r\n detail.data.youtubeLinks.filter(function (link) {\r\n return link.view === \"WebVariant\";\r\n }).map(function (videoFeature) {\r\n return {\r\n link: \"https://www.youtube.com/embed/\" + videoFeature.text + \"?rel=0\"\r\n };\r\n }));\r\n }\r\n\r\n if (detail.data.vimeoLinks) {\r\n pushArray(videos,\r\n detail.data.vimeoLinks.filter(function (link) {\r\n return link.view === \"WebVariant\";\r\n }).map(function (videoFeature) {\r\n return {\r\n link: \"https://player.vimeo.com/video/\" + videoFeature.text + \"?byline=0&portrait=0\"\r\n };\r\n }));\r\n }\r\n\r\n detail.data.videos = videos;\r\n\r\n // compile local handlebar templates and insert in DOM\r\n HandlebarsUtils.renderTemplate(\"SpecsTemplate\", \"Tabs\", detail.data);\r\n\r\n // render any handlebars templates under tabs (initialize logic from DW)\r\n var ajaxContainer = document.querySelectorAll(\"#Tabs .js-handlebars-root\");\r\n\r\n for (var i = 0; i < ajaxContainer.length; i++) {\r\n var ajaxContainerElement = ajaxContainer[i];\r\n\r\n if (!ajaxContainerElement.getAttribute('data-json-feed')) {\r\n console.log(\"Ajax element: Please specify json feed via data attribute: data-json-feed\");\r\n }\r\n\r\n if (!ajaxContainerElement.hasAttribute('data-init-onload') || !ajaxContainerElement.getAttribute('data-init-onload')) {\r\n HandlebarsBolt.UpdateContent(ajaxContainerElement.id, ajaxContainerElement.getAttribute('data-json-feed'), false, ajaxContainerElement.getAttribute('data-template'), ajaxContainerElement.getAttribute('data-preloader'));\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n\r\n if (galleryModal) {\r\n galleryModal.addEventListener(\"templateRendered\", function (event) {\r\n Gallery.Init();\r\n\r\n // initialize all carousels\r\n for (var index in carousels) {\r\n var carousel = carousels[index];\r\n\r\n if (carousel.id == \"modalCarousel\") {\r\n\r\n window[carousel.id] = new CarouselModule('#' + carousel.id,\r\n {\r\n slidesInView: carousel.slidesInView,\r\n direction: carousel.direction,\r\n preloaderSize: carousel.preloaderSize,\r\n showCounter: carousel.isModal\r\n });\r\n\r\n window[carousel.id].Init();\r\n document.querySelectorAll(\".js-remove-after-load\").forEach(function (el) {\r\n el.remove();\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n // gallery section\r\n if (galleryImagesContainer) {\r\n galleryImagesContainer.addEventListener(\"templateRendered\", function (event) {\r\n var data = event.detail.data;\r\n var imageCount = 0;\r\n\r\n Gallery.Init();\r\n\r\n // initialize all carousels\r\n for (var index in carousels) {\r\n var carousel = carousels[index];\r\n if (carousel.id == \"productCarousel\") {\r\n\r\n window[carousel.id] = new CarouselModule('#' + carousel.id,\r\n {\r\n slidesInView: carousel.slidesInView,\r\n direction: carousel.direction,\r\n preloaderSize: carousel.preloaderSize,\r\n showCounter: carousel.isModal\r\n });\r\n window[carousel.id].Init();\r\n document.querySelectorAll(\".js-remove-after-load\").forEach(function (el) {\r\n el.remove();\r\n });\r\n }\r\n\r\n }\r\n });\r\n\r\n galleryImagesContainer.addEventListener(\"contentLoaded\", function (event) {\r\n var data = event.detail.data;\r\n var imageCount = 0;\r\n\r\n if (data) {\r\n loadVideos(data,\r\n function (videos) {\r\n var payload = {\r\n images: data.images,\r\n videos: videos\r\n };\r\n\r\n for (var index in carousels) {\r\n var carousel = carousels[index];\r\n\r\n\r\n\r\n\r\n if (carousel.id == \"productCarousel\" && !document.getElementById(carousel.id).classList.contains('carousel--vertical')) {\r\n\r\n window[carousel.id] = new CarouselModule('#' + carousel.id,\r\n {\r\n slidesInView: carousel.slidesInView,\r\n direction: carousel.direction,\r\n preloaderSize: carousel.preloaderSize,\r\n showCounter: carousel.isModal\r\n });\r\n window[carousel.id].Init();\r\n }\r\n\r\n }\r\n\r\n HandlebarsUtils.renderTemplate(\"GalleryModalTemplate\", \"GalleryModal\", payload, true);\r\n });\r\n }\r\n });\r\n }\r\n });\r\n\r\n function initDWCarousel(id, slidesInView, direction, preloaderSize, isModal) {\r\n carousels.push({ id: id, slidesInView: slidesInView, direction: direction, preloaderSize: preloaderSize, isModal: isModal });\r\n }\r\n\r\n Object.defineProperty(pico, \"initDWCarousel\", { writable: false, configurable: false, value: initDWCarousel });\r\n})(window, Pico);\r\n// #endregion\r\n\r\n// #region FAQ Module checkbox switching\r\n(function (document) {\r\n\r\n var inputs = document.querySelectorAll('.pp__accordion-question > input');\r\n\r\n inputs.forEach(function (el) {\r\n el.addEventListener('click', function (e) {\r\n var inputElement = e.target;\r\n\r\n if (inputElement.type === \"checkbox\") {\r\n var inputChecked = inputElement.checked;\r\n\r\n for (var index in inputs) {\r\n var input = inputs[index];\r\n input.checked = false;\r\n }\r\n\r\n inputElement.checked = inputChecked;\r\n }\r\n });\r\n });\r\n})(document);\r\n// #endregion\r\n\r\n\r\nwindow.toggleProductFeature = function accordionToggle(event) {\r\n\r\n event.target.classList.toggle(\"active\");\r\n var accordionContent = event.target.nextSibling.nextSibling;\r\n\r\n if (accordionContent.style.maxHeight) {\r\n accordionContent.style.maxHeight = null;\r\n } else {\r\n accordionContent.style.maxHeight = accordionContent.scrollHeight + \"px\";\r\n }\r\n}\r\n\r\n// #region options accordion\r\n//(function (document) {\r\n// RapidoHook.contentLoaded(function (e) {\r\n// console.log(e);\r\n// var accordionHeader = document.getElementById(e.detail.containerId).querySelectorAll(\".product-feature__header\");\r\n\r\n// function accordionToggle(e) {\r\n// e.preventDefault();\r\n// this.classList.toggle(\"active\");\r\n// var accordionContent = this.nextSibling.nextSibling;\r\n\r\n// if (accordionContent.style.maxHeight) {\r\n// accordionContent.style.maxHeight = null;\r\n// } else {\r\n// accordionContent.style.maxHeight = accordionContent.scrollHeight + \"px\";\r\n// }\r\n// }\r\n\r\n// for (var i = 0; i < accordionHeader.length; i++) {\r\n// accordionHeader[i].addEventListener(\"click\", accordionToggle);\r\n// }\r\n// });\r\n\r\n//})(document);\r\n// #endregion\r\n\r\n"]}