class Siema{constructor(options){this.config=Siema.mergeSettings(options);this.selector=typeof this.config.selector==='string'?document.querySelector(this.config.selector):this.config.selector;if(this.selector===null){throw new Error('Something wrong with your selector 😭');}
this.resolveSlidesNumber();this.selectorWidth=this.selector.offsetWidth;this.innerElements=[].slice.call(this.selector.children);this.currentSlide=this.config.loop?this.config.startIndex%this.innerElements.length:Math.max(0,Math.min(this.config.startIndex,this.innerElements.length-this.perPage));this.transformProperty=Siema.webkitOrNot();['resizeHandler','touchstartHandler','touchendHandler','touchmoveHandler','mousedownHandler','mouseupHandler','mouseleaveHandler','mousemoveHandler','clickHandler'].forEach(method=>{this[method]=this[method].bind(this);});this.init();}
static mergeSettings(options){const settings={selector:'.siema',duration:200,easing:'ease-out',perPage:1,startIndex:0,draggable:true,multipleDrag:true,threshold:20,loop:false,rtl:false,onInit:()=>{},onChange:()=>{}};const userSttings=options;for(const attrname in userSttings){settings[attrname]=userSttings[attrname];}
return settings;}
static webkitOrNot(){const style=document.documentElement.style;if(typeof style.transform==='string'){return'transform';}
return'WebkitTransform';}
attachEvents(){window.addEventListener('resize',this.resizeHandler);if(this.config.draggable){this.pointerDown=false;this.drag={startX:0,endX:0,startY:0,letItGo:null,preventClick:false};this.selector.addEventListener('touchstart',this.touchstartHandler,{passive:true});this.selector.addEventListener('touchend',this.touchendHandler,{passive:true});this.selector.addEventListener('touchmove',this.touchmoveHandler,{passive:true});this.selector.addEventListener('mousedown',this.mousedownHandler);this.selector.addEventListener('mouseup',this.mouseupHandler);this.selector.addEventListener('mouseleave',this.mouseleaveHandler);this.selector.addEventListener('mousemove',this.mousemoveHandler);this.selector.addEventListener('click',this.clickHandler);}}
detachEvents(){window.removeEventListener('resize',this.resizeHandler);this.selector.removeEventListener('touchstart',this.touchstartHandler);this.selector.removeEventListener('touchend',this.touchendHandler);this.selector.removeEventListener('touchmove',this.touchmoveHandler);this.selector.removeEventListener('mousedown',this.mousedownHandler);this.selector.removeEventListener('mouseup',this.mouseupHandler);this.selector.removeEventListener('mouseleave',this.mouseleaveHandler);this.selector.removeEventListener('mousemove',this.mousemoveHandler);this.selector.removeEventListener('click',this.clickHandler);}
init(){this.attachEvents();this.selector.style.overflow='hidden';this.selector.style.direction=this.config.rtl?'rtl':'ltr';this.buildSliderFrame();this.config.onInit.call(this);}
buildSliderFrame(){const widthItem=this.selectorWidth/this.perPage;const itemsToBuild=this.config.loop?this.innerElements.length+2*this.perPage:this.innerElements.length;this.sliderFrame=document.createElement('div');this.sliderFrame.style.width=`${widthItem * itemsToBuild}px`;this.enableTransition();if(this.config.draggable){this.selector.style.cursor='-webkit-grab';}
const docFragment=document.createDocumentFragment();if(this.config.loop){for(let i=this.innerElements.length-this.perPage;i<this.innerElements.length;i++){const element=this.buildSliderFrameItem(this.innerElements[i].cloneNode(true));docFragment.appendChild(element);}}
for(let i=0;i<this.innerElements.length;i++){const element=this.buildSliderFrameItem(this.innerElements[i]);docFragment.appendChild(element);}
if(this.config.loop){for(let i=0;i<this.perPage;i++){const element=this.buildSliderFrameItem(this.innerElements[i].cloneNode(true));docFragment.appendChild(element);}}
this.sliderFrame.appendChild(docFragment);this.selector.innerHTML='';this.selector.appendChild(this.sliderFrame);this.slideToCurrent();}
buildSliderFrameItem(elm){const elementContainer=document.createElement('div');elementContainer.style.cssFloat=this.config.rtl?'right':'left';elementContainer.style.float=this.config.rtl?'right':'left';elementContainer.style.width=`${this.config.loop ? 100 / (this.innerElements.length + this.perPage * 2) : 100 / this.innerElements.length}%`;elementContainer.appendChild(elm);return elementContainer;}
resolveSlidesNumber(){if(typeof this.config.perPage==='number'){this.perPage=this.config.perPage;}else if(typeof this.config.perPage==='object'){this.perPage=1;for(const viewport in this.config.perPage){if(window.innerWidth>=viewport){this.perPage=this.config.perPage[viewport];}}}}
prev(howManySlides=1,callback){if(this.innerElements.length<=this.perPage){return;}
const beforeChange=this.currentSlide;if(this.config.loop){const isNewIndexClone=this.currentSlide-howManySlides<0;if(isNewIndexClone){this.disableTransition();const mirrorSlideIndex=this.currentSlide+this.innerElements.length;const mirrorSlideIndexOffset=this.perPage;const moveTo=mirrorSlideIndex+mirrorSlideIndexOffset;const offset=(this.config.rtl?1:-1)*moveTo*(this.selectorWidth/this.perPage);const dragDistance=this.config.draggable?this.drag.endX-this.drag.startX:0;this.sliderFrame.style[this.transformProperty]=`translate3d(${offset + dragDistance}px, 0, 0)`;this.currentSlide=mirrorSlideIndex-howManySlides;}else{this.currentSlide=this.currentSlide-howManySlides;}}else{this.currentSlide=Math.max(this.currentSlide-howManySlides,0);}
if(beforeChange!==this.currentSlide){this.slideToCurrent(this.config.loop);this.config.onChange.call(this);if(callback){callback.call(this);}}}
next(howManySlides=1,callback){if(this.innerElements.length<=this.perPage){return;}
const beforeChange=this.currentSlide;if(this.config.loop){const isNewIndexClone=this.currentSlide+howManySlides>this.innerElements.length-this.perPage;if(isNewIndexClone){this.disableTransition();const mirrorSlideIndex=this.currentSlide-this.innerElements.length;const mirrorSlideIndexOffset=this.perPage;const moveTo=mirrorSlideIndex+mirrorSlideIndexOffset;const offset=(this.config.rtl?1:-1)*moveTo*(this.selectorWidth/this.perPage);const dragDistance=this.config.draggable?this.drag.endX-this.drag.startX:0;this.sliderFrame.style[this.transformProperty]=`translate3d(${offset + dragDistance}px, 0, 0)`;this.currentSlide=mirrorSlideIndex+howManySlides;}else{this.currentSlide=this.currentSlide+howManySlides;}}else{this.currentSlide=Math.min(this.currentSlide+howManySlides,this.innerElements.length-this.perPage);}
if(beforeChange!==this.currentSlide){this.slideToCurrent(this.config.loop);this.config.onChange.call(this);if(callback){callback.call(this);}}}
disableTransition(){this.sliderFrame.style.webkitTransition=`all 0ms ${this.config.easing}`;this.sliderFrame.style.transition=`all 0ms ${this.config.easing}`;}
enableTransition(){this.sliderFrame.style.webkitTransition=`all ${this.config.duration}ms ${this.config.easing}`;this.sliderFrame.style.transition=`all ${this.config.duration}ms ${this.config.easing}`;}
goTo(index,callback){if(this.innerElements.length<=this.perPage){return;}
const beforeChange=this.currentSlide;this.currentSlide=this.config.loop?index%this.innerElements.length:Math.min(Math.max(index,0),this.innerElements.length-this.perPage);if(beforeChange!==this.currentSlide){this.slideToCurrent();this.config.onChange.call(this);if(callback){callback.call(this);}}}
slideToCurrent(enableTransition){const currentSlide=this.config.loop?this.currentSlide+this.perPage:this.currentSlide;const offset=(this.config.rtl?1:-1)*currentSlide*(this.selectorWidth/this.perPage);if(enableTransition){requestAnimationFrame(()=>{requestAnimationFrame(()=>{this.enableTransition();this.sliderFrame.style[this.transformProperty]=`translate3d(${offset}px, 0, 0)`;});});}else{this.sliderFrame.style[this.transformProperty]=`translate3d(${offset}px, 0, 0)`;}}
updateAfterDrag(){const movement=(this.config.rtl?-1:1)*(this.drag.endX-this.drag.startX);const movementDistance=Math.abs(movement);const howManySliderToSlide=this.config.multipleDrag?Math.ceil(movementDistance/(this.selectorWidth/this.perPage)):1;const slideToNegativeClone=movement>0&&this.currentSlide-howManySliderToSlide<0;const slideToPositiveClone=movement<0&&this.currentSlide+howManySliderToSlide>this.innerElements.length-this.perPage;if(movement>0&&movementDistance>this.config.threshold&&this.innerElements.length>this.perPage){this.prev(howManySliderToSlide);}else if(movement<0&&movementDistance>this.config.threshold&&this.innerElements.length>this.perPage){this.next(howManySliderToSlide);}
this.slideToCurrent(slideToNegativeClone||slideToPositiveClone);}
resizeHandler(){this.resolveSlidesNumber();if(this.currentSlide+this.perPage>this.innerElements.length){this.currentSlide=this.innerElements.length<=this.perPage?0:this.innerElements.length-this.perPage;}
this.selectorWidth=this.selector.offsetWidth;this.buildSliderFrame();}
clearDrag(){this.drag={startX:0,endX:0,startY:0,letItGo:null,preventClick:this.drag.preventClick};}
touchstartHandler(e){const ignoreSiema=['TEXTAREA','OPTION','INPUT','SELECT'].indexOf(e.target.nodeName)!==-1;if(ignoreSiema){return;}
e.stopPropagation();this.pointerDown=true;this.drag.startX=e.touches[0].pageX;this.drag.startY=e.touches[0].pageY;}
touchendHandler(e){e.stopPropagation();this.pointerDown=false;this.enableTransition();if(this.drag.endX){this.updateAfterDrag();}
this.clearDrag();}
touchmoveHandler(e){e.stopPropagation();if(this.drag.letItGo===null){this.drag.letItGo=Math.abs(this.drag.startY-e.touches[0].pageY)<Math.abs(this.drag.startX-e.touches[0].pageX);}
if(this.pointerDown&&this.drag.letItGo){e.preventDefault();this.drag.endX=e.touches[0].pageX;this.sliderFrame.style.webkitTransition=`all 0ms ${this.config.easing}`;this.sliderFrame.style.transition=`all 0ms ${this.config.easing}`;const currentSlide=this.config.loop?this.currentSlide+this.perPage:this.currentSlide;const currentOffset=currentSlide*(this.selectorWidth/this.perPage);const dragOffset=this.drag.endX-this.drag.startX;const offset=this.config.rtl?currentOffset+dragOffset:currentOffset-dragOffset;this.sliderFrame.style[this.transformProperty]=`translate3d(${(this.config.rtl ? 1 : -1) * offset}px, 0, 0)`;}}
mousedownHandler(e){const ignoreSiema=['TEXTAREA','OPTION','INPUT','SELECT'].indexOf(e.target.nodeName)!==-1;if(ignoreSiema){return;}
e.preventDefault();e.stopPropagation();this.pointerDown=true;this.drag.startX=e.pageX;}
mouseupHandler(e){e.stopPropagation();this.pointerDown=false;this.selector.style.cursor='-webkit-grab';this.enableTransition();if(this.drag.endX){this.updateAfterDrag();}
this.clearDrag();}
mousemoveHandler(e){e.preventDefault();if(this.pointerDown){if(e.target.nodeName==='A'){this.drag.preventClick=true;}
this.drag.endX=e.pageX;this.selector.style.cursor='-webkit-grabbing';this.sliderFrame.style.webkitTransition=`all 0ms ${this.config.easing}`;this.sliderFrame.style.transition=`all 0ms ${this.config.easing}`;const currentSlide=this.config.loop?this.currentSlide+this.perPage:this.currentSlide;const currentOffset=currentSlide*(this.selectorWidth/this.perPage);const dragOffset=this.drag.endX-this.drag.startX;const offset=this.config.rtl?currentOffset+dragOffset:currentOffset-dragOffset;this.sliderFrame.style[this.transformProperty]=`translate3d(${(this.config.rtl ? 1 : -1) * offset}px, 0, 0)`;}}
mouseleaveHandler(e){if(this.pointerDown){this.pointerDown=false;this.selector.style.cursor='-webkit-grab';this.drag.endX=e.pageX;this.drag.preventClick=false;this.enableTransition();this.updateAfterDrag();this.clearDrag();}}
clickHandler(e){if(this.drag.preventClick){e.preventDefault();}
this.drag.preventClick=false;}
remove(index,callback){if(index<0||index>=this.innerElements.length){throw new Error('Item to remove doesn\'t exist 😭');}
const lowerIndex=index<this.currentSlide;const lastItem=this.currentSlide+this.perPage-1===index;if(lowerIndex||lastItem){this.currentSlide--;}
this.innerElements.splice(index,1);this.buildSliderFrame();if(callback){callback.call(this);}}
insert(item,index,callback){if(index<0||index>this.innerElements.length+1){throw new Error('Unable to inset it at this index 😭');}
if(this.innerElements.indexOf(item)!==-1){throw new Error('The same item in a carousel? Really? Nope 😭');}
const shouldItShift=index<=this.currentSlide>0&&this.innerElements.length;this.currentSlide=shouldItShift?this.currentSlide+1:this.currentSlide;this.innerElements.splice(index,0,item);this.buildSliderFrame();if(callback){callback.call(this);}}
prepend(item,callback){this.insert(item,0);if(callback){callback.call(this);}}
append(item,callback){this.insert(item,this.innerElements.length+1);if(callback){callback.call(this);}}
destroy(restoreMarkup=false,callback){this.detachEvents();this.selector.style.cursor='auto';if(restoreMarkup){const slides=document.createDocumentFragment();for(let i=0;i<this.innerElements.length;i++){slides.appendChild(this.innerElements[i]);}
this.selector.innerHTML='';this.selector.appendChild(slides);this.selector.removeAttribute('style');}
if(callback){callback.call(this);}}}
Siema.prototype.addPagination=function(){const prevButton=document.createElement('button');prevButton.innerText='vorige';prevButton.className='siema-prev';prevButton.addEventListener('click',()=>this.prev());const prevArrow=document.createElementNS('http://www.w3.org/2000/svg','svg');prevArrow.setAttribute('viewBox','0 0 24 24');const prevArrowPath=document.createElementNS('http://www.w3.org/2000/svg','path');prevArrowPath.setAttribute('d','M5 12h14M5 12l4 4m-4-4 4-4');prevArrow.appendChild(prevArrowPath);prevButton.appendChild(prevArrow);const nextButton=document.createElement('button');nextButton.innerText='volgende';nextButton.className='siema-next';nextButton.addEventListener('click',()=>this.next());const nextArrow=document.createElementNS('http://www.w3.org/2000/svg','svg');nextArrow.setAttribute('viewBox','0 0 24 24');const nextArrowPath=document.createElementNS('http://www.w3.org/2000/svg','path');nextArrowPath.setAttribute('d','M5 12h14m0 0-4 4m4-4-4-4');nextArrow.appendChild(nextArrowPath);nextButton.appendChild(nextArrow);const list=document.createElement('ul');list.className='siema-dots';for(let i=0;i<this.innerElements.length;i++){const listItem=document.createElement('li');if(i===0){listItem.className='siema-active';}
const btn=document.createElement('button');btn.textContent=i;const bullet=document.createElementNS('http://www.w3.org/2000/svg','svg');bullet.setAttribute('viewBox','0 0 8 8');const bulletPath=document.createElementNS('http://www.w3.org/2000/svg','path');bulletPath.setAttribute('d','M 0, 4 a 4,4 0 1,1 8,0 a 4,4 0 1,1 -8,0');bullet.appendChild(bulletPath);btn.appendChild(bullet);btn.addEventListener('click',()=>this.goTo(i));listItem.appendChild(btn);list.appendChild(listItem);}
this.selector.appendChild(prevButton);this.selector.appendChild(nextButton);this.selector.appendChild(list);}
const mySiema=new Siema({loop:true,duration:300,onChange:function(){var currentActiveBullet=this.selector.querySelector('.siema-active');if(!currentActiveBullet){this.addPagination();currentActiveBullet=this.selector.querySelector('.siema-active');}
const allBullets=this.selector.querySelectorAll('.siema-dots li');currentActiveBullet.className='';allBullets[this.currentSlide].className='siema-active';}});mySiema.addPagination();setInterval(()=>mySiema.next(),6000);;
(function(){const consentDialog=document.getElementById('cookie-disclaimer-consent-dialog');const customizeDialog=document.getElementById('cookie-disclaimer-customize-dialog');const cookieBanner=document.getElementById('cookie-disclaimer');const allCategories=customizeDialog.querySelectorAll('[name="cookiecategory"]')
function updateAnalyticsConsent(currentConsentDetails,save){if(typeof currentConsentDetails==="undefined"){return;}
window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments);}
const searchParams=new URLSearchParams();const consentObject={};const updateConsentCategory=(cookieCategory,value)=>{searchParams.set(cookieCategory,value);switch(cookieCategory){case"analytics":consentObject.analytics_storage=value;break;case"advertisement":consentObject.ad_storage=value;consentObject.ad_user_data=value;consentObject.ad_personalization=value;break;case"functional":consentObject.functionality_storage=value;consentObject.personalization_storage=value;break;}}
currentConsentDetails.accepted.forEach((cookieCategory)=>{updateConsentCategory(cookieCategory,'granted');});currentConsentDetails.rejected.forEach((cookieCategory)=>{updateConsentCategory(cookieCategory,'denied');});gtag("consent","update",consentObject);if(save){let request=new XMLHttpRequest();request.open('GET','/Disclaimer/SaveCookie?'+searchParams.toString(),true);request.send();}}
function hideDialogsAndBanner(){hideDialog(consentDialog);hideDialog(customizeDialog);if(cookieBanner){cookieBanner.remove();const subscriptionPanel=document.querySelector('.subscription-container .subscription-panel');if(subscriptionPanel){subscriptionPanel.style.marginBottom='';}}}
function acceptAllCookies(){hideDialogsAndBanner();updateAnalyticsConsent({accepted:[...allCategories].map(o=>o.value),rejected:[]},true);}
function denyAllCookies(){hideDialogsAndBanner();updateAnalyticsConsent({accepted:[],rejected:[...allCategories].map(o=>o.value)},true);}
function customizeCookies(){hideDialogsAndBanner();updateAnalyticsConsent({accepted:[...allCategories].filter(o=>o.checked).map(o=>o.value),rejected:[...allCategories].filter(o=>!o.checked).map(o=>o.value)},true);}
function hideDialog(dialog){if(dialog){dialog.classList.remove('vis');}}
function showDialog(dialog){if(dialog){dialog.classList.add('vis');}}
const acceptAllButton=document.getElementById('cookie-disclaimer-accept-all');if(acceptAllButton){acceptAllButton.addEventListener('click',acceptAllCookies);}
const rejectAllButton=document.getElementById('cookie-disclaimer-reject-all');if(rejectAllButton){rejectAllButton.addEventListener('click',denyAllCookies);}
const customizeButton=document.getElementById('cookie-disclaimer-customize');if(customizeButton){customizeButton.addEventListener('click',(e)=>{e.preventDefault();hideDialog(consentDialog);showDialog(customizeDialog);});}
const hideCustomizeDialog=document.getElementById('cookie-disclaimer-customize-close-dialog');if(hideCustomizeDialog){hideCustomizeDialog.addEventListener('click',(e)=>{e.preventDefault();showDialog(consentDialog);hideDialog(customizeDialog);});}
const showCustomizePopupButtons=document.querySelectorAll('.cookie-disclaimer-show-customize');showCustomizePopupButtons.forEach(e=>e.addEventListener('click',()=>showDialog(customizeDialog)));const acceptCustomizeAllButton=document.getElementById('cookie-disclaimer-customize-accept-all');if(acceptCustomizeAllButton){acceptCustomizeAllButton.addEventListener('click',acceptAllCookies);}
const rejectCustomizeAllButton=document.getElementById('cookie-disclaimer-customize-reject-all');if(rejectCustomizeAllButton){rejectCustomizeAllButton.addEventListener('click',denyAllCookies);}
const saveCustomizeAllButton=document.getElementById('cookie-disclaimer-customize-save');if(saveCustomizeAllButton){saveCustomizeAllButton.addEventListener('click',customizeCookies);}
if(cookieBanner){const subscriptionPanel=document.querySelector('.subscription-container .subscription-panel');if(subscriptionPanel&&cookieBanner.getBoundingClientRect().top<subscriptionPanel.getBoundingClientRect().bottom){subscriptionPanel.style.marginBottom=cookieBanner.clientHeight+'px';}}
if(customizeDialog&&customizeDialog.hasAttribute('data-send-update')&&customizeDialog.getAttribute('data-send-update').toLowerCase()=='true'){updateAnalyticsConsent({accepted:[...allCategories].filter(o=>o.checked).map(o=>o.value),rejected:[...allCategories].filter(o=>!o.checked).map(o=>o.value)},false);}})();;;
