function initCarousels(){function wrapSlickDots($carousel){$carousel.find('.slick-dots button').each(function(){if($(this).find('span').length===0){$(this).wrapInner('')}})} let $carousel=$('.carousel');if($carousel.length>0){$carousel.each(function(){initCarousel($(this));wrapSlickDots($(this)) $(this).on('breakpoint',function(){wrapSlickDots($(this))})})}} function initCarousel($carousel,slideTargetSelector,$controls){if($carousel.length>0){let autoplay=$carousel.data('autoplay')!='False'&&$carousel.data('autoplay-speed')>0?true:false;let autoplaySpeed=$carousel.data('autoplay-speed')>0?$carousel.data('autoplay-speed')*1000:0;let hideArrows=$carousel.data('hide-arrows')=='True'?true:false;let hideDots=$carousel.data('hide-dots')=='True'?true:false;let slidesToShow=$carousel.data('slides-to-show')>0?$carousel.data('slides-to-show'):1;let slidesToShowMob=$carousel.data('slides-to-show-mob')>0?$carousel.data('slides-to-show-mob'):1;let slidesToShowTab=$carousel.data('slides-to-show-tab')>0?$carousel.data('slides-to-show-tab'):1;let slideFade=$carousel.data('fade')=="True"?true:false;let centreMode=$carousel.data('centre-mode')=='True'?true:false;let centreModeMob=$carousel.data('centre-mode-mob')=='True'?true:false;let variableWidth=$carousel.data('variable-width')=='True'?true:false;let infinite=$carousel.data('finite')=='True'?false:true;$controls=$controls?$controls:$carousel.parents('div[class*="block-"]').find('.carousel-controls');let prevArrow=$controls.length>0?$controls.find('.slick-prev'):'';let nextArrow=$controls.length>0?$controls.find('.slick-next'):'';$carousel.slick({autoplay:autoplay,autoplaySpeed:autoplaySpeed,arrows:!hideArrows,centerMode:centreMode,dots:!hideDots,fade:slideFade,infinite,pauseOnFocus:false,pauseOnHover:false,pauseOnDotsHover:false,slidesToShow:slidesToShow,slidesToScroll:1,slide:slideTargetSelector,variableWidth:variableWidth,prevArrow:prevArrow,nextArrow:nextArrow,rows:0,responsive:[{breakpoint:992,settings:{slidesToShow:slidesToShowTab,slidesToScroll:1}},{breakpoint:768,settings:{slidesToShow:slidesToShowMob,slidesToScroll:1,centerMode:centreModeMob}}]});if($carousel.siblings('.carousel-progress')){$carousel.on('setPosition',function(event,slick,currentSlide,nextSlide){setProgress(slick);});$carousel.on('beforeChange',function(event,slick,currentSlide,nextSlide){setTimeout(function(){setProgress(slick);},100)});$carousel.slick('slickSetOption',{dots:true},true);if(hideDots){$carousel.find('.slick-dots').css('display','none');}}}} function setProgress(slick){if(slick&&slick.$slider&&slick.$dots){var calc=((slick.$dots.find('.slick-active').index()+1)/slick.$dots.children().length)*100;slick.$slider.siblings('.carousel-progress').css('background-size',calc+'% 100%').attr('aria-valuenow',calc);slick.$slider.siblings('.carousel-progress').find('.carousel-progress-label').text(calc+'% completed');}} function terminateCarousel($carousel){if(!$carousel)return;if($carousel.hasClass("slick-initialized")){$carousel.slick("unslick");}} function refreshCarousel($carousel,slideTargetSelector,$controls){if(!$carousel)return;if($carousel.hasClass("slick-initialized")){$carousel.slick("refresh");}else{initCarousel($carousel,slideTargetSelector,$controls);}} $(document).ready(function(){initCarousels();});;; $('.footer-links').each(function(){let trigger=$(this).find('.title');trigger.bind('click',function(){$(this).toggleClass('is-active');$(this).siblings().slideToggle();});});;; let pageSearcher=()=>{return{result:{items:[],total:0,pages:0},query:{Keyword:'',Page:1,Limit:5},search(){fetch('/Umbraco/Api/Search/PageSearch',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(this.query)}).then(response=>response.json()).then(data=>this.result=data);},init(){let self=this;let primarySearch=$('.primary-search');if(primarySearch.length>0){let primarySearchTrigger=$('.primary-search-trigger');let primarySearchInput=primarySearch.find('.primary-search-form-input');let primarySearchClose=primarySearch.find('.primary-search-close');primarySearchTrigger.click(function(){primarySearch.addClass('active');primarySearchInput.focus();primarySearchTrigger.attr('aria-expanded',true);primarySearchClose.attr('aria-expanded',true);});primarySearchClose.click(function(){primarySearch.removeClass('active');primarySearchResults.removeClass('active');primarySearchTrigger.focus();primarySearchTrigger.attr('aria-expanded',false);primarySearchClose.attr('aria-expanded',false);setTimeout(function(){primarySearchInput.val('');self.query.Keyword=primarySearchInput.val();self.result=[];},500);});let primarySearchForm=primarySearch.find('.primary-search-form');primarySearchForm.one('submit',function(e){e.preventDefault();pushEventToDataLayer('General Search Event',primarySearchInput.val());$(this).submit();});let primarySearchSubmitTrigger=primarySearch.find('.primary-search-submit-trigger');if(primarySearchForm.length>0&&primarySearchSubmitTrigger.length>0){primarySearchSubmitTrigger.click(function(e){e.preventDefault();pushEventToDataLayer('General Search Event',primarySearchInput.val());primarySearchForm.submit();});} let primarySearchResults=primarySearch.find('.primary-search-results');primarySearchResults.on('click','a',function(e){e.preventDefault();pushEventToDataLayer('General Search Event',primarySearchInput.val());window.location=$(this).attr('href');});primarySearchInput.on('keyup',function(){if(primarySearchInput.val().length>3){self.query.Keyword=primarySearchInput.val();self.search();if(!primarySearchResults.hasClass('active')){primarySearchResults.addClass('active');}} else{if(primarySearchResults.hasClass('active')){primarySearchResults.removeClass('active');}}});}}}};;; function pushEventToDataLayer(event,query){if(event.length>0&&query.length>0){window.dataLayer=window.dataLayer||[];window.dataLayer.push({'event':event,'query':query.toLowerCase()});}};; function initAnchors(){let anchorLinks=$('[data-anchor^="#"]');if(anchorLinks.length>0){let viewport=$(window);let headerHeight=$('#header').outerHeight(true);anchorLinks.click(function(e){let anchor=$($(this).data('anchor'));if(anchor.length>0){e.preventDefault();$('html, body').animate({scrollTop:anchor.offset().top-headerHeight},2000);}});viewport.resize(function(){headerHeight=$('#header').outerHeight(true);});}} $(document).ready(function(){initAnchors();});;; $(document).ready(function(){let popups=[] let active=false let queue=[] const triggers={idleTime:()=>{return{register:(elem,config)=>{let time window.onload=resetTimer document.onmousemove=resetTimer document.onkeydown=resetTimer const seconds=config.Triggers.find(x=>x.Alias==='idleTime').Properties.seconds*1000 function resetTimer(){clearTimeout(time) time=setTimeout(()=>{show({elem:elem,config:config},'idleTime')},seconds)}}}},scrollDepth:()=>{let activated=false let scrollDepthPopups=[] const debounce=(callback,wait)=>{let timeoutId=null return(...args)=>{window.clearTimeout(timeoutId) timeoutId=window.setTimeout(()=>{callback.apply(null,args)},wait)}} return{register:(elem,config)=>{const percentage=config.Triggers.find(x=>x.Alias==='scrollDepth').Properties.percentage scrollDepthPopups.push({elem:elem,config:config,percentage:percentage}) if(activated===false){const handleScroll=debounce(e=>{const scrollPercentage=Math.round(window.scrollY/(document.body.offsetHeight-window.innerHeight)*100) scrollDepthPopups.filter(x=>x.percentage<=scrollPercentage).forEach(x=>{show({elem:x.elem,config:x.config},'scrollDepth') const index=scrollDepthPopups.findIndex(x=>x.config.Id===x.config.Id) scrollDepthPopups.splice(index,1) if(scrollDepthPopups.length===0){document.removeEventListener('scroll',handleScroll)}})},250) document.addEventListener('scroll',handleScroll) activated=true}}}},delay:()=>{return{register:(elem,config)=>{const seconds=config.Triggers.find(x=>x.Alias==='delay').Properties.seconds*1000 setTimeout(()=>{show({elem:elem,config:config},'delay')},seconds)}}}} function show(popup,trigger){const index=popups.findIndex(x=>x.config.Id===popup.config.Id) if(index>-1){queue.push({popup:popup,trigger:trigger}) popups.splice(index,1) checkQueue()}} function close(popup,trigger){sendEvent(popup.config.AnalyticsName,trigger) popup.elem.removeClass('popup-active') popup.elem.attr('aria-hidden','true') active=false checkQueue() setCookie(popup.config.CookieName,popup.config.CookieDuration) setTimeout(()=>{popup.elem.remove()},2000)} function checkQueue(){if(active===false&&queue.length>0){sendEvent(queue[0].popup.config.AnalyticsName,queue[0].trigger) queue[0].popup.elem.addClass('popup-active') queue[0].popup.elem.attr('aria-hidden','false') queue.splice(0,1) active=true}} function sendEvent(name,action){if(typeof(ga)!=='undefined'){ga('send',{hitType:'event',eventCategory:'Popups',eventAction:action,eventLabel:name})}} function setCookie(name,duration){const date=new Date() date.setTime(date.getTime()+(duration*24*60*60*1000)) const expires=';expires='+date.toUTCString() const value='1' document.cookie=name+'='+value+';'+expires+';Path=/; Secure'} $('.popup').each(function(){const elem=$(this) const json=elem.find('script[type="application/json"]').text() if(json){const config=JSON.parse(elem.find('script[type="application/json"]').text()) popups.push({elem:elem,config:config}) if(config.Triggers?.length>0){config.Triggers.forEach(trigger=>{triggers[trigger.Alias]().register(elem,config)})}else{show({elem:elem,config:config},'load')} elem.find('.popup-close').click(()=>{close({elem:elem,config:config},'close')}) elem.find('.popup-decline').click(()=>{close({elem:elem,config:config},'decline')}) if(elem.hasClass('popup-backdrop')){elem.on('click',e=>{if(e.target===elem[0]){close({elem:elem,config:config},'close')}})} elem.find('a').on('click',()=>{setCookie(config.CookieName,config.CookieDuration) sendEvent(config.AnalyticsName,'clickedLink')})}})});;; document.addEventListener('alpine:init',()=>{Alpine.data('countdown',(date)=>({date:Date.parse(date),digits:{days:0,hours:0,minutes:0,seconds:0},interval:null,format(number){return Math.floor(number).toString().padStart(2,'0')},refresh(){const total=this.date-Date.parse(new Date()) this.digits.seconds=total>0?this.format((total/1000)%60):'00' this.digits.minutes=total>0?this.format((total/1000/60)%60):'00' this.digits.hours=total>0?this.format((total/(1000*60*60))%24):'00' this.digits.days=total>0?this.format(total/(1000*60*60*24)):'00' return total},init(){this.interval=setInterval(()=>{const total=this.refresh() if(total<=0){clearInterval(this.interval)}},1000)}}))});;; (()=>{var Ve=!1,He=!1,ee=[];function Rt(e){Xr(e)}function Xr(e){ee.includes(e)||ee.push(e),en()}function en(){!He&&!Ve&&(Ve=!0,queueMicrotask(tn))}function tn(){Ve=!1,He=!0;for(let e=0;ee.effect(t,{scheduler:r=>{Ue?Rt(r):r()}}),qe=e.raw}function We(e){k=e}function kt(e){let t=()=>{};return[n=>{let i=k(n);e._x_effects||(e._x_effects=new Set,e._x_runEffects=()=>{e._x_effects.forEach(o=>o())}),e._x_effects.add(i),t=()=>{i!==void 0&&(e._x_effects.delete(i),G(i))}},()=>{t()}]}var Pt=[],It=[],Dt=[];function $t(e){Dt.push(e)}function Lt(e){It.push(e)}function jt(e){Pt.push(e)}function Ft(e,t,r){e._x_attributeCleanups||(e._x_attributeCleanups={}),e._x_attributeCleanups[t]||(e._x_attributeCleanups[t]=[]),e._x_attributeCleanups[t].push(r)}function Ge(e,t){!e._x_attributeCleanups||Object.entries(e._x_attributeCleanups).forEach(([r,n])=>{(t===void 0||t.includes(r))&&(n.forEach(i=>i()),delete e._x_attributeCleanups[r])})}var Je=new MutationObserver(Ye),Ze=!1;function Qe(){Je.observe(document,{subtree:!0,childList:!0,attributes:!0,attributeOldValue:!0}),Ze=!0}function nn(){rn(),Je.disconnect(),Ze=!1}var te=[],Xe=!1;function rn(){te=te.concat(Je.takeRecords()),te.length&&!Xe&&(Xe=!0,queueMicrotask(()=>{on(),Xe=!1}))}function on(){Ye(te),te.length=0}function m(e){if(!Ze)return e();nn();let t=e();return Qe(),t}var et=!1,he=[];function Kt(){et=!0}function zt(){et=!1,Ye(he),he=[]}function Ye(e){if(et){he=he.concat(e);return}let t=[],r=[],n=new Map,i=new Map;for(let o=0;os.nodeType===1&&t.push(s)),e[o].removedNodes.forEach(s=>s.nodeType===1&&r.push(s))),e[o].type==="attributes")){let s=e[o].target,a=e[o].attributeName,c=e[o].oldValue,l=()=>{n.has(s)||n.set(s,[]),n.get(s).push({name:a,value:s.getAttribute(a)})},u=()=>{i.has(s)||i.set(s,[]),i.get(s).push(a)};s.hasAttribute(a)&&c===null?l():s.hasAttribute(a)?(u(),l()):u()}i.forEach((o,s)=>{Ge(s,o)}),n.forEach((o,s)=>{Pt.forEach(a=>a(s,o))});for(let o of r)t.includes(o)||It.forEach(s=>s(o));t.forEach(o=>{o._x_ignoreSelf=!0,o._x_ignore=!0});for(let o of t)r.includes(o)||!o.isConnected||(delete o._x_ignoreSelf,delete o._x_ignore,Dt.forEach(s=>s(o)),o._x_ignore=!0,o._x_ignoreSelf=!0);t.forEach(o=>{delete o._x_ignoreSelf,delete o._x_ignore}),t=null,r=null,n=null,i=null}function _e(e){return I(P(e))}function C(e,t,r){return e._x_dataStack=[t,...P(r||e)],()=>{e._x_dataStack=e._x_dataStack.filter(n=>n!==t)}}function tt(e,t){let r=e._x_dataStack[0];Object.entries(t).forEach(([n,i])=>{r[n]=i})}function P(e){return e._x_dataStack?e._x_dataStack:typeof ShadowRoot=="function"&&e instanceof ShadowRoot?P(e.host):e.parentNode?P(e.parentNode):[]}function I(e){let t=new Proxy({},{ownKeys:()=>Array.from(new Set(e.flatMap(r=>Object.keys(r)))),has:(r,n)=>e.some(i=>i.hasOwnProperty(n)),get:(r,n)=>(e.find(i=>{if(i.hasOwnProperty(n)){let o=Object.getOwnPropertyDescriptor(i,n);if(o.get&&o.get._x_alreadyBound||o.set&&o.set._x_alreadyBound)return!0;if((o.get||o.set)&&o.enumerable){let s=o.get,a=o.set,c=o;s=s&&s.bind(t),a=a&&a.bind(t),s&&(s._x_alreadyBound=!0),a&&(a._x_alreadyBound=!0),Object.defineProperty(i,n,{...c,get:s,set:a})}return!0}return!1})||{})[n],set:(r,n,i)=>{let o=e.find(s=>s.hasOwnProperty(n));return o?o[n]=i:e[e.length-1][n]=i,!0}});return t}function ge(e){let t=n=>typeof n=="object"&&!Array.isArray(n)&&n!==null,r=(n,i="")=>{Object.entries(Object.getOwnPropertyDescriptors(n)).forEach(([o,{value:s,enumerable:a}])=>{if(a===!1||s===void 0)return;let c=i===""?o:`${i}.${o}`;typeof s=="object"&&s!==null&&s._x_interceptor?n[o]=s.initialize(e,c,o):t(s)&&s!==n&&!(s instanceof Element)&&r(s,c)})};return r(e)}function xe(e,t=()=>{}){let r={initialValue:void 0,_x_interceptor:!0,initialize(n,i,o){return e(this.initialValue,()=>sn(n,i),s=>rt(n,i,s),i,o)}};return t(r),n=>{if(typeof n=="object"&&n!==null&&n._x_interceptor){let i=r.initialize.bind(r);r.initialize=(o,s,a)=>{let c=n.initialize(o,s,a);return r.initialValue=c,i(o,s,a)}}else r.initialValue=n;return r}}function sn(e,t){return t.split(".").reduce((r,n)=>r[n],e)}function rt(e,t,r){if(typeof t=="string"&&(t=t.split(".")),t.length===1)e[t[0]]=r;else{if(t.length===0)throw error;return e[t[0]]||(e[t[0]]={}),rt(e[t[0]],t.slice(1),r)}}var Bt={};function y(e,t){Bt[e]=t}function re(e,t){return Object.entries(Bt).forEach(([r,n])=>{Object.defineProperty(e,`$${r}`,{get(){return n(t,{Alpine:R,interceptor:xe})},enumerable:!1})}),e}function Vt(e,t,r,...n){try{return r(...n)}catch(i){Y(i,e,t)}}function Y(e,t,r=void 0){Object.assign(e,{el:t,expression:r}),console.warn(`Alpine Expression Error: ${e.message} ${r?'Expression: "'+r+`" `:""}`,t),setTimeout(()=>{throw e},0)}function w(e,t,r={}){let n;return h(e,t)(i=>n=i,r),n}function h(...e){return Ht(...e)}var Ht=nt;function qt(e){Ht=e}function nt(e,t){let r={};re(r,e);let n=[r,...P(e)];if(typeof t=="function")return an(n,t);let i=cn(n,t,e);return Vt.bind(null,e,t,i)}function an(e,t){return(r=()=>{},{scope:n={},params:i=[]}={})=>{let o=t.apply(I([n,...e]),i);ye(r,o)}}var it={};function ln(e,t){if(it[e])return it[e];let r=Object.getPrototypeOf(async function(){}).constructor,n=/^[\n\s]*if.*\(.*\)/.test(e)||/^(let|const)\s/.test(e)?`(() => { ${e} })()`:e,o=(()=>{try{return new r(["__self","scope"],`with (scope) { __self.result = ${n} }; __self.finished = true; return __self.result;`)}catch(s){return Y(s,t,e),Promise.resolve()}})();return it[e]=o,o}function cn(e,t,r){let n=ln(t,r);return(i=()=>{},{scope:o={},params:s=[]}={})=>{n.result=void 0,n.finished=!1;let a=I([o,...e]);if(typeof n=="function"){let c=n(n,a).catch(l=>Y(l,r,t));n.finished?(ye(i,n.result,a,s,r),n.result=void 0):c.then(l=>{ye(i,l,a,s,r)}).catch(l=>Y(l,r,t)).finally(()=>n.result=void 0)}}}function ye(e,t,r,n,i){if(typeof t=="function"){let o=t.apply(r,n);o instanceof Promise?o.then(s=>ye(e,s,r,n)).catch(s=>Y(s,i,t)):e(o)}else e(t)}var ot="x-";function E(e=""){return ot+e}function Ut(e){ot=e}var Wt={};function p(e,t){Wt[e]=t}function ne(e,t,r){let n={};return Array.from(t).map(Gt((o,s)=>n[o]=s)).filter(Yt).map(fn(n,r)).sort(dn).map(o=>un(e,o))}function Jt(e){return Array.from(e).map(Gt()).filter(t=>!Yt(t))}var st=!1,ie=new Map,Zt=Symbol();function Qt(e){st=!0;let t=Symbol();Zt=t,ie.set(t,[]);let r=()=>{for(;ie.get(t).length;)ie.get(t).shift()();ie.delete(t)},n=()=>{st=!1,r()};e(r),n()}function un(e,t){let r=()=>{},n=Wt[t.type]||r,i=[],o=d=>i.push(d),[s,a]=kt(e);i.push(a);let c={Alpine:R,effect:s,cleanup:o,evaluateLater:h.bind(h,e),evaluate:w.bind(w,e)},l=()=>i.forEach(d=>d());Ft(e,t.original,l);let u=()=>{e._x_ignore||e._x_ignoreSelf||(n.inline&&n.inline(e,t,c),n=n.bind(n,e,t,c),st?ie.get(Zt).push(n):n())};return u.runCleanups=l,u}var be=(e,t)=>({name:r,value:n})=>(r.startsWith(e)&&(r=r.replace(e,t)),{name:r,value:n}),ve=e=>e;function Gt(e=()=>{}){return({name:t,value:r})=>{let{name:n,value:i}=Xt.reduce((o,s)=>s(o),{name:t,value:r});return n!==t&&e(n,t),{name:n,value:i}}}var Xt=[];function J(e){Xt.push(e)}function Yt({name:e}){return er().test(e)}var er=()=>new RegExp(`^${ot}([^:^.]+)\\b`);function fn(e,t){return({name:r,value:n})=>{let i=r.match(er()),o=r.match(/:([a-zA-Z0-9\-:]+)/),s=r.match(/\.[^.\]]+(?=[^\]]*$)/g)||[],a=t||e[r]||r;return{type:i?i[1]:null,value:o?o[1]:null,modifiers:s.map(c=>c.replace(".","")),expression:n,original:a}}}var at="DEFAULT",we=["ignore","ref","data","id","bind","init","for","model","transition","show","if",at,"teleport","element"];function dn(e,t){let r=we.indexOf(e.type)===-1?at:e.type,n=we.indexOf(t.type)===-1?at:t.type;return we.indexOf(r)-we.indexOf(n)}function K(e,t,r={}){e.dispatchEvent(new CustomEvent(t,{detail:r,bubbles:!0,composed:!0,cancelable:!0}))}var ct=[],lt=!1;function Se(e){ct.push(e),queueMicrotask(()=>{lt||setTimeout(()=>{Ee()})})}function Ee(){for(lt=!1;ct.length;)ct.shift()()}function tr(){lt=!0}function D(e,t){if(typeof ShadowRoot=="function"&&e instanceof ShadowRoot){Array.from(e.children).forEach(i=>D(i,t));return}let r=!1;if(t(e,()=>r=!0),r)return;let n=e.firstElementChild;for(;n;)D(n,t,!1),n=n.nextElementSibling}function z(e,...t){console.warn(`Alpine Warning: ${e}`,...t)}function nr(){document.body||z("Unable to initialize. Trying to load Alpine before `` is available. Did you forget to add `defer` in Alpine's `