PageSourceSearch

https://www.sika-instruments.co.uk/typo3temp/assets/compressed/mer…ae6727f0d5626e3023b8bd3e099a5.js?1777272852

js sika-instruments.co.uk collected 2026-10-09 02:55:19 UTC 206,669 bytes, 2,420 lines download raw bytes

vendor: 4,476 bytes, lines 1-11
1
2window.lazySizesConfig = window.lazySizesConfig || {};
3window.lazySizesConfig.lazyClass = "lazyload";
4
5lazySizesConfig.srcAttr = "data-flickity-lazyload";
6
7// page is optimized for fast onload event
8lazySizesConfig.loadMode = 0;
9
10/*! lazysizes - v4.0.3 */
11!function(a,b){var c=b(a,a.document);a.lazySizes=c,"object"==typeof module&&module.exports&&(module.exports=c)}(window,function(a,b){"use strict";if(b.getElementsByClassName){var c,d,e=b.documentElement,f=a.Date,g=a.HTMLPictureElement,h="addEventListener",i="getAttribute",j=a[h],k=a.setTimeout,l=a.requestAnimationFrame||k,m=a.requestIdleCallback,n=/^picture$/i,o=["load","error","lazyincluded","_lazyloaded"],p={},q=Array.prototype.forEach,r=function(a,b){return p[b]||(p[b]=new RegExp("(\\s|^)"+b+"(\\s|$)")),p[b].test(a[i]("class")||"")&&p[b]},s=function(a,b){r(a,b)||a.setAttribute("class",(a[i]("class")||"").trim()+" "+b)},t=function(a,b){var c;(c=r(a,b))&&a.setAttribute("class",(a[i]("class")||"").replace(c," "))},u=function(a,b,c){var d=c?h:"removeEventListener";c&&u(a,b),o.forEach(function(c){a[d](c,b)})},v=function(a,d,e,f,g){var h=b.createEvent("CustomEvent");return e||(e={}),e.instance=c,h.initCustomEvent(d,!f,!g,e),a.dispatchEvent(h),h},w=function(b,c){var e;!g&&(e=a.picturefill||d.pf)?e({reevaluate:!0,elements:[b]}):c&&c.src&&(b.src=c.src)},x=function(a,b){return(getComputedStyle(a,null)||{})[b]},y=function(a,b,c){for(c=c||a.offsetWidth;c<d.minSize&&b&&!a._lazysizesWidth;)c=b.offsetWidth,b=b.parentNode;return c},z=function(){var a,c,d=[],e=[],f=d,g=function(){var b=f;for(f=d.length?e:d,a=!0,c=!1;b.length;)b.shift()();a=!1},h=function(d,e){a&&!e?d.apply(this,arguments):(f.push(d),c||(c=!0,(b.hidden?k:l)(g)))};return h._lsFlush=g,h}(),A=function(a,b){return b?function(){z(a)}:function(){var b=this,c=arguments;z(function(){a.apply(b,c)})}},B=function(a){var b,c=0,e=d.throttleDelay,g=d.ricTimeout,h=function(){b=!1,c=f.now(),a()},i=m&&g>49?function(){m(h,{timeout:g}),g!==d.ricTimeout&&(g=d.ricTimeout)}:A(function(){k(h)},!0);return function(a){var d;(a=a===!0)&&(g=33),b||(b=!0,d=e-(f.now()-c),0>d&&(d=0),a||9>d?i():k(i,d))}},C=function(a){var b,c,d=99,e=function(){b=null,a()},g=function(){var a=f.now()-c;d>a?k(g,d-a):(m||e)(e)};return function(){c=f.now(),b||(b=k(g,d))}};!function(){var b,c={lazyClass:"lazyload",loadedClass:"lazyloaded",loadingClass:"lazyloading",preloadClass:"lazypreload",errorClass:"lazyerror",autosizesClass:"lazyautosizes",srcAttr:"data-src",srcsetAttr:"data-srcset",sizesAttr:"data-sizes",minSize:40,customMedia:{},init:!0,expFactor:1.5,hFac:.8,loadMode:2,loadHidden:!0,ricTimeout:0,throttleDelay:125};d=a.lazySizesConfig||a.lazysizesConfig||{};for(b in c)b in d||(d[b]=c[b]);a.lazySizesConfig=d,k(function(){d.init&&F()})}();var D=function(){var g,l,m,o,p,y,D,F,G,H,I,J,K,L,M=/^img$/i,N=/^iframe$/i,O="onscroll"in a&&!/glebot/.test(navigator.userAgent),P=0,Q=0,R=0,S=-1,T=function(a){R--,a&&a.target&&u(a.target,T),(!a||0>R||!a.target)&&(R=0)},U=function(a,c){var d,f=a,g="hidden"==x(b.body,"visibility")||"hidden"!=x(a,"visibility");for(F-=c,I+=c,G-=c,H+=c;g&&(f=f.offsetParent)&&f!=b.body&&f!=e;)g=(x(f,"opacity")||1)>0,g&&"visible"!=x(f,"overflow")&&(d=f.getBoundingClientRect(),g=H>d.left&&G<d.right&&I>d.top-1&&F<d.bottom+1);return g},V=function(){var a,f,h,j,k,m,n,p,q,r=c.elements;if((o=d.loadMode)&&8>R&&(a=r.length)){f=0,S++,null==K&&("expand"in d||(d.expand=e.clientHeight>500&&e.clientWidth>500?500:370),J=d.expand,K=J*d.expFactor),K>Q&&1>R&&S>2&&o>2&&!b.hidden?(Q=K,S=0):Q=o>1&&S>1&&6>R?J:P;for(;a>f;f++)if(r[f]&&!r[f]._lazyRace)if(O)if((p=r[f][i]("data-expand"))&&(m=1*p)||(m=Q),q!==m&&(y=innerWidth+m*L,D=innerHeight+m,n=-1*m,q=m),h=r[f].getBoundingClientRect(),(I=h.bottom)>=n&&(F=h.top)<=D&&(H=h.right)>=n*L&&(G=h.left)<=y&&(I||H||G||F)&&(d.loadHidden||"hidden"!=x(r[f],"visibility"))&&(l&&3>R&&!p&&(3>o||4>S)||U(r[f],m))){if(ba(r[f]),k=!0,R>9)break}else!k&&l&&!j&&4>R&&4>S&&o>2&&(g[0]||d.preloadAfterLoad)&&(g[0]||!p&&(I||H||G||F||"auto"!=r[f][i](d.sizesAttr)))&&(j=g[0]||r[f]);else ba(r[f]);j&&!k&&ba(j)}},W=B(V),X=function(a){s(a.target,d.loadedClass),t(a.target,d.loadingClass),u(a.target,Z),v(a.target,"lazyloaded")},Y=A(X),Z=function(a){Y({target:a.target})},$=function(a,b){try{a.contentWindow.location.replace(b)}catch(c){a.src=b}},_=function(a){var b,c=a[i](d.srcsetAttr);(b=d.customMedia[a[i]("data-media")||a[i]("media")])&&a.setAttribute("media",b),c&&a.setAttribute("srcset",c)},aa=A(function(a,b,c,e,f){var g,h,j,l,o,p;
11(o=v(a,"lazybeforeunveil",b)).defaultPrevented||(e&&(c?s(a,d.autosizesClass):a.setAttribute("sizes",e)),h=a[i](d.srcsetAttr),g=a[i](d.srcAttr),f&&(j=a.parentNode,l=j&&n.test(j.nodeName||"")),p=b.firesLoad||"src"in a&&(h||g||l),o={target:a},p&&(u(a,T,!0),clearTimeout(m),m=k(T,2500),s(a,d.loadingClass),u(a,Z,!0)),l&&q.call(j.getElementsByTagName("source"),_),h?a.setAttribute("srcset",h):g&&!l&&(N.test(a.nodeName)?$(a,g):a.src=g),f&&(h||l)&&w(a,{src:g})),a._lazyRace&&delete a._lazyRace,t(a,d.lazyClass),z(function(){(!p||a.complete&&a.naturalWidth>1)&&(p?T(o):R--,X(o))},!0)}),ba=function(a){var b,c=M.test(a.nodeName),e=c&&(a[i](d.sizesAttr)||a[i]("sizes")),f="auto"==e;(!f&&l||!c||!a[i]("src")&&!a.srcset||a.complete||r(a,d.errorClass)||!r(a,d.lazyClass))&&(b=v(a,"lazyunveilread").detail,f&&E.updateElem(a,!0,a.offsetWidth),a._lazyRace=!0,R++,aa(a,b,f,e,c))},ca=function(){if(!l){if(f.now()-p<999)return void k(ca,999);var a=C(function(){d.loadMode=3,W()});l=!0,d.loadMode=3,W(),j("scroll",function(){3==d.loadMode&&(d.loadMode=2),a()},!0)}};return{_:function(){p=f.now(),c.elements=b.getElementsByClassName(d.lazyClass),g=b.getElementsByClassName(d.lazyClass+" "+d.preloadClass),L=d.hFac,j("scroll",W,!0),j("resize",W,!0),a.MutationObserver?new MutationObserver(W).observe(e,{childList:!0,subtree:!0,attributes:!0}):(e[h]("DOMNodeInserted",W,!0),e[h]("DOMAttrModified",W,!0),setInterval(W,999)),j("hashchange",W,!0),["focus","mouseover","click","load","transitionend","animationend","webkitAnimationEnd"].forEach(function(a){b[h](a,W,!0)}),/d$|^c/.test(b.readyState)?ca():(j("load",ca),b[h]("DOMContentLoaded",W),k(ca,2e4)),c.elements.length?(V(),z._lsFlush()):W()},checkElems:W,unveil:ba}}(),E=function(){var a,c=A(function(a,b,c,d){var e,f,g;if(a._lazysizesWidth=d,d+="px",a.setAttribute("sizes",d),n.test(b.nodeName||""))for(e=b.getElementsByTagName("source"),f=0,g=e.length;g>f;f++)e[f].setAttribute("sizes",d);c.detail.dataAttr||w(a,c.detail)}),e=function(a,b,d){var e,f=a.parentNode;f&&(d=y(a,f,d),e=v(a,"lazybeforesizes",{width:d,dataAttr:!!b}),e.defaultPrevented||(d=e.detail.width,d&&d!==a._lazysizesWidth&&c(a,f,e,d)))},f=function(){var b,c=a.length;if(c)for(b=0;c>b;b++)e(a[b])},g=C(f);return{_:function(){a=b.getElementsByClassName(d.autosizesClass),j("resize",g)},checkElems:g,updateElem:e}}(),F=function(){F.i||(F.i=!0,E._(),D._())};return c={cfg:d,autoSizer:E,loader:D,init:F,uP:w,aC:s,rC:t,hC:r,fire:v,gW:y,rAF:z}}});
12
13!function(){if("function"!=typeof window.CustomEvent){var e=function(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};var n=document.createEvent("CustomEvent");return n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),n};e.prototype=window.Event.prototype,window.CustomEvent=e}function t(){return(t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e}).apply(this,arguments)}function n(e){var i=['a[href]:not([tabindex^="-"]):not([inert])','area[href]:not([tabindex^="-"]):not([inert])',"input:not([disabled]):not([inert])","select:not([disabled]):not([inert])","textarea:not([disabled]):not([inert])","button:not([disabled]):not([inert])",'iframe:not([tabindex^="-"]):not([inert])','audio:not([tabindex^="-"]):not([inert])','video:not([tabindex^="-"]):not([inert])','[contenteditable]:not([tabindex^="-"]):not([inert])','[tabindex]:not([tabindex^="-"]):not([inert])'],r=[],o={gallery:[],slider:null,sliderElements:[],elementsLength:0,currentIndex:0,x:0},a=[],d={},s=0,l=null,u=null,c=null,p=null,b=null,f={},m=!1,h=!1,v=!1,g=null,y=null,w=null,x=!1,E=!1,A=0,L={},_=null,C=null,I={image:{checkSupport:function(e){return!e.hasAttribute("data-type")&&e.href.match(/\.(png|jpe?g|tiff|tif|gif|bmp|webp|avif|svg|ico)(\?.*)?$/i)},init:function(e,t){var n=document.createElement("figure"),i=document.createElement("figcaption"),r=document.createElement("img"),o=e.querySelector("img"),a=document.createElement("div");n.style.opacity="0",o&&(r.alt=o.alt||""),r.setAttribute("src",""),r.setAttribute("data-src",e.href),n.appendChild(r),d.captions&&("function"==typeof d.captionText?i.textContent=d.captionText(e):"self"===d.captionsSelector&&e.getAttribute(d.captionAttribute)?i.textContent=e.getAttribute(d.captionAttribute):"img"===d.captionsSelector&&o&&o.getAttribute(d.captionAttribute)&&(i.textContent=o.getAttribute(d.captionAttribute)),i.textContent&&(i.id="tobii-figcaption-"+s,n.appendChild(i),r.setAttribute("aria-labelledby",i.id),++s)),t.appendChild(n),a.className="tobii__loader",a.setAttribute("role","progressbar"),a.setAttribute("aria-label",d.loadingIndicatorLabel),t.appendChild(a),t.setAttribute("data-type","image")},onPreload:function(e){I.image.onLoad(e)},onLoad:function(e){var t=e.querySelector("img");if(t.hasAttribute("data-src")){var n=e.querySelector("figure"),i=e.querySelector(".tobii__loader");t.onload=function(){e.removeChild(i),n.style.opacity="1"},t.setAttribute("src",t.getAttribute("data-src")),t.removeAttribute("data-src")}},onLeave:function(e){},onCleanup:function(e){}},html:{checkSupport:function(e){return oe(e,"html")},init:function(e,t){var n=e.hasAttribute("href")?e.getAttribute("href"):e.getAttribute("data-target"),i=document.querySelector(n);if(!i)throw new Error("Ups, I can't find the target "+n+".");t.appendChild(i),t.setAttribute("data-type","html")},onPreload:function(e){},onLoad:function(e){var t=e.querySelector("video");t&&(t.hasAttribute("data-time")&&t.readyState>0&&(t.currentTime=t.getAttribute("data-time")),d.autoplayVideo&&t.play())},onLeave:function(e){var t=e.querySelector("video");t&&(t.paused||t.pause(),t.readyState>0&&t.setAttribute("data-time",t.currentTime))},onCleanup:function(e){var t=e.querySelector("video");if(t&&t.readyState>0&&t.readyState<3&&t.duration!==t.currentTime){var n=t.cloneNode(!0);ae(t),t.load(),t.parentNode.removeChild(t),e.appendChild(n)}}},iframe:{checkSupport:function(e){return oe(e,"iframe")},init:function(e,t){var n=document.createElement("iframe"),i=e.hasAttribute("href")?e.getAttribute("href"):e.getAttribute("data-target");n.setAttribute("frameborder","0"),n.setAttribute("src",""),n.setAttribute("data-src",
13i),e.getAttribute("data-width")&&(n.style.maxWidth=e.getAttribute("data-width")+"px"),e.getAttribute("data-height")&&(n.style.maxHeight=e.getAttribute("data-height")+"px"),t.appendChild(n),t.setAttribute("data-type","iframe")},onPreload:function(e){},onLoad:function(e){var t=e.querySelector("iframe");t.setAttribute("src",t.getAttribute("data-src"))},onLeave:function(e){},onCleanup:function(e){}},youtube:{checkSupport:function(e){return oe(e,"youtube")},init:function(e,t){var n=document.createElement("div");t.appendChild(n),a[A]=new window.YT.Player(n,{host:"https://www.youtube-nocookie.com",height:e.getAttribute("data-height")||"360",width:e.getAttribute("data-width")||"640",videoId:e.getAttribute("data-id"),playerVars:{controls:e.getAttribute("data-controls")||1,rel:0,playsinline:1}}),t.setAttribute("data-player",A),t.setAttribute("data-type","youtube"),A++},onPreload:function(e){},onLoad:function(e){d.autoplayVideo&&a[e.getAttribute("data-player")].playVideo()},onLeave:function(e){1===a[e.getAttribute("data-player")].getPlayerState()&&a[e.getAttribute("data-player")].pauseVideo()},onCleanup:function(e){1===a[e.getAttribute("data-player")].getPlayerState()&&a[e.getAttribute("data-player")].pauseVideo()}}},S=function(e){if(null===document.querySelector('[data-type="youtube"]')||E)k(e);else{if(null===document.getElementById("iframe_api")){var t=document.createElement("script"),n=document.getElementsByTagName("script")[0];t.id="iframe_api",t.src="https://www.youtube.com/iframe_api",n.parentNode.insertBefore(t,n)}-1===r.indexOf(e)&&r.push(e),window.onYouTubePlayerAPIReady=function(){r.forEach(function(e){k(e)}),E=!0}}},T=function(e){return e.hasAttribute("data-group")?e.getAttribute("data-group"):"default"},k=function(e){if(_=T(e),Object.prototype.hasOwnProperty.call(L,_)||(L[_]=JSON.parse(JSON.stringify(o)),N()),-1!==L[_].gallery.indexOf(e))throw new Error("Ups, element already added.");if(L[_].gallery.push(e),L[_].elementsLength++,d.zoom&&e.querySelector("img")){var t=document.createElement("div");t.className="tobii-zoom__icon",t.innerHTML=d.zoomText,e.classList.add("tobii-zoom"),e.appendChild(t)}e.addEventListener("click",W),O(e),ue()&&_===C&&(de(),se())},P=function(e){var t=T(e);if(-1===L[t].gallery.indexOf(e))throw new Error("Ups, I can't find a slide for the element "+e+".");var n=L[t].gallery.indexOf(e),i=L[t].sliderElements[n];if(ue()&&t===C&&n===L[t].currentIndex){if(1===L[t].elementsLength)throw X(),new Error("Ups, I've closed. There are no slides more to show.");0===L[t].currentIndex?M():z()}if(L[t].elementsLength--,d.zoom&&e.querySelector(".tobii-zoom__icon")){var r=e.querySelector(".tobii-zoom__icon");r.parentNode.classList.remove("tobii-zoom"),r.parentNode.removeChild(r)}e.removeEventListener("click",W),i.parentNode.removeChild(i)},N=function(){L[_].slider=document.createElement("div"),L[_].slider.className="tobii__slider",L[_].slider.setAttribute("aria-hidden","true"),l.appendChild(L[_].slider)},O=function(e){for(var t in I)if(Object.prototype.hasOwnProperty.call(I,t)&&I[t].checkSupport(e)){var n=document.createElement("div"),i=document.createElement("div");n.className="tobii__slide",n.style.position="absolute",n.style.left=100*L[_].x+"%",n.setAttribute("aria-hidden","true"),I[t].init(e,i),n.appendChild(i),L[_].slider.appendChild(n),L[_].sliderElements.push(n),++L[_].x;break}},q=function(e){if(C=null!==C?C:_,ue())throw new Error("Ups, I'm aleady open.");if(!ue()&&(e||(e=0),-1===e||e>=L[C].elementsLength))throw new Error("Ups, I can't find slide "+e+".");d.hideScrollbar&&(document.documentElement.classList.add("tobii-is-open"),document.body.classList.add("tobii-is-open")),de(),d.close||(p.disabled=!1,p.setAttribute("aria-hidden","true")),g=document.activeElement;var t=window.location.href;window.history.pushState({tobii:"close"},"Image",t),L[C].currentIndex=e,B(),ie(),Y(L[C].currentIndex),L[C].slider.setAttribute("aria-hidden","false"),l.setAttribute("aria-hidden","false"),se(),U(L[C].currentIndex+1),U(L[C].currentIndex-1),setTimeout(function(){L[C].slider.classList.add("tobii__slider--animate")},1e3);var n=new window.CustomEvent("open");l.dispatchEvent(n)},X=function(){if(!ue())throw new Error("Ups, I'm already closed.");d.hideScrollbar&&(document.documentElement.classList.remove("tobii-is-open"),document.body.classList.remove("tobii-is-open")),re(),null!==window.history.state&&"close"===window.history.state.tobii&&window.history.back(),g.focu
13s(),D(L[C].currentIndex),H(L[C].currentIndex),l.setAttribute("aria-hidden","true"),L[C].slider.setAttribute("aria-hidden","true"),L[C].currentIndex=0,L[C].slider.classList.remove("tobii__slider--animate")},U=function(e){if(void 0!==L[C].sliderElements[e]){var t=L[C].sliderElements[e].querySelector("[data-type]"),n=t.getAttribute("data-type");I[n].onPreload(t)}},Y=function(e){if(void 0!==L[C].sliderElements[e]){var t=L[C].sliderElements[e].querySelector("[data-type]"),n=t.getAttribute("data-type");L[C].sliderElements[e].classList.add("tobii__slide--is-active"),L[C].sliderElements[e].setAttribute("aria-hidden","false"),I[n].onLoad(t)}},z=function(){if(!ue())throw new Error("Ups, I'm closed.");L[C].currentIndex>0&&(D(L[C].currentIndex),Y(--L[C].currentIndex),se("left"),H(L[C].currentIndex+1),U(L[C].currentIndex-1));var e=new window.CustomEvent("previous");l.dispatchEvent(e)},M=function(){if(!ue())throw new Error("Ups, I'm closed.");L[C].currentIndex<L[C].elementsLength-1&&(D(L[C].currentIndex),Y(++L[C].currentIndex),se("right"),H(L[C].currentIndex-1),U(L[C].currentIndex+1));var e=new window.CustomEvent("next");l.dispatchEvent(e)},D=function(e){if(void 0!==L[C].sliderElements[e]){var t=L[C].sliderElements[e].querySelector("[data-type]"),n=t.getAttribute("data-type");L[C].sliderElements[e].classList.remove("tobii__slide--is-active"),L[C].sliderElements[e].setAttribute("aria-hidden","true"),I[n].onLeave(t)}},H=function(e){if(void 0!==L[C].sliderElements[e]){var t=L[C].sliderElements[e].querySelector("[data-type]"),n=t.getAttribute("data-type");I[n].onCleanup(t)}},j=function(){L[C=null!==C?C:_].slider.style.transform="translate3d("+(y=-L[C].currentIndex*l.offsetWidth)+"px, 0, 0)",w=y},B=function(){f={startX:0,endX:0,startY:0,endY:0}},V=function(){var e=f.endX-f.startX,t=f.endY-f.startY,n=Math.abs(e),i=Math.abs(t);e>0&&n>d.threshold&&L[C].currentIndex>0?z():e<0&&n>d.threshold&&L[C].currentIndex!==L[C].elementsLength-1?M():t<0&&i>d.threshold&&d.swipeClose?X():j()},R=function(){x||(x=!0,window.requestAnimationFrame(function(){j(),x=!1}))},W=function(e){e.preventDefault(),C=T(e.currentTarget),q(L[C].gallery.indexOf(e.currentTarget))},G=function(e){e.target===u?z():e.target===c?M():(e.target===p||!1===m&&!1===h&&e.target.classList.contains("tobii__slide")&&d.docClose)&&X(),e.stopPropagation()},J=function(e){var t=Array.prototype.slice.call(l.querySelectorAll(".tobii__btn:not([disabled]), .tobii__slide--is-active + "+i.join(", .tobii__slide--is-active "))).filter(function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)}),n=t.indexOf(document.activeElement);9===e.keyCode||"Tab"===e.code?e.shiftKey&&0===n?(t[t.length-1].focus(),e.preventDefault()):e.shiftKey||n!==t.length-1||(t[0].focus(),e.preventDefault()):27===e.keyCode||"Escape"===e.code?(e.preventDefault(),X()):37===e.keyCode||"ArrowLeft"===e.code?(e.preventDefault(),z()):39!==e.keyCode&&"ArrowRight"!==e.code||(e.preventDefault(),M())},K=function(e){pe(e.target)||(e.stopPropagation(),m=!1,h=!1,v=!0,f.startX=e.touches[0].pageX,f.startY=e.touches[0].pageY,L[C].slider.classList.add("tobii__slider--is-dragging"))},F=function(e){e.stopPropagation(),v&&(e.preventDefault(),f.endX=e.touches[0].pageX,f.endY=e.touches[0].pageY,ne())},$=function(e){e.stopPropagation(),v=!1,L[C].slider.classList.remove("tobii__slider--is-dragging"),f.endX&&V(),B()},Q=function(e){pe(e.target)||(e.preventDefault(),e.stopPropagation(),m=!1,h=!1,v=!0,f.startX=e.pageX,f.startY=e.pageY,L[C].slider.classList.add("tobii__slider--is-dragging"))},Z=function(e){e.preventDefault(),v&&(f.endX=e.pageX,f.endY=e.pageY,ne())},ee=function(e){e.stopPropagation(),v=!1,L[C].slider.classList.remove("tobii__slider--is-dragging"),f.endX&&V(),B()},te=function(){v=!1},ne=function(){Math.abs(f.startX-f.endX)>0&&!h&&L[C].elementsLength>1?(L[C].slider.style.transform="translate3d("+(w-Math.round(f.startX-f.endX))+"px, 0, 0)",m=!0,h=!1):Math.abs(f.startY-f.endY)>0&&!m&&d.swipeClose&&(L[C].slider.style.transform="translate3d("+w+"px, -"+Math.round(f.startY-f.endY)+"px, 0)",m=!1,h=!0)},ie=function(){d.keyboard&&window.addEventListener("keydown",J),window.addEventListener("resize",R),window.addEventListener("popstate",X),l.addEventListener("click",G),d.draggable&&(ce()&&(l.addEventListener("touchstart",K),l.addEventListener("touchmove",F),l.addEventListener("touchend",$)),l.addEventListener("mousedown",Q),l.addEventListener("mouseup",ee),l.addEventListener("mousemove",Z),l.addEventListener("contextmenu",te))},re=function(){d.keyboard&&window.removeEventListener("keydown",J),window.removeEventListener("resize",R),window.removeEventListener("popstate",X),l.removeEventListener("click",G),d.draggable&&(ce()&&(l.removeEventListener("touchstart",K),l.removeEventListener("touchmove",F),l.removeEventListener("touchend",$)),l.removeEventListener("mousedown",Q),l.removeEventListener("mouseup",ee),l.removeEventListener("mousemove",Z),l.removeEventListener("contextmenu",te))},oe=function(e,t){return e.getAttribute("data-type")===t},ae=function(e){var t=e.querySelectorAll("src");t&&t.forEach(function(e){e.setAttribute("src","")})},de=function(){(d.draggable&&d.swipeClose&&!L[C].slider.classList.contains("tobii__slider--is-draggable")||d.draggable&&L[C].elementsLength>1&&!L[C].slider.classList.contains("tobii__slider--is-draggable"))&&L[C].slider.classList.add("tobii__slider--is-draggable"),!d.nav||1===L[C].elementsLength||"auto"===d.nav&&ce()?(u.setAttribute("aria-hidden","true"),u.disabled=!0,c.setAttribute("aria-hidden","true"),c.disabled=!0):(u.setAttribute("aria-hidden","false"),u.disabled=!1,c.setAttribute("aria-hidden","false"),c.disabled=!1),b.setAttribute("aria-hidden",d.counter&&1!==L[C].elementsLength?"false":"true")},se=function(e){j(),b.textContent=L[C].currentIndex+1+"/"+L[C].elementsLength,function(e){(!0===d.nav||"auto"===d.nav)&&!ce()&&L[C].elementsLength>1?(u.setAttribute("aria-hidden","true"),u.disabled=!0,c.setAttribute("aria-hidden","true"),c.disabled=!0,1===L[C].elementsLength?d.close&&p.focus():0===L[C].currentIndex?(c.setAttribute("aria-hidden","false"),c.disabled=!1,c.focus()):L[C].currentIndex===L[C].elementsLength-1?(u.setAttribute("aria-hidden","false"),u.disabled=!1,u.focus()):(u.setAttribute("aria-hidden","false"),u.disabled=!1,c.setAttribute("aria-hidden","false"),c.disabled=!1,"left"===e?u.focus():c.focus())):d.close&&p.focus()}(e)}
13,le=function(){ue()&&X(),Object.entries(L).forEach(function(e){e[1].gallery.forEach(function(e){P(e)})}),L={},_=C=null,s=0},ue=function(){return"false"===l.getAttribute("aria-hidden")},ce=function(){return"ontouchstart"in window},pe=function(e){return-1!==["TEXTAREA","OPTION","INPUT","SELECT"].indexOf(e.nodeName)||e===u||e===c||e===p};return function(e){d=function(e){return t({},{selector:".lightbox",captions:!0,captionsSelector:"img",captionAttribute:"alt",captionText:null,nav:"auto",navText:['<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path stroke="none" d="M0 0h24v24H0z"/><polyline points="15 6 9 12 15 18" /></svg>','<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path stroke="none" d="M0 0h24v24H0z"/><polyline points="9 6 15 12 9 18" /></svg>'],navLabel:["Previous image","Next image"],close:!0,closeText:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path stroke="none" d="M0 0h24v24H0z"/><line x1="18" y1="6" x2="6" y2="18" /><line x1="6" y1="6" x2="18" y2="18" /></svg>',closeLabel:"Close lightbox",loadingIndicatorLabel:"Image loading",counter:!0,download:!1,downloadText:"",downloadLabel:"Download image",keyboard:!0,zoom:!0,zoomText:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path stroke="none" d="M0 0h24v24H0z"/><polyline points="16 4 20 4 20 8" /><line x1="14" y1="10" x2="20" y2="4" /><polyline points="8 20 4 20 4 16" /><line x1="4" y1="20" x2="10" y2="14" /><polyline points="16 20 20 20 20 16" /><line x1="14" y1="14" x2="20" y2="20" /><polyline points="8 4 4 4 4 8" /><line x1="4" y1="4" x2="10" y2="10" /></svg>',docClose:!0,swipeClose:!0,hideScrollbar:!0,draggable:!0,threshold:100,rtl:!1,loop:!1,autoplayVideo:!1,modal:!1,theme:"tobii--theme-default"},e)}(e),l||((l=document.createElement("div")).setAttribute("role","dialog"),l.setAttribute("aria-hidden","true"),l.classList.add("tobii"),l.classList.add(d.theme),(u=document.createElement("button")).className="tobii__btn tobii__btn--previous",u.setAttribute("type","button"),u.setAttribute("aria-label",d.navLabel[0]),u.innerHTML=d.navText[0],l.appendChild(u),(c=document.createElement("button")).className="tobii__btn tobii__btn--next",c.setAttribute("type","button"),c.setAttribute("aria-label",d.navLabel[1]),c.innerHTML=d.navText[1],l.appendChild(c),(p=document.createElement("button")).className="tobii__btn tobii__btn--close",p.setAttribute("type","button"),p.setAttribute("aria-label",d.closeLabel),p.innerHTML=d.closeText,l.appendChild(p),(b=document.createElement("div")).className="tobii__counter",l.appendChild(b),document.body.appendChild(l));var n=document.querySelectorAll(d.selector);if(!n)throw new Error("Ups, I can't find the selector "+d.selector+" on this website.");n.forEach(function(e){S(e)})}(e),n.open=q,n.previous=z,n.next=M,n.close=X,n.add=S,n.remove=P,n.reset=le,n.destroy=function(){le(),l.parentNode.removeChild(l)},n.isOpen=ue,n.slidesIndex=function(){return L[C].currentIndex},n.select=function(e){var t=L[C].currentIndex;if(!ue())throw new Error("Ups, I'm closed.");if(ue()){if(!e&&0!==e)throw new Error("Ups, no slide specified.");if(e===L[C].currentIndex)throw new Error("Ups, slide "+e+" is already selected.");if(-1===e||e>=L[C].elementsLength)throw new Error("Ups, I can't find slide "+e+".")}L[C].currentIndex=e,D(t),Y(e),e<t&&(se("left"),H(t),U(e-1)),e>t&&(se("right"),H(t),U(e+1))},n.slidesCount=function(){return L[C].elementsLength},n.selectGroup=function(e){if(ue())throw new Error("Ups, I'm open.");if(!e)throw new Error("Ups, no group specified.");if(e&&!Object.prototype.hasOwnProperty.call(L,e))throw new Error("Ups, I don't have a group called \""+e+'".');C=e},n.currentGroup=function(){return null!==C?C:_},n.on=function(e,t){l.addEventListener(e,t)},n.off=function(e,t){l.removeEventListener(e,t)},n}typeof module<"u"?module.exports=n:self.Tobii=n}();
14
15!function(a,b,c){"use strict";var d=function(){function d(d){function e(){B.forEach(function(a){m(a,u)}),y||m(b.documentElement,"no-csstransforms3d"),m(A,t)}function f(){if(!a.getComputedStyle)return!1;var d,e=b.createElement("p"),f={webkitTransform:"-webkit-transform",OTransform:"-o-transform",msTransform:"-ms-transform",MozTransform:"-moz-transform",transform:"transform"};b.body.insertBefore(e,null);for(var g in f)e.style[g]!==c&&(e.style[g]="translate3d(1px,1px,1px)",d=a.getComputedStyle(e).getPropertyValue(f[g]));return b.body.removeChild(e),d!==c&&d.length>0&&"none"!==d}function g(a,b,d){var e=q(a!==c?a:".offside");return e!==!1?new h(e[0],b,d):null}function h(a,b,c){var d,e;e={buttonsSelector:"",slidingSide:"left",init:function(){},beforeOpen:function(){},afterOpen:function(){},beforeClose:function(){},afterClose:function(){},beforeDestroy:function(){},afterDestroy:function(){}};for(d in b)e.hasOwnProperty(d)&&(e[d]=b[d]);var f=a,g=q(e.buttonsSelector),h=e.slidingSide,i="offside",j=i+"--"+h,t="is-open",u=s+"--is-open",v=s+"--is-"+h,y=c||0,B=function(){r(z,y)===!1?D():E()},D=function(){e.beforeOpen(),x&&(x=!1,l()),k(),m(A,u),m(A,v),m(f,t),z.push(y),e.afterOpen()},E=function(){var a=r(z,y);a!==!1&&(e.beforeClose(),n(A,u),n(A,v),n(f,t),z.splice(a,1),e.afterClose())},F=function(){k()},G=function(a){a.preventDefault(),B()},H=function(){C&&J(),m(f,i),m(f,j),g.forEach(function(a){o(a,"click",G)}
vendor: 2,156 bytes, lines 15-17
15),e.init()},I=function(){e.beforeDestroy(),E(),g.forEach(function(a){p(a,"click",G)}),n(f,i),n(f,j),delete w[y],e.afterDestroy()},J=function(){f||console.error('Offside alert: "offside" selector could not match any element'),g.length||console.error('Offside alert: "buttonsSelector" selector could not match any element')};this.toggle=function(){B()},this.open=function(){D()},this.close=function(){E()},this.closeAll=function(){F()},this.destroy=function(){I()},H()}var i,j,k=function(a){z.length>0&&(isNaN(a)?z.forEach(function(a){w[a].close()}):w[a].close())},l=function(){m(A,v)},m=function(a,b){a.classList?a.classList.add(b):a.className=(a.className+" "+b).trim()},n=function(a,b){a.classList?a.classList.remove(b):a.className=a.className.replace(new RegExp("(^|\\b)"+b.split(" ").join("|")+"(\\b|$)","gi")," ")},o=function(a,b,c){a.addEventListener(b,c)},p=function(a,b,c){a.removeEventListener(b,c)},q=function(a){return a instanceof HTMLElement?[a]:Array.isArray(a)?a:"string"==typeof a&&Array.apply(null,b.querySelectorAll(a))},r=function(a,b){var c=a.indexOf(b);return c>-1&&c};j={slidingElementsSelector:".offside-sliding-element",disableCss3dTransforms:!1,debug:!1};for(i in d)j.hasOwnProperty(i)&&(j[i]=d[i]);var s="offside-js",t=s+"--init",u="offside-sliding-element",v=s+"--interact",w=[],x=!0,y=!j.disableCss3dTransforms&&f(),z=[],A=b.body,B=q(j.slidingElementsSelector),C=j.debug;return e(),{closeOpenOffside:function(){k()},getOffsideInstance:function(a,b){var c=w.length||0,d=g(a,b,c);if(null!==d)return w[c]=d}}}var e={getInstance:function(a,b){return e.getInstance.factory||(e.getInstance.factory=d(b)),e.getInstance.factory.getOffsideInstance(a,b)}};return e}();"undefined"!=typeof module&&module.exports?module.exports=d.getInstance:a.offside=d.getInstance}(window,document);
16/*! smooth-scroll v14.2.0 | (c) 2018 Chris Ferdinandi | MIT License | http://github.com/cferdinandi/smooth-scroll */
17window.Element&&!Element.prototype.closest&&(Element.prototype.closest=function(e){var t,n=(this.document||this.ownerDocument).querySelectorAll(e),o=this;do{for(t=n.length;--t>=0&&n.item(t)!==o;);}while(t<0&&(o=o.parentElement));return o}
17),(function(){function e(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};var n=document.createEvent("CustomEvent");return n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),n}if("function"==typeof window.CustomEvent)return!1;e.prototype=window.Event.prototype,window.CustomEvent=e})(),(function(){for(var e=0,t=["ms","moz","webkit","o"],n=0;n<t.length&&!window.requestAnimationFrame;++n)window.requestAnimationFrame=window[t[n]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[t[n]+"CancelAnimationFrame"]||window[t[n]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t,n){var o=(new Date).getTime(),i=Math.max(0,16-(o-e)),r=window.setTimeout((function(){t(o+i)}),i);return e=o+i,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(e){clearTimeout(e)})})(),(function(e,t){"function"==typeof define&&define.amd?define([],(function(){return t(e)})):"object"==typeof exports?module.exports=t(e):e.SmoothScroll=t(e)})("undefined"!=typeof global?global:"undefined"!=typeof window?window:this,(function(e){"use strict";var t={ignore:"[data-scroll-ignore]",header:null,topOnEmptyHash:!0,speed:500,clip:!0,offset:0,easing:"easeInOutCubic",customEasing:null,updateURL:!0,popstate:!0,emitEvents:!0},n=function(){return"querySelector"in document&&"addEventListener"in e&&"requestAnimationFrame"in e&&"closest"in e.Element.prototype},o=function(){for(var e={},t=0;t<arguments.length;t++)!(function(t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(arguments[t]);return e},i=function(t){return!!("matchMedia"in e&&e.matchMedia("(prefers-reduced-motion)").matches)},r=function(t){return parseInt(e.getComputedStyle(t).height,10)},a=function(e){var t;try{t=decodeURIComponent(e)}catch(n){t=e}return t},c=function(e){"#"===e.charAt(0)&&(e=e.substr(1));for(var t,n=String(e),o=n.length,i=-1,r="",a=n.charCodeAt(0);++i<o;){if(0===(t=n.charCodeAt(i)))throw new InvalidCharacterError("Invalid character: the input contains U+0000.");t>=1&&t<=31||127==t||0===i&&t>=48&&t<=57||1===i&&t>=48&&t<=57&&45===a?r+="\\"+t.toString(16)+" ":r+=t>=128||45===t||95===t||t>=48&&t<=57||t>=65&&t<=90||t>=97&&t<=122?n.charAt(i):"\\"+n.charAt(i)}var c;try{c=decodeURIComponent("#"+r)}catch(e){c="#"+r}return c},u=function(e,t){var n;return"easeInQuad"===e.easing&&(n=t*t),"easeOutQuad"===e.easing&&(n=t*(2-t)),"easeInOutQuad"===e.easing&&(n=t<.5?2*t*t:(4-2*t)*t-1),"easeInCubic"===e.easing&&(n=t*t*t),"easeOutCubic"===e.easing&&(n=--t*t*t+1),"easeInOutCubic"===e.easing&&(n=t<.5?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1),"easeInQuart"===e.easing&&(n=t*t*t*t),"easeOutQuart"===e.easing&&(n=1- --t*t*t*t),"easeInOutQuart"===e.easing&&(n=t<.5?8*t*t*t*t:1-8*--t*t*t*t),"easeInQuint"===e.easing&&(n=t*t*t*t*t),"easeOutQuint"===e.easing&&(n=1+--t*t*t*t*t),"easeInOutQuint"===e.easing&&(n=t<.5?16*t*t*t*t*t:1+16*--t*t*t*t*t),e.customEasing&&(n=e.customEasing(t)),n||t},s=function(){return Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)},l=function(t,n,o,i){var r=0;if(t.offsetParent)do{r+=t.offsetTop,t=t.offsetParent}while(t);return r=Math.max(r-n-o,0),i&&(r=Math.min(r,s()-e.innerHeight)),r},m=function(e){return e?r(e)+e.offsetTop:0},d=function(e,t,n){t||history.pushState&&n.updateURL&&history.pushState({smoothScroll:JSON.stringify(n),anchor:e.id},document.title,e===document.documentElement?"#top":"#"+e.id)},f=function(t,n,o){0===t&&document.body.focus(),o||(t.focus(),document.activeElement!==t&&(t.setAttribute("tabindex","-1"),t.focus(),t.style.outline="none"),e.scrollTo(0,n))},h=function(t,n,o,i){if(n.emitEvents&&"function"==typeof e.CustomEvent){var r=new CustomEvent(t,{bubbles:!0,detail:{anchor:o,toggle:i}});document.dispatchEvent(r)}};return function(r,p){var g,v,w,y,E,b,S,A={};A.cancelScroll=function(e){cancelAnimationFrame(S),S=null,e||h("scrollCancel",g)},A.animateScroll=function(n,i,r){var a=o(g||t,r||{}),c="[object Number]"===Object.prototype.toString.call(n),p=c||!n.tagName?null:n;if(c||p){var v=e.pageYOffset;a.header&&!y&&(y=document.querySelector(a.header)),E||(E=m(y));var w,b,C,O=c?n:l(p,E,parseInt("function"==typeof a.offset?a.offset(n,i):a.offset,10),a.clip),I=O-v,q=s(),F=0,L=function(t,o){var r=e.pageYOffset;
17if(t==o||r==o||(v<o&&e.innerHeight+r)>=q)return A.cancelScroll(!0),f(n,o,c),h("scrollStop",a,n,i),w=null,S=null,!0},H=function(t){w||(w=t),F+=t-w,b=F/parseInt(a.speed,10),b=b>1?1:b,C=v+I*u(a,b),e.scrollTo(0,Math.floor(C)),L(C,O)||(S=e.requestAnimationFrame(H),w=t)};0===e.pageYOffset&&e.scrollTo(0,0),d(n,c,a),h("scrollStart",a,n,i),A.cancelScroll(!0),e.requestAnimationFrame(H)}};var C=function(t){if(!i()&&0===t.button&&!t.metaKey&&!t.ctrlKey&&"closest"in t.target&&(w=t.target.closest(r))&&"a"===w.tagName.toLowerCase()&&!t.target.closest(g.ignore)&&w.hostname===e.location.hostname&&w.pathname===e.location.pathname&&/#/.test(w.href)){var n=c(a(w.hash)),o=g.topOnEmptyHash&&"#"===n?document.documentElement:document.querySelector(n);o=o||"#top"!==n?o:document.documentElement,o&&(t.preventDefault(),A.animateScroll(o,w))}},O=function(e){if(history.state.smoothScroll&&history.state.smoothScroll===JSON.stringify(g)&&history.state.anchor){var t=document.querySelector(c(a(history.state.anchor)));t&&A.animateScroll(t,null,{updateURL:!1})}},I=function(e){b||(b=setTimeout((function(){b=null,E=m(y)}),66))};return A.destroy=function(){g&&(document.removeEventListener("click",C,!1),e.removeEventListener("resize",I,!1),e.removeEventListener("popstate",O,!1),A.cancelScroll(),g=null,v=null,w=null,y=null,E=null,b=null,S=null)},A.init=function(i){if(!n())throw"Smooth Scroll: This browser does not support the required JavaScript methods and browser APIs.";A.destroy(),g=o(t,i||{}),y=g.header?document.querySelector(g.header):null,E=m(y),document.addEventListener("click",C,!1),y&&e.addEventListener("resize",I,!1),g.updateURL&&g.popstate&&e.addEventListener("popstate",O,!1)},A.init(p),A}}));
18/*!
19 * imagesLoaded PACKAGED v4.1.4
20 * JavaScript is all like "You images are done yet or what?"
21 * MIT License
22 */
23
24!function(e,t){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",t):"object"==typeof module&&module.exports?module.exports=t():e.EvEmitter=t()}("undefined"!=typeof window?window:this,function(){function e(){}var t=e.prototype;return t.on=function(e,t){if(e&&t){var i=this._events=this._events||{},n=i[e]=i[e]||[];return n.indexOf(t)==-1&&n.push(t),this}},t.once=function(e,t){if(e&&t){this.on(e,t);var i=this._onceEvents=this._onceEvents||{},n=i[e]=i[e]||{};return n[t]=!0,this}},t.off=function(e,t){var i=this._events&&this._events[e];if(i&&i.length){var n=i.indexOf(t);return n!=-1&&i.splice(n,1),this}},t.emitEvent=function(e,t){var i=this._events&&this._events[e];if(i&&i.length){i=i.slice(0),t=t||[];for(var n=this._onceEvents&&this._onceEvents[e],o=0;o<i.length;o++){var r=i[o],s=n&&n[r];s&&(this.off(e,r),delete n[r]),r.apply(this,t)}return this}},t.allOff=function(){delete this._events,delete this._onceEvents},e}),function(e,t){"use strict";"function"==typeof define&&define.amd?define(["ev-emitter/ev-emitter"],function(i){return t(e,i)}):"object"==typeof module&&module.exports?module.exports=t(e,require("ev-emitter")):e.imagesLoaded=t(e,e.EvEmitter)}("undefined"!=typeof window?window:this,function(e,t){function i(e,t){for(var i in t)e[i]=t[i];return e}function n(e){if(Array.isArray(e))return e;var t="object"==typeof e&&"number"==typeof e.length;return t?d.call(e):[e]}function o(e,t,r){if(!(this instanceof o))return new o(e,t,r);var s=e;return"string"==typeof e&&(s=document.querySelectorAll(e)),s?(this.elements=n(s),this.options=i({},this.options),"function"==typeof t?r=t:i(this.options,t),r&&this.on("always",r),this.getImages(),h&&(this.jqDeferred=new h.Deferred),void setTimeout(this.check.bind(this))):void a.error("Bad element for imagesLoaded "+(s||e))}function r(e){this.img=e}function s(e,t){this.url=e,this.element=t,this.img=new Image}var h=e.jQuery,a=e.console,d=Array.prototype.slice;o.prototype=Object.create(t.prototype),o.prototype.options={},o.prototype.getImages=function(){this.images=[],this.elements.forEach(this.addElementImages,this)},o.prototype.addElementImages=function(e){"IMG"==e.nodeName&&this.addImage(e),this.options.background===!0&&this.addElementBackgroundImages(e);var t=e.nodeType;if(t&&u[t]){for(var i=e.querySelectorAll("img"),n=0;n<i.length;n++){var o=i[n];this.addImage(o)}if("string"==typeof this.options.background){var r=e.querySelectorAll(this.options.background);for(n=0;n<r.length;n++){var s=r[n];
vendor: 4,081 bytes, lines 24-36
24this.addElementBackgroundImages(s)}}}};var u={1:!0,9:!0,11:!0};return o.prototype.addElementBackgroundImages=function(e){var t=getComputedStyle(e);if(t)for(var i=/url\((['"])?(.*?)\1\)/gi,n=i.exec(t.backgroundImage);null!==n;){var o=n&&n[2];o&&this.addBackground(o,e),n=i.exec(t.backgroundImage)}},o.prototype.addImage=function(e){var t=new r(e);this.images.push(t)},o.prototype.addBackground=function(e,t){var i=new s(e,t);this.images.push(i)},o.prototype.check=function(){function e(e,i,n){setTimeout(function(){t.progress(e,i,n)})}var t=this;return this.progressedCount=0,this.hasAnyBroken=!1,this.images.length?void this.images.forEach(function(t){t.once("progress",e),t.check()}):void this.complete()},o.prototype.progress=function(e,t,i){this.progressedCount++,this.hasAnyBroken=this.hasAnyBroken||!e.isLoaded,this.emitEvent("progress",[this,e,t]),this.jqDeferred&&this.jqDeferred.notify&&this.jqDeferred.notify(this,e),this.progressedCount==this.images.length&&this.complete(),this.options.debug&&a&&a.log("progress: "+i,e,t)},o.prototype.complete=function(){var e=this.hasAnyBroken?"fail":"done";if(this.isComplete=!0,this.emitEvent(e,[this]),this.emitEvent("always",[this]),this.jqDeferred){var t=this.hasAnyBroken?"reject":"resolve";this.jqDeferred[t](this)}},r.prototype=Object.create(t.prototype),r.prototype.check=function(){var e=this.getIsImageComplete();return e?void this.confirm(0!==this.img.naturalWidth,"naturalWidth"):(this.proxyImage=new Image,this.proxyImage.addEventListener("load",this),this.proxyImage.addEventListener("error",this),this.img.addEventListener("load",this),this.img.addEventListener("error",this),void(this.proxyImage.src=this.img.src))},r.prototype.getIsImageComplete=function(){return this.img.complete&&this.img.naturalWidth},r.prototype.confirm=function(e,t){this.isLoaded=e,this.emitEvent("progress",[this,this.img,t])},r.prototype.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},r.prototype.onload=function(){this.confirm(!0,"onload"),this.unbindEvents()},r.prototype.onerror=function(){this.confirm(!1,"onerror"),this.unbindEvents()},r.prototype.unbindEvents=function(){this.proxyImage.removeEventListener("load",this),this.proxyImage.removeEventListener("error",this),this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},s.prototype=Object.create(r.prototype),s.prototype.check=function(){this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.img.src=this.url;var e=this.getIsImageComplete();e&&(this.confirm(0!==this.img.naturalWidth,"naturalWidth"),this.unbindEvents())},s.prototype.unbindEvents=function(){this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},s.prototype.confirm=function(e,t){this.isLoaded=e,this.emitEvent("progress",[this,this.element,t])},o.makeJQueryPlugin=function(t){t=t||e.jQuery,t&&(h=t,h.fn.imagesLoaded=function(e,t){var i=new o(this,e,t);return i.jqDeferred.promise(h(this))})},o.makeJQueryPlugin(),o});
25/*!
26 * Flickity PACKAGED v2.2.1
27 * Touch, responsive, flickable carousels
28 *
29 * Licensed GPLv3 for open source use
30 * or Flickity Commercial License for commercial use
31 *
32 * https://flickity.metafizzy.co
33 * Copyright 2015-2019 Metafizzy
34 */
35
36!function(e,i){"function"==typeof define&&define.amd?define("jquery-bridget/jquery-bridget",["jquery"],function(t){return i(e,t)}):"object"==typeof module&&module.exports?module.exports=i(e,require("jquery")):e.jQueryBridget=i(e,e.jQuery)}(window,function(t,e){"use strict";var i=Array.prototype.slice,n=t.console,d=void 0===n?function(){}:function(t){n.error(t)};function s(h,s,c){(c=c||e||t.jQuery)&&(s.prototype.option||(s.prototype.option=function(t){c.isPlainObject(t)&&(this.options=c.extend(!0,this.options,t))}),c.fn[h]=function(t){return"string"==typeof t?function(t,o,r){var a,l="$()."+h+'("'+o+'")';return t.each(function(t,e){var i=c.data(e,h);if(i){var n=i[o];if(n&&"_"!=o.charAt(0)){var s=n.apply(i,r);a=void 0===a?s:a}else d(l+" is not a valid method")}else d(h+" not initialized. Cannot call methods, i.e. "+l)}),void 0!==a?a:t}
36(this,t,i.call(arguments,1)):(function(t,n){t.each(function(t,e){var i=c.data(e,h);i?(i.option(n),i._init()):(i=new s(e,n),c.data(e,h,i))})}(this,t),this)},o(c))}function o(t){!t||t&&t.bridget||(t.bridget=s)}return o(e||t.jQuery),s}),function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},n=i[t]=i[t]||[];return-1==n.indexOf(e)&&n.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{};return(i[t]=i[t]||{})[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=i.indexOf(e);return-1!=n&&i.splice(n,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){i=i.slice(0),e=e||[];for(var n=this._onceEvents&&this._onceEvents[t],s=0;s<i.length;s++){var o=i[s];n&&n[o]&&(this.off(t,o),delete n[o]),o.apply(this,e)}return this}},e.allOff=function(){delete this._events,delete this._onceEvents},t}),function(t,e){"function"==typeof define&&define.amd?define("get-size/get-size",e):"object"==typeof module&&module.exports?module.exports=e():t.getSize=e()}(window,function(){"use strict";function m(t){var e=parseFloat(t);return-1==t.indexOf("%")&&!isNaN(e)&&e}var i="undefined"==typeof console?function(){}:function(t){console.error(t)},y=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],b=y.length;function E(t){var e=getComputedStyle(t);return e||i("Style returned "+e+". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1"),e}var S,C=!1;function x(t){if(function(){if(!C){C=!0;var t=document.createElement("div");t.style.width="200px",t.style.padding="1px 2px 3px 4px",t.style.borderStyle="solid",t.style.borderWidth="1px 2px 3px 4px",t.style.boxSizing="border-box";var e=document.body||document.documentElement;e.appendChild(t);var i=E(t);S=200==Math.round(m(i.width)),x.isBoxSizeOuter=S,e.removeChild(t)}}(),"string"==typeof t&&(t=document.querySelector(t)),t&&"object"==typeof t&&t.nodeType){var e=E(t);if("none"==e.display)return function(){for(var t={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},e=0;e<b;e++){t[y[e]]=0}return t}();var i={};i.width=t.offsetWidth,i.height=t.offsetHeight;for(var n=i.isBorderBox="border-box"==e.boxSizing,s=0;s<b;s++){var o=y[s],r=e[o],a=parseFloat(r);i[o]=isNaN(a)?0:a}var l=i.paddingLeft+i.paddingRight,h=i.paddingTop+i.paddingBottom,c=i.marginLeft+i.marginRight,d=i.marginTop+i.marginBottom,u=i.borderLeftWidth+i.borderRightWidth,f=i.borderTopWidth+i.borderBottomWidth,p=n&&S,g=m(e.width);!1!==g&&(i.width=g+(p?0:l+u));var v=m(e.height);return!1!==v&&(i.height=v+(p?0:h+f)),i.innerWidth=i.width-(l+u),i.innerHeight=i.height-(h+f),i.outerWidth=i.width+c,i.outerHeight=i.height+d,i}}return x}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("desandro-matches-selector/matches-selector",e):"object"==typeof module&&module.exports?module.exports=e():t.matchesSelector=e()}(window,function(){"use strict";var i=function(){var t=window.Element.prototype;if(t.matches)return"matches";if(t.matchesSelector)return"matchesSelector";for(var e=["webkit","moz","ms","o"],i=0;i<e.length;i++){var n=e[i]+"MatchesSelector";if(t[n])return n}}();return function(t,e){return t[i](e)}}),function(e,i){"function"==typeof define&&define.amd?define("fizzy-ui-utils/utils",["de
36sandro-matches-selector/matches-selector"],function(t){return i(e,t)}):"object"==typeof module&&module.exports?module.exports=i(e,require("desandro-matches-selector")):e.fizzyUIUtils=i(e,e.matchesSelector)}(window,function(h,o){var c={extend:function(t,e){for(var i in e)t[i]=e[i];return t},modulo:function(t,e){return(t%e+e)%e}},e=Array.prototype.slice;c.makeArray=function(t){return Array.isArray(t)?t:null==t?[]:"object"==typeof t&&"number"==typeof t.length?e.call(t):[t]},c.removeFrom=function(t,e){var i=t.indexOf(e);-1!=i&&t.splice(i,1)},c.getParent=function(t,e){for(;t.parentNode&&t!=document.body;)if(t=t.parentNode,o(t,e))return t},c.getQueryElement=function(t){return"string"==typeof t?document.querySelector(t):t},c.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},c.filterFindElements=function(t,n){t=c.makeArray(t);var s=[];return t.forEach(function(t){if(t instanceof HTMLElement)if(n){o(t,n)&&s.push(t);for(var e=t.querySelectorAll(n),i=0;i<e.length;i++)s.push(e[i])}else s.push(t)}),s},c.debounceMethod=function(t,e,n){n=n||100;var s=t.prototype[e],o=e+"Timeout";t.prototype[e]=function(){var t=this[o];clearTimeout(t);var e=arguments,i=this;this[o]=setTimeout(function(){s.apply(i,e),delete i[o]},n)}},c.docReady=function(t){var e=document.readyState;"complete"==e||"interactive"==e?setTimeout(t):document.addEventListener("DOMContentLoaded",t)},c.toDashed=function(t){return t.replace(/(.)([A-Z])/g,function(t,e,i){return e+"-"+i}).toLowerCase()};var d=h.console;return c.htmlInit=function(a,l){c.docReady(function(){var t=c.toDashed(l),s="data-"+t,e=document.querySelectorAll("["+s+"]"),i=document.querySelectorAll(".js-"+t),n=c.makeArray(e).concat(c.makeArray(i)),o=s+"-options",r=h.jQuery;n.forEach(function(e){var t,i=e.getAttribute(s)||e.getAttribute(o);try{t=i&&JSON.parse(i)}catch(t){return void(d&&d.error("Error parsing "+s+" on "+e.className+": "+t))}var n=new a(e,t);r&&r.data(e,l,n)})})},c}),function(e,i){"function"==typeof define&&define.amd?define("flickity/js/cell",["get-size/get-size"],function(t){return i(e,t)}):"object"==typeof module&&module.exports?module.exports=i(e,require("get-size")):(e.Flickity=e.Flickity||{},e.Flickity.Cell=i(e,e.getSize))}(window,function(t,e){function i(t,e){this.element=t,this.parent=e,this.create()}var n=i.prototype;return n.create=function(){this.element.style.position="absolute",this.element.setAttribute("aria-hidden","true"),this.x=0,this.shift=0},n.destroy=function(){this.unselect(),this.element.style.position="";var t=this.parent.originSide;this.element.style[t]=""},n.getSize=function(){this.size=e(this.element)},n.setPosition=function(t){this.x=t,this.updateTarget(),this.renderPosition(t)},n.updateTarget=n.setDefaultTarget=function(){var t="left"==this.parent.originSide?"marginLeft":"marginRight";this.target=this.x+this.size[t]+this.size.width*this.parent.cellAlign},n.renderPosition=function(t){var e=this.parent.originSide;this.element.style[e]=this.parent.getPositionValue(t)},n.select=function(){this.element.classList.add("is-selected"),this.element.removeAttribute("aria-hidden")},n.unselect=function(){this.element.classList.remove("is-selected"),this.element.setAttribute("aria-hidden","true")},n.wrapShift=function(t){this.shift=t,this.renderPosition(this.x+this.parent.slideableWidth*t)},n.remove=function(){this.element.parentNode.removeChild(this.element)},i}),function(t,e){"function"==typeof define&&define.amd?define("flickity/js/slide",e):"object"==typeof module&&module.exports?module.exports=e():(t.Flickity=t.Flickity||{},t.Flickity.Slide=e())}(window,function(){"use strict";function t(t){this.parent=t,this.isOriginLeft="left"==t.originSide,this.cells=[],this.outerWidth=0,this.height=0}var e=t.prototype;return e.addCell=function(t){if(this.cells.push(t),this.outerWidth+=t.size.outerWidth,this.height=Math.max(t.size.outerHeight,this.height),1==this.cells.length){this.x=t.x;var e=this.isOriginLeft?"marginLeft":"marginRight";this.firstMargin=t.size[e]}},e.updateTarget=function(){var t=this.isOriginLeft?"marginRight":"marginLeft",e=this.getLastCell(),i=e?e.size[t]:0,n=this.outerWidth-(this.firstMargin+i);this.target=this.x+this.firstMargin+n*this.parent.cellAlign},e.getLastCell=function(){return this.cells[this.cells.length-1]}
36,e.select=function(){this.cells.forEach(function(t){t.select()})},e.unselect=function(){this.cells.forEach(function(t){t.unselect()})},e.getCellElements=function(){return this.cells.map(function(t){return t.element})},t}),function(e,i){"function"==typeof define&&define.amd?define("flickity/js/animate",["fizzy-ui-utils/utils"],function(t){return i(e,t)}):"object"==typeof module&&module.exports?module.exports=i(e,require("fizzy-ui-utils")):(e.Flickity=e.Flickity||{},e.Flickity.animatePrototype=i(e,e.fizzyUIUtils))}(window,function(t,e){var i={startAnimation:function(){this.isAnimating||(this.isAnimating=!0,this.restingFrames=0,this.animate())},animate:function(){this.applyDragForce(),this.applySelectedAttraction();var t=this.x;if(this.integratePhysics(),this.positionSlider(),this.settle(t),this.isAnimating){var e=this;requestAnimationFrame(function(){e.animate()})}},positionSlider:function(){var t=this.x;this.options.wrapAround&&1<this.cells.length&&(t=e.modulo(t,this.slideableWidth),t-=this.slideableWidth,this.shiftWrapCells(t)),this.setTranslateX(t,this.isAnimating),this.dispatchScrollEvent()},setTranslateX:function(t,e){t+=this.cursorPosition,t=this.options.rightToLeft?-t:t;var i=this.getPositionValue(t);this.slider.style.transform=e?"translate3d("+i+",0,0)":"translateX("+i+")"},dispatchScrollEvent:function(){var t=this.slides[0];if(t){var e=-this.x-t.target,i=e/this.slidesWidth;this.dispatchEvent("scroll",null,[i,e])}},positionSliderAtSelected:function(){this.cells.length&&(this.x=-this.selectedSlide.target,this.velocity=0,this.positionSlider())},getPositionValue:function(t){return this.options.percentPosition?.01*Math.round(t/this.size.innerWidth*1e4)+"%":Math.round(t)+"px"},settle:function(t){this.isPointerDown||Math.round(100*this.x)!=Math.round(100*t)||this.restingFrames++,2<this.restingFrames&&(this.isAnimating=!1,delete this.isFreeScrolling,this.positionSlider(),this.dispatchEvent("settle",null,[this.selectedIndex]))},shiftWrapCells:function(t){var e=this.cursorPosition+t;this._shiftCells(this.beforeShiftCells,e,-1);var i=this.size.innerWidth-(t+this.slideableWidth+this.cursorPosition);this._shiftCells(this.afterShiftCells,i,1)},_shiftCells:function(t,e,i){for(var n=0;n<t.length;n++){var s=t[n],o=0<e?i:0;s.wrapShift(o),e-=s.size.outerWidth}},_unshiftCells:function(t){if(t&&t.length)for(var e=0;e<t.length;e++)t[e].wrapShift(0)},integratePhysics:function(){this.x+=this.velocity,this.velocity*=this.getFrictionFactor()},applyForce:function(t){this.velocity+=t},getFrictionFactor:function(){return 1-this.options[this.isFreeScrolling?"freeScrollFriction":"friction"]},getRestingPosition:function(){return this.x+this.velocity/(1-this.getFrictionFactor())},applyDragForce:function(){if(this.isDraggable&&this.isPointerDown){var t=this.dragX-this.x-this.velocity;this.applyForce(t)}},applySelectedAttraction:function(){if(!(this.isDraggable&&this.isPointerDown)&&!this.isFreeScrolling&&this.slides.length){var t=(-1*this.selectedSlide.target-this.x)*this.options.selectedAttraction;this.applyForce(t)}}};return i}),function(r,a){if("function"==typeof define&&define.amd)define("flickity/js/flickity",["ev-emitter/ev-emitter","get-size/get-size","fizzy-ui-utils/utils","./cell","./slide","./animate"],function(t,e,i,n,s,o){return a(r,t,e,i,n,s,o)});else if("object"==typeof module&&module.exports)module.exports=a(r,require("ev-emitter"),require("get-size"),require("fizzy-ui-utils"),require("./cell"),require("./sli
vendor: 20,553 bytes, line 36
36de"),require("./animate"));else{var t=r.Flickity;r.Flickity=a(r,r.EvEmitter,r.getSize,r.fizzyUIUtils,t.Cell,t.Slide,t.animatePrototype)}}(window,function(n,t,e,a,i,r,s){var l=n.jQuery,o=n.getComputedStyle,h=n.console;function c(t,e){for(t=a.makeArray(t);t.length;)e.appendChild(t.shift())}var d=0,u={};function f(t,e){var i=a.getQueryElement(t);if(i){if(this.element=i,this.element.flickityGUID){var n=u[this.element.flickityGUID];return n.option(e),n}l&&(this.$element=l(this.element)),this.options=a.extend({},this.constructor.defaults),this.option(e),this._create()}else h&&h.error("Bad element for Flickity: "+(i||t))}f.defaults={accessibility:!0,cellAlign:"center",freeScrollFriction:.075,friction:.28,namespaceJQueryEvents:!0,percentPosition:!0,resize:!0,selectedAttraction:.025,setGallerySize:!0},f.createMethods=[];var p=f.prototype;a.extend(p,t.prototype),p._create=function(){var t=this.guid=++d;for(var e in this.element.flickityGUID=t,(u[t]=this).selectedIndex=0,this.restingFrames=0,this.x=0,this.velocity=0,this.originSide=this.options.rightToLeft?"right":"left",this.viewport=document.createElement("div"),this.viewport.className="flickity-viewport",this._createSlider(),(this.options.resize||this.options.watchCSS)&&n.addEventListener("resize",this),this.options.on){var i=this.options.on[e];this.on(e,i)}f.createMethods.forEach(function(t){this[t]()},this),this.options.watchCSS?this.watchCSS():this.activate()},p.option=function(t){a.extend(this.options,t)},p.activate=function(){this.isActive||(this.isActive=!0,this.element.classList.add("flickity-enabled"),this.options.rightToLeft&&this.element.classList.add("flickity-rtl"),this.getSize(),c(this._filterFindCellElements(this.element.children),this.slider),this.viewport.appendChild(this.slider),this.element.appendChild(this.viewport),this.reloadCells(),this.options.accessibility&&(this.element.tabIndex=0,this.element.addEventListener("keydown",this)),this.emitEvent("activate"),this.selectInitialIndex(),this.isInitActivated=!0,this.dispatchEvent("ready"))},p._createSlider=function(){var t=document.createElement("div");t.className="flickity-slider",t.style[this.originSide]=0,this.slider=t},p._filterFindCellElements=function(t){return a.filterFindElements(t,this.options.cellSelector)},p.reloadCells=function(){this.cells=this._makeCells(this.slider.children),this.positionCells(),this._getWrapShiftCells(),this.setGallerySize()},p._makeCells=function(t){return this._filterFindCellElements(t).map(function(t){return new i(t,this)},this)},p.getLastCell=function(){return this.cells[this.cells.length-1]},p.getLastSlide=function(){return this.slides[this.slides.length-1]},p.positionCells=function(){this._sizeCells(this.cells),this._positionCells(0)},p._positionCells=function(t){t=t||0,this.maxCellHeight=t&&this.maxCellHeight||0;var e=0;if(0<t){var i=this.cells[t-1];e=i.x+i.size.outerWidth}for(var n=this.cells.length,s=t;s<n;s++){var o=this.cells[s];o.setPosition(e),e+=o.size.outerWidth,this.maxCellHeight=Math.max(o.size.outerHeight,this.maxCellHeight)}this.slideableWidth=e,this.updateSlides(),this._containSlides(),this.slidesWidth=n?this.getLastSlide().target-this.slides[0].target:0},p._sizeCells=function(t){t.forEach(function(t){t.getSize()})},p.updateSlides=function(){if(this.slides=[],this.cells.length){var n=new r(this);this.slides.push(n);var s="left"==this.originSide?"marginRight":"marginLeft",o=this._getCanCellFit();this.cells.forEach(function(t,e){if(n.cells.length){var i=n.outerWidth-n.firstMargin+(t.size.outerWidth-t.size[s]);o.call(this,e,i)||(n.updateTarget(),n=new r(this),this.slides.push(n)),n.addCell(t)}else n.addCell(t)},this),n.updateTarget(),this.updateSelectedSlide()}},p._getCanCellFit=function(){var t=this.options.groupCells;if(!t)return function(){return!1};if("number"==typeof t){var e=parseInt(t,10);return function(t){return t%e!=0}}var i="string"==typeof t&&t.match(/^(\d+)%$/),n=i?parseInt(i[1],10)/100:1;return function(t,e){return e<=(this.size.innerWidth+1)*n}},p._init=p.reposition=function(){this.positionCells(),this.positionSliderAtSelected()},p.getSize=function(){this.size=e(this.element),this.setCellAlign(),this.cursorPosition=this.size.innerWidth*this.cellAlign};var g={center:{left:.5,right:.5},left:{left:0,right:1},right:{right:0,left:1}};return p.setCellAlign=function(){var t=g[this.options.cellAlign];this.cellAlign=t?t[this.originSide]:this.options.cellAlign},p.setGallerySize=function(){if(this.options.setGallerySize){var t=this.options.adaptiveHeight&&this.selectedSlide?this.selectedSlide.height:this.maxCellHeight;this.viewport.style.height=t+"px"}},p._getWrapShiftCells=function(){if(this.options.wrapAround){this._unshiftCells(this.beforeShiftCells),this._unshiftCells(this.afterShiftCells);var t=this.cursorPosition,e=this.cells.length-1;this.beforeShiftCells=this._getGapCells(t,e,-1),t=this.size.innerWidth-this.cursorPosition,this.afterShiftCells=this._getGapCells(t,0,1)}},p._getGapCells=function(t,e,i){for(var n=[];0<t;){var s=this.cells[e];if(!s)break;n.push(s),e+=i,t-=s.size.outerWidth}return n},p._containSlides=function(){if(this.options.contain&&!this.options.wrapAround&&this.cells.length){var t=this.options.rightToLeft,e=t?"marginRight":"marginLeft",i=t?"marginLeft":"marginRight",n=this.slideableWidth-this.getLastCell().size[i],s=n<this.size.innerWidth,o=this.cursorPosition+this.cells[0].size[e],r=n-this.size.innerWidth*(1-this.cellAlign);this.slides.forEach(function(t){s?t.target=n*this.cellAlign:(t.target=Math.max(t.target,o),t.target=Math.min(t.target,r))},this)}},p.dispatchEvent=function(t,e,i){var n=e?[e].concat(i):i;if(this.emitEvent(t,n),l&&this.$element){var s=t+=this.options.namespaceJQueryEvents?".flickity":"";if(e){var o=l.Event(e);o.type=t,s=o}this.$element.trigger(s,i)}},p.select=function(t,e,i){if(this.isActive&&(t=parseInt(t,10),this._wrapSelect(t),(this.options.wrapAround||e)&&(t=a.modulo(t,this.slides.length)),this.slides[t])){var n=this.selectedIndex;this.selectedIndex=t,this.updateSelectedSlide(),i?this.positionSliderAtSelected():this.startAnimation(),this.options.adaptiveHeight&&this.setGallerySize(),this.dispatchEvent("select",null,[t]),t!=n&&this.dispatchEvent("change",null,[t]),this.dispatchEvent("cellSelect")}},p._wrapSelect=function(t){var e=this.slides.length;if(!(this.options.wrapAround&&1<e))return t;var i=a.modulo(t,e),n=Math.abs(i-this.selectedIndex),s=Math.abs(i+e-this.selectedIndex),o=Math.abs(i-e-this.selectedIndex);!this.isDragSelect&&s<n?t+=e:!this.isDragSelect&&o<n&&(t-=e),t<0?this.x-=this.slideableWidth:e<=t&&(this.x+=this.slideableWidth)},p.previous=function(t,e){this.select(this.selectedIndex-1,t,e)},p.next=function(t,e){this.select(this.selectedIndex+1,t,e)},p.updateSelectedSlide=function(){var t=this.slides[this.selectedIndex];t&&(this.unselectSelectedSlide(),(this.selectedSlide=t).select(),this.selectedCells=t.cells,this.selectedElements=t.getCellElements(),this.selectedCell=t.cells[0],this.selectedElement=this.selectedElements[0])},p.unselectSelectedSlide=function(){this.selectedSlide&&this.selectedSlide.unselect()},p.selectInitialIndex=function(){var t=this.options.initialIndex;if(this.isInitActivated)this.select(this.selectedIndex,!1,!0);else{if(t&&"string"==typeof t)if(this.queryCell(t))return void this.selectCell(t,!1,!0);var e=0;t&&this.slides[t]&&(e=t),this.select(e,!1,!0)}},p.selectCell=function(t,e,i){var n=this.queryCell(t);if(n){var s=this.getCellSlideIndex(n);this.select(s,e,i)}},p.getCellSlideIndex=function(t){for(var e=0;e<this.slides.length;e++){if(-1!=this.slides[e].cells.indexOf(t))return e}},p.getCell=function(t){for(var e=0;e<this.cells.length;e++){var i=this.cells[e];if(i.element==t)return i}},p.getCells=function(t){t=a.makeArray(t);var i=[];return t.forEach(function(t){var e=this.getCell(t);e&&i.push(e)},this),i},p.getCellElements=function(){return this.cells.map(function(t){return t.element})},p.getParentCell=function(t){var e=this.getCell(t);return e||(t=a.getParent(t,".flickity-slider > *"),this.getCell(t))},p.getAdjacentCellElements=function(t,e){if(!t)return this.selectedSlide.getCellElements();e=void 0===e?this.selectedIndex:e;var i=this.slides.length;if(i<=1+2*t)return this.getCellElements();for(var n=[],s=e-t;s<=e+t;s++){var o=this.options.wrapAround?a.modulo(s,i):s,r=this.slides[o];r&&(n=n.concat(r.getCellElements()))}return n},p.queryCell=function(t){if("number"==typeof t)return this.cells[t];if("string"==typeof t){if(t.match(/^[#\.]?[\d\/]/))return;t=this.element.querySelector(t)}return this.getCell(t)},p.uiChange=function(){this.emitEvent("uiChange")},p.childUIPointerDown=function(t){"touchstart"!=t.type&&t.preventDefault(),this.focus()},p.onresize=function(){this.watchCSS(),this.resize()},a.debounceMethod(f,"onresize",150),p.resize=function(){if(this.isActive){this.getSize(),this.options.wrapAround&&(this.x=a.modulo(this.x,this.slideableWidth)),this.positionCells(),this._getWrapShiftCells(),this.setGallerySize(),this.emitEvent("resize");var t=this.selectedElements&&this.selectedElements[0];this.selectCell(t,!1,!0)}},p.watchCSS=function(){this.options.watchCSS&&(-1!=o(this.element,":after").content.indexOf("flickity")?this.activate():this.deactivate())},p.onkeydown=function(t){var e=document.activeElement&&document.activeElement!=this.element;if(this.options.accessibility&&!e){var i=f.keyboardHandlers[t.keyCode];i&&i.call(this)}},f.keyboardHandlers={37:function(){var t=this.options.rightToLeft?"next":"previous";this.uiChange(),this[t]()},39:function(){var t=this.options.rightToLeft?"previous":"next";this.uiChange(),this[t]()}},p.focus=function(){var t=n.pageYOffset;this.element.focus({preventScroll:!0}),n.pageYOffset!=t&&n.scrollTo(n.pageXOffset,t)},p.deactivate=function(){this.isActive&&(this.element.classList.remove("flickity-enabled"),this.element.classList.remove("flickity-rtl"),this.unselectSelectedSlide(),this.cells.forEach(function(t){t.destroy()}),this.element.removeChild(this.viewport),c(this.slider.children,this.element),this.options.accessibility&&(this.element.removeAttribute("tabIndex"),this.element.removeEventListener("keydown",this)),this.isActive=!1,this.emitEvent("deactivate"))},p.destroy=function(){this.deactivate(),n.removeEventListener("resize",this),this.allOff(),this.emitEvent("destroy"),l&&this.$element&&l.removeData(this.element,"flickity"),delete this.element.flickityGUID,delete u[this.guid]},a.extend(p,s),f.data=function(t){var e=(t=a.getQueryElement(t))&&t.flickityGUID;return e&&u[e]},a.htmlInit(f,"flickity"),l&&l.bridget&&l.bridget("flickity",f),f.setJQuery=function(t){l=t},f.Cell=i,f.Slide=r,f}),function(e,i){"function"==typeof define&&define.amd?define("unipointer/unipointer",["ev-emitter/ev-emitter"],function(t){return i(e,t)}):"object"==typeof module&&module.exports?module.exports=i(e,require("ev-emitter")):e.Unipointer=i(e,e.EvEmitter)}(window,function(s,t){function e(){}var i=e.prototype=Object.create(t.prototype);i.bindStartEvent=function(t){this._bindStartEvent(t,!0)},i.unbindStartEvent=function(t){this._bindStartEvent(t,!1)},i._bindStartEvent=function(t,e){var i=(e=void 0===e||e)?"addEventListener":"removeEventListener",n="mousedown";s.PointerEvent?n="pointerdown":"ontouchstart"in s&&(n="touchstart"),t[i](n,this)},i.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},i.getTouch=function(t){for(var e=0;e<t.length;e++){var i=t[e];if(i.identifier==this.pointerIdentifier)return i}},i.onmousedown=function(t){var e=t.button;e&&0!==e&&1!==e||this._pointerDown(t,t)},i.ontouchstart=function(t){this._pointerDown(t,t.changedTouches[0])},i.onpointerdown=function(t){this._pointerDown(t,t)},i._pointerDown=function(t,e){t.button||this.isPointerDown||(this.isPointerDown=!0,this.pointerIdentifier=void 0!==e.pointerId?e.pointerId:e.identifier,this.pointerDown(t,e))},i.pointerDown=function(t,e){this._bindPostStartEvents(t),this.emitEvent("pointerDown",[t,e])};var n={mousedown:["mousemove","mouseup"],touchstart:["touchmove","touchend","touchcancel"],pointerdown:["pointermove","pointerup","pointercancel"]};return i._bindPostStartEvents=function(t){if(t){var e=n[t.type];e.forEach(function(t){s.addEventListener(t,this)},this),this._boundPointerEvents=e}},i._unbindPostStartEvents=function(){this._boundPointerEvents&&(this._boundPointerEvents.forEach(function(t){s.removeEventListener(t,this)},this),delete this._boundPointerEvents)},i.onmousemove=function(t){this._pointerMove(t,t)},i.onpointermove=function(t){t.pointerId==this.pointerIdentifier&&this._pointerMove(t,t)},i.ontouchmove=function(t){var e=this.getTouch(t.changedTouches);e&&this._pointerMove(t,e)},i._pointerMove=function(t,e){this.pointerMove(t,e)},i.pointerMove=function(t,e){this.emitEvent("pointerMove",[t,e])},i.onmouseup=function(t){this._pointerUp(t,t)},i.onpointerup=function(t){t.pointerId==this.pointerIdentifier&&this._pointerUp(t,t)},i.ontouchend=function(t){var e=this.getTouch(t.changedTouches);e&&this._pointerUp(t,e)},i._pointerUp=function(t,e){this._pointerDone(),this.pointerUp(t,e)},i.pointerUp=function(t,e){this.emitEvent("pointerUp",[t,e])},i._pointerDone=function(){this._pointerReset(),this._unbindPostStartEvents(),this.pointerDone()},i._pointerReset=function(){this.isPointerDown=!1,delete this.pointerIdentifier},i.pointerDone=function(){},i.onpointercancel=function(t){t.pointerId==this.pointerIdentifier&&this._pointerCancel(t,t)},i.ontouchcancel=function(t){var e=this.getTouch(t.changedTouches);e&&this._pointerCancel(t,e)},i._pointerCancel=function(t,e){this._pointerDone(),this.pointerCancel(t,e)},i.pointerCancel=function(t,e){this.emitEvent("pointerCancel",[t,e])},e.getPointerPoint=function(t){return{x:t.pageX,y:t.pageY}},e}),function(e,i){"function"==typeof define&&define.amd?define("unidragger/unidragger",["unipointer/unipointer"],function(t){return i(e,t)}):"object"==typeof module&&module.exports?module.exports=i(e,require("unipointer")):e.Unidragger=i(e,e.Unipointer)}(window,function(o,t){function e(){}var i=e.prototype=Object.create(t.prototype);i.bindHandles=function(){this._bindHandles(!0)},i.unbindHandles=function(){this._bindHandles(!1)},i._bindHandles=function(t){for(var e=(t=void 0===t||t)?"addEventListener":"removeEventListener",i=t?this._touchActionValue:"",n=0;n<this.handles.length;n++){var s=this.handles[n];this._bindStartEvent(s,t),s[e]("click",this),o.PointerEvent&&(s.style.touchAction=i)}},i._touchActionValue="none",i.pointerDown=function(t,e){this.okayPointerDown(t)&&(this.pointerDownPointer=e,t.preventDefault(),this.pointerDownBlur(),this._bindPostStartEvents(t),this.emitEvent("pointerDown",[t,e]))};var s={TEXTAREA:!0,INPUT:!0,SELECT:!0,OPTION:!0},r={radio:!0,checkbox:!0,button:!0,submit:!0,image:!0,file:!0};return i.okayPointerDown=function(t){var e=s[t.target.nodeName],i=r[t.target.type],n=!e||i;return n||this._pointerReset(),n},i.pointerDownBlur=function(){var t=document.activeElement;t&&t.blur&&t!=document.body&&t.blur()},i.pointerMove=function(t,e){var i=this._dragPointerMove(t,e);this.emitEvent("pointerMove",[t,e,i]),this._dragMove(t,e,i)},i._dragPointerMove=function(t,e){var i={x:e.pageX-this.pointerDownPointer.pageX,y:e.pageY-this.pointerDownPointer.pageY};return!this.isDragging&&this.hasDragStarted(i)&&this._dragStart(t,e),i},i.hasDragStarted=function(t){return 3<Math.abs(t.x)||3<Math.abs(t.y)},i.pointerUp=function(t,e){this.emitEvent("pointerUp",[t,e]),this._dragPointerUp(t,e)},i._dragPointerUp=function(t,e){this.isDragging?this._dragEnd(t,e):this._staticClick(t,e)},i._dragStart=function(t,e){this.isDragging=!0,this.isPreventingClicks=!0,this.dragStart(t,e)},i.dragStart=function(t,e){this.emitEvent("dragStart",[t,e])},i._dragMove=function(t,e,i){this.isDragging&&this.dragMove(t,e,i)},i.dragMove=function(t,e,i){t.preventDefault(),this.emitEvent("dragMove",[t,e,i])},i._dragEnd=function(t,e){this.isDragging=!1,setTimeout(function(){delete this.isPreventingClicks}.bind(this)),this.dragEnd(t,e)},i.dragEnd=function(t,e){this.emitEvent("dragEnd",[t,e])},i.onclick=function(t){this.isPreventingClicks&&t.preventDefault()},i._staticClick=function(t,e){this.isIgnoringMouseUp&&"mouseup"==t.type||(this.staticClick(t,e),"mouseup"!=t.type&&(this.isIgnoringMouseUp=!0,setTimeout(function(){delete this.isIgnoringMouseUp}.bind(this),400)))},i.staticClick=function(t,e){this.emitEvent("staticClick",[t,e])},e.getPointerPoint=t.getPointerPoint,e}),function(n,s){"function"==typeof define&&define.amd?define("flickity/js/drag",["./flickity","unidragger/unidragger","fizzy-ui-utils/utils"],function(t,e,i){return s(n,t,e,i)}):"object"==typeof module&&module.exports?module.exports=s(n,require("./flickity"),require("unidragger"),require("fizzy-ui-utils")):n.Flickity=s(n,n.Flickity,n.Unidragger,n.fizzyUIUtils)}(window,function(i,t,e,a){a.extend(t.defaults,{draggable:">1",dragThreshold:3}),t.createMethods.push("_createDrag");var n=t.prototype;a.extend(n,e.prototype),n._touchActionValue="pan-y";var s="createTouch"in document,o=!1;n._createDrag=function(){this.on("activate",this.onActivateDrag),this.on("uiChange",this._uiChangeDrag),this.on("deactivate",this.onDeactivateDrag),this.on("cellChange",this.updateDraggable),s&&!o&&(i.addEventListener("touchmove",function(){}),o=!0)},n.onActivateDrag=function(){this.handles=[this.viewport],this.bindHandles(),this.updateDraggable()},n.onDeactivateDrag=function(){this.unbindHandles(),this.element.classList.remove("is-draggable")},n.updateDraggable=function(){">1"==this.options.draggable?this.isDraggable=1<this.slides.length:this.isDraggable=this.options.draggable,this.isDraggable?this.element.classList.add("is-draggable"):this.element.classList.remove("is-draggable")},n.bindDrag=function(){this.options.draggable=!0,this.updateDraggable()},n.unbindDrag=function(){this.options.draggable=!1,this.updateDraggable()},n._uiChangeDrag=function(){delete this.isFreeScrolling},n.pointerDown=function(t,e){this.isDraggable?this.okayPointerDown(t)&&(this._pointerDownPreventDefault(t),this.pointerDownFocus(t),document.activeElement!=this.element&&this.pointerDownBlur(),this.dragX=this.x,this.viewport.classList.add("is-pointer-down"),this.pointerDownScroll=l(),i.addEventListener("scroll",this),this._pointerDownDefault(t,e)):this._pointerDownDefault(t,e)},n._pointerDownDefault=function(t,e){this.pointerDownPointer={pageX:e.pageX,pageY:e.pageY},this._bindPostStartEvents(t),this.dispatchEvent("pointerDown",t,[e])};var r={INPUT:!0,TEXTAREA:!0,SELECT:!0};function l(){return{x:i.pageXOffset,y:i.pageYOffset}}return n.pointerDownFocus=function(t){r[t.target.nodeName]||this.focus()},n._pointerDownPreventDefault=function(t){var e="touchstart"==t.type,i="touch"==t.pointerType,n=r[t.target.nodeName];e||i||n||t.preventDefault()},n.hasDragStarted=function(t){return Math.abs(t.x)>this.options.dragThreshold},n.pointerUp=function(t,e){delete this.isTouchScrolling,this.viewport.classList.remove("is-pointer-down"),this.dispatchEvent("pointerUp",t,[e]),this._dragPointerUp(t,e)},n.pointerDone=function(){i.removeEventListener("scroll",this),delete this.pointerDownScroll},n.dragStart=function(t,e){this.isDraggable&&(this.dragStartPosition=this.x,this.startAnimation(),i.removeEventListener("scroll",this),this.dispatchEvent("dragStart",t,[e]))},n.pointerMove=function(t,e){var i=this._dragPointerMove(t,e);this.dispatchEvent("pointerMove",t,[e,i]),this._dragMove(t,e,i)},n.dragMove=function(t,e,i){if(this.isDraggable){t.preventDefault(),this.previousDragX=this.dragX;var n=this.options.rightToLeft?-1:1;this.options.wrapAround&&(i.x=i.x%this.slideableWidth);var s=this.dragStartPosition+i.x*n;if(!this.options.wrapAround&&this.slides.length){var o=Math.max(-this.slides[0].target,this.dragStartPosition);s=o<s?.5*(s+o):s;var r=Math.min(-this.getLastSlide().target,this.dragStartPosition);s=s<r?.5*(s+r):s}this.dragX=s,this.dragMoveTime=new Date,this.dispatchEvent("dragMove",t,[e,i])}},n.dragEnd=function(t,e){if(this.isDraggable){this.options.freeScroll&&(this.isFreeScrolling=!0);var i=this.dragEndRestingSelect();if(this.options.freeScroll&&!this.options.wrapAround){var n=this.getRestingPosition();this.isFreeScrolling=-n>this.slides[0].target&&-n<this.getLastSlide().target}else this.options.freeScroll||i!=this.selectedIndex||(i+=this.dragEndBoostSelect());delete this.previousDragX,this.isDragSelect=this.options.wrapAround,this.select(i),delete this.isDragSelect,this.dispatchEvent("dragEnd",t,[e])}},n.dragEndRestingSelect=function(){var t=this.getRestingPosition(),e=Math.abs(this.getSlideDistance(-t,this.selectedIndex)),i=this._getClosestResting(t,e,1),n=this._getClosestResting(t,e,-1);return i.distance<n.distance?i.index:n.index}
36,n._getClosestResting=function(t,e,i){for(var n=this.selectedIndex,s=1/0,o=this.options.contain&&!this.options.wrapAround?function(t,e){return t<=e}:function(t,e){return t<e};o(e,s)&&(n+=i,s=e,null!==(e=this.getSlideDistance(-t,n)));)e=Math.abs(e);return{distance:s,index:n-i}},n.getSlideDistance=function(t,e){var i=this.slides.length,n=this.options.wrapAround&&1<i,s=n?a.modulo(e,i):e,o=this.slides[s];if(!o)return null;var r=n?this.slideableWidth*Math.floor(e/i):0;return t-(o.target+r)},n.dragEndBoostSelect=function(){if(void 0===this.previousDragX||!this.dragMoveTime||100<new Date-this.dragMoveTime)return 0;var t=this.getSlideDistance(-this.dragX,this.selectedIndex),e=this.previousDragX-this.dragX;return 0<t&&0<e?1:t<0&&e<0?-1:0},n.staticClick=function(t,e){var i=this.getParentCell(t.target),n=i&&i.element,s=i&&this.cells.indexOf(i);this.dispatchEvent("staticClick",t,[e,n,s])},n.onscroll=function(){var t=l(),e=this.pointerDownScroll.x-t.x,i=this.pointerDownScroll.y-t.y;(3<Math.abs(e)||3<Math.abs(i))&&this._pointerDone()},t}),function(n,s){"function"==typeof define&&define.amd?define("flickity/js/prev-next-button",["./flickity","unipointer/unipointer","fizzy-ui-utils/utils"],function(t,e,i){return s(n,t,e,i)}):"object"==typeof module&&module.exports?module.exports=s(n,require("./flickity"),require("unipointer"),require("fizzy-ui-utils")):s(n,n.Flickity,n.Unipointer,n.fizzyUIUtils)}(window,function(t,e,i,n){"use strict";var s="http://www.w3.org/2000/svg";function o(t,e){this.direction=t,this.parent=e,this._create()}(o.prototype=Object.create(i.prototype))._create=function(){this.isEnabled=!0,this.isPrevious=-1==this.direction;var t=this.parent.options.rightToLeft?1:-1;this.isLeft=this.direction==t;var e=this.element=document.createElement("button");e.className="flickity-button flickity-prev-next-button",e.className+=this.isPrevious?" previous":" next",e.setAttribute("type","button"),this.disable(),e.setAttribute("aria-label",this.isPrevious?"Previous":"Next");var i=this.createSVG();e.appendChild(i),this.parent.on("select",this.update.bind(this)),this.on("pointerDown",this.parent.childUIPointerDown.bind(this.parent))},o.prototype.activate=function(){this.bindStartEvent(this.element),this.element.addEventListener("click",this),this.parent.element.appendChild(this.element)},o.prototype.deactivate=function(){this.parent.element.removeChild(this.element),this.unbindStartEvent(this.element),this.element.removeEventListener("click",this)},o.prototype.createSVG=function(){var t=document.createElementNS(s,"svg");t.setAttribute("class","flickity-button-icon"),t.setAttribute("viewBox","0 0 100 100");var e=document.createElementNS(s,"path"),i=function(t){return"string"!=typeof t?"M "+t.x0+",50 L "+t.x1+","+(t.y1+50)+" L "+t.x2+","+(t.y2+50)+" L "+t.x3+",50  L "+t.x2+","+(50-t.y2)+" L "+t.x1+","+(50-t.y1)+" Z":t}(this.parent.options.arrowShape);return e.setAttribute("d",i),e.setAttribute("class","arrow"),this.isLeft||e.setAttribute("transform","translate(100, 100) rotate(180) "),t.appendChild(e),t},o.prototype.handleEvent=n.handleEvent,o.prototype.onclick=function(){if(this.isEnabled){this.parent.uiChange();var t=this.isPrevious?"previous":"next";this.parent[t]()}},o.prototype.enable=function(){this.isEnabled||(this.element.disabled=!1,this.isEnabled=!0)},o.prototype.disable=function(){this.isEnabled&&(this.element.disabled=!0,this.isEnabled=!1)},o.prototype.update=function(){var t=this.parent.slides;if(this.parent.options.wrapAround&&1<t.length)this.enable();else{var e=t.length?t.length-1:0,i=this.isPrevious?0:e;this[this.parent.selectedIndex==i?"disable":"enable"]()}},o.prototype.destroy=function(){this.deactivate(),this.allOff()},n.extend(e.defaults,{prevNextButtons:!0,arrowShape:{x0:10,x1:60,y1:50,x2:70,y2:40,x3:30}}),e.createMethods.push("_createPrevNextButtons");var r=e.prototype;return r._createPrevNextButtons=function(){this.options.prevNextButtons&&(this.prevButton=new o(-1,this),this.nextButton=new o(1,this),this.on("activate",this.activatePrevNextButtons))},r.activatePrevNextButtons=function(){this.prevButton.activate(),this.nextButton.activate(),this.on("deactivate",this.deactivatePrevNextButtons)},r.deactivatePrevNextButtons=function(){this.prevButton.deactivate(),this.nextButton.deactivate(),this.off("deactivate",this.deactivatePrevNextButtons)},e.PrevNextButton=o,e}),function(n,s){"function"==typeof define&&define.amd?define("flickity/js/page-dots",["./flickity","unipointer/unipointer","fizzy-ui-utils/utils"],function(t,e,
vendor: 5,980 bytes, line 36
36i){return s(n,t,e,i)}):"object"==typeof module&&module.exports?module.exports=s(n,require("./flickity"),require("unipointer"),require("fizzy-ui-utils")):s(n,n.Flickity,n.Unipointer,n.fizzyUIUtils)}(window,function(t,e,i,n){function s(t){this.parent=t,this._create()}(s.prototype=Object.create(i.prototype))._create=function(){this.holder=document.createElement("ol"),this.holder.className="flickity-page-dots",this.dots=[],this.handleClick=this.onClick.bind(this),this.on("pointerDown",this.parent.childUIPointerDown.bind(this.parent))},s.prototype.activate=function(){this.setDots(),this.holder.addEventListener("click",this.handleClick),this.bindStartEvent(this.holder),this.parent.element.appendChild(this.holder)},s.prototype.deactivate=function(){this.holder.removeEventListener("click",this.handleClick),this.unbindStartEvent(this.holder),this.parent.element.removeChild(this.holder)},s.prototype.setDots=function(){var t=this.parent.slides.length-this.dots.length;0<t?this.addDots(t):t<0&&this.removeDots(-t)},s.prototype.addDots=function(t){for(var e=document.createDocumentFragment(),i=[],n=this.dots.length,s=n+t,o=n;o<s;o++){var r=document.createElement("li");r.className="dot",r.setAttribute("aria-label","Page dot "+(o+1)),e.appendChild(r),i.push(r)}this.holder.appendChild(e),this.dots=this.dots.concat(i)},s.prototype.removeDots=function(t){this.dots.splice(this.dots.length-t,t).forEach(function(t){this.holder.removeChild(t)},this)},s.prototype.updateSelected=function(){this.selectedDot&&(this.selectedDot.className="dot",this.selectedDot.removeAttribute("aria-current")),this.dots.length&&(this.selectedDot=this.dots[this.parent.selectedIndex],this.selectedDot.className="dot is-selected",this.selectedDot.setAttribute("aria-current","step"))},s.prototype.onTap=s.prototype.onClick=function(t){var e=t.target;if("LI"==e.nodeName){this.parent.uiChange();var i=this.dots.indexOf(e);this.parent.select(i)}},s.prototype.destroy=function(){this.deactivate(),this.allOff()},e.PageDots=s,n.extend(e.defaults,{pageDots:!0}),e.createMethods.push("_createPageDots");var o=e.prototype;return o._createPageDots=function(){this.options.pageDots&&(this.pageDots=new s(this),this.on("activate",this.activatePageDots),this.on("select",this.updateSelectedPageDots),this.on("cellChange",this.updatePageDots),this.on("resize",this.updatePageDots),this.on("deactivate",this.deactivatePageDots))},o.activatePageDots=function(){this.pageDots.activate()},o.updateSelectedPageDots=function(){this.pageDots.updateSelected()},o.updatePageDots=function(){this.pageDots.setDots()},o.deactivatePageDots=function(){this.pageDots.deactivate()},e.PageDots=s,e}),function(t,n){"function"==typeof define&&define.amd?define("flickity/js/player",["ev-emitter/ev-emitter","fizzy-ui-utils/utils","./flickity"],function(t,e,i){return n(t,e,i)}):"object"==typeof module&&module.exports?module.exports=n(require("ev-emitter"),require("fizzy-ui-utils"),require("./flickity")):n(t.EvEmitter,t.fizzyUIUtils,t.Flickity)}(window,function(t,e,i){function n(t){this.parent=t,this.state="stopped",this.onVisibilityChange=this.visibilityChange.bind(this),this.onVisibilityPlay=this.visibilityPlay.bind(this)}(n.prototype=Object.create(t.prototype)).play=function(){"playing"!=this.state&&(document.hidden?document.addEventListener("visibilitychange",this.onVisibilityPlay):(this.state="playing",document.addEventListener("visibilitychange",this.onVisibilityChange),this.tick()))},n.prototype.tick=function(){if("playing"==this.state){var t=this.parent.options.autoPlay;t="number"==typeof t?t:3e3;var e=this;this.clear(),this.timeout=setTimeout(function(){e.parent.next(!0),e.tick()},t)}},n.prototype.stop=function(){this.state="stopped",this.clear(),document.removeEventListener("visibilitychange",this.onVisibilityChange)},n.prototype.clear=function(){clearTimeout(this.timeout)},n.prototype.pause=function(){"playing"==this.state&&(this.state="paused",this.clear())},n.prototype.unpause=function(){"paused"==this.state&&this.play()},n.prototype.visibilityChange=function(){this[document.hidden?"pause":"unpause"]()},n.prototype.visibilityPlay=function(){this.play(),document.removeEventListener("visibilitychange",this.onVisibilityPlay)},e.extend(i.defaults,{pauseAutoPlayOnHover:!0}),i.createMethods.push("_createPlayer");var s=i.prototype;return s._createPlayer=function(){this.player=new n(this),this.on("activate",this.activatePlayer),this.on("uiChange",this.stopPlayer),this.on("pointerDown",this.stopPlayer),this.on("deactivate",this.deactivatePlayer)},s.activatePlayer=function(){this.options.autoPlay&&(this.player.play(),this.element.addEventListener("mouseenter",this))},s.playPlayer=function(){this.player.play()},s.stopPlayer=function(){this.player.stop()},s.pausePlayer=function(){this.player.pause()},s.unpausePlayer=function(){this.player.unpause()},s.deactivatePlayer=function(){this.player.stop(),this.element.removeEventListener("mouseenter",this)},s.onmouseenter=function(){this.options.pauseAutoPlayOnHover&&(this.player.pause(),this.element.addEventListener("mouseleave",this))},s.onmouseleave=function(){this.player.unpause(),this.element.removeEventListener("mouseleave",this)},i.Player=n,i}),function(i,n){"function"==typeof define&&define.amd?define("flickity/js/add-remove-cell",["./flickity","fizzy-ui-utils/utils"],function(t,e){return n(i,t,e)}):"object"==typeof module&&module.exports?module.exports=n(i,require("./flickity"),require("fizzy-ui-utils")):n(i,i.Flickity,i.fizzyUIUtils)}(window,function(t,e,n){var i=e.prototype;return i.insert=function(t,e){var i=this._makeCells(t);if(i&&i.length){var n=this.cells.length;e=void 0===e?n:e;var s=function(t){var e=document.createDocumentFragment();return t.forEach(function(t){e.appendChild(t.element)}),e}(i),o=e==n;if(o)this.slider.appendChild(s);else{var r=this.cells[e].element;this.slider.insertBefore(s,r)}if(0===e)this.cells=i.concat(this.cells);else if(o)this.cells=this.cells.concat(i);else{var a=this.cells.splice(e,n-e);
36this.cells=this.cells.concat(i).concat(a)}this._sizeCells(i),this.cellChange(e,!0)}},i.append=function(t){this.insert(t,this.cells.length)},i.prepend=function(t){this.insert(t,0)},i.remove=function(t){var e=this.getCells(t);if(e&&e.length){var i=this.cells.length-1;e.forEach(function(t){t.remove();var e=this.cells.indexOf(t);i=Math.min(e,i),n.removeFrom(this.cells,t)},this),this.cellChange(i,!0)}},i.cellSizeChange=function(t){var e=this.getCell(t);if(e){e.getSize();var i=this.cells.indexOf(e);this.cellChange(i)}},i.cellChange=function(t,e){var i=this.selectedElement;this._positionCells(t),this._getWrapShiftCells(),this.setGallerySize();var n=this.getCell(i);n&&(this.selectedIndex=this.getCellSlideIndex(n)),this.selectedIndex=Math.min(this.slides.length-1,this.selectedIndex),this.emitEvent("cellChange",[t]),this.select(this.selectedIndex),e&&this.positionSliderAtSelected()},e}),function(i,n){"function"==typeof define&&define.amd?define("flickity/js/lazyload",["./flickity","fizzy-ui-utils/utils"],function(t,e){return n(i,t,e)}):"object"==typeof module&&module.exports?module.exports=n(i,require("./flickity"),require("fizzy-ui-utils")):n(i,i.Flickity,i.fizzyUIUtils)}(window,function(t,e,o){"use strict";e.createMethods.push("_createLazyload");var i=e.prototype;function s(t,e){this.img=t,this.flickity=e,this.load()}return i._createLazyload=function(){this.on("select",this.lazyLoad)},i.lazyLoad=function(){var t=this.options.lazyLoad;if(t){var e="number"==typeof t?t:0,i=this.getAdjacentCellElements(e),n=[];i.forEach(function(t){var e=function(t){if("IMG"==t.nodeName){var e=t.getAttribute("data-flickity-lazyload"),i=t.getAttribute("data-flickity-lazyload-src"),n=t.getAttribute("data-flickity-lazyload-srcset");if(e||i||n)return[t]}var s=t.querySelectorAll("img[data-flickity-lazyload], img[data-flickity-lazyload-src], img[data-flickity-lazyload-srcset]");return o.makeArray(s)}(t);n=n.concat(e)}),n.forEach(function(t){new s(t,this)},this)}},s.prototype.handleEvent=o.handleEvent,s.prototype.load=function(){this.img.addEventListener("load",this),this.img.addEventListener("error",this);var t=this.img.getAttribute("data-flickity-lazyload")||this.img.getAttribute("data-flickity-lazyload-src"),e=this.img.getAttribute("data-flickity-lazyload-srcset");this.img.src=t,e&&this.img.setAttribute("srcset",e),this.img.removeAttribute("data-flickity-lazyload"),this.img.removeAttribute("data-flickity-lazyload-src"),this.img.removeAttribute("data-flickity-lazyload-srcset")},s.prototype.onload=function(t){this.complete(t,"flickity-lazyloaded")},s.prototype.onerror=function(t){this.complete(t,"flickity-lazyerror")},s.prototype.complete=function(t,e){this.img.removeEventListener("load",this),this.img.removeEventListener("error",this);var i=this.flickity.getParentCell(this.img),n=i&&i.element;this.flickity.cellSizeChange(n),this.img.classList.add(e),this.flickity.dispatchEvent("lazyLoad",t,n)},e.LazyLoader=s,e}),function(t,e){"function"==typeof define&&define.amd?define("flickity/js/index",["./flickity","./drag","./prev-next-button","./page-dots","./player","./add-remove-cell","./lazyload"],e):"object"==typeof module&&module.exports&&(module.exports=e(require("./flickity"),require("./drag"),require("./prev-next-button"),require("./page-dots"),require("./player"),require("./add-remove-cell"),require("./lazyload")))}(window,function(t){return t}),function(t,e){"function"==typeof define&&define.amd?define("flickity-as-nav-for/as-nav-for",["flickity/js/index","fizzy-ui-utils/utils"],e):"object"==typeof module&&module.exports?module.exports=e(require("flickity"),require("fizzy-ui-utils")):t.Flickity=e(t.Flickity,t.fizzyUIUtils)}(window,function(n,s){n.createMethods.push("_createAsNavFor");var t=n.prototype;return t._createAsNavFor=function(){this.on("activate",this.activateAsNavFor),this.on("deactivate",this.deactivateAsNavFor),this.on("destroy",this.destroyAsNavFor);var t=this.options.asNavFor;if(t){var e=this;setTimeout(function(){e.setNavCompanion(t)})}},t.setNavCompanion=function(t){t=s.getQueryElement(t);var e=n.data(t);if(e&&e!=this){this.navCompanion=e;var i=this;this.onNavCompanionSelect=function(){i.navCompanionSelect()},e.on("select",this.onNavCompanionSelect),this.on("staticClick",this.onNavStaticClick),this.navCompanionSelect(!0)}},t.navCompanionSelect=function(t){var e=this.navCompanion&&this.navCompanion.selectedCells;if(e){var i=e[0],n=this.navCompanion.cells.indexOf(i),s=n+e.length-1,o=Math.floor(function(t,e,
36i){return(e-t)*i+t}(n,s,this.navCompanion.cellAlign));if(this.selectCell(o,!1,t),this.removeNavSelectedElements(),!(o>=this.cells.length)){var r=this.cells.slice(n,1+s);this.navSelectedElements=r.map(function(t){return t.element}),this.changeNavSelectedClass("add")}}},t.changeNavSelectedClass=function(e){this.navSelectedElements.forEach(function(t){t.classList[e]("is-nav-selected")})},t.activateAsNavFor=function(){this.navCompanionSelect(!0)},t.removeNavSelectedElements=function(){this.navSelectedElements&&(this.changeNavSelectedClass("remove"),delete this.navSelectedElements)},t.onNavStaticClick=function(t,e,i,n){"number"==typeof n&&this.navCompanion.selectCell(n)},t.deactivateAsNavFor=function(){this.removeNavSelectedElements()},t.destroyAsNavFor=function(){this.navCompanion&&(this.navCompanion.off("select",this.onNavCompanionSelect),this.off("staticClick",this.onNavStaticClick),delete this.navCompanion)},n}),function(e,i){"use strict";"function"==typeof define&&define.amd?define("imagesloaded/imagesloaded",["ev-emitter/ev-emitter"],function(t){return i(e,t)}):"object"==typeof module&&module.exports?module.exports=i(e,require("ev-emitter")):e.imagesLoaded=i(e,e.EvEmitter)}("undefined"!=typeof window?window:this,function(e,t){var s=e.jQuery,o=e.console;function r(t,e){for(var i in e)t[i]=e[i];return t}var a=Array.prototype.slice;function l(t,e,i){if(!(this instanceof l))return new l(t,e,i);var n=t;"string"==typeof t&&(n=document.querySelectorAll(t)),n?(this.elements=function(t){return Array.isArray(t)?t:"object"==typeof t&&"number"==typeof t.length?a.call(t):[t]}(n),this.options=r({},this.options),"function"==typeof e?i=e:r(this.options,e),i&&this.on("always",i),this.getImages(),s&&(this.jqDeferred=new s.Deferred),setTimeout(this.check.bind(this))):o.error("Bad element for imagesLoaded "+(n||t))}(l.prototype=Object.create(t.prototype)).options={},l.prototype.getImages=function(){this.images=[],this.elements.forEach(this.addElementImages,this)},l.prototype.addElementImages=function(t){"IMG"==t.nodeName&&this.addImage(t),!0===this.options.background&&this.addElementBackgroundImages(t);var e=t.nodeType;if(e&&h[e]){for(var i=t.querySelectorAll("img"),n=0;n<i.length;n++){var s=i[n];this.addImage(s)}if("string"==typeof this.options.background){var o=t.querySelectorAll(this.options.background);for(n=0;n<o.length;n++){var r=o[n];this.addElementBackgroundImages(r)}}}};var h={1:!0,9:!0,11:!0};function i(t){this.img=t}function n(t,e){this.url=t,this.element=e,this.img=new Image}return l.prototype.addElementBackgroundImages=function(t){var e=getComputedStyle(t);if(e)for(var i=/url\((['"])?(.*?)\1\)/gi,n=i.exec(e.backgroundImage);null!==n;){var s=n&&n[2];s&&this.addBackground(s,t),n=i.exec(e.backgroundImage)}},l.prototype.addImage=function(t){var e=new i(t);this.images.push(e)},l.prototype.addBackground=function(t,e){var i=new n(t,e);this.images.push(i)},l.prototype.check=function(){var n=this;function e(t,e,i){setTimeout(function(){n.progress(t,e,i)})}this.progressedCount=0,this.hasAnyBroken=!1,this.images.length?this.images.forEach(function(t){t.once("progress",e),t.check()}):this.complete()},l.prototype.progress=function(t,e,i){this.progressedCount++,this.hasAnyBroken=this.hasAnyBroken||!t.isLoaded,this.emitEvent("progress",[this,t,e]),this.jqDeferred&&this.jqDeferred.notify&&this.jqDeferred.notify(this,t),this.progressedCount==this.images.length&&this.complete(),this.options.debug&&o&&o.log("progress: "+i,t,e)},l.prototype.complete=function(){var t=this.hasAnyBroken?"fail":"done";if(this.isComplete=!0,this.emitEvent(t,[this]),this.emitEvent("always",[this]),this.jqDeferred){var e=this.hasAnyBroken?"reject":"resolve";this.jqDeferred[e](this)}},(i.prototype=Object.create(t.prototype)).check=function(){this.getIsImageComplete()?this.confirm(0!==this.img.naturalWidth,"naturalWidth"):(this.proxyImage=new Image,this.proxyImage.addEventListener("load",this),this.proxyImage.addEventListener("error",this),this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.proxyImage.src=this.img.src)},i.prototype.getIsImageComplete=function(){return this.img.complete&&this.img.naturalWi
36dth},i.prototype.confirm=function(t,e){this.isLoaded=t,this.emitEvent("progress",[this,this.img,e])},i.prototype.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},i.prototype.onload=function(){this.confirm(!0,"onload"),this.unbindEvents()},i.prototype.onerror=function(){this.confirm(!1,"onerror"),this.unbindEvents()},i.prototype.unbindEvents=function(){this.proxyImage.removeEventListener("load",this),this.proxyImage.removeEventListener("error",this),this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},(n.prototype=Object.create(i.prototype)).check=function(){this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.img.src=this.url,this.getIsImageComplete()&&(this.confirm(0!==this.img.naturalWidth,"naturalWidth"),this.unbindEvents())},n.prototype.unbindEvents=function(){this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},n.prototype.confirm=function(t,e){this.isLoaded=t,this.emitEvent("progress",[this,this.element,e])},l.makeJQueryPlugin=function(t){(t=t||e.jQuery)&&((s=t).fn.imagesLoaded=function(t,e){return new l(this,t,e).jqDeferred.promise(s(this))})},l.makeJQueryPlugin(),l}),function(i,n){"function"==typeof define&&define.amd?define(["flickity/js/index","imagesloaded/imagesloaded"],function(t,e){return n(i,t,e)}):"object"==typeof module&&module.exports?module.exports=n(i,require("flickity"),require("imagesloaded")):i.Flickity=n(i,i.Flickity,i.imagesLoaded)}(window,function(t,e,i){"use strict";e.createMethods.push("_createImagesLoaded");var n=e.prototype;return n._createImagesLoaded=function(){this.on("activate",this.imagesLoaded)},n.imagesLoaded=function(){if(this.options.imagesLoaded){var n=this;i(this.slider).on("progress",function(t,e){var i=n.getParentCell(e.img);n.cellSizeChange(i&&i.element),n.options.freeScroll||n.positionSliderAtSelected()})}},e});
37/*! emergence.js v1.1.2 | (c) 2017 @xtianmiller | https://github.com/xtianmiller/emergence.js */
38!function(e,t){"function"==typeof define&&define.amd?define(function(){return t(e)}):"object"==typeof exports?module.exports=t:e.emergence=t(e)}(this,function(e){"use strict";var t,n,o,i,r,c,s,d,a,l,f={},u=function(){},m=function(){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini|playbook|silk/i.test(navigator.userAgent)},h=function(e){var t=e.offsetWidth,n=e.offsetHeight,o=0,i=0;do{isNaN(e.offsetTop)||(o+=e.offsetTop),isNaN(e.offsetLeft)||(i+=e.offsetLeft)}while(null!==(e=e.offsetParent));return{width:t,height:n,top:o,left:i}},g=function(){t||(clearTimeout(t),t=setTimeout(function(){f.engage(),t=null},o))};return f.init=function(e){var t=function(e,t){return parseInt(e||t,10)};n=(e=e||{}).container||window,i=void 0===e.reset||e.reset,r=void 0===e.handheld||e.handheld,o=t(e.throttle,250),c=function(e,t){return parseFloat(e||t)}(e.elemCushion,.15),s=t(e.offsetTop,0),d=t(e.offsetRight,0),a=t(e.offsetBottom,0),l=t(e.offsetLeft,0),u=e.callback||u,"querySelectorAll"in document?(m()&&r||!m())&&(document.documentElement.className+=" emergence",window.addEventListener?(window.addEventListener("load",g,!1),n.addEventListener("scroll",g,!1),n.addEventListener("resize",g,!1)):(document.attachEvent("onreadystatechange",function(){"complete"===document.readyState&&g()}),n.attachEvent("onscroll",g),n.attachEvent("onresize",g))):console.log("Emergence.js is not supported in this browser.")},f.engage=function(){for(var e,t=document.querySelectorAll("[data-emergence]"),o=t.length,r=0;r<o;r++)!function(e){if(function(e){return null===e.offsetParent}(e))return!1;var t=h(e),o=function(e){var t,n;return e!==window?(t=e.clientWidth,n=e.clientHeight):(t=window.innerWidth||document.documentElement.clientWidth,n=window.innerHeight||document.documentElement.clientHeight),{width:t,height:n}}(n),i=function(e){return e!==window?{x:e.scrollLeft+h(e).left,y:e.scrollTop+h(e).top}:{x:window.pageXOffset||document.documentElement.scrollLeft,y:window.pageYOffset||document.documentElement.scrollTop}}(n),r=t.width,f=t.height,u=t.top,m=t.left,g=u+f,v=m+r;return function(){var e=u+f*c,t=v-r*c,n=g-f*c,h=m+r*c,w=i.y+s,p=i.x-d+o.width,E=i.y-a+o.height,y=i.x+l;return e<E&&n>w&&h<p&&t>y}()}(e=t[r])?!0===i?(e.setAttribute("data-emergence","hidden"),e.className=e.className,u(e,"reset")):!1===i&&u(e,"noreset"):(e.setAttribute("data-emergence","visible"),e.className=e.className,u(e,"visible"));o||f.disengage()},f.disengage=function(){window.removeEventListener?(n.removeEventListener("scroll",g,!1),n.removeEventListener("resize",g,!1)):(n.detachEvent("onscroll",g),n.detachEvent("onresize",g)),clearTimeout(t)},f});
39/*
40  * reframe.js - Reframe.js: responsive iframes for embedded content
41  * @version v2.2.1
42  * @link https://github.com/dollarshaveclub/reframe.js#readme
43  * @author Jeff Wainwright <[email protected]> (http://jeffry.in)
44  * @license MIT
45*/
46!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.reframe=t()}(this,function(){"use strict";return function(e,t){var i="string"==typeof e?document.querySelectorAll(e):e,n=t||"js-reframe";"length"in i||(i=[i]);for(var r=0;r<i.length;r+=1){var o=i[r];if(-1!==o.className.split(" ").indexOf(n))return;var d=o.getAttribute("height"),f=o.getAttribute("width");
46if(f.indexOf("%")>-1||o.style.width.indexOf("%")>-1)return;var a=(d||o.offsetHeight)/(f||o.offsetWidth)*100,s=document.createElement("div");s.className=n;var l=s.style;l.position="relative",l.width="100%",l.paddingTop=a+"%";var u=o.style;u.position="absolute",u.width="100%",u.height="100%",u.left="0",u.top="0",o.parentNode.insertBefore(s,o),o.parentNode.removeChild(o),s.appendChild(o)}}});
47/*!
48 * Name    : Just Another Parallax [Jarallax]
49 * Version : 1.10.3
50 * Author  : nK <https://nkdev.info>
51 * GitHub  : https://github.com/nk-o/jarallax
52 */!function(o){var n={};function i(e){if(n[e])return n[e].exports;var t=n[e]={i:e,l:!1,exports:{}};return o[e].call(t.exports,t,t.exports,i),t.l=!0,t.exports}i.m=o,i.c=n,i.d=function(e,t,o){i.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:o})},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=11)}([function(o,e,t){"use strict";(function(e){var t;t="undefined"!=typeof window?window:void 0!==e?e:"undefined"!=typeof self?self:{},o.exports=t}).call(e,t(2))},function(e,t,o){"use strict";e.exports=function(e){"complete"===document.readyState||"interactive"===document.readyState?e.call():document.attachEvent?document.attachEvent("onreadystatechange",function(){"interactive"===document.readyState&&e.call()}):document.addEventListener&&document.addEventListener("DOMContentLoaded",e)}},function(e,t,o){"use strict";var n,i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(e){"object"===("undefined"==typeof window?"undefined":i(window))&&(n=window)}e.exports=n},,,,,,,,,function(e,t,o){e.exports=o(12)},function(e,t,o){"use strict";var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=l(o(1)),a=o(0),r=l(o(13));function l(e){return e&&e.__esModule?e:{default:e}}var s=a.window.jarallax;if(a.window.jarallax=r.default,a.window.jarallax.noConflict=function(){return a.window.jarallax=s,this},void 0!==a.jQuery){var c=function(){var e=arguments||[];Array.prototype.unshift.call(e,this);var t=r.default.apply(a.window,e);return"object"!==(void 0===t?"undefined":n(t))?t:this};c.constructor=r.default.constructor;var u=a.jQuery.fn.jarallax;a.jQuery.fn.jarallax=c,a.jQuery.fn.jarallax.noConflict=function(){return a.jQuery.fn.jarallax=u,this}}(0,i.default)(function(){(0,r.default)(document.querySelectorAll("[data-jarallax]"))})},function(e,$,j){"use strict";(function(e){Object.defineProperty($,"__esModule",{value:!0});var d=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var o=[],n=!0,i=!1,a=void 0;try{for(var r,l=e[Symbol.iterator]();!(n=(r=l.next()).done)&&(o.push(r.value),!t||o.length!==t);n=!0);}catch(e){i=!0,a=e}finally{try{!n&&l.return&&l.return()}finally{if(i)throw a}}return o}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},t=function(){function n(e,t){for(var o=0;o<t.length;o++){var n=t[o];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(e,t,o){return t&&n(e.prototype,t),o&&n(e,o),e}}(),p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=a(j(1)),n=a(j(14)),i=j(0);function a(e){return e&&e.__esModule?e:{default:e}}var r=function(){for(var e="transform WebkitTransform MozTransform".split(" "),t=document.createElement("div"),o=0;o<e.length;o++)if(t&&void 0!==t.style[e[o]])return e[o];return!1}(),b=void 0,v=void 0,l=void 0,s=!1,c=!1;function u(e){b=i.window.innerWidth||document.documentElement.clientWidth,v=i.window.innerHeight||document.documentElement.clientHeight,"object"!==(void 0===e?"undefined":p(e))||"load"!==e.type&&"dom
52-loaded"!==e.type||(s=!0)}u(),i.window.addEventListener("resize",u),i.window.addEventListener("orientationchange",u),i.window.addEventListener("load",u),(0,o.default)(function(){u({type:"dom-loaded"})});var m=[],f=!1;function y(){if(m.length){l=void 0!==i.window.pageYOffset?i.window.pageYOffset:(document.documentElement||document.body.parentNode||document.body).scrollTop;var t=s||!f||f.width!==b||f.height!==v,o=c||t||!f||f.y!==l;c=s=!1,(t||o)&&(m.forEach(function(e){t&&e.onResize(),o&&e.onScroll()}),f={width:b,height:v,y:l}),(0,n.default)(y)}}var g=!!e.ResizeObserver&&new e.ResizeObserver(function(e){e&&e.length&&(0,n.default)(function(){e.forEach(function(e){e.target&&e.target.jarallax&&(s||e.target.jarallax.onResize(),c=!0)})})}),h=0,x=function(){function u(e,t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,u);var o=this;o.instanceID=h++,o.$item=e,o.defaults={type:"scroll",speed:.5,imgSrc:null,imgElement:".jarallax-img",imgSize:"cover",imgPosition:"50% 50%",imgRepeat:"no-repeat",keepImg:!1,elementInViewport:null,zIndex:-100,disableParallax:!1,disableVideo:!1,automaticResize:!0,videoSrc:null,videoStartTime:0,videoEndTime:0,videoVolume:0,videoPlayOnlyVisible:!0,onScroll:null,onInit:null,onDestroy:null,onCoverImage:null};var n=o.$item.getAttribute("data-jarallax"),i=JSON.parse(n||"{}");n&&console.warn("Detected usage of deprecated data-jarallax JSON options, you should use pure data-attribute options. See info here - https://github.com/nk-o/jarallax/issues/53");var a=o.$item.dataset||{},r={};if(Object.keys(a).forEach(function(e){var t=e.substr(0,1).toLowerCase()+e.substr(1);t&&void 0!==o.defaults[t]&&(r[t]=a[e])}),o.options=o.extend({},o.defaults,i,r,t),o.pureOptions=o.extend({},o.options),Object.keys(o.options).forEach(function(e){"true"===o.options[e]?o.options[e]=!0:"false"===o.options[e]&&(o.options[e]=!1)}),o.options.speed=Math.min(2,Math.max(-1,parseFloat(o.options.speed))),(o.options.noAndroid||o.options.noIos)&&(console.warn("Detected usage of deprecated noAndroid or noIos options, you should use disableParallax option. See info here - https://github.com/nk-o/jarallax/#disable-on-mobile-devices"),o.options.disableParallax||(o.options.noIos&&o.options.noAndroid?o.options.disableParallax=/iPad|iPhone|iPod|Android/:o.options.noIos?o.options.disableParallax=/iPad|iPhone|iPod/:o.options.noAndroid&&(o.options.disableParallax=/Android/))),"string"==typeof o.options.disableParallax&&(o.options.disableParallax=new RegExp(o.options.disableParallax)),o.options.disableParallax instanceof RegExp){var l=o.options.disableParallax;o.options.disableParallax=function(){return l.test(navigator.userAgent)}}if("function"!=typeof o.options.disableParallax&&(o.options.disableParallax=function(){return!1}),"string"==typeof o.options.disableVideo&&(o.options.disableVideo=new RegExp(o.options.disableVideo)),o.options.disableVideo instanceof RegExp){var s=o.options.disableVideo;o.options.disableVideo=function(){return s.test(navigator.userAgent)}}"function"!=typeof o.options.disableVideo&&(o.options.disableVideo=function(){return!1});var c=o.options.elementInViewport;c&&"object"===(void 0===c?"undefined":p(c))&&void 0!==c.length&&(c=d(c,1)[0]);c instanceof Element||(c=null),o.options.elementInViewport=c,o.image={src:o.options.imgSrc||null,$container:null,useImgTag:!1,position:/iPad|iPhone|iPod|Android/.test(navigator.userAgent)?"absolute":"fixed"},o.initImg()&&o.canInitParallax()&&o.init()}return t(u,[{key:"css",value:function(t,o){return"string"==typeof o?i.window.getComputedStyle(t).getPropertyValue(o):(o.transform&&r&&(o[r]=o.transform),Object.keys(o).forEach(function(e){t.style[e]=o[e]}),t)}},{key:"extend",value:function(o){var n=arguments;return o=o||{},Object.keys(arguments).forEach(function(t){n[t]&&Object.keys(n[t]).forEach(function(e){o[e]=n[t][e]})}),o}},{key:"getWindowData",value:function(){return{width:b,height:v,y:l}}},{key:"initImg",value:function(){var e=this,t=e.options.imgElement;return t&&"string"==typeof t&&(t=e.$item.querySelector(t)),t instanceof Element||(t=null),t&&(e.options.keepImg?e.image.$item=t.cloneNode(!0):(e.image.$item=t,e.image.$itemParent=t.parentNode),e.image.useImgTag=!0),!!e.image.$item||(null===e.image.src&&(e.image.src=e.css(e.$item,"background-image").replace(/^url\(['"]?/g,"").replace(/['"]?\)$/g,"")),!(!e.image.src||"none"===e.image.src))}},{key:"canInitParallax",value:function(){return r&&!this.options.disableParallax()}},{key:"init",value:function(){var e=this,t={position:"absolute",top:0,left:0,width:"100%",height:"100%",overflow:"hidden",pointerEvents:"none"},o={};if(!e.options.keepImg){var n=e.$item.getAttribute("style");if(n&&e.$item.setAttribute("data-jarallax-original-styles",n),e.image.useImgTag){var i=e.image.$item.getAttribute("style");i&&e.image.$item.setAttribute("data-jarallax-original-styles",i)}}if("static"===e.css(e.$item,"position")&&e.css(e.$item,{position:"relative"}),"auto"===e.css(e.$item,"z-index")&&e.css(e.$item,{zIndex:0}),e.image.$container=document.createElement("div"),e.css(e.image.$container,t),e.css(e.image.$container,{"z-index":e.options.zIndex}),e.image.$container.setAttribute("id","jarallax-container-"+e.instanceID),e.$item.appendChild(e.image.$container),e.image.useImgTag?o=e.extend({"object-fit":e.options.imgSize,"object-position":e.options.imgPosition,"font-family":"object-fit: "+e.options.imgSize+"; object-position: "+e.options.imgPosition+";","max-width":"none"},t,o):(e.image.$item=document.createElement("div"),e.image.src&&(o=e.extend({"background-position":e.options.imgPosition,"background-size":e.options.imgSize,"background-repeat":e.options.imgRepeat,"background-image":'url("'+e.image.src+'")'},t,o))),"opacity"!==e.options.type&&"scale"!==e.options.type&&"scale-opacity"!==e.options.type&&1!==e.options.speed||(e.image.position="absolute"),"fixed"===e.image.position)for(var a=0,r=e.$item;null!==r&&r!==document&&0===a;){var l=e.css(r,"-webkit-transform")||e.css(r,"-moz-transform")||e.css(r,"transform");l&&"none"!==l&&(a=1,e.image.position="absolute"),r=r.parentNode}o.position=e.image.position,e.css(e.image.$item,o),e.image.$container.appendChild(e.image.$item),e.coverImage(),e.clipContainer(),e.onScroll(!0),e.o
52ptions.automaticResize&&g&&g.observe(e.$item),e.options.onInit&&e.options.onInit.call(e),"none"!==e.css(e.$item,"background-image")&&e.css(e.$item,{"background-image":"none"}),e.addToParallaxList()}},{key:"addToParallaxList",value:function(){m.push(this),1===m.length&&y()}},{key:"removeFromParallaxList",value:function(){var o=this;m.forEach(function(e,t){e.instanceID===o.instanceID&&m.splice(t,1)})}},{key:"destroy",value:function(){var e=this;e.removeFromParallaxList();var t=e.$item.getAttribute("data-jarallax-original-styles");if(e.$item.removeAttribute("data-jarallax-original-styles"),t?e.$item.setAttribute("style",t):e.$item.removeAttribute("style"),e.image.useImgTag){var o=e.image.$item.getAttribute("data-jarallax-original-styles");e.image.$item.removeAttribute("data-jarallax-original-styles"),o?e.image.$item.setAttribute("style",t):e.image.$item.removeAttribute("style"),e.image.$itemParent&&e.image.$itemParent.appendChild(e.image.$item)}e.$clipStyles&&e.$clipStyles.parentNode.removeChild(e.$clipStyles),e.image.$container&&e.image.$container.parentNode.removeChild(e.image.$container),e.options.onDestroy&&e.options.onDestroy.call(e),delete e.$item.jarallax}},{key:"clipContainer",value:function(){if("fixed"===this.image.position){var e=this,t=e.image.$container.getBoundingClientRect(),o=t.width,n=t.height;if(!e.$clipStyles)e.$clipStyles=document.createElement("style"),e.$clipStyles.setAttribute("type","text/css"),e.$clipStyles.setAttribute("id","jarallax-clip-"+e.instanceID),(document.head||document.getElementsByTagName("head")[0]).appendChild(e.$clipStyles);var i="#jarallax-container-"+e.instanceID+" {\n           clip: rect(0 "+o+"px "+n+"px 0);\n           clip: rect(0, "+o+"px, "+n+"px, 0);\n        }";e.$clipStyles.styleSheet?e.$clipStyles.styleSheet.cssText=i:e.$clipStyles.innerHTML=i}}},{key:"coverImage",value:function(){var e=this,t=e.image.$container.getBoundingClientRect(),o=t.height,n=e.options.speed,i="scroll"===e.options.type||"scroll-opacity"===e.options.type,a=0,r=o,l=0;return i&&(a=n<0?n*Math.max(o,v):n*(o+v),1<n?r=Math.abs(a-v):n<0?r=a/n+Math.abs(a):r+=Math.abs(v-o)*(1-n),a/=2),e.parallaxScrollDistance=a,l=i?(v-r)/2:(o-r)/2,e.css(e.image.$item,{height:r+"px",marginTop:l+"px",left:"fixed"===e.image.position?t.left+"px":"0",width:t.width+"px"}),e.options.onCoverImage&&e.options.onCoverImage.call(e),{image:{height:r,marginTop:l},container:t}}},{key:"isVisible",value:function(){return this.isElementInViewport||!1}},{key:"onScroll",value:function(e){var t=this,o=t.$item.getBoundingClientRect(),n=o.top,i=o.height,a={},r=o;if(t.options.elementInViewport&&(r=t.options.elementInViewport.getBoundingClientRect()),t.isElementInViewport=0<=r.bottom&&0<=r.right&&r.top<=v&&r.left<=b,e||t.isElementInViewport){var l=Math.max(0,n),s=Math.max(0,i+n),c=Math.max(0,-n),u=Math.max(0,n+i-v),d=Math.max(0,i-(n+i-v)),p=Math.max(0,-n+v-i),m=1-2*(v-n)/(v+i),f=1;if(i<v?f=1-(c||u)/i:s<=v?f=s/v:d<=v&&(f=d/v),"opacity"!==t.options.type&&"scale-opacity"!==t.options.type&&"scroll-opacity"!==t.options.type||(a.transform="translate3d(0,0,0)",a.opacity=f),"scale"===t.options.type||"scale-opacity"===t.options.type){var y=1;t.options.speed<0?y-=t.options.speed*f:y+=t.options.speed*(1-f),a.transform="scale("+y+") translate3d(0,0,0)"}if("scroll"===t.options.type||"scroll-opacity"===t.options.type){var g=t.parallaxScrollDistance*m;"absolute"===t.image.position&&(g-=n),a.transform="translate3d(0,"+g+"px,0)"}t.css(t.image.$item,a),t.options.onScroll&&t.options.onScroll.call(t,{section:o,beforeTop:l,beforeTopEnd:s,afterTop:c,beforeBottom:u,beforeBottomEnd:d,afterBottom:p,visiblePercent:f,fromViewportCenter:m})}}},{key:"onResize",value:function(){this.coverImage(),this.clipContainer()}}]),u}(),w=function(e){("object"===("undefined"==typeof HTMLElement?"undefined":p(HTMLElement))?e instanceof HTMLElement:e&&"object"===(void 0===e?"undefined":p(e))&&null!==e&&1===e.nodeType&&"string"==typeof e.nodeName)&&(e=[e]);for(var t=arguments[1],o=Array.prototype.slice.call(arguments,2),n=e.length,i=0,a=void 0;i<n;i++)if("object"===(void 0===t?"undefined":p(t))||void 0===t?e[i].jarallax||(e[i].jarallax=new x(e[i],t)):e[i].jarallax&&(a=e[i].jarallax[t].apply(e[i].jarallax,o)),void 0!==a)return a;return e};w.constructor=x,$.default=w}).call($,j(2))},function(e,t,o){"use strict";var n=o(0),i=n.requestAnimationFrame||n.webkitRequestAnimationFrame||n.mozRequestAnimationFrame||function(e){var t=+new Date,o=Math.max(0,16-(t-a)),n=setTimeout(e,o);return a=t,n},a=+new Date;var r=n.cancelAnimationFrame||n.webkitCancelAnimationFrame||n.mozCancelAnimationFrame||clearTimeout;Function.prototype.bind&&(i=i.bind(n),r=r.bind(n)),(e.exports=i).cancel=r}
52]);
53
54
55/*!
56 * Name    : Video Background Extension for Jarallax
57 * Version : 1.0.1
58 * Author  : nK <https://nkdev.info>
59 * GitHub  : https://github.com/nk-o/jarallax
60 */!function(o){var i={};function n(e){if(i[e])return i[e].exports;var t=i[e]={i:e,l:!1,exports:{}};return o[e].call(t.exports,t,t.exports,n),t.l=!0,t.exports}n.m=o,n.c=i,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:o})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=7)}([function(o,e,t){"use strict";(function(e){var t;t="undefined"!=typeof window?window:void 0!==e?e:"undefined"!=typeof self?self:{},o.exports=t}).call(e,t(2))},function(e,t,o){"use strict";e.exports=function(e){"complete"===document.readyState||"interactive"===document.readyState?e.call():document.attachEvent?document.attachEvent("onreadystatechange",function(){"interactive"===document.readyState&&e.call()}):document.addEventListener&&document.addEventListener("DOMContentLoaded",e)}},function(e,t,o){"use strict";var i,n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};i=function(){return this}();try{i=i||Function("return this")()||(0,eval)("this")}catch(e){"object"===("undefined"==typeof window?"undefined":n(window))&&(i=window)}e.exports=i},function(e,t,o){"use strict";e.exports=o(9)},,,,function(e,t,o){e.exports=o(8)},function(e,t,o){"use strict";var i=l(o(3)),n=l(o(0)),a=l(o(1)),r=l(o(10));function l(e){return e&&e.__esModule?e:{default:e}}n.default.VideoWorker=n.default.VideoWorker||i.default,(0,r.default)(),(0,a.default)(function(){"undefined"!=typeof jarallax&&jarallax(document.querySelectorAll("[data-jarallax-video]"))})},function(e,t,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=function(){function i(e,t){for(var o=0;o<t.length;o++){var i=t[o];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(e,t,o){return t&&i(e.prototype,t),o&&i(e,o),e}}();function i(){this._done=[],this._fail=[]}i.prototype={execute:function(e,t){var o=e.length;for(t=Array.prototype.slice.call(t);o--;)e[o].apply(null,t)},resolve:function(){this.execute(this._done,arguments)},reject:function(){this.execute(this._fail,arguments)},done:function(e){this._done.push(e)},fail:function(e){this._fail.push(e)}};var r=0,l=0,p=0,u=0,s=0,d=new i,y=new i,c=function(){function i(e,t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i);var o=this;o.url=e,o.options_default={autoplay:!1,loop:!1,mute:!1,volume:100,showContols:!0,startTime:0,endTime:0},o.options=o.extend({},o.options_default,t),o.videoID=o.parseURL(e),o.videoID&&(o.ID=r++,o.loadAPI(),o.init())}return a(i,[{key:"extend",value:function(o){var i=arguments;return o=o||{},Object.keys(arguments).forEach(function(t){i[t]&&Object.keys(i[t]).forEach(function(e){o[e]=i[t][e]})}),o}},{key:"parseURL",value:function(e){var t,o,i,n,a,r=!(!(t=e.match(/.*(?:youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=)([^#\&\?]*).*/))||11!==t[1].length)&&t[1],l=!(!(o=e.match(/https?:\/\/(?:www\.|player\.)?vimeo.com\/(?:channels\/(?:\w+\/)?|groups\/([^\/]*)\/videos\/|album\/(\d+)\/video\/|video\/|)(\d+)(?:$|\/|\?)/))||!o[3])&&o[3],p=(i=e.split(/,(?=mp4\:|webm\:|ogv\:|ogg\:)/),n={},a=0,i.forEach(function(e){var t=e.match(/^(mp4|webm|ogv|ogg)\:(.*)/);t&&t[1]&&t[2]&&(n["ogv"===t[1]?"ogg":t[1]]=t[2],a=1)}),!!a&&n);return r?(this.type="youtube",r):l?(this.type="vimeo",l):!!p&&(this.type="local",p)}},{key:"isValid",value:function(){return!!this.videoID}},{key:"on",value:function(e,t){this.userEventsList=this.userEventsList||[],(this.userEventsList[e]||(this.userEventsList[e]=[])).push(t)}},{key:"off",value:function(o,i){var n=this;this.userEventsList&&this.userEventsList[o]&&(i?this.userEventsList[o].forEac
60h(function(e,t){e===i&&(n.userEventsList[o][t]=!1)}):delete this.userEventsList[o])}},{key:"fire",value:function(e){var t=this,o=[].slice.call(arguments,1);this.userEventsList&&void 0!==this.userEventsList[e]&&this.userEventsList[e].forEach(function(e){e&&e.apply(t,o)})}},{key:"play",value:function(e){var t=this;t.player&&("youtube"===t.type&&t.player.playVideo&&(void 0!==e&&t.player.seekTo(e||0),YT.PlayerState.PLAYING!==t.player.getPlayerState()&&t.player.playVideo()),"vimeo"===t.type&&(void 0!==e&&t.player.setCurrentTime(e),t.player.getPaused().then(function(e){e&&t.player.play()})),"local"===t.type&&(void 0!==e&&(t.player.currentTime=e),t.player.paused&&t.player.play()))}},{key:"pause",value:function(){var t=this;t.player&&("youtube"===t.type&&t.player.pauseVideo&&YT.PlayerState.PLAYING===t.player.getPlayerState()&&t.player.pauseVideo(),"vimeo"===t.type&&t.player.getPaused().then(function(e){e||t.player.pause()}),"local"===t.type&&(t.player.paused||t.player.pause()))}},{key:"mute",value:function(){var e=this;e.player&&("youtube"===e.type&&e.player.mute&&e.player.mute(),"vimeo"===e.type&&e.player.setVolume&&e.player.setVolume(0),"local"===e.type&&(e.$video.muted=!0))}},{key:"unmute",value:function(){var e=this;e.player&&("youtube"===e.type&&e.player.mute&&e.player.unMute(),"vimeo"===e.type&&e.player.setVolume&&e.player.setVolume(e.options.volume),"local"===e.type&&(e.$video.muted=!1))}},{key:"setVolume",value:function(){var e=0<arguments.length&&void 0!==arguments[0]&&arguments[0],t=this;t.player&&e&&("youtube"===t.type&&t.player.setVolume&&t.player.setVolume(e),"vimeo"===t.type&&t.player.setVolume&&t.player.setVolume(e),"local"===t.type&&(t.$video.volume=e/100))}},{key:"getVolume",value:function(t){var e=this;e.player?("youtube"===e.type&&e.player.getVolume&&t(e.player.getVolume()),"vimeo"===e.type&&e.player.getVolume&&e.player.getVolume().then(function(e){t(e)}),"local"===e.type&&t(100*e.$video.volume)):t(!1)}},{key:"getMuted",value:function(t){var e=this;e.player?("youtube"===e.type&&e.player.isMuted&&t(e.player.isMuted()),"vimeo"===e.type&&e.player.getVolume&&e.player.getVolume().then(function(e){t(!!e)}),"local"===e.type&&t(e.$video.muted)):t(null)}},{key:"getImageURL",value:function(t){var o=this;
60if(o.videoImage)t(o.videoImage);else{if("youtube"===o.type){var e=["maxresdefault","sddefault","hqdefault","0"],i=0,n=new Image;n.onload=function(){120!==(this.naturalWidth||this.width)||i===e.length-1?(o.videoImage="https://img.youtube.com/vi/"+o.videoID+"/"+e[i]+".jpg",t(o.videoImage)):(i++,this.src="https://img.youtube.com/vi/"+o.videoID+"/"+e[i]+".jpg")},n.src="https://img.youtube.com/vi/"+o.videoID+"/"+e[i]+".jpg"}if("vimeo"===o.type){var a=new XMLHttpRequest;a.open("GET","https://vimeo.com/api/v2/video/"+o.videoID+".json",!0),a.onreadystatechange=function(){if(4===this.readyState&&200<=this.status&&this.status<400){var e=JSON.parse(this.responseText);o.videoImage=e[0].thumbnail_large,t(o.videoImage)}},a.send(),a=null}}}},{key:"getIframe",value:function(e){this.getVideo(e)}},{key:"getVideo",value:function(l){var p=this;p.$video?l(p.$video):p.onAPIready(function(){var e=void 0;if(p.$video||((e=document.createElement("div")).style.display="none"),"youtube"===p.type){p.playerOptions={},p.playerOptions.videoId=p.videoID,p.playerOptions.playerVars={autohide:1,rel:0,autoplay:0,playsinline:1},p.options.showContols||(p.playerOptions.playerVars.iv_load_policy=3,p.playerOptions.playerVars.modestbranding=1,p.playerOptions.playerVars.controls=0,p.playerOptions.playerVars.showinfo=0,p.playerOptions.playerVars.disablekb=1);var t=void 0,o=void 0;p.playerOptions.events={onReady:function(t){p.options.mute?t.target.mute():p.options.volume&&t.target.setVolume(p.options.volume),p.options.autoplay&&p.play(p.options.startTime),p.fire("ready",t),setInterval(function(){p.getVolume(function(e){p.options.volume!==e&&(p.options.volume=e,p.fire("volumechange",t))})},150)},onStateChange:function(e){p.options.loop&&e.data===YT.PlayerState.ENDED&&p.play(p.options.startTime),t||e.data!==YT.PlayerState.PLAYING||(t=1,p.fire("started",e)),e.data===YT.PlayerState.PLAYING&&p.fire("play",e),e.data===YT.PlayerState.PAUSED&&p.fire("pause",e),e.data===YT.PlayerState.ENDED&&p.fire("ended",e),e.data===YT.PlayerState.PLAYING?o=setInterval(function(){p.fire("timeupdate",e),p.options.endTime&&p.player.getCurrentTime()>=p.options.endTime&&(p.options.loop?p.play(p.options.startTime):p.pause())},150):clearInterval(o)}};var i=!p.$video;if(i){var n=document.createElement("div");n.setAttribute("id",p.playerID),e.appendChild(n),document.body.appendChild(e)}p.player=p.player||new window.YT.Player(p.playerID,p.playerOptions),i&&(p.$video=document.getElementById(p.playerID),p.videoWidth=parseInt(p.$video.getAttribute("width"),10)||1280,p.videoHeight=parseInt(p.$video.getAttribute("height"),10)||720)}if("vimeo"===p.type){p.playerOptions="",p.playerOptions+="player_id="+p.playerID,p.playerOptions+="&autopause=0",p.playerOptions+="&transparent=0",p.options.showContols||(p.playerOptions+="&badge=0&byline=0&portrait=0&title=0"),p.playerOptions+="&autoplay="+(p.options.autoplay?"1":"0"),p.playerOptions+="&loop="+(p.options.loop?1:0),p.$video||(p.$video=document.createElement("iframe"),p.$video.setAttribute("id",p.playerID),p.$video.setAttribute("src","https://player.vimeo.com/video/"+p.videoID+"?"+p.playerOptions),p.$video.setAttribute("frameborder","0"),e.appendChild(p.$video),document.body.appendChild(e)),p.player=p.player||new Vimeo.Player(p.$video),p.player.getVideoWidth().then(function(e){p.videoWidth=e||1280}),p.player.getVideoHeight().then(function(e){p.videoHeight=e||720}),p.options.startTime&&p.options.autoplay&&p.player.setCurrentTime(p.options.startTime),p.options.mute?p.player.setVolume(0):p.options.volume&&p.player.setVolume(p.options.volume);var a=void 0;p.player.on("timeupdate",function(e){a||(p.fire("started",e),a=1),p.fire("timeupdate",e),p.options.endTime&&p.options.endTime&&e.seconds>=p.options.endTime&&(p.options.loop?p.play(p.options.startTime):p.pause())}),p.player.on("play",function(e){p.fire("play",e),p.options.startTime&&0===e.seconds&&p.play(p.options.startTime)}),p.player.on("pause",function(e){p.fire("pause",e)}),p.player.on("ended",function(e){p.fire("ended",e)}),p.player.on("loaded",function(e){p.fire("ready",e)}),p.player.on("volumechange",function(e){p.fire("volumechange",e)})}if("local"===p.type){p.$video||(p.$video=document.createElement("video"),p.options.mute?p.$video.muted=!0:p.$video.volume&&(p.$video.volume=p.options.volume/100),p.options.loop&&(p.$video.loop=!0),p.$video.setAttribute("playsinline",""),p.$video.setAttribute("webkit-playsinline",""),p.$video.setAttribute("id",p.playerID),e.appendChild(p.$video),document.body.appendChild(e),Object.keys(p.videoID).forEac
60h(function(e){var t,o,i,n;t=p.$video,o=p.videoID[e],i="video/"+e,(n=document.createElement("source")).src=o,n.type=i,t.appendChild(n)})),p.player=p.player||p.$video;var r=void 0;p.player.addEventListener("playing",function(e){r||p.fire("started",e),r=1}),p.player.addEventListener("timeupdate",function(e){p.fire("timeupdate",e),p.options.endTime&&p.options.endTime&&this.currentTime>=p.options.endTime&&(p.options.loop?p.play(p.options.startTime):p.pause())}),p.player.addEventListener("play",function(e){p.fire("play",e)}),p.player.addEventListener("pause",function(e){p.fire("pause",e)}),p.player.addEventListener("ended",function(e){p.fire("ended",e)}),p.player.addEventListener("loadedmetadata",function(){p.videoWidth=this.videoWidth||1280,p.videoHeight=this.videoHeight||720,p.fire("ready"),p.options.autoplay&&p.play(p.options.startTime)}),p.player.addEventListener("volumechange",function(e){p.getVolume(function(e){p.options.volume=e}),p.fire("volumechange",e)})}l(p.$video)})}},{key:"init",value:function(){this.playerID="VideoWorker-"+this.ID}},{key:"loadAPI",value:function(){if(!l||!p){var e="";if("youtube"!==this.type||l||(l=1,e="https://www.youtube.com/iframe_api"),"vimeo"!==this.type||p||(p=1,e="https://player.vimeo.com/api/player.js"),e){var t=document.createElement("script"),o=document.getElementsByTagName("head")[0];t.src=e,o.appendChild(t),t=o=null}}}},{key:"onAPIready",value:function(e){if("youtube"===this.type&&("undefined"!=typeof YT&&0!==YT.loaded||u?"object"===("undefined"==typeof YT?"undefined":n(YT))&&1===YT.loaded?e():d.done(function(){e()}):(u=1,window.onYouTubeIframeAPIReady=function(){window.onYouTubeIframeAPIReady=null,d.resolve("done"),e()})),"vimeo"===this.type)if("undefined"!=typeof Vimeo||s)"undefined"!=typeof Vimeo?e():y.done(function(){e()});else{s=1;var t=setInterval(function(){"undefined"!=typeof Vimeo&&(clearInterval(t),y.resolve("done"),e())},20)}"local"===this.type&&e()}}]),i}();t.default=c},function(e,t,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:p.default.jarallax;if(void 0===e)return;var t=e.constructor,i=t.prototype.init;t.prototype.init=function(){var o=this;i.apply(o),o.video&&!o.options.disableVideo()&&o.video.getVideo(function(e){var t=e.parentNode;o.css(e,{position:o.image.position,top:"0px",left:"0px",right:"0px",bottom:"0px",width:"100%",height:"100%",maxWidth:"none",maxHeight:"none",margin:0,zIndex:-1}),o.$video=e,o.image.$container.appendChild(e),t.parentNode.removeChild(t)})};var l=t.prototype.coverImage;t.prototype.coverImage=function(){var e=this,t=l.apply(e),o=!!e.image.$item&&e.image.$item.nodeName;
60if(t&&e.video&&o&&("IFRAME"===o||"VIDEO"===o)){var i=t.image.height,n=i*e.image.width/e.image.height,a=(t.container.width-n)/2,r=t.image.marginTop;t.container.width>n&&(n=t.container.width,i=n*e.image.height/e.image.width,a=0,r+=(t.image.height-i)/2),"IFRAME"===o&&(i+=400,r-=200),e.css(e.$video,{width:n+"px",marginLeft:a+"px",height:i+"px",marginTop:r+"px"})}return t};var o=t.prototype.initImg;t.prototype.initImg=function(){var e=this,t=o.apply(e);return e.options.videoSrc||(e.options.videoSrc=e.$item.getAttribute("data-jarallax-video")||null),e.options.videoSrc?(e.defaultInitImgResult=t,!0):t};var n=t.prototype.canInitParallax;t.prototype.canInitParallax=function(){var o=this,e=n.apply(o);if(!o.options.videoSrc)return e;var t=new r.default(o.options.videoSrc,{autoplay:!0,loop:!0,showContols:!1,startTime:o.options.videoStartTime||0,endTime:o.options.videoEndTime||0,mute:o.options.videoVolume?0:1,volume:o.options.videoVolume||0});if(t.isValid())if(e){if(t.on("ready",function(){if(o.options.videoPlayOnlyVisible){var e=o.onScroll;o.onScroll=function(){e.apply(o),o.isVisible()?t.play():t.pause()}}else t.play()}),t.on("started",function(){o.image.$default_item=o.image.$item,o.image.$item=o.$video,o.image.width=o.video.videoWidth||1280,o.image.height=o.video.videoHeight||720,o.options.imgWidth=o.image.width,o.options.imgHeight=o.image.height,o.coverImage(),o.clipContainer(),o.onScroll(),o.image.$default_item&&(o.image.$default_item.style.display="none")}),o.video=t,!o.defaultInitImgResult)return"local"!==t.type?(t.getImageURL(function(e){o.image.src=e,o.init()}),!1):(o.image.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",!0)}else o.defaultInitImgResult||t.getImageURL(function(e){var t=o.$item.getAttribute("style");t&&o.$item.setAttribute("data-jarallax-original-styles",t),o.css(o.$item,{"background-image":'url("'+e+'")',"background-position":"center","background-size":"cover"})});return e};var a=t.prototype.destroy;t.prototype.destroy=function(){var e=this;e.image.$default_item&&(e.image.$item=e.image.$default_item,delete e.image.$default_item),a.apply(e)}};var r=i(o(3)),p=i(o(0));function i(e){return e&&e.__esModule?e:{default:e}}}]);
61
62
63/*!
64 * in-view 0.6.1 - Get notified when a DOM element enters or exits the viewport.
65 * Copyright (c) 2016 Cam Wiegert <[email protected]> - https://camwiegert.github.io/in-view
66 * License: MIT
67 */
68!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.inView=e():t.inView=e()}(this,function(){return function(t){function e(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return t[r].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}var i=n(2),o=r(i);t.exports=o["default"]},function(t,e){function n(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}t.exports=n},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(9),o=r(i),u=n(3),f=r(u),s=n(4),c=function(){if("undefined"!=typeof window){var t=100,e=["scroll","resize","load"],n={history:[]},r={offset:{},threshold:0,test:s.inViewport}
vendor: 4,219 bytes, lines 68-73
68,i=(0,o["default"])(function(){n.history.forEach(function(t){n[t].check()})},t);e.forEach(function(t){return addEventListener(t,i)}),window.MutationObserver&&addEventListener("DOMContentLoaded",function(){new MutationObserver(i).observe(document.body,{attributes:!0,childList:!0,subtree:!0})});var u=function(t){if("string"==typeof t){var e=[].slice.call(document.querySelectorAll(t));return n.history.indexOf(t)>-1?n[t].elements=e:(n[t]=(0,f["default"])(e,r),n.history.push(t)),n[t]}};return u.offset=function(t){if(void 0===t)return r.offset;var e=function(t){return"number"==typeof t};return["top","right","bottom","left"].forEach(e(t)?function(e){return r.offset[e]=t}:function(n){return e(t[n])?r.offset[n]=t[n]:null}),r.offset},u.threshold=function(t){return"number"==typeof t&&t>=0&&t<=1?r.threshold=t:r.threshold},u.test=function(t){return"function"==typeof t?r.test=t:r.test},u.is=function(t){return r.test(t,r)},u.offset(0),u}};e["default"]=c()},function(t,e){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),i=function(){function t(e,r){n(this,t),this.options=r,this.elements=e,this.current=[],this.handlers={enter:[],exit:[]},this.singles={enter:[],exit:[]}}return r(t,[{key:"check",value:function(){var t=this;return this.elements.forEach(function(e){var n=t.options.test(e,t.options),r=t.current.indexOf(e),i=r>-1,o=n&&!i,u=!n&&i;o&&(t.current.push(e),t.emit("enter",e)),u&&(t.current.splice(r,1),t.emit("exit",e))}),this}},{key:"on",value:function(t,e){return this.handlers[t].push(e),this}},{key:"once",value:function(t,e){return this.singles[t].unshift(e),this}},{key:"emit",value:function(t,e){for(;this.singles[t].length;)this.singles[t].pop()(e);for(var n=this.handlers[t].length;--n>-1;)this.handlers[t][n](e);return this}}]),t}();e["default"]=function(t,e){return new i(t,e)}},function(t,e){"use strict";function n(t,e){var n=t.getBoundingClientRect(),r=n.top,i=n.right,o=n.bottom,u=n.left,f=n.width,s=n.height,c={t:o,r:window.innerWidth-u,b:window.innerHeight-r,l:i},a={x:e.threshold*f,y:e.threshold*s};return c.t>e.offset.top+a.y&&c.r>e.offset.right+a.x&&c.b>e.offset.bottom+a.y&&c.l>e.offset.left+a.x}Object.defineProperty(e,"__esModule",{value:!0}),e.inViewport=n},function(t,e){(function(e){var n="object"==typeof e&&e&&e.Object===Object&&e;t.exports=n}).call(e,function(){return this}())},function(t,e,n){var r=n(5),i="object"==typeof self&&self&&self.Object===Object&&self,o=r||i||Function("return this")();t.exports=o},function(t,e,n){function r(t,e,n){function r(e){var n=x,r=m;return x=m=void 0,E=e,w=t.apply(r,n)}function a(t){return E=t,j=setTimeout(h,e),M?r(t):w}function l(t){var n=t-O,r=t-E,i=e-n;return _?c(i,g-r):i}function d(t){var n=t-O,r=t-E;return void 0===O||n>=e||n<0||_&&r>=g}function h(){var t=o();return d(t)?p(t):void(j=setTimeout(h,l(t)))}function p(t){return j=void 0,T&&x?r(t):(x=m=void 0,w)}function v(){void 0!==j&&clearTimeout(j),E=0,x=O=m=j=void 0}function y(){return void 0===j?w:p(o())}function b(){var t=o(),n=d(t);if(x=arguments,m=this,O=t,n){if(void 0===j)return a(O);if(_)return j=setTimeout(h,e),r(O)}return void 0===j&&(j=setTimeout(h,e)),w}var x,m,g,w,j,O,E=0,M=!1,_=!1,T=!0;if("function"!=typeof t)throw new TypeError(f);return e=u(e)||0,i(n)&&(M=!!n.leading,_="maxWait"in n,g=_?s(u(n.maxWait)||0,e):g,T="trailing"in n?!!n.trailing:T),b.cancel=v,b.flush=y,b}var i=n(1),o=n(8),u=n(10),f="Expected a function",s=Math.max,c=Math.min;t.exports=r},function(t,e,n){var r=n(6),i=function(){return r.Date.now()};t.exports=i},function(t,e,n){function r(t,e,n){var r=!0,f=!0;if("function"!=typeof t)throw new TypeError(u);return o(n)&&(r="leading"in n?!!n.leading:r,f="trailing"in n?!!n.trailing:f),i(t,e,{leading:r,maxWait:e,trailing:f})}var i=n(7),o=n(1),u="Expected a function";t.exports=r},function(t,e){function n(t){return t}t.exports=n}])});
69customSelectElement = {};
70
71(function (self) {
72
73  /**
74   * All needed selectors.
75   *
76   * @private
77   */
78  let _selectors = {
79    container: '.custom-select',
80    input: '.select-value',
81    select: '.select-container',
82    selectLabel: '.select-label',
83    optionsContainer: '.select-options',
84    option: '.select-option',
85  }
86
87  /**
88   * Add a css class to a dom element.
89   *
90   * @param {HTMLElement} element The html element.
91   * @param {string} className The name of the class.
92   * @private
93   */
94  function _addDomClass(element, className) {
95    if (className.substr(0, 1) === '.') {
96      className = className.substr(1)
97    }
98
99    if (!element.classList.contains(className)) {
100      element.classList.add(className)
101    }
102  }
103
104  /**
105   * Remove a css class from a dom element.
106   *
107   * @param {HTMLElement} element The html element.
108   * @param {string} className The name of the class.
109   * @private
110   */
111  function _removeDomClass(element, className) {
112    if (className.substr(0, 1) === '.') {
113      className = className.substr(1)
114    }
115
116    if (element.classList.contains(className)) {
117      element.classList.remove(className)
118    }
119  }
120
121  /**
122   * Toggle a css class from a dom element.
123   *
124   * @param {HTMLElement} element The html element.
125   * @param {string} className The name of the class.
126   * @private
127   */
128  function _toggleDomClass(element, className) {
129    if (className.substr(0, 1) === '.') {
130      className = className.substr(1)
131    }
132
133    let functionName = element.classList.contains(className) ? _removeDomClass : _addDomClass
134    functionName(element, className)
135  }
136
137  /**
138   * Get the parent element with the given class.
139   *
140   * @param {HTMLElement} element
141   * @param {string} className
142   * @returns {HTMLElement}
143   * @private
144   */
145  function _getParentWithClass (element, className) {
146    if (className.substr(0, 1) === '.') {
147      className = className.substr(1)
148    }
149
150    while ((element = element.parentElement) && !(element.classList.contains(className))) {
151      // Nothing inside.
152    }
153
154    return element
155  }
156
157  /**
158   * Get the root element of this custom select element.
159   *
160   * @param {HTMLElement} element
161   * @returns {HTMLElement}
162   * @private
163   */
164  function _getElementRoot (element) {
165    return _getParentWithClass(element, _selectors.container)
166  }
167
168  /**
169   * Close a select element.
170   *
171   * @param {HTMLElement|Element} element
172   * @private
173   */
174  function _closeSelect(element) {
175    let selectElement = _getParentWithClass(element, _selectors.select),
176      root = _getElementRoot(element),
177      optionsContainer = selectElement.querySelector(_selectors.optionsContainer)
178
179    _addDomClass(optionsContainer, 'hidden')
180    root.setAttribute('data-open', '0')
181  }
182
183  /**
184   * @param {Event} event
185   * @private
186   */
187  function _toggleSelect (event) {
188    let selectElement = _getParentWithClass(this, _selectors.select),
189      root = _getElementRoot(this),
190      optionsContainer = selectElement.querySelector(_selectors.optionsContainer),
191      closing = !optionsContainer.classList.contains('hidden'),
192      allSelectElements = document.querySelectorAll(_selectors.optionsContainer),
193      allSelectElementLength = allSelectElements.length
194
195    // if(selectElement.hasAttribute('data-disabled')){
196    //   return;
197    // }
198
199    for (let i = 0; i < allSelectElementLength; i += 1) {
200      _closeSelect(allSelectElements[i])
201    }
202
203    if (!closing) {
204      _toggleDomClass(optionsContainer, 'hidden')
205    }
206
207    root.setAttribute('data-open', closing ? '0' : '1')
208
209    if (this.classList.contains('select-option')) {
210      _changeValue(this)
211    }
212  }
213
214  /**
215   * @param {HTMLElement} option
216   * @private
217   */
218  function _changeValue(option) {
219    let root = _getElementRoot(option),
220      input = root.querySelector(_selectors.input),
221      labelElement = root.querySelector(_selectors.selectLabel),
222      value = option.getAttribute('data-value').trim(),
223      label = option.innerText.trim()
224
225    input.setAttribute('value', value)
226    labelElement.innerText = label
227  }
228
229  /**
230   * Initiate all event listeners.
231   *
232   * @private
233   */
234  function _initEventListeners () {
235    let selects = document.querySelectorAll(_selectors.selectLabel),
236      options = document.querySelectorAll(_selectors.option),
237      selectLength = selects.length,
238      optionLength = options.length
239
240    for (let i = 0; i < selectLength; i += 1) {
241      selects[i].addEventListener('click', _toggleSelect)
242    }
243
244    for (let i = 0; i < optionLength; i += 1) {
245      options[i].addEventListener('click', _toggleSelect)
246    }
247  }
248
249  /**
250   * Initiate the custom select element.
251   */
252  self.init = function () {
253    _initEventListeners()
254  }
255
256  /**
257   * @see _closeSelect
258   */
259  self.closeSelect = _closeSelect
260
261})(customSelectElement)
262
263window.addEventListener('DOMContentLoaded', function () {
264  customSelectElement.init()
265})
266
267/**
268 * SWE
269 */
270var swe = ((typeof swe !== 'undefined') && (swe !== null)) ? swe : (function() {
271
272  // Private
273  var scroll,
274    mobileNav;
275
276  /**
277   * Detect breakpoint changes.
278   */
279  let breakpoint = {
280      value: 'small',
281      refresh: function () {
282        let oldBreakpoint = this.value,
283          newBreakpoint = window.getComputedStyle(document.querySelector('body'), ':before').getPropertyValue('content').replace(/\"/g, '');
284
285        this.value = newBreakpoint;
286
287        if (oldBreakpoint === newBreakpoint) return;
288        let details = {
289            value: newBreakpoint,
290          },
291          event = new CustomEvent('breakpoint', { detail: details });
292
293        document.dispatchEvent(event);
294      },
295    },
296
297    /**
298     * Holds all slider instances.
299     */
300    sliderInstances = {},
301
302    /**
303     * An object for all methods that need a timeout or something else just on the first execution.
304     */
305    _initiated = {},
306
307    /**
308     * An array of developing urls.
309     */
310    _devUrls = [
311      'prototyp.s-w-e.com',
312      'dedi1004',
313    ],
314
315    /**
316     * An object with mobile navigation settings.
317     */
318    _mobileNavSettings = {
319      width: {
320        default: '100%',
321        small: '100%',
322      },
323    }
324
325
326  // Public
327  return {
328    version: '1.8.12',
329
330    /**
331     * Set the mobile navigation settings.
332     *
333     * @param {string} type
334     * @param {string} breakpoint
335     * @param {string} value
336     */
337    setMobileNavSettings: function (type, breakpoint, value) {
338      _mobileNavSettings[type][breakpoint] = value
339    },
340
341    /**
342     * Get the mobile navigation settings.
343     *
344     * @return {object}
345     */
346    getMobileNavSettings: function () {
347      return _mobileNavSettings
348    },
349
350    /**
351     * Uses console.log when the url is like "prototyp.s-w-e.com" or "*.dedi1004.*".
352     */
353    debug: function () {
354      for (let i = 0; i < _devUrls.length; i += 1) {
355        if (window.location.href.includes(_devUrls[i])) return;
356      }
357
358      // Wenn wir den IE nicht mehr unterstützen müssen, können wir auch "console.log(...arguments);" verwenden.
359      console.log.apply(this, arguments);
360    },
361
362    /**
363     * Get the current breakpoint.
364     *
365     * @return {string}
366     */
367    getBreakpoint: function () {
368      return breakpoint.value;
369    },
370
371    /**
372     * Get the breakpoint name of the current used device (e.g. 'desktop').
373     */
374    initBreakpoint: function () {
375      if (_initiated.hasOwnProperty('initBreakpoint')) return;
376
377      window.addEventListener('resize', function () {
378        breakpoint.refresh();
379      });
380
381      breakpoint.refresh();
382      _initiated['initBreakpoint'] = true;
383    },
384
385    /**
386     * Get all slider instances.
387     *
388     * @return {object}
389     */
390    getSliders: function() {
391      return sliderInstances;
392    },
393
394    /**
395     * Get a slider instance.
396     *
397     * @param {string} name The name of the slider.
398     * @return {null|Flickity}
399     */
400    getSlider: function(name) {
401      return sliderInstances.hasOwnProperty(name) ? sliderInstances[name] : null;
402    },
403
404
405    /**
406     * Merge options
407     */
408    mergeOptions: function(customOptions, options) {
409      Object.keys(customOptions).forEach(function(key) {
410        options[key] = customOptions[key];
411      });
412    },
413
414
415    /**
416     * Get cookie
417     */
418    getCookie: function(name) {
419      let i,
420        c,
421        nameEQ = name + '=',
422        ca = document.cookie.split(';');
423
424      for (i = 0; i < ca.length; i += 1) {
425        c = ca[i];
426
427        while (c.charAt(0) === ' ') {
428          c = c.substring(1, c.length);
429        }
430
431        if (c.indexOf(nameEQ) === 0) {
432          return c.substring(nameEQ.length, c.length);
433        }
434      }
435    },
436
437
438    /**
439     * Set / delete cookies
440     */
441    setCookie: function(name, value, days) {
442      let date = new Date(),
443        expires = '; expires=Thu, 01 Jan 1970 00:00:01 GMT';
444
445      if (days) {
446        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
447        expires = '; expires=' + date.toGMTString();
448      }
449
450      document.cookie = name + '=' + value + expires + '; path=/';
451    },
452
453
454    /**
455     * Responsive iframe
456     */
457    responsiveIframe: function() {
458      if (document.querySelector('iframe') === null) return;
459      reframe('iframe');
460    },
461
462
463    /**
464     * Datetimepicker
465     *
466     * @ToDo: Soll das noch fertig gemacht werden oder ist es das schon??
467     */
468    datetimepicker: function(name, el, userDatetimepickerOptions) {
469      if (document.querySelector(el) === null) return;
470      // https://chmln.github.io/flatpickr/examples/
471      let datetimepickerOptions = {
472        dateFormat: 'd.m.Y',
473
474        // Localization
475        locale: 'de',
476      };
477
478      if (userDatetimepickerOptions) swe.mergeOptions(userDatetimepickerOptions, datetimepickerOptions);
479
480      name = flatpickr(el, datetimepickerOptions);
481    },
482
483
484    /**
485     * Slider
486     */
487    slider: function(name, el, customOptions) {
488      if (document.querySelector(el) === null) return;
489      // https://flickity.metafizzy.co/options.html
490      let options = {
491        accessibility: true,
492        adaptiveHeight: false,
493        autoPlay: false,
494        pauseAutoPlayOnHover: true,
495        cellAlign: 'left',
496        cellSelector: '.slide',
497        contain: true,
498        draggable: true,
499        freeScroll: false,
500        groupCells: true,
501        lazyLoad: false,
502        prevNextButtons: true,
503        pageDots: true,
504        wrapAround: true,
505        imagesLoaded: true,
506      };
507
508      if (customOptions) swe.mergeOptions(customOptions, options);
509
510      /**
511       * Create slider
512       */
513      let createSlider = function(sliderName, el) {
514        let nam = new Flickity(el, options);
515
516        // If Slider has video inside
517        if (document.querySelector(el + ' video') !== null) {
518          nam.on('select', function() {
519            let videos = this.element.querySelectorAll('video');
520
521            if (videos.length) {
522              let video = this.element.querySelector('.is-selected video');
523
524              if (this.element.querySelector('.is-selected video') !== null) {
525                video.play();
526              } else {
527                [].forEach.call(videos, function(video) {
528                  video.pause();
529                });
530              }
531            }
532          });
533        }
534
535
536        // Content slider
537        if (document.querySelector(el).classList.contains('slider--content')) {
538
539        }
540
541// Carousel Slider Bilder
542        if (document.querySelector(el).classList.contains('carousel-main')) {
543
544        }
545
546// Carousel Slider Text
547        if (document.querySelector(el).classList.contains('carousel-nav')) {
548
549        }
550
551
552        // If Slider is full width
553        if (document.querySelector(el).classList.contains('slider--full-width')) {
554          let topOfSlider,
555
556            sliderScroll,
557            sliderResize,
558            sliderTimerScroll,
559            sliderTimerResize,
560
561            slider,
562            slides;
563
564
565          let resize = function(slider, slides) {
566            //console.log(window.pageYOffset);
567
568            // TODO
569            // Ohne Timeout beim hochscrollen keine korrekte Höhe.
570            // Problem mit Scroll-Event der fixedNav-Funktion?
571            if (window.pageYOffset !== 0) return;
572            setTimeout(function() {
573              topOfSlider = slider.element.offsetTop;
574
575              for (let i = 0; i < slides.length; i += 1) {
576                let slide = slides[i]
577
578                slide.style.height = (window.innerHeight - topOfSlider) + 'px';
579              }
580
581              //console.log('window.innerHeight: ', window.innerHeight);
582              //console.log('topOfSlider: ', topOfSlider);
583              //console.log('result: ', window.innerHeight - topOfSlider);
584
585              slider.resize();
586            }, 500);
587          };
588
589
590          slider = nam;
591          slides = slider.element.querySelectorAll('.slide');
592
593          resize(slider, slides);
594
595          sliderScroll = window;
596          sliderResize = window;
597
598          sliderScroll.addEventListener('scroll', function() {
599            cancelAnimationFrame(sliderTimerScroll);
600            sliderTimerScroll = requestAnimationFrame(function() {
601              resize(slider, slides);
602            });
603          });
604
605          sliderResize.addEventListener('resize', function() {
606            cancelAnimationFrame(sliderTimerResize);
607            sliderTimerResize = requestAnimationFrame(function() {
608              resize(slider, slides);
609            });
610          });
611        }
612
613        nam.resize();
614        let sliderIndex = sliderName.substr(('slider-' + name).length),
615          instanceName = name + '-' + sliderIndex;
616        sliderInstances[instanceName] = nam;
617      };
618
619
620      /**
621       * Init
622       */
623      let sliders = document.querySelectorAll(el);
624
625      for (let i = 0; i < sliders.length; i += 1) {
626        let slider = sliders[i];
627
628        slider.setAttribute('data-' + name, 'slider-' + i);
629        createSlider('slider-' + name + i, '[data-' + name + '="slider-' + i + '"]');
630      }
631    },
632
633
634    /**
635     * Check form
636     */
637    checkForm: function(btn, form) {
638      if (document.querySelector(form) === null || document.querySelector(btn) === null) return;
639      let endInputs = document.querySelectorAll('input[data-val]'),
640        endSelects = document.querySelectorAll('select[data-val]'),
641        endTextareas = document.querySelectorAll('textarea[data-val]');
642
643      let check = function() {
644        let next = true;
645
646        if (!document.getElementById('herr').checked && !document.getElementById('frau').checked) {
647          alert('Bitte Anrede auswählen');
648          next = false;
649        }
650
651        for (let i = 0; i < endInputs.length; i += 1) {
652          let ei = endInputs[i];
653
654          if (ei.value.length === 0) {
655            alert(ei.getAttribute('data-val'));
656            next = false;
657          }
658
659          if (ei.value.length <= 0 || ei.type !== 'email') continue;
660
661          let patt = new RegExp('@');
662
663          if (ei.value.length < 3) {
664            alert('E-Mail-Adresse ist zu kurz');
665            next = false;
666            continue;
667          }
668
669          if (ei.value.length >= 3 && !patt.test(ei.value)) {
670            alert('Es fehlt ein @ in der E-Mail-Adresse');
671            next = false;
672            continue;
673          }
674
675          if (ei.value.length >= 3 && ei.value.indexOf('.', ei.value.indexOf('@')) === -1) {
676            alert('Nach dem @ der E-Mail-Adresse muss ein Punkt folgen');
677            next = false;
678          }
679        }
680
681        for (let i = 0; i < endSelects.length; i += 1) {
682          let select = endSelects[i]
683          if (select.selectedIndex !== 0) continue;
684          alert(select.getAttribute('data-val'));
685          next = false;
686        }
687
688        for (let i = 0; i < endTextareas.length; i += 1) {
689          let textarea = endTextareas[i]
690          if (textarea.selectedIndex !== 0) continue;
691          alert(textarea.getAttribute('data-val'));
692          next = false;
693        }
694
695        return next;
696      };
697
698      let checkButton = document.querySelector(btn);
699
700      checkButton.addEventListener('click', function() {
701        check();
702      });
703    },
704
705    /**
706     * Navigation (Mobile)
707     *
708     * @param {string} el
709     * @param {object} options
710     */
711    mobileNav: function (el, options) {
712      if (document.querySelector(el) === null) return
713
714      let paddingHeight = document.querySelector('.nav-container').offsetHeight
715      document.querySelector(el).style.paddingTop = (paddingHeight + (paddingHeight / 2)) + 'px'
716
717      mobileNav = offside(el, options)
718      let ebene = 0
719
720      // ...
721      let navEl = document.querySelectorAll(el + ' li')
722      for (let i = 0; i < navEl.length; i += 1) {
723        let element = navEl[i]
724        if (!element.classList.contains('dropdown')) continue
725        element.insertAdjacentHTML('beforeend', '<span class="open-sesam__trigger"><i class="fa fa-angle-right" aria-hidden="true"></i></span>')
726      }
727
728      let navSubEl = document.querySelectorAll(el + ' li ul')
729      for (let i = 0; i < navSubEl.length; i += 1) {
730        let element = navSubEl[i],
731          caption = element.parentNode.querySelector('a').textContent
732        element.insertAdjacentHTML('afterbegin', '<li class="close-sesam"><span><i class="fa fa-angle-left" aria-hidden="true"></i> ' + caption + ' </span></li>')
733      }
734
735      let navSpanEl = document.querySelectorAll(el + ' span.open-sesam__trigger')
736      for (let i = 0; i < navSpanEl.length; i += 1) {
737        let element = navSpanEl[i]
738
739        element.addEventListener('click', function (event) {
740          let left = _mobileNavSettings.width[swe.getBreakpoint()] || _mobileNavSettings.width.default
741
742          if (ebene === 0) {
743            element.parentNode.parentNode.style.left = '-' + left
744          } else {
745            element.parentNode.parentNode.style.left = '0'
746          }
747
748          element.parentNode.querySelector('ul').style.left = left
749          element.parentNode.querySelector('ul').style.display = 'block'
750          ebene += 1
751
752          event.preventDefault()
753        })
754      }
755
756      let navAEl = document.querySelectorAll(el + ' .dropdown > a')
757      for (let i = 0; i < navAEl.length; i += 1) {
758        let element = navAEl[i]
759
760        element.addEventListener('click', function (event) {
761          if (ebene < 0) ebene = 0
762
763          let left = _mobileNavSettings.width[swe.getBreakpoint()] || _mobileNavSettings.width.default
764
765          if (ebene === 0) {
766            element.parentNode.parentNode.style.left = '-' + left
767          } else {
768            element.parentNode.parentNode.style.left = '0'
769          }
770
771          element.parentNode.querySelector('ul').style.left = left
772          element.parentNode.querySelector('ul').style.display = 'block'
773          ebene += 1
774
775          event.preventDefault()
776        })
777      }
778
779      let navCloseEl = document.querySelectorAll(el + ' .close-sesam')
780      for (let i = 0; i < navCloseEl.length; i += 1) {
781        let element = navCloseEl[i]
782
783        element.addEventListener('click', function (event) {
784          ebene -= 1
785          let left = _mobileNavSettings.width[swe.getBreakpoint()] || _mobileNavSettings.width.default
786
787          if (ebene < 0) ebene = 0
788          element.parentNode.style.left = '0'
789          element.parentNode.style.display = 'none'
790
791          if (ebene === 0) {
792            element.parentNode.parentNode.parentNode.parentNode.querySelector('ul').style.left = '0'
793          } else {
794            element.parentNode.parentNode.parentNode.parentNode.querySelector('ul').style.left = left
795          }
796
797          event.preventDefault()
798        })
799      }
800
801      document.querySelector(el).style.display = 'block'
802
803      // Hier wird die aktuelle Ebene geladen, sodass bei einer Unterseite das Menü in der richtigen Ebene geöffnet wird.
804      let activeEbene = 0,
805        activeElements = document.querySelectorAll(el + ' .active')
806
807      if (activeElements.length > 1) {
808        activeEbene = activeElements.length - 1
809
810        let navSpanEl = document.querySelectorAll(el + ' span.open-sesam__trigger')
811        for (let i = 0; i < navSpanEl.length; i += 1) {
812          let element = navSpanEl[i],
813            left = _mobileNavSettings.width[swe.getBreakpoint()] || _mobileNavSettings.width.default
814
815          if (!element.parentElement.classList.contains('active')) continue
816
817          if (activeEbene === 0) {
818            element.parentNode.parentNode.style.left = '0'
819          } else {
820            element.parentNode.parentNode.style.left = '-' + left
821          }
822
823          element.parentNode.querySelector('ul').style.left = left
824          element.parentNode.querySelector('ul').style.display = 'block'
825        }
826      }
827    },
828
829
830    /**
831     * Navigation (Mobile)
832     */
833    oldMobileNav: function(el, options) {
834      if (document.querySelector(el) === null) return;
835      document.querySelector(el).style.display = 'block';
836
837      let paddingHeight = document.querySelector('.nav-container').offsetHeight;
838
839      document.querySelector(el).style.paddingTop = (paddingHeight + (paddingHeight / 2)) + 'px';
840
841      mobileNav = offside(el, options);
842      let ebene = 0,
843
844        navEl = document.querySelectorAll(el + ' li');
845      for (let i = 0; i < navEl.length; i += 1) {
846        let el = navEl[i]
847        if (!el.classList.contains('dropdown')) continue;
848        el.insertAdjacentHTML('beforeend', '<span class="open-sesam__trigger"><i class="fa fa-angle-right" aria-hidden="true"></i></span>');
849      }
850
851      let navSubEl = document.querySelectorAll(el + " li ul");
852      for (let i = 0; i < navSubEl.length; i += 1) {
853        let el = navSubEl[i],
854          caption = el.parentNode.querySelector("a").textContent;
855        el.insertAdjacentHTML('afterbegin', '<li class="close-sesam"><span><i class="fa fa-angle-left" aria-hidden="true"></i> ' + caption + '</span></li>');
856      }
857
858      let navSpanEl = document.querySelectorAll(el + ' span.open-sesam__trigger');
859      for (let i = 0; i < navSpanEl.length; i += 1) {
860        let el = navSpanEl[i],
861          spanElSizing = function (size) {
862            let currentSize = size || swe.getBreakpoint(),
863              left = '-17em'
864
865            if (ebene !== 0) left = '0'
866
867            el.parentNode.parentNode.style.left = left;
868            el.parentNode.querySelector('ul').style.left = '17em';
869            el.parentNode.querySelector('ul').style.display = 'block';
870          }
871
872        el.addEventListener('click', function () {
873          spanElSizing()
874          ebene += 1;
875        })
876
877        document.addEventListener('breakpoint', function (event) {
878          spanElSizing(event.detail.value)
879        })
880      }
881
882      let navCloseEl = document.querySelectorAll(el + ' .close-sesam');
883      for (let i = 0; i < navCloseEl.length; i += 1) {
884        let el = navCloseEl[i],
885          closeElSizing = function (size) {
886            let currentSize = size || swe.getBreakpoint(),
887              left = '17em'
888
889            if (ebene !== 0) left = '0'
890
891            el.parentNode.style.left = '0';
892            el.parentNode.style.display = 'none';
893
894            el.parentNode.parentNode.parentNode.parentNode.querySelector('ul').style.left = left;
895          }
896
897        el.addEventListener('click', function() {
898          ebene -= 1;
899          closeElSizing()
900        })
901
902        document.addEventListener('breakpoint', function (event) {
903          closeElSizing(event.detail.value)
904        })
905      }
906
907      /**
908       * TODO: Ist das Kunst oder kann das weg?
909       var navCloseButton = document.querySelectorAll(el + ' .close-nav');
910       [].forEach.call(navCloseButton, function(el, i) {
911        el.addEventListener('click', function() {
912          mobileNav.close();
913        });
914      });
915       */
916    },
917
918
919    /**
920     * Anker navigation
921     */
922    ankerNav: function() {
923      if (document.querySelector('.dce-anker') === null) return;
924      let ankerNav = document.querySelector('nav.anker ul'),
925        ankerEls = document.querySelectorAll('.dce-anker'),
926        ankerOuter = [],
927        ankerInner = [];
928
929      for (let i = 0; i < ankerEls.length; i += 1) {
930        let ankerEl = ankerEls[i]
931        ankerOuter[i] = document.createElement('li');
932        ankerInner[i] = document.createElement('a');
933
934        ankerInner[i].classList.add('scroll');
935        ankerInner[i].setAttribute('href', window.location.href + '#' + ankerEl.id);
936        ankerInner[i].textContent = ankerEl.getAttribute('data-title');
937
938        ankerOuter[i].appendChild(ankerInner[i]);
939        ankerNav.appendChild(ankerOuter[i]);
940      }
941    },
942
943
944    /**
945     * Smooth scroll
946     */
947    smoothScroll: function(nav) {
948      scroll = new SmoothScroll('a[href*="#"]', {
949        ignore: '[data-scroll-ignore]', // Selector for links to ignore (must be a valid CSS selector)
950        header: nav, // Selector for fixed headers (must be a valid CSS selector)
951        topOnEmptyHash: true, // Scroll to the top of the page for links with href="#"
952        speed: 500, // Integer. How fast to complete the scroll in milliseconds
953        offset: 0, // Integer or Function returning an integer. How far to offset the scrolling anchor location in pixels
954        easing: 'easeInOutCubic', // Easing pattern to use
955
956        // History
957        updateURL: false, // Update the URL on scroll
958        popstate: true, // Animate scrolling with the forward/backward browser buttons (requires updateURL to be true)
959
960        // Custom Events
961        emitEvents: true // Emit custom events
962      });
963
964      let logScrollStart = function () {
965        mobileNav.close();
966      };
967
968      let logScrollStop = function (event) {
969        //console.log('scroll: ' + event.detail.anchor.id);
970        if (!event.detail.anchor || !event.detail.anchor.id) return;
971        let anchor = document.querySelector('#' + event.detail.anchor.id); // Get the anchor
972
973        if (!anchor.classList.contains('accordion') && anchor.querySelector('.accordion') === null) return;
974        anchor.querySelector(".accordion__content").style.display = "block";
975        anchor.querySelector(".accordion__title").classList.add("accopen");
976        anchor.querySelector(".accordion__title").classList.remove("accclose");
977      };
978
979      document.addEventListener('scrollStop', logScrollStop, false);
980      document.addEventListener('scrollStart', logScrollStart, false);
981
982
983      // # From another page
984      if (window.location.hash) {
985        // Check if all images loaded
986        imagesLoaded('.wrapper', function(imagesLoaded) {
987          let anchor = document.querySelector(window.location.hash); // Get the anchor
988
989          scroll.animateScroll(anchor);
990
991          //console.log('new');
992
993          if (!anchor.classList.contains('accordion') && anchor.querySelector('.accordion') === null) return;
994          anchor.querySelector(".accordion__content").style.display = "block";
995          anchor.querySelector(".accordion__title").classList.add("accopen");
996          anchor.querySelector(".accordion__title").classList.remove("accclose");
997        });
998      }
999    },
1000
1001
1002    /**
1003     * Google Analytics
1004     */
1005    googleAnalytics: function(id) {
1006      if (id !== 'UA-00000000-0') {
1007        window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments);};ga.l=+new Date();
1008
1009        ga('create', id, 'auto');
1010        ga('set', 'anonymizeIp', true);
1011        ga('send', 'pageview');
1012
1013        var gaProperty = id,
1014          disableStr = 'ga-disable-' + gaProperty;
1015
1016        if (document.cookie.indexOf(disableStr + '=true') > -1) {
1017          window[disableStr] = true;
1018        }
1019
1020        function gaOptout() {
1021          document.cookie = disableStr + '=true; expires=Thu, 31 Dec 2099 23:59:59 UTC; path=/';
1022          window[disableStr] = true;
1023        }
1024
1025        var script = document.createElement('script');
1026        script.src = 'https://google-analytics.com/analytics.js';
1027        document.body.appendChild(script);
1028
1029        if (document.getElementById('GAOptOut') !== null) {
1030          var el = document.getElementById('GAOptOut');
1031
1032          el.addEventListener('click', function() {
1033            if(window[disableStr] !== true){
1034              gaOptout();
1035              var stand = el.innerHTML;
1036              el.innerHTML = stand + ' <span id="GAOptOutFeedback" style="color:#FF0000"> (Opt-Out-Cookie ist für ' + window.location.origin + ' gesetzt)</span>';
1037            }
1038          });
1039
1040          if (document.cookie.indexOf(disableStr + '=true') > -1) {
1041            var stand = el.innerHTML;
1042            el.innerHTML = stand + ' <span id="GAOptOutFeedback" style="color:#FF0000"> (Opt-Out-Cookie ist für ' + window.location.origin + ' gesetzt)</span>';
1043          }
1044        }
1045
1046        // Tracking for PDF-Links
1047        /*
1048        [].filter.call(document.querySelectorAll('a'), function(a) {
1049          if (a.href.match('\\.pdf$')) {
1050
1051            if (googleAnalyticsID != 'UA-00000000-0') {
1052              a.setAttribute('onclick', "ga('send', 'event', 'PDF', 'Download', '" + a.getAttribute("href").substring(a.getAttribute("href").lastIndexOf("/")+1) + " - PDF Download')");
1053            }
1054          }
1055        });
1056        */
1057      }
1058    },
1059    
1060    /**
1061     * HubSpot
1062     */
1063    hubSpot: function() {
1064		let script = document.createElement('script');
1065        script.id = "hs-script-loader"
1066		script.src = 'https://js.hs-scripts.com/9176951.js';
1067        script.async = true
1068		document.body.appendChild(script);
1069    },
1070
1071    /**
1072     * Matomo
1073     */
1074    matomo: function(baseUrl, matomoSiteID) {
1075      if (baseUrl !== 'https://www.domain.de/matomo/') {
1076        var _paq = _paq || [];
1077        _paq.push(["trackPageView"]);
1078        _paq.push(["enableLinkTracking"]);
1079
1080        var u=baseUrl;
1081        _paq.push(["setTrackerUrl", u+"piwik.php"]);
1082        _paq.push(["setSiteId", matomoSiteID]);
1083
1084        var d=document, g=d.createElement("script"), s=d.getElementsByTagName("script")[0]; g.type="text/javascript";
1085        g.defer=true; g.async=true; g.src=u+"piwik.js"; s.parentNode.insertBefore(g,s);
1086      }
1087    },
1088
1089
1090    /**
1091     * Load iframes
1092     */
1093    loadIframes: function() {
1094      if (document.querySelector('.load-iframe') === null) return;
1095      let tmps = document.querySelectorAll('.load-iframe');
1096
1097      for (let i = 0; i < tmps.length; i += 1) {
1098        let tmp = tmps[i],
1099          iframe = document.createElement('iframe');
1100
1101        iframe.src = tmp.getAttribute('data-src');
1102        tmp.appendChild(iframe);
1103
1104        tmp.classList.add('privacy-policy-accepted');
1105      }
1106    },
1107
1108
1109    /**
1110     * Google maps
1111     */
1112    loadMap: function(key) {
1113      if (document.querySelector('.google-maps') === null) return;
1114      if (key === '') return;
1115      let script = document.createElement('script');
1116
1117      script.type = 'text/javascript';
1118      document.getElementsByTagName('body')[0].appendChild(script);
1119      script.src = 'https://maps.googleapis.com/maps/api/js?key='+key+'&language=de&region=de&callback=swe.setMap';
1120    },
1121
1122    /**
1123     * Set the map.
1124     */
1125    setMap: function() {
1126      var map,
1127        marker = [];
1128
1129
1130      var googleMapsEl = document.querySelector('.google-maps'),
1131        Lat = parseFloat(googleMapsEl.getAttribute('data-lat-center')),
1132        Lng = parseFloat(googleMapsEl.getAttribute('data-lng-center')),
1133        customControl = googleMapsEl.getAttribute('data-customControl'),
1134        zoom = parseInt(googleMapsEl.getAttribute('data-zoom')) || 17;
1135
1136
1137      googleMapsEl.classList.add('privacy-policy-accepted');
1138
1139
1140      var data = [];
1141      var newData = {};
1142
1143
1144      var elements = document.querySelectorAll('.google-maps-data');
1145
1146      [].forEach.call(elements, function(element) {
1147        if (element.getAttribute('data-iconImage') == '') {
1148          newData = {
1149            infoWindow: element.getAttribute('data-infoWindow'),
1150            title: element.getAttribute('data-title'),
1151            lat: parseFloat(element.getAttribute('data-lat')),
1152            lng: parseFloat(element.getAttribute('data-lng')),
1153            icon: {
1154              path: 'M0-48c-9.8 0-17.7 7.8-17.7 17.4 0 15.5 17.7 30.6 17.7 30.6s17.7-15.4 17.7-30.6c0-9.6-7.9-17.4-17.7-17.4z',
1155              fillColor: element.getAttribute('data-iconColor') || '#111',
1156              fillOpacity: 1,
1157              strokeColor: '',
1158              strokeWeight: 0
1159            },
1160            description: element.querySelector('.des').innerHTML,
1161          };
1162        } else {
1163          newData = {
1164            infoWindow: element.getAttribute('data-infoWindow'),
1165            title: element.getAttribute('data-title'),
1166            lat: parseFloat(element.getAttribute('data-lat')),
1167            lng: parseFloat(element.getAttribute('data-lng')),
1168            icon: element.getAttribute('data-iconImage'),
1169            description: element.querySelector('.des').innerHTML,
1170          };
1171        }
1172
1173        data.push(newData);
1174      });
1175
1176
1177      var infoWindows = [];
1178      var options = {
1179        zoom: zoom,
1180        minZoom: 3,
1181        disableDefaultUI: true,
1182        scrollwheel: false,
1183        gestureHandling: 'cooperative',
1184        //draggable: window.innerWidth > 1024 ? true : false,
1185        styles: [
1186          {
1187            'featureType': 'all',
1188            'elementType': 'all',
1189            'stylers': [
1190              {
1191                'saturation': '-100'
1192              },
1193              {
1194                'gamma': '1.50'
1195              }
1196            ]
1197          }
1198        ],
1199        mapTypeId: 'roadmap',
1200        center: {lat: Lat, lng: Lng}
1201      };
1202
1203      map = new google.maps.Map(googleMapsEl, options);
1204
1205
1206      Object.keys(data).forEach(function(i) {
1207        marker[i] = new google.maps.Marker({
1208          position: new google.maps.LatLng( data[i].lat, data[i].lng ),
1209          icon: data[i].icon,
1210          optimized: false,
1211          map: map,
1212          title: data[i].title
1213        });
1214
1215        var infowindow = new google.maps.InfoWindow({
1216          content: data[i].description
1217        });
1218
1219        infoWindows.push(infowindow);
1220
1221
1222        marker[i].addListener('click', function() {
1223          if (infowindow) {
1224            for (var x = 0; x < infoWindows.length; x++) {
1225              infoWindows[x].close();
1226            }
1227          }
1228          infoWindows[i].open(map, marker[i]);
1229        });
1230
1231        if (data[i].infoWindow == 1) {
1232          infoWindows[i].open(map, marker[i]);
1233        }
1234      });
1235
1236
1237      // Custom zoom control
1238      if (customControl == 1) {
1239        var zoomControlDiv = document.createElement('div'),
1240          controlUIzoomIn = document.createElement('div'),
1241          controlUIzoomOut = document.createElement('div'),
1242          zoomControl = new CustomZoomControl(zoomControlDiv, map);
1243
1244        function CustomZoomControl (controlDiv, map) {
1245          if (controlUIzoomIn.classList && controlUIzoomOut.classList) {
1246            controlUIzoomIn.classList.add('zoom-in');
1247            controlUIzoomOut.classList.add('zoom-out');
1248          }
1249
1250          controlUIzoomIn.innerHTML = '<i class="fa fa-plus"></i>';
1251          controlUIzoomOut.innerHTML = '<i class="fa fa-minus"></i>';
1252
1253          controlDiv.appendChild(controlUIzoomIn);
1254          controlDiv.appendChild(controlUIzoomOut);
1255
1256          google.maps.event.addDomListener(controlUIzoomIn, 'click', function() {
1257            map.setZoom(map.getZoom()+1);
1258          });
1259
1260          google.maps.event.addDomListener(controlUIzoomOut, 'click', function() {
1261            map.setZoom(map.getZoom()-1);
1262          });
1263        };
1264
1265        map.controls[google.maps.ControlPosition.RIGHT_BOTTOM].push(zoomControlDiv);
1266      }
1267
1268
1269      google.maps.event.addDomListener(window, 'resize', function() {
1270        var center = map.getCenter();
1271        google.maps.event.trigger(map, 'resize');
1272        map.setCenter(center);
1273        map.set('draggable', window.innerWidth > 1024);
1274      });
1275    },
1276
1277
1278    /**
1279     * Images loaded
1280     */
1281    imagesLoaded: function(el, func) {
1282      if (document.querySelector(el) === null) return;
1283      imagesLoaded(document.querySelector(el), func);
1284    },
1285
1286
1287    /**
1288     * Counter
1289     */
1290    counter: function(animation) {
1291      if (document.querySelector(".counter") === null) return;
1292      let counterEls = document.querySelectorAll(".counter"),
1293        counter = [],
1294        options;
1295
1296      // set 1 second timeout for having all fonts loaded
1297      setTimeout(function () {
1298        for (let i = 0; i < counterEls.length; i += 1) {
1299          let counterEl = counterEls[i]
1300          counterEl.setAttribute("id", "count" + i);
1301
1302          options = {
1303            useEasing: true,
1304            useGrouping: true,
1305            separator: '.',
1306            decimal: ',',
1307          };
1308
1309          counter[i] = new CountUp(counterEl.querySelector(".counter__num"), counterEl.getAttribute("data-start"), counterEl.getAttribute("data-end"), 0, 2.5, options);
1310
1311          if (counterEl.querySelector(".counter__info") !== null) {
1312            tippy(counterEl.querySelector(".counter__info"));
1313          }
1314
1315          inView("#count" + i).on("enter", function() {
1316            if (counter[i].error) {
1317              console.error(counter[i].error);
1318              return;
1319            }
1320
1321            if (animation) {
1322              counterEl.querySelector(".counter__num").classList.add("animated");
1323              counterEl.querySelector(".counter__num").classList.add("bounceIn");
1324            }
1325
1326            counter[i].start();
1327          });
1328        }
1329      }, 1000);
1330    },
1331
1332
1333    /**
1334     * Accordion
1335     */
1336    accordion: function() {
1337      if (document.querySelector('.accordion') === null) return;
1338      let elements = document.querySelectorAll('.accordion');
1339
1340      for (let i = 0; i < elements.length; i += 1) {
1341        let element = elements[i]
1342
1343        if (element.querySelector('.accordion__title').classList.contains('accclose')) {
1344          element.querySelector('.accordion__content').style.display = 'none';
1345        }
1346
1347        element.querySelector('.accordion__title').addEventListener('click', function() {
1348          let temps = document.querySelectorAll('.accopen');
1349
1350          if (element.querySelector('.accordion__title').classList.contains('accopen')) {
1351            for (let j = 0; j < temps.length; j += 1) {
1352              let temp = temps[j]
1353              temp.parentNode.querySelector('.accordion__content').style.display = 'none';
1354              temp.classList.remove('accopen');
1355              temp.classList.add('accclose');
1356            }
1357
1358            return;
1359          }
1360
1361          for (let j = 0; j < temps.length; j += 1) {
1362            let temp = temps[j]
1363            temp.parentNode.querySelector('.accordion__content').style.display = 'none';
1364            temp.classList.remove('accopen');
1365            temp.classList.add('accclose');
1366          }
1367
1368          element.querySelector('.accordion__content').style.display = 'block';
1369          element.querySelector('.accordion__title').classList.add('accopen');
1370          element.querySelector('.accordion__title').classList.remove('accclose');
1371
1372          for (let sliderName in sliderInstances) {
1373            if (!sliderInstances.hasOwnProperty(sliderName)) continue;
1374            sliderInstances[sliderName].resize();
1375          }
1376        });
1377      }
1378    },
1379
1380
1381    /**
1382     * Up!
1383     */
1384    up: function(id, el) {
1385      if (document.querySelector(el) === null) return;
1386      let rafTimer,
1387        upScroll = window,
1388        upLink = document.querySelector(el),
1389        anchor = document.querySelector(id);
1390
1391      upLink.addEventListener('click', function(event) {
1392        scroll.animateScroll(anchor);
1393
1394        event.preventDefault();
1395      });
1396
1397      let toggleUp = function() {
1398        if (window.pageYOffset > window.innerHeight / 2 && window.innerWidth > 1024) {
1399          upLink.style.display = 'block';
1400          return;
1401        }
1402
1403        upLink.style.display = 'none';
1404      };
1405
1406
1407      upScroll.addEventListener('scroll', function(event) {
1408        cancelAnimationFrame(rafTimer);
1409        rafTimer = requestAnimationFrame(toggleUp);
1410      });
1411
1412      toggleUp();
1413    },
1414
1415
1416    /**
1417     * Fixed nav
1418     */
1419    fixedNav: function() {
1420      if (document.querySelector('nav.desktop') === null) return;
1421      let sfn,
1422        sfnScroll = window,
1423        sfnTimer,
1424        content = document.querySelector('.content'),
1425        nav = document.querySelector('.fixed-nav'),
1426        topOfNav = nav.offsetTop;
1427
1428      sfn = function() {
1429        if (window.pageYOffset > topOfNav) {
1430          document.body.classList.add('nav-fixed');
1431          content.style.paddingTop = nav.offsetHeight + 'px';
1432          return;
1433        }
1434
1435        document.body.classList.remove('nav-fixed');
1436        content.style.paddingTop = 0;
1437      };
1438
1439
1440      if (document.querySelector('.big-header') !== null) return;
1441
1442      imagesLoaded(nav, function() {
1443        if (window.pageYOffset > topOfNav) {
1444          document.body.classList.add('nav-fixed');
1445          content.style.paddingTop = nav.offsetHeight + 'px';
1446          return;
1447        }
1448
1449        document.body.classList.remove('nav-fixed');
1450        content.style.paddingTop = 0;
1451      });
1452
1453      sfnScroll.addEventListener('scroll', function(event) {
1454        cancelAnimationFrame(sfnTimer);
1455        sfnTimer = requestAnimationFrame(sfn);
1456      });
1457    },
1458
1459    /**
1460     * Same height
1461     */
1462    sameHeight: function(el) {
1463      if (document.querySelector(el) === null) return;
1464
1465      let timer;
1466
1467      let resize = function () {
1468        let elements = document.querySelectorAll(el);
1469
1470        if (!elements || elements.length < 1) return;
1471
1472        let groups = {};
1473
1474        // Get all same-height-groups and their max height.
1475        for (let i = 0; i < elements.length; i += 1) {
1476          elements[i].style.height = '';
1477
1478          let name = elements[i].getAttribute('data-group-name'),
1479            boundingHeight = elements[i].getBoundingClientRect().height,
1480            group = {
1481              height: 0,
1482              elements: [],
1483            };
1484
1485          name = name === null ? 'default' : name;
1486
1487          if (typeof groups[name] === 'undefined') groups[name] = group;
1488
1489          if (boundingHeight > groups[name].height) groups[name].height = boundingHeight;
1490          groups[name].elements.push(elements[i]);
1491        }
1492
1493        // Set max height for each group.
1494        for (let name in groups) {
1495          if (!groups.hasOwnProperty(name)) continue;
1496
1497          let elements = groups[name].elements,
1498            height = groups[name].height + 'px';
1499
1500          // On small devices we use the automatic height.
1501          if (swe.getBreakpoint() === 'small') height = 'auto';
1502
1503          for (let i = 0; i < elements.length; i += 1) {
1504            elements[i].style.height = height;
1505          }
1506        }
1507      };
1508
1509      window.addEventListener('resize', function () {
1510        cancelAnimationFrame(timer);
1511        timer = requestAnimationFrame(resize);
1512      });
1513
1514      if (!_initiated.hasOwnProperty('sameHeight')) {
1515        // set 1 second timeout for having all fonts loaded
1516        setTimeout(function () {
1517          resize();
1518          _initiated['sameHeight'] = true;
1519        }, 1000);
1520      } else {
1521        resize();
1522      }
1523    },
1524
1525
1526    /**
1527     * Same width
1528     */
1529    sameWidth: function(el) {
1530      if (document.querySelector(el) === null) return;
1531      let sW,
1532        sWTimer;
1533
1534      sW = function() {
1535        let elements = document.querySelectorAll(el),
1536          max_width = 0;
1537
1538        if (!elements || elements.length <= 0) return;
1539        let len = elements.length;
1540
1541        // get max width
1542        for (let i = 0; i < len; i += 1) {
1543          // reset width attr
1544          elements[i].style.width = '';
1545
1546          // reset max-width attr
1547          elements[i].style.maxWidth = '';
1548
1549          if (elements[i].getBoundingClientRect().width > max_width) {
1550            max_width = elements[i].getBoundingClientRect().width;
1551          }
1552        }
1553
1554        // set max width to all elements
1555        if (window.innerWidth > max_width) {
1556          for (let i = 0; i < len; i += 1) {
1557            elements[i].style.width = '100%';
1558            elements[i].style.maxWidth = max_width + 'px';
1559          }
1560
1561          return;
1562        }
1563
1564        for (let i = 0; i < len; i += 1) {
1565          elements[i].style.width = max_width + 'px';
1566        }
1567      };
1568
1569      document.querySelector(el).addEventListener('resize', function(event) {
1570        cancelAnimationFrame(sWTimer);
1571        sWTimer = requestAnimationFrame(sW);
1572      });
1573
1574      if (!_initiated.hasOwnProperty('sameWidth')) {
1575        // set 1 second timeout for having all fonts loaded
1576        setTimeout(function () {
1577          sW();
1578          _initiated['sameWidth'] = true;
1579        }, 1000);
1580      } else {
1581        sW();
1582      }
1583    },
1584
1585  };
1586})();
1587
1588
1589/**
1590 * Add '_blank' to PDF-Links
1591 */
1592let links = document.querySelectorAll('a');
1593for (let i = 0; i < links.length; i += 1) {
1594  let a = links[i]
1595  if (!a.hasAttribute('href')) continue;
1596  if (!a.getAttribute('href').match('\\.pdf$')) continue;
1597  a.setAttribute('target', '_blank');
1598}
1599
1600
1601/**
1602 * Column slider
1603 */
1604swe.slider('column', '.slider--column', {
1605  cellAlign: 'left',
1606  cellSelector: '[class*="flex__"]',
1607  groupCells: true,
1608  prevNextButtons: false,
1609  wrapAround: false,
1610  contain: true,
1611});
1612
1613
1614/**
1615 * Touch
1616 */
1617if ('ontouchstart' in window) {
1618  document.body.classList.add('touch');
1619}
1620
1621
1622
1623/**
1624 * Parallax
1625 */
1626if (document.querySelector('.jarallax') !== null) {
1627  jarallax(document.querySelectorAll('.jarallax'), {
1628    speed: 0.8,
1629    imgSize: 'cover'
1630  });
1631}
1632
1633/**
1634 * Config
1635 */
1636var googleAnalyticsID = 'UA-34931210-1',
1637    matomoBaseUrl = 'https://www.domain.de/matomo/',
1638    matomoSiteID = 1,
1639    googleMapsAPIKey = '';
1640
1641/**
1642 * Initiates breakpoint detection.
1643 */
1644swe.initBreakpoint();
1645
1646/**
1647 * Do something if the breakpoint was changed.
1648 */
1649document.addEventListener('breakpoint', function (e) {
1650  // Do something awesome ...
1651});
1652
1653/**
1654 * Datetimepicker
1655 * @param {String} name - Just a name
1656 * @param {String} selector - ID
1657 * @param {Object} options - Optional options object
1658 */
1659swe.datetimepicker('contactForm', '#date', {
1660  // Options ...
1661});
1662
1663/**
1664 * Slider
1665 * @param {String} name - Just a name
1666 * @param {String} selector - Class
1667 * @param {Object} options - Optional options object
1668 */
1669swe.slider('headerSlider', '.slider--header', {
1670  // Options ...
1671	pageDots: false,
1672});
1673
1674swe.slider('contentSlider', '.slider--content', {
1675  // Options ...
1676	pageDots: false,
1677});
1678
1679swe.slider('newsSlider', '.newsStartseiteSlider', {
1680  // Options ...
1681});
1682
1683/* Slider für Bild im Header */
1684swe.slider('carouselSlider', '.carousel-main', {
1685		accessibility: true,
1686        adaptiveHeight: false,
1687        autoPlay: 6000,
1688        pauseAutoPlayOnHover: false,
1689        cellAlign: 'left',
1690        cellSelector: '.carousel-cell',
1691        contain: true,
1692        draggable: false,
1693        freeScroll: false,
1694        groupCells: true,
1695        lazyLoad: false,
1696        prevNextButtons: true,
1697        pageDots: false,
1698        wrapAround: true,
1699        imagesLoaded: true,
1700});
1701
1702/* Slider für Text im Header */
1703swe.slider('carouselNav', '.carousel-nav', {
1704accessibility: true,
1705        adaptiveHeight: false,
1706        autoPlay: false,
1707        pauseAutoPlayOnHover: true,
1708        cellAlign: 'left',
1709        cellSelector: '.carousel-cell',
1710        contain: true,
1711        draggable: false,
1712        freeScroll: false,
1713        groupCells: true,
1714        lazyLoad: false,
1715        prevNextButtons: false,
1716        pageDots: false,
1717        wrapAround: true,
1718        imagesLoaded: true,
1719		asNavFor: ".carousel-main",
1720});
1721
1722/* Header Slider 2025 */
1723swe.slider('headerSlider2025', '.slider--header-2025', {
1724  // Options ...
1725	pageDots: true
1726});
1727
1728/* Blog Slider */
1729swe.slider('blogSlider', '.slider--blog', {
1730  // Options ...
1731	pageDots: true
1732});
1733
1734/**
1735 * Form validation
1736 * @param {String} selector - ID of the submit button
1737 * @param {String} selector - ID of the form
1738 */
1739swe.checkForm('#demoCheck', '#kontakt-form');
1740
1741/**
1742 * Move Mobile Lang
1743 */
1744(function MoveMobileLang() {
1745    let langMenu = document.querySelector('.menu-lang')
1746    let mobileMenu = document.querySelector('.mobile')
1747
1748    if (langMenu && mobileMenu) {
1749        let dropdown = langMenu.querySelector('.dropdown')
1750        dropdown.classList.add('lang-menu-mobile')
1751
1752        if (dropdown) {
1753            let target = mobileMenu.querySelector('.menu-outer')
1754            let secondMenu = mobileMenu.querySelector('.second-menu')
1755            target.firstElementChild.insertBefore(dropdown, secondMenu)
1756            langMenu.remove()
1757        }
1758    }
1759})();
1760
1761/**
1762 * Mobile navigation
1763 * @param {String} selector - Class
1764 * @param {Object} options - Optional options object
1765 */
1766swe.mobileNav('.mobile', {
1767  buttonsSelector: 'nav.desktop button.open-nav',
1768  slidingSide: 'right',
1769});
1770
1771/**
1772 * Tobii
1773 * @param {Object} options - Optional options object
1774 * @see https://github.com/rqrauhvmra/Tobi/blob/v1.9.0/README.md
1775 */
1776var tobi = Tobii({
1777  navText: ['&lsaquo;', '&rsaquo;'],
1778  closeText: '&times;',
1779  zoomText: '<i class="fa fa-expand" aria-hidden="true"></i>',
1780});
1781
1782swe.ankerNav();
1783swe.smoothScroll('.nav-container');
1784swe.accordion();
1785swe.counter('bounceIn');
1786swe.up('#top', '.top');
1787swe.fixedNav();
1788
1789swe.sameHeight('.equal-height');
1790swe.sameWidth('.equal-width');
1791
1792/*
1793 * Datenschutzhinweis
1794 */
1795if (document.querySelector(".dce-privacy") !== null) {
1796  let privacyContainer = document.querySelector(".dce-privacy"),
1797      noteTriggerAllCookies = document.querySelector(".note button.allcookies"),
1798      noteTriggerSaveCookies = document.querySelector(".note button.savecookies"),
1799      noteTriggerEditCookies = document.querySelector(".editCookies"),
1800      noteContainer = document.querySelector(".note"),
1801      checkboxElements = noteContainer.querySelectorAll("input"),
1802      infoButtons = noteContainer.querySelectorAll(".privacy-info"),
1803      bodyContainer = document.querySelector("body");
1804      
1805  [].forEach.call(infoButtons, function(button) {
1806      button.addEventListener("click", function () {
1807          if (this.classList.contains("open")) {
1808              this.classList.remove("open");
1809          } else {
1810              this.classList.add("open");
1811          }
1812      });
1813      
1814  });
1815
1816  if (noteTriggerEditCookies) {
1817      noteTriggerEditCookies.addEventListener("click", function () {
1818        let cookie = swe.getCookie('cookieBanner2019');
1819        
1820        if (cookie === 'Set') {
1821            [].forEach.call(checkboxElements, function(element) {
1822                switch (element.name) {
1823                    case "googleanalytics":
1824                      if (swe.getCookie('cookieGoogleanaltytics') === 'Set') {
1825                          element.checked = true;
1826                      }
1827                      break;
1828                    case "matomo":
1829                      if (swe.getCookie('cookieMatomo') === 'Set') {
1830                          element.checked = true;
1831                      }
1832                      break;
1833                    case "googlemaps":
1834                      if (swe.getCookie('cookieGooglemaps') === 'Set') {
1835                          element.checked = true;
1836                      }
1837                      break;
1838                    case "youtube":
1839                      if (swe.getCookie('cookieYoutube') === 'Set') {
1840                          element.checked = true;
1841                      }
1842                      break;
1843					case "hubspot":
1844                      if (swe.getCookie('cookieHubspot') === 'Set') {
1845                          element.checked = true;
1846                      }
1847                      break;
1848                    default:
1849                      console.log("Element "+element.name+ " unbekannt");
1850                }
1851            });
1852            privacyContainer.style.display = "block";
1853        } else {
1854            privacyContainer.style.display = "block";
1855        }
1856      });
1857  }
1858
1859  noteTriggerAllCookies.addEventListener("click", function () {
1860   
1861    [].forEach.call(checkboxElements, function(element) {
1862        switch (element.name) {
1863            case "googleanalytics":
1864              swe.setCookie('cookieGoogleanaltytics', 'Set', 365);
1865              swe.googleAnalytics(googleAnalyticsID);
1866              break;
1867            case "matomo":
1868              swe.setCookie('cookieMatomo', 'Set', 365);
1869              swe.matomo(matomoBaseUrl, matomoSiteID);
1870              break;
1871            case "googlemaps":
1872              swe.setCookie('cookieGooglemaps', 'Set', 365);
1873              swe.loadMap(googleMapsAPIKey);
1874              break;
1875            case "youtube":
1876              swe.setCookie('cookieYoutube', 'Set', 365);
1877              swe.loadIframes();
1878              swe.responsiveIframe();
1879			case "hubspot":
1880              swe.setCookie('cookieHubspot', 'Set', 365);
1881              swe.hubSpot();
1882              break;
1883            default:
1884              console.log("Element "+element.name+ " unbekannt");
1885        }
1886    });
1887    
1888    swe.setCookie('cookieBanner2019', 'Set', 365);
1889    privacyContainer.style.display = "none";
1890  });
1891
1892  noteTriggerSaveCookies.addEventListener("click", function () {
1893    [].forEach.call(checkboxElements, function(element) {
1894        if (element.checked) {
1895            switch (element.name) {
1896                case "googleanalytics":
1897                  swe.setCookie('cookieGoogleanaltytics', 'Set', 365);
1898                  swe.googleAnalytics(googleAnalyticsID);
1899                  break;
1900                case "matomo":
1901                  swe.setCookie('cookieMatomo', 'Set', 365);
1902                  swe.matomo(matomoBaseUrl, matomoSiteID);
1903                  break;
1904                case "googlemaps":
1905                  swe.setCookie('cookieGooglemaps', 'Set', 365);
1906                  swe.loadMap(googleMapsAPIKey);
1907                  break;
1908                case "youtube":
1909                  swe.setCookie('cookieYoutube', 'Set', 365);
1910                  swe.loadIframes();
1911                  swe.responsiveIframe();
1912                  break;
1913				case "hubspot":
1914                  swe.setCookie('cookieHubspot', 'Set', 365);
1915                  swe.hubSpot();
1916                  break;
1917                default:
1918                  console.log("Element "+element.name+ " unbekannt");
1919            }
1920        } else {
1921            switch (element.name) {
1922                case "googleanalytics":
1923                  swe.setCookie('cookieGoogleanaltytics', '');
1924                  document.cookie = '_gid=; Path=/; Domain=.domain.tld; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';
1925                  document.cookie = '_gat=; Path=/; Domain=.domain.tld; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';
1926                  document.cookie = '_ga=; Path=/; Domain=.domain.tld; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';
1927                  break;
1928                case "matomo":
1929                  swe.setCookie('cookieMatomo', '');
1930                  break;
1931                case "googlemaps":
1932                  swe.setCookie('cookieGooglemaps', '');
1933                  break;
1934                case "youtube":
1935                  swe.setCookie('cookieYoutube', '');
1936                  break;
1937				case "hubspot":
1938                  swe.setCookie('cookieHubspot', '');
1939                  break;
1940                default:
1941                  console.log("Element "+element.name+ " unbekannt");
1942            }
1943        }
1944        
1945    });
1946    
1947    swe.setCookie('cookieBanner2019', 'Set', 365);
1948    privacyContainer.style.display = "none";
1949  });
1950
1951
1952  let cookie = swe.getCookie('cookieBanner2019');
1953
1954  if (cookie === 'Set') {
1955    if (swe.getCookie('cookieGoogleanaltytics') === 'Set') {
1956      swe.googleAnalytics(googleAnalyticsID);
1957    }
1958    if (swe.getCookie('cookieMatomo') === 'Set') {
1959      swe.matomo(matomoBaseUrl, matomoSiteID);
1960    }
1961    if (swe.getCookie('cookieGooglemaps') === 'Set') {
1962      swe.loadMap(googleMapsAPIKey);
1963    }
1964	if (swe.getCookie('cookieHubspot') === 'Set') {
1965      swe.hubSpot();
1966    }
1967
1968    // Iframes
1969    if (swe.getCookie('cookieYoutube') === 'Set') {
1970      swe.loadIframes();
1971      swe.responsiveIframe();
1972    }
1973  } else {
1974    if (bodyContainer.classList.contains("nobanner")) {
1975      privacyContainer.style.display = "none";
1976    } else {
1977      privacyContainer.style.display = "block";
1978    }
1979  }
1980}
1981
1982/**
1983 * Scroll event
1984 */
1985var scrollTicking = false;
1986
1987window.addEventListener('scroll', function () {
1988  if (!scrollTicking) {
1989    window.requestAnimationFrame(function () {
1990      // ...
1991	  let timelineContainer = document.querySelector('.dce-timeline-slide-container');
1992
1993      if (timelineContainer) {
1994		  let yearContainer = document.querySelector('.years-outer-container');
1995
1996          if (window.scrollY >= timelineContainer.offsetTop - 200 && window.scrollY <= timelineContainer.offsetTop + timelineContainer.clientHeight - 100) {
1997              yearContainer.classList.add('years-outer-container-active');
1998          } else {
1999              yearContainer.classList.remove('years-outer-container-active');
2000          }
2001      }
2002      scrollTicking = false;
2003    });
2004  }
2005  scrollTicking = true;
2006});
2007
2008/**
2009 * Resize event
2010 */
2011var resizeTicking = false;
2012
2013window.addEventListener('resize', function () {
2014  if (!resizeTicking) {
2015    window.requestAnimationFrame(function () {
2016      // ...
2017	  if (window.timeline) window.timeline.setElementWidth();
2018      resizeTicking = false;
2019    });
2020  }
2021  resizeTicking = true;
2022});
2023
2024if (document.querySelector(".swe-hotspots") !== null && window.innerWidth > 500) {
2025  var elements = document.querySelectorAll(".swe-hotspots ol li a.hotspot");
2026
2027  for (i = 0; i < elements.length; i++) {
2028    elements[i].addEventListener("click", function (event) {
2029      event.preventDefault();
2030      event.stopPropagation();
2031      if (this.classList.contains("active")) {
2032        var activeHotspots = document.querySelectorAll(".swe-hotspots ol li a.hotspot.active");
2033        for (j=0; j < activeHotspots.length; j++) {
2034          activeHotspots[j].classList.remove("active");
2035        }
2036      } else {
2037        var activeHotspots = document.querySelectorAll(".swe-hotspots ol li a.hotspot.active");
2038        for (j=0; j < activeHotspots.length; j++) {
2039          activeHotspots[j].classList.remove("active");
2040        }        
2041        this.classList.add("active");
2042      }
2043    });
2044  }
2045}
2046                                            
2047/**
2048 *  Timeline
2049 */
2050(function Timeline() {
2051
2052    let exists = document.querySelector('.dce-timeline-slide-container')
2053
2054    let yearClass = 'dce-timeline-slide-year'
2055    let elementClass = 'dce-timeline-slide-element'
2056    let locationClass = 'dce-timeline-slide-container'
2057    let buttonClass = 'dce-timeline-slide-control'
2058
2059    let yearClassActive
2060    let lineClass
2061    let lineClassActive
2062    let elementClassActive
2063
2064    let timelineContainer
2065    let lineBarOuterContainer
2066    let lineBarInnerContainer
2067    let years
2068    let yearsOuter
2069    let elementContainer
2070    let element
2071    let year
2072    let line
2073    let lineBarOuterContainerHeight
2074
2075    let buttonCount = 0;
2076    let _lineHeight = 21.6;
2077    let _elementWidth = 236;
2078
2079    let setObjects = function(i) {
2080        for (let j = 0; j < element.length; j++) {
2081            if (year[0] != null) {
2082                year[j].classList.remove(yearClassActive);
2083            }
2084            line[j].classList.remove(lineClassActive);
2085            element[j].classList.remove(elementClassActive);
2086
2087            line[j].innerHTML = '';
2088        }
2089        if (year[0] != null) {
2090            year[i].classList.add(yearClassActive);
2091        }
2092        line[i].classList.add(lineClassActive);
2093        element[i].classList.add(elementClassActive);
2094
2095        years.style.left = _elementWidth - (i * _elementWidth) + 'px';
2096        lineBarInnerContainer.style.top = lineBarOuterContainerHeight + _lineHeight -
2097            (i * _lineHeight) + 'px';
2098
2099        line[i].innerHTML = year[i].innerHTML;
2100
2101        buttonCount = i;
2102    };
2103
2104    let setOnclickEventListener = function(domObject, i) {
2105        domObject[i].addEventListener('click', function() {
2106            setObjects(i);
2107        });
2108    };
2109
2110    let initClickEvents = function() {
2111        line = document.getElementsByClassName(lineClass);
2112
2113        lineBarOuterContainerHeight = lineBarOuterContainer.clientHeight / 2;
2114        lineBarInnerContainer.style.top = lineBarOuterContainerHeight + _lineHeight + 'px';
2115
2116        for (let i = 0; i < element.length; i++) {
2117            if (year[0] != null) {
2118                setOnclickEventListener(year, i);
2119            }
2120            setOnclickEventListener(line, i);
2121        }
2122
2123        setObjects(0);
2124    };
2125
2126    if (exists) {
2127        yearClass = yearClass.toString();
2128        yearClassActive = yearClass.toString() + '-active';
2129        lineClass = 'line';
2130        lineClassActive = lineClass.toString() + '-active';
2131        elementClass = elementClass.toString();
2132        elementClassActive = elementClass.toString() + '-active';
2133
2134        timelineContainer = document.createElement('div');
2135        lineBarOuterContainer = document.createElement('div');
2136        lineBarInnerContainer = document.createElement('div');
2137        years = document.createElement('div');
2138        yearsOuter = document.createElement('div');
2139        elementContainer = document.createElement('div');
2140
2141        timelineContainer.className = 'timeline-container';
2142        lineBarOuterContainer.className = 'linebar-outer-container';
2143        lineBarInnerContainer.className = 'linebar-inner-container';
2144        years.className = 'years-container';
2145        yearsOuter.className = 'years-outer-container';
2146        elementContainer.className = 'element-container';
2147
2148        lineBarOuterContainer.appendChild(lineBarInnerContainer);
2149        timelineContainer.appendChild(lineBarOuterContainer);
2150        yearsOuter.appendChild(years);
2151        timelineContainer.appendChild(yearsOuter);
2152        timelineContainer.appendChild(elementContainer);
2153
2154        element = document.getElementsByClassName(elementClass);
2155        year = document.getElementsByClassName(yearClass);
2156
2157        for (let i = 0; i < element.length; i++) {
2158            let line = document.createElement('div');
2159            line.className = lineClass;
2160            lineBarInnerContainer.appendChild(line);
2161        }
2162
2163        while (element.length > 0) {
2164            if (year[0] != null) {
2165                years.appendChild(year[0]);
2166            }
2167            elementContainer.appendChild(element[0]);
2168        }
2169
2170        years.style.left = _elementWidth + 'px';
2171        lineBarInnerContainer.style.top = _lineHeight + 'px';
2172
2173        let objectLocation = document.querySelector('.' + locationClass.toString());
2174        objectLocation.appendChild(timelineContainer);
2175
2176        initClickEvents();
2177    }
2178
2179    let setLineHeight = function(height) {
2180        _lineHeight = height;
2181    }
2182
2183    let setElementWidth = function() {
2184        let yearWidth = document.getElementsByClassName(yearClass);
2185        if (yearWidth[0] !== undefined) {
2186            _elementWidth = yearWidth[0].clientWidth;
2187            years.style.left = _elementWidth + 'px';
2188        }
2189
2190    }
2191
2192    let setButton = function() {
2193        let button = document.querySelector('.' + buttonClass);
2194
2195        if (button !== undefined) {
2196            button.addEventListener('click', function() {
2197                if (buttonCount < element.length - 1) {
2198                    setObjects(buttonCount + 1);
2199                } else {
2200                    setObjects(buttonCount);
2201                }
2202            });
2203        }
2204
2205    }
2206
2207    setElementWidth()
2208})();
2209
2210/* Formulare */
2211if (document.querySelector(".powermail_form_2") !== null) {
2212	const checkbox = document.getElementById('powermail_field_lieferadressecheckbox_1')
2213	
2214	checkbox.addEventListener('change', (event) => {
2215		if (event.target.checked) {
2216			document.querySelector('.powermail_fieldset_4').style.display = 'block'; 
2217		} else {
2218			document.querySelector('.powermail_fieldset_4').style.display = 'none'; 
2219		}
2220	})
2221}
2222if (document.querySelector(".powermail_form_3") !== null) {
2223	const checkbox = document.getElementById('powermail_field_abweichendelieferadresse_1')
2224	
2225	checkbox.addEventListener('change', (event) => {
2226		if (event.target.checked) {
2227			document.querySelector('.powermail_fieldset_8').style.display = 'block'; 
2228		} else {
2229			document.querySelector('.powermail_fieldset_8').style.display = 'none'; 
2230		}
2231	})
2232}
2233
2234// Responsive Tabellen
2235if (document.querySelector("table") !== null && window.innerWidth < 600) {
2236  var elements = document.querySelectorAll("table");
2237
2238  for (i = 0; i < elements.length; i++) {
2239	  var wrapper = document.createElement('div')
2240	  wrapper.classList.add('table-scrollable')
2241	  elements[i].parentNode.insertBefore(wrapper, elements[i])
2242      wrapper.appendChild(elements[i])
2243  }
2244}
2245
2246if (document.querySelector("#language_menu")) {
2247  document.querySelector("#language_menu").addEventListener('click', function() {
2248    document.querySelector(".meta-languages").classList.toggle('active');
2249  });
2250}
2251            
2252(function MoveSliderButtons() {
2253    let mainContainer = document.querySelector('.carousel-main')
2254    let navContainer = document.querySelector('.carousel-nav')
2255
2256    if (mainContainer && navContainer) {
2257        let prevBtn = mainContainer.querySelector('.previous')
2258        let nextBtn = mainContainer.querySelector('.next')
2259
2260        if (prevBtn && nextBtn) {
2261            navContainer.appendChild(prevBtn)
2262            navContainer.appendChild(nextBtn)
2263        }
2264    }
2265})();
2266
2267(function ScrollDown() {
2268    let scrollDown = document.querySelector('.scroll-down-text')
2269
2270    if (scrollDown) {
2271        scrollDown.addEventListener('click', function() {
2272            window.scrollBy(0, window.innerHeight - 200)
2273        });
2274    }
2275})();
2276
2277(function SikaProductsForm() {
2278    let txPowermail = document.querySelector('.powermail-container')
2279
2280    let param = 'itemno'
2281    let article
2282
2283    /**
2284     * Get Article No.
2285     */
2286    let setParam = function() {
2287        if (window.location.href.indexOf(param) >= 0) {
2288            let href = window.location.href.split('?')
2289
2290            if (href.length > 1) {
2291                let paramArray = href[1].split('&')
2292
2293                paramArray.forEach(function(p) {
2294                    let result = p.split('=')
2295
2296                    if (result[0] === param) {
2297                        article = result[1]
2298            			window.scrollTo({top: txPowermail.offsetTop - 100, behavior: 'smooth'})
2299                    }
2300                });
2301            }
2302        }
2303    }
2304
2305    if (txPowermail) {
2306        let articleField = txPowermail.querySelector('#powermail_field_artikel_nr')
2307
2308        if (articleField) {
2309            setParam()
2310
2311            if (article) {
2312                articleField.setAttribute('value', article)
2313                //articleField.disabled = true
2314            } else {
2315                txPowermail.classList.add('hidden')
2316            }
2317        }
2318    }
2319})();
2320
2321
2322// DCE Popup
2323if (document.querySelector('.dce-popup') !== null) {
2324  var callButtonClose = document.querySelector('#close-popup');
2325  
2326  callButtonClose.addEventListener('click', function(event) {
2327      document.querySelector('.dce-popup').style.display = "none";
2328  });
2329  
2330  let darkSiteCookie = swe.getCookie('cookiePopup');
2331  
2332  if (darkSiteCookie === 'Set') {
2333    document.querySelector('.dce-popup').style.display = "none";
2334  } else {
2335    document.cookie = 'cookiePopup=Set; expires=; path=/';
2336    document.querySelector('.dce-popup').style.display = "block";
2337  }
2338}
2339
2340(function ReadingTime() {
2341    let readingNotes = document.querySelector('.news-list-notes')
2342    let paragraphs = document.querySelectorAll('p')
2343
2344    if (!readingNotes || !paragraphs) return
2345
2346    let wordCount = 0
2347    let readingTime = 0
2348    let result = ''
2349
2350    paragraphs.forEach(function(paragraph) {
2351        wordCount += paragraph.innerText.split(' ').length
2352    })
2353
2354    readingTime = Math.ceil(wordCount / 200)
2355
2356    /*if (readingTime === 1) {
2357        result = readingTime + ' Minute'
2358    } else {
2359        result = readingTime + ' Minuten'
2360    }*/
2361    result = readingTime
2362
2363    readingNotes.innerText = result
2364})();
2365
2366const viewport = document.querySelector('.slider--header-2025');
2367if (viewport) {
2368  const prevBtn = viewport.querySelector('.flickity-prev-next-button.previous');
2369  const nextBtn = viewport.querySelector('.flickity-prev-next-button.next');
2370  const dotsOl = viewport.querySelector('.flickity-page-dots');
2371  if (prevBtn && nextBtn && dotsOl) {
2372    const wrapper = document.createElement('div');
2373    wrapper.className = 'flickity-controls-wrapper container';
2374    // Insert wrapper before the first button
2375    viewport.insertBefore(wrapper, prevBtn);
2376    // Move the controls into the wrapper
2377    wrapper.appendChild(prevBtn);
2378    wrapper.appendChild(nextBtn);
2379    wrapper.appendChild(dotsOl);
2380  }
2381} else {
2382  console.log('Viewport not found');
2383}
2384const viewports = document.querySelectorAll('.slider--blog');
2385viewports.forEach(function(viewport2) {
2386  if (viewport2) {
2387    const prevBtn = viewport2.querySelector('.flickity-prev-next-button.previous');
2388    const nextBtn = viewport2.querySelector('.flickity-prev-next-button.next');
2389    const dotsOl = viewport2.querySelector('.flickity-page-dots');
2390    if (prevBtn && nextBtn && dotsOl) {
2391      const wrapper = document.createElement('div');
2392      wrapper.className = 'flickity-controls-wrapper';
2393      // Insert wrapper before the first button
2394      viewport2.insertBefore(wrapper, prevBtn);
2395      // Move the controls into the wrapper
2396      wrapper.appendChild(prevBtn);
2397      wrapper.appendChild(nextBtn);
2398      wrapper.appendChild(dotsOl);
2399    }
2400  } else {
2401    console.log('Viewport not found');
2402  }
2403})
2404
2405
2406/**
2407 * Such Button 
2408 */
2409if (document.getElementById('search-icon')) {
2410	document.getElementById('search-icon').addEventListener('click', function () {
2411		document.getElementById('searchbox').classList.toggle('active');
2412		document.querySelector('#searchbox #tx-solr-search-form-pi-results .tx-solr-q').focus();
2413	});
2414}
2415
2416if (document.getElementById('search-close')) {
2417	document.getElementById('search-close').addEventListener('click', function () {
2418		document.getElementById('searchbox').classList.toggle('active');
2419	});
2420}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.