var ewww_webp_supported,swis_lazy_css_images;void 0===ewww_webp_supported&&(ewww_webp_supported=!1),void 0===swis_lazy_css_images&&(swis_lazy_css_images={}),window.lazySizesConfig=window.lazySizesConfig||{},window.lazySizesConfig.expand=500<document.documentElement.clientHeight&&500<document.documentElement.clientWidth?1e3:740,window.lazySizesConfig.iframeLoadMode=1,"undefined"==typeof eio_lazy_vars&&(eio_lazy_vars={exactdn_domain:".exactdn.com",threshold:0,skip_autoscale:0,use_dpr:0}),50<eio_lazy_vars.threshold&&(window.lazySizesConfig.expand=eio_lazy_vars.threshold);for(const[a,b]of Object.entries(swis_lazy_css_images))try{document.querySelectorAll(b[0].selector).forEach(e=>{e.classList.contains("lazyload")||(e.classList.add("lazyload"),e.dataset.swisLazyId=a,5<b[0].rwidth&&5<b[0].rheight&&(e.dataset.eioRwidth=b[0].rwidth,e.dataset.eioRheight=b[0].rheight))})}catch(e){}!function(e,t){function a(){t(e.lazySizes),e.removeEventListener("lazyunveilread",a,!0)}t=t.bind(null,e,e.document),"object"==typeof module&&module.exports?t(require("lazysizes")):"function"==typeof define&&define.amd?define(["lazysizes"],t):e.lazySizes?a():e.addEventListener("lazyunveilread",a,!0)}(window,function(e,n,s){"use strict";var o,l,d={};function c(e,t,a){var i,r;d[e]||(i=n.createElement(t?"link":"script"),r=n.getElementsByTagName("script")[0],t?(i.rel="stylesheet",i.href=e):(i.onload=function(){i.onerror=null,i.onload=null,a()},i.onerror=i.onload,i.src=e),d[e]=!0,d[i.src||i.href]=!0,r.parentNode.insertBefore(i,r))}n.addEventListener&&(l=/\(|\)|\s|'/,o=function(e,t){var a=n.createElement("img");a.onload=function(){a.onload=null,a.onerror=null,a=null,t()},a.onerror=a.onload,a.src=e,a&&a.complete&&a.onload&&a.onload()},addEventListener("lazybeforeunveil",function(e){var t,a,i;if(e.detail.instance==s&&!e.defaultPrevented){var r=e.target;if("none"==r.preload&&(r.preload=r.getAttribute("data-preload")||"auto"),null!=r.getAttribute("data-autoplay"))if(r.getAttribute("data-expand")&&!r.autoplay)try{r.play()}catch(e){}else requestAnimationFrame(function(){r.setAttribute("data-expand","-10"),s.aC(r,s.cfg.lazyClass)});(t=r.getAttribute("data-link"))&&c(t,!0),(t=r.getAttribute("data-script"))&&(e.detail.firesLoad=!0,c(t,null,function(){e.detail.firesLoad=!1,s.fire(r,"_lazyloaded",{},!0,!0)})),(t=r.getAttribute("data-require"))&&(s.cfg.requireJs?s.cfg.requireJs([t]):c(t)),(a=r.getAttribute("data-bg"))&&(e.detail.firesLoad=!0,o(a,function(){r.style.backgroundImage="url("+(l.test(a)?JSON.stringify(a):a)+")",e.detail.firesLoad=!1,s.fire(r,"_lazyloaded",{},!0,!0)})),(i=r.getAttribute("data-poster"))&&(e.detail.firesLoad=!0,o(i,function(){r.poster=i,e.detail.firesLoad=!1,s.fire(r,"_lazyloaded",{},!0,!0)}))}},!1))}),function(e,t){function a(){t(e.lazySizes),e.removeEventListener("lazyunveilread",a,!0)}t=t.bind(null,e,e.document),"object"==typeof module&&module.exports?t(require("lazysizes")):"function"==typeof define&&define.amd?define(["lazysizes"],t):e.lazySizes?a():e.addEventListener("lazyunveilread",a,!0)}(window,function(u,f,h){"use strict";var r;f.addEventListener&&(r=/\(|\)|\s|'/,addEventListener("lazybeforeunveil",function(t){var e,a,i;t.detail.instance==h&&(t.defaultPrevented||("none"==t.target.preload&&(t.target.preload="auto"),(a=t.target.dataset.back)&&(ewww_webp_supported&&(e=t.target.dataset.backWebp)&&(a=e),a=n(a,t.target),t.target.style.backgroundImage&&-1===t.target.style.backgroundImage.search(/^initial/)?0===a.search(/\[/)?((a=JSON.parse(a)).forEach(function(e){r.test(e)&&JSON.stringify(e)}),a='url("'+a.join('"), url("')+'"',e=t.target.style.backgroundImage+", "+a,t.target.style.backgroundImage=e):t.target.style.backgroundImage=t.target.style.backgroundImage+', url("'+(r.test(a)?JSON.stringify(a):a)+'")':0===a.search(/\[/)?((a=JSON.parse(a)).forEach(function(e){r.test(e)&&JSON.stringify(e)}),a='url("'+a.join('"), url("')+'"',t.target.style.backgroundImage=a):t.target.style.backgroundImage="url("+(r.test(a)?JSON.stringify(a):a)+")"),(a=t.target.dataset.swisLazyId)&&a in swis_lazy_css_images&&(a=swis_lazy_css_images[a],i=f.querySelector("style#swis-lazy-css-styles"),a.forEach(function(e){e.url&&(ewww_webp_supported&&e.webp_url&&(e.url=e.webp_url),e.url=n(e.url,t.target),e=e.selector+" {--swis-bg-"+e.hash+": url("+e.url+"); }",i.sheet.insertRule(e))}))))},!1));function g(e,t=!1){var a=y(),i=Math.round(e.offsetWidth*a),r=Math.round(e.offsetHeight*a),n=e.getAttribute("data-src"),a=e.getAttribute("data-src-webp");ewww_webp_supported&&a&&-1==n.search("webp=1")&&!t&&(n=a),o(e)&&(a=e,a=h.hC(a,"et_pb_jt_filterable_grid_item_image")||h.hC(a,"ss-foreground-image")||h.hC(a,"img-crop")?"img-crop":h.hC(a,"object-cover")&&(h.hC(a,"object-top")||h.hC(a,"object-bottom"))?"img-w":h.hC(a,"object-cover")&&(h.hC(a,"object-left")||h.hC(a,"object-right"))?"img-h":h.hC(a,"ct-image")&&h.hC(a,"object-cover")||!a.getAttribute("data-srcset")&&!a.srcset&&a.offsetHeight>a.offsetWidth&&1<d(a)?"img-crop":"img",(a=l(n,i,r,a,t))&&n!=a&&(t&&e.setAttribute("src",a),e.setAttribute("data-src",a)))}var n=function(e,t){if(0===e.search(/\[/))return e;if(!o(t))return e;var a=y();a<eio_lazy_vars.bg_min_dpr&&(a=eio_lazy_vars.bg_min_dpr);var i=Math.round(t.offsetWidth*a),r=Math.round(t.offsetHeight*a),n="bg";h.hC(t,"wp-block-cover")||h.hC(t,"wp-block-cover__image-background")?(h.hC(t,"has-parallax")?(i=Math.round(u.screen.width*a),r=Math.round(u.screen.height*a)):r<300&&(r=430),n="bg-cover"):(h.hC(t,"cover-image")||h.hC(t,"elementor-bg")||h.hC(t,"et_parallax_bg")||h.hC(t,"bg-image-crop"))&&(n="bg-cover");var s=d(t);if("bg"==n&&1<r&&1<i&&0<s){a=Math.ceil(r*s),s=Math.ceil(i/s);i+2<a&&(i=a),r+2<s&&(r=s);t=p(t);if(Math.abs(t.w-i)<5||Math.abs(t.h-r)<5)return e}return e=l(e,i,r,n)},o=function(e){if(1==eio_lazy_vars.skip_autoscale)return!1;for(var t=e,a=0;a<=7;a++){if(t.hasAttributes())for(var i=t.attributes,r=/skip-autoscale/,a=i.length-1;0<=a;a--){if(r.test(i[a].name))return!1;if(r.test(i[a].value))return!1}if(!t.parentNode||1!==t.parentNode.nodeType||!t.parentNode.hasAttributes)break;t=t.parentNode}return!0},l=function(e,t,a,i,r=!1){if(null===e)return e;var n=/w=(\d+)/,s=/fit=(\d+),(\d+)/,o=/resize=(\d+),(\d+)/,l=decodeURIComponent(e);if(/\.svg(\?.+)?$/.exec(l))return e;if(0<e.search("\\?")&&0<e.search(eio_lazy_vars.exactdn_domain)){var d=o.exec(l);if(d&&(t<d[1]||r))return"img-w"===i?l.replace(o,"w="+t):"img-h"===i?l.replace(o,"h="+a):l.replace(o,"resize="+t+","+a);o=n.exec(e);if(o&&(t<=o[1]||r)){if("img-h"===i)return l.replace(n,"h="+a);if("bg-cover"!==i&&"img-crop"!==i)return e.replace(n,"w="+t);var c=Math.abs(o[1]-t);return 20<c||a<1080?e.replace(n,"resize="+t+","+a):e}c=s.exec(l);if(c&&(t<c[1]||r)){if("bg-cover"!==i&&"img-crop"!==i)return"img-w"===i?l.replace(s,"w="+t):"img-h"===i?l.replace(s,"h="+a):l.replace(s,"fit="+t+","+a);l=Math.abs(c[1]-t),s=Math.abs(c[2]-a);return 20<l||20<s?e.replace(n,"resize="+t+","+a):e}if(!o&&!c&&!d)return"img"===i?e+"&fit="+t+","+a:"bg-cover"===i||"img-crop"===i?e+"&resize="+t+","+a:"img-h"===i||t<a?e+"&h="+a:e+"&w="+t}return-1==e.search("\\?")&&0<e.search(eio_lazy_vars.exactdn_domain)?"img"===i?e+"?fit="+t+","+a:"bg-cover"===i||"img-crop"===i?e+"?resize="+t+","+a:"img-h"===i||t<a?e+"?h="+a:e+"?w="+t:e},m=function(e){e=/-(\d+)x(\d+)\./.exec(e);return e&&1<e[1]&&1<e[2]?{w:e[1],h:e[2]}:{w:0,h:0}},p=function(e){var t=e.dataset.eioRwidth,e=e.dataset.eioRheight;return 1<t&&1<e?{w:t,h:e}:{w:0,h:0}},d=function(e){var t=e.getAttribute("width"),a=e.getAttribute("height");if(1<t&&1<a)return t/a;a=!1;if(a=(a=e.src&&-1<e.src.search("http")?e.src:a)||e.getAttribute("data-src")){var i=m(a);if(i.w&&i.h)return i.w/i.h}i=p(e);if(i.w&&i.h)return i.w/i.h;e=function(e){var t;if(e.srcset?t=e.srcset.split(","):(e=e.getAttribute("data-srcset"))&&(t=e.split(",")),t){var a=0,i=t.length;if(i){for(;a<i;a++){var r,n=t[a].trim().split(" ");!n[0].length||(n=m(n[0])).w&&n.h&&(r=n)}if(r.w&&r.h)return r}}return{w:0,h:0}}(e);return e.w&&e.h?e.w/e.h:0},y=function(){return eio_lazy_vars.use_dpr&&1<u.devicePixelRatio?u.devicePixelRatio:1};f.addEventListener("lazybeforesizes",function(e){e.target.getAttribute("data-src");var t=d(e.target);1<e.target.clientHeight&&t&&(t=Math.ceil(t*e.target.clientHeight),e.detail.width+2<t&&(e.detail.width=t)),void 0!==e.target._lazysizesWidth?(!eio_lazy_vars.use_dpr&&1<u.devicePixelRatio&&(e.detail.width=Math.ceil(e.detail.width/u.devicePixelRatio)),e.detail.width<e.target._lazysizesWidth&&(e.detail.width=e.target._lazysizesWidth)):!eio_lazy_vars.use_dpr&&1<u.devicePixelRatio&&(e.detail.width=Math.ceil(e.detail.width/u.devicePixelRatio))}),f.addEventListener("lazybeforeunveil",function(e){var t,a,i,r,n=e.target,s=n.getAttribute("data-srcset");n.naturalWidth&&!s&&1<n.naturalWidth&&1<n.naturalHeight&&(t=y(),a=n.naturalWidth,i=n.naturalHeight,(e=p(n)).w&&e.w>a&&(a=e.w,i=e.h),a=n.clientWidth&&1.25*n.clientWidth*t<a,i=n.clientHeight&&1.25*n.clientHeight*t<i,(a||i)&&g(n)),ewww_webp_supported&&(!s||(r=n.getAttribute("data-srcset-webp"))&&n.setAttribute("data-srcset",r),(r=n.getAttribute("data-src-webp"))&&n.setAttribute("data-src",r))});function e(e=!1){e.type&&"load"===e.type&&h.autoSizer.checkElems(),y();var t,a=f.getElementsByClassName(h.cfg.loadedClass),i=a.length;if(i)for(t=0;t<i;t++){var r,n,s,o,l,d,c=a[t];c.src&&!c.srcset&&1<c.naturalWidth&&1<c.naturalHeight&&1<c.clientWidth&&1<c.clientHeight&&(r=c.naturalWidth,n=c.naturalHeight,s=u.innerWidth,o=u.innerHeight,l=p(c),d=m(c.src),l.w?s=l.w:d.w&&(s=d.w),l.h?o=l.h:d.h&&(o=d.h),l=c.clientWidth,d=c.clientHeight,(1.1*r<l&&l<=s||1.1*n<d&&d<=o)&&g(c,!0))}}var t,a,i,s,c=(t=e,s=function(){a=null,t()},function(){i=Date.now(),a=a||setTimeout(v,99)});function v(){var e=Date.now()-i;e<99?setTimeout(v,99-e):(u.requestIdleCallback||s)(s)}addEventListener("load",e),addEventListener("resize",c),setTimeout(e,2e4)}),function(e,t){t=t(e,e.document,Date);e.lazySizes=t,"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:{},function(i,f,n){"use strict";var h,g;if(!function(){var e,t={lazyClass:"lazyload",loadedClass:"lazyloaded",loadingClass:"lazyloading",preloadClass:"lazypreload",errorClass:"lazyerror",autosizesClass:"lazyautosizes",fastLoadedClass:"ls-is-cached",iframeLoadMode:0,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};for(e in g=i.lazySizesConfig||i.lazysizesConfig||{},t)e in g||(g[e]=t[e])}(),!f||!f.getElementsByClassName)return{init:function(){},cfg:g,noSupport:!0};function c(e,t){E(e,t)||e.setAttribute("class",(e[y]("class")||"").trim()+" "+t)}function u(e,t){(t=E(e,t))&&e.setAttribute("class",(e[y]("class")||"").replace(t," "))}function m(e,t){var a;!l&&(a=i.picturefill||g.pf)?(t&&t.src&&!e[y]("srcset")&&e.setAttribute("srcset",t.src),a({reevaluate:!0,elements:[e]})):t&&t.src&&(e.src=t.src)}var a,r,t,s,o,p=f.documentElement,l=i.HTMLPictureElement,d="addEventListener",y="getAttribute",e=i[d].bind(i),v=i.setTimeout,z=i.requestAnimationFrame||v,b=i.requestIdleCallback,w=/^picture$/i,_=["load","error","lazyincluded","_lazyloaded"],C={},A=Array.prototype.forEach,E=function(e,t){return C[t]||(C[t]=new RegExp("(\\s|^)"+t+"(\\s|$)")),C[t].test(e[y]("class")||"")&&C[t]},L=function(t,a,e){var i=e?d:"removeEventListener";e&&L(t,a),_.forEach(function(e){t[i](e,a)})},x=function(e,t,a,i,r){var n=f.createEvent("Event");return(a=a||{}).instance=h,n.initEvent(t,!i,!r),n.detail=a,e.dispatchEvent(n),n},M=function(e,t){return(getComputedStyle(e,null)||{})[t]},N=function(e,t,a){for(a=a||e.offsetWidth;a<g.minSize&&t&&!e._lazysizesWidth;)a=t.offsetWidth,t=t.parentNode;return a},S=(s=[],o=t=[],k._lsFlush=W,k);function W(){var e=o;for(o=t.length?s:t,r=!(a=!0);e.length;)e.shift()();a=!1}function k(e,t){a&&!t?e.apply(this,arguments):(o.push(e),r||(r=!0,(f.hidden?v:z)(W)))}function H(a,e){return e?function(){S(a)}:function(){var e=this,t=arguments;S(function(){a.apply(e,t)})}}function R(e){function t(){var e=n.now()-i;e<99?v(t,99-e):(b||r)(r)}var a,i,r=function(){a=null,e()};return function(){i=n.now(),a=a||v(t,99)}}var I,j,T,O,P,q,B,F,J,D,$,U,G,K,Q,V,X,Y,Z,ee,te,ae,ie,re,ne,se,oe,le,de,ce,ue,fe=(Z=/^img$/i,ee=/^iframe$/i,te="onscroll"in i&&!/(gle|ing)bot/.test(navigator.userAgent),re=-1,ne=function(e){return(U=null==U?"hidden"==M(f.body,"visibility"):U)||!("hidden"==M(e.parentNode,"visibility")&&"hidden"==M(e,"visibility"))},G=ge,Q=ie=ae=0,V=g.throttleDelay,X=g.ricTimeout,Y=b&&49<X?function(){b(me,{timeout:X}),X!==g.ricTimeout&&(X=g.ricTimeout)}:H(function(){v(me)},!0),oe=H(pe),le=function(e){oe({target:e.target})},de=H(function(t,e,a,i,r){var n,s,o,l,d;(o=x(t,"lazybeforeunveil",e)).defaultPrevented||(i&&(a?c(t,g.autosizesClass):t.setAttribute("sizes",i)),n=t[y](g.srcsetAttr),a=t[y](g.srcAttr),r&&(s=(d=t.parentNode)&&w.test(d.nodeName||"")),l=e.firesLoad||"src"in t&&(n||a||s),o={target:t},c(t,g.loadingClass),l&&(clearTimeout(T),T=v(he,2500),L(t,le,!0)),s&&A.call(d.getElementsByTagName("source"),ye),n?t.setAttribute("srcset",n):a&&!s&&(ee.test(t.nodeName)?(i=a,0==(d=(e=t).getAttribute("data-load-mode")||g.iframeLoadMode)?e.contentWindow.location.replace(i):1==d&&(e.src=i)):t.src=a),r&&(n||s)&&m(t,{src:a})),t._lazyRace&&delete t._lazyRace,u(t,g.lazyClass),S(function(){var e=t.complete&&1<t.naturalWidth;l&&!e||(e&&c(t,g.fastLoadedClass),pe(o),t._lazyCache=!0,v(function(){"_lazyCache"in t&&delete t._lazyCache},9)),"lazy"==t.loading&&ie--},!0)}),ue=R(function(){g.loadMode=3,se()}),{_:function(){P=n.now(),h.elements=f.getElementsByClassName(g.lazyClass),I=f.getElementsByClassName(g.lazyClass+" "+g.preloadClass),e("scroll",se,!0),e("resize",se,!0),e("pageshow",function(e){var t;!e.persisted||(t=f.querySelectorAll("."+g.loadingClass)).length&&t.forEach&&z(function(){t.forEach(function(e){e.complete&&ce(e)})})}),i.MutationObserver?new MutationObserver(se).observe(p,{childList:!0,subtree:!0,attributes:!0}):(p[d]("DOMNodeInserted",se,!0),p[d]("DOMAttrModified",se,!0),setInterval(se,999)),e("hashchange",se,!0),["focus","mouseover","click","load","transitionend","animationend"].forEach(function(e){f[d](e,se,!0)}),/d$|^c/.test(f.readyState)?ze():(e("load",ze),f[d]("DOMContentLoaded",se),v(ze,2e4)),h.elements.length?(ge(),S._lsFlush()):se()},checkElems:se=function(e){var t;(e=!0===e)&&(X=33),K||(K=!0,(t=V-(n.now()-Q))<0&&(t=0),e||t<9?Y():v(Y,t))},unveil:ce=function(e){var t,a,i,r;e._lazyRace||(!(r="auto"==(i=(a=Z.test(e.nodeName))&&(e[y](g.sizesAttr)||e[y]("sizes"))))&&j||!a||!e[y]("src")&&!e.srcset||e.complete||E(e,g.errorClass)||!E(e,g.lazyClass))&&(t=x(e,"lazyunveilread").detail,r&&Ce.updateElem(e,!0,e.offsetWidth),e._lazyRace=!0,ie++,de(e,t,r,i,a))},_aLSL:ve});function he(e){ie--,e&&!(ie<0)&&e.target||(ie=0)}function ge(){var e,t,a,i,r,n,s,o,l,d,c,u=h.elements;if((O=g.loadMode)&&ie<8&&(e=u.length)){for(t=0,re++;t<e;t++)if(u[t]&&!u[t]._lazyRace)if(!te||h.prematureUnveil&&h.prematureUnveil(u[t]))ce(u[t]);else if((s=u[t][y]("data-expand"))&&(r=+s)||(r=ae),l||(l=!g.expand||g.expand<1?500<p.clientHeight&&500<p.clientWidth?500:370:g.expand,d=(h._defEx=l)*g.expFactor,c=g.hFac,U=null,ae<d&&ie<1&&2<re&&2<O&&!f.hidden?(ae=d,re=0):ae=1<O&&1<re&&ie<6?l:0),o!==r&&(q=innerWidth+r*c,B=innerHeight+r,n=-1*r,o=r),d=u[t].getBoundingClientRect(),($=d.bottom)>=n&&(F=d.top)<=B&&(D=d.right)>=n*c&&(J=d.left)<=q&&($||D||J||F)&&(g.loadHidden||ne(u[t]))&&(j&&ie<3&&!s&&(O<3||re<4)||function(e,t){var a,i=e,r=ne(e);for(F-=t,$+=t,J-=t,D+=t;r&&(i=i.offsetParent)&&i!=f.body&&i!=p;)(r=0<(M(i,"opacity")||1))&&"visible"!=M(i,"overflow")&&(a=i.getBoundingClientRect(),r=D>a.left&&J<a.right&&$>a.top-1&&F<a.bottom+1);return r}(u[t],r))){if(ce(u[t]),i=!0,9<ie)break}else!i&&j&&!a&&ie<4&&re<4&&2<O&&(I[0]||g.preloadAfterLoad)&&(I[0]||!s&&($||D||J||F||"auto"!=u[t][y](g.sizesAttr)))&&(a=I[0]||u[t]);a&&!i&&ce(a)}}function me(){K=!1,Q=n.now(),G()}function pe(e){var t=e.target;t._lazyCache?delete t._lazyCache:(he(e),c(t,g.loadedClass),u(t,g.loadingClass),L(t,le),x(t,"lazyloaded"))}function ye(e){var t,a=e[y](g.srcsetAttr);(t=g.customMedia[e[y]("data-media")||e[y]("media")])&&e.setAttribute("media",t),a&&e.setAttribute("srcset",a)}function ve(){3==g.loadMode&&(g.loadMode=2),ue()}function ze(){j||(n.now()-P<999?v(ze,999):(j=!0,g.loadMode=3,se(),e("scroll",ve,!0)))}var be,we,_e,Ce=(we=H(function(e,t,a,i){var r,n,s;if(e._lazysizesWidth=i,e.setAttribute("sizes",i+="px"),w.test(t.nodeName||""))for(n=0,s=(r=t.getElementsByTagName("source")).length;n<s;n++)r[n].setAttribute("sizes",i);a.detail.dataAttr||m(e,a.detail)}),{_:function(){be=f.getElementsByClassName(g.autosizesClass),e("resize",_e)},checkElems:_e=R(function(){var e,t=be.length;if(t)for(e=0;e<t;e++)Ae(be[e])}),updateElem:Ae});function Ae(e,t,a){var i=e.parentNode;i&&(a=N(e,i,a),(t=x(e,"lazybeforesizes",{width:a,dataAttr:!!t})).defaultPrevented||(a=t.detail.width)&&a!==e._lazysizesWidth&&we(e,i,t,a))}function Ee(){!Ee.i&&f.getElementsByClassName&&(Ee.i=!0,Ce._(),fe._())}return v(function(){g.init&&Ee()}),h={cfg:g,autoSizer:Ce,loader:fe,init:Ee,uP:m,aC:c,rC:u,hC:E,fire:x,gW:N,rAF:S}});
function loadNewsletterData(CRDataURL){
return new Promise((resolve, reject)=> {
const script=document.createElement("script");
script.src=CRDataURL;
script.async=true;
script.onload=()=> {
if(window.cr_archive){
resolve(window.cr_archive);
}else{
reject(new Error("cr_archive was not found after loading mailings.js"));
}};
script.onerror=()=> {
reject(new Error("Failed to load the mailings.js script"));
};
document.head.appendChild(script);
});
}
function splitNewsletterTitle(fullTitle){
const colonIndex=fullTitle.indexOf(":");
if(colonIndex===-1){
return {
category: "",
title: fullTitle
};}
const categoryPart=fullTitle.substring(0, colonIndex).trim();
const remainingPart=fullTitle.substring(colonIndex + 1).trim();
if(!categoryPart||!remainingPart){
return {
category: "",
title: fullTitle
};}
return {
category: categoryPart,
title: remainingPart
};}
document.addEventListener("DOMContentLoaded", ()=> {
const archive=document.getElementById("archive-form");
if(!archive) return;
const archiveDataElement=document.getElementById("archive-data");
if(!archiveDataElement){
console.error("Archive data element not found.");
return;
}
let full_archive_data;
try {
full_archive_data=JSON.parse(archiveDataElement.textContent);
} catch (e){
console.error("Failed to parse archive data JSON:", e);
return;
}
const contentFilter=new ContentFilter({
root: archive,
data: full_archive_data,
templates: {
newsposts: document.getElementById("template-newsposts").innerHTML,
newsletter_post: document.getElementById("template-newsletter_post").innerHTML,
event: document.getElementById("template-event").innerHTML,
project: document.getElementById("template-project").innerHTML
}});
const CRDataURL="https://s3-eu-west-1.amazonaws.com/files.crsend.com/156000/156911/rss/mailings.js";
loadNewsletterData(CRDataURL)
.then((crArchive)=> {
const newsletterPosts=crArchive.map((item)=> {
const { category, title }=splitNewsletterTitle(item.title);
const pubDate=new Date(item.pubDate).getTime() / 1000;
return {
post_type: "newsletter_post",
post_title: title,
post_filtering_date: pubDate,
post_link: item.link,
post_id: Date.now() + Math.random(),
badges: {
badges: {
sdg: [],
others: [
{
type: "newsletter_category",
value: category||"RNE Aktuell"
}
]
},
max_shown_sdgs: 2,
badge_class: "badge badge--white",
icon_name: ""
},
post_label: "Newsletter"
};});
contentFilter.data.push(...newsletterPosts);
contentFilter.buildIndices();
contentFilter.filterAndUpdateUI();
})
.catch((err)=> {
console.error("Failed to load or process newsletter data:", err);
});
});
(function (){
document.addEventListener("DOMContentLoaded", ()=> {
const postOverview=document.getElementById("post-overview-form");
if(!postOverview) return;
const dataScriptEl=document.getElementById("post-overview-data");
let fullPostsData=[];
if(dataScriptEl){
try {
fullPostsData=JSON.parse(dataScriptEl.textContent||"[]");
} catch (err){
console.error("Error parsing post-overview-data JSON", err);
}}
new ContentFilter({
root: postOverview,
data: fullPostsData,
itemsPerPage: 12,
templates: {
postOverview: document.getElementById("template-post-overview").innerHTML
}});
});
})();
document.addEventListener("DOMContentLoaded", function (){
handleNewsHeightResize();
});
function handleNewsHeightResize(){
if(window.innerWidth < 768){
return;
}
const bigNewsItems=document.querySelectorAll(".big-news");
if(!bigNewsItems.length){
return;
}
bigNewsItems.forEach(function (item){
const excerpt=item.querySelector(".news-excerpt");
if(excerpt){
const fullHeight=excerpt.scrollHeight;
excerpt.style.maxHeight="0";
excerpt.style.transition="max-height 0.6s ease, opacity 0.3s ease";
excerpt.style.opacity="0";
item.addEventListener("mouseenter", function (){
excerpt.style.maxHeight=fullHeight + "px";
excerpt.style.opacity="1";
excerpt.closest(".news-content").style.marginTop="-" + fullHeight + "px";
});
item.addEventListener("mouseleave", function (){
excerpt.style.maxHeight="0";
excerpt.style.opacity="0";
excerpt.closest(".news-content").style.marginTop="0";
});
}});
};
jQuery(document).ready(function ($){
const $eventCalendar=$('[data-module="event-calendar"]');
const datePickerInstances=[];
const monthNames=window.rne_translations.datepicker.months;
if($eventCalendar.length===0) return;
const allEvents=JSON.parse($eventCalendar.attr("data-events"));
const earliestEventTimestamp=$eventCalendar.attr("data-earliest-event");
const latestEventTimestamp=$eventCalendar.attr("data-latest-event");
const earliestEventDate=earliestEventTimestamp ? new Date(parseInt(earliestEventTimestamp, 10) * 1000):null;
const latestEventDate=latestEventTimestamp ? new Date(parseInt(latestEventTimestamp, 10) * 1000):null;
let currentMonth=parseInt($eventCalendar.attr("data-initial-month"), 10);
let currentYear=parseInt($eventCalendar.attr("data-initial-year"), 10);
let specificDateSelected=false;
let isFilteringInProgress=false;
const $currentMonthDisplay=$(".current-month");
const $prevMonthButton=$(".prev-month");
const $nextMonthButton=$(".next-month");
const $eventList=$(".event-list");
const formatDate=(timestamp)=>
new Date(timestamp * 1000).toLocaleDateString(window.rne_translations.common.lang==="de" ? "de-De":"en-EN", {
day: "2-digit",
month: "2-digit",
year: "numeric"
});
const filterEventsByMonth=(events, month, year)=>
events.filter((event)=> {
const eventDate=new Date(event.event_start_date * 1000);
return eventDate.getMonth() + 1===month&&eventDate.getFullYear()===year;
});
function isMonthBefore(month1, year1, month2, year2){
if(year1 < year2) return true;
if(year1 > year2) return false;
return month1 < month2;
}
function isMonthAfter(month1, year1, month2, year2){
if(year1 > year2) return true;
if(year1 < year2) return false;
return month1 > month2;
}
function updateMonthDisplay(month, year){
$currentMonthDisplay.text(`${monthNames[month - 1]} ${year}`);
const prevMonthDate=new Date(year, month - 2, 1);
const nextMonthDate=new Date(year, month, 1);
const prevMonth=prevMonthDate.getMonth() + 1;
const prevYear=prevMonthDate.getFullYear();
const nextMonth=nextMonthDate.getMonth() + 1;
const nextYear=nextMonthDate.getFullYear();
$prevMonthButton.toggleClass("disabled", specificDateSelected).attr("disabled", specificDateSelected ? "disabled":null);
$nextMonthButton.toggleClass("disabled", specificDateSelected).attr("disabled", specificDateSelected ? "disabled":null);
if(!specificDateSelected){
const today=new Date();
const currentMonthToday=today.getMonth() + 1;
const currentYearToday=today.getFullYear();
let shouldDisablePrev=false;
if(earliestEventDate){
const earliestMonth=earliestEventDate.getMonth() + 1;
const earliestYear=earliestEventDate.getFullYear();
if(isMonthBefore(prevMonth, prevYear, earliestMonth, earliestYear)&&isMonthBefore(prevMonth, prevYear, currentMonthToday, currentYearToday)){
shouldDisablePrev=true;
}}else{
if(isMonthBefore(prevMonth, prevYear, currentMonthToday, currentYearToday)){
shouldDisablePrev=true;
}}
$prevMonthButton.toggleClass("disabled", shouldDisablePrev).attr("disabled", shouldDisablePrev ? "disabled":null);
let shouldDisableNext=false;
if(latestEventDate){
const latestMonth=latestEventDate.getMonth() + 1;
const latestYear=latestEventDate.getFullYear();
if(isMonthAfter(nextMonth, nextYear, latestMonth, latestYear)){
shouldDisableNext=true;
}}
$nextMonthButton.toggleClass("disabled", shouldDisableNext).attr("disabled", shouldDisableNext ? "disabled":null);
}}
function renderEvents(events){
$eventList.empty();
if(events.length===0){
$eventList.append("<h4 class='no-events'>" + window.rne_translations.events.noEventsFound + "</h4>");
$eventList.addClass("no-events-found");
return;
}
$eventList.removeClass("no-events-found");
const generateEventBadges=(event)=> {
let badgeHtml='<ul class="badge-list">';
const isInternal=event.is_internal ? window.rne_translations.events.rneEvent:window.rne_translations.events.externalEvent;
badgeHtml +=`<li class="badge badge--white ${event.is_internal ? "rne-event":""}">${isInternal}</li>`;
let eventLocationOutput="";
if(event.event_city&&event.event_location){
eventLocationOutput=`${event.event_city} | ${event.event_location}`;
}else if(event.event_city){
eventLocationOutput=event.event_city;
}else if(event.event_location){
eventLocationOutput=event.event_location;
}
if(eventLocationOutput){
badgeHtml +=`<li class="badge badge--white">${eventLocationOutput}</li>`;
}
badgeHtml +="</ul>";
return badgeHtml;
};
const generateSDGBadges=(event)=> {
if(!event.event_topic||event.event_topic.length===0) return "";
const MAX_SHOWN_SDGS=2;
const sdgsToShow=event.event_topic.slice(0, MAX_SHOWN_SDGS);
let badgeHtml='<ul class="badge-list sdg-badge-list">';
badgeHtml +=sdgsToShow.map((sdg)=> `<li class="badge badge--white">${sdg}</li>`).join("");
badgeHtml +="</ul>";
return badgeHtml;
};
events.forEach((event)=> {
let dateHtml="";
if(event.event_start_date){
dateHtml=`<h4 class="event-date">${formatDate(event.event_start_date)}`;
if(event.event_end_date){
dateHtml +=` - ${formatDate(event.event_end_date)}`;
}
dateHtml +="</h4>";
}
const eventHtml=`
<a class="event-calendar-overview-item group" href="${event.permalink||"#"}">
<div class="event-meta">
<div class="event-general-info">
${dateHtml}
${generateEventBadges(event)}
</div>
<div class="event-content">
${generateSDGBadges(event)}
<h4>${event.title}</h4>
</div>
</div>
${
event.thumbnail
? `
<div class="event-image">
${event.thumbnail}
</div>`
: ""
}
</a>
`;
$eventList.append(eventHtml);
});
}
function navigateToMonth(month, year){
currentMonth=month;
currentYear=year;
updateMonthDisplay(month, year);
$(".event-datepicker").val("");
applyFilters();
}
function applyFilters(selectedDate=undefined){
if(isFilteringInProgress) return;
isFilteringInProgress=true;
const filters={
name: $('#event-filter-form input[name="event_name"]').val().toLowerCase(),
place: $('#event-filter-form input[name="event_place"]').val(),
topic: $('#event-filter-form input[name="event_topic"]').val(),
internal: $("#internal_events").is(":checked")
};
let filteredEvents=allEvents;
if(selectedDate&&selectedDate instanceof Date){
currentMonth=selectedDate.getMonth() + 1;
currentYear=selectedDate.getFullYear();
updateMonthDisplay(currentMonth, currentYear);
filteredEvents=filteredEvents.filter((event)=> {
const eventDate=new Date(event.event_start_date * 1000);
return eventDate.getFullYear()===currentYear&&eventDate.getMonth()===selectedDate.getMonth()&&eventDate.getDate()===selectedDate.getDate();
});
specificDateSelected=true;
}else{
filteredEvents=filterEventsByMonth(filteredEvents, currentMonth, currentYear);
specificDateSelected=false;
}
filteredEvents=filteredEvents.filter((event)=> event.title.toLowerCase().includes(filters.name)&&(!filters.place||event.event_city===filters.place)&&(!filters.topic||event.event_topic_id.some((id)=> parseInt(id, 10)===parseInt(filters.topic, 10)))&&(!filters.internal||event.is_internal));
renderEvents(filteredEvents);
updateMonthDisplay(currentMonth, currentYear);
isFilteringInProgress=false;
}
function resetForm(){
$("#event-filter-form")[0].reset();
datePickerInstances.forEach((dpInstance)=> {
dpInstance.instance.clear();
});
const today=new Date();
currentMonth=today.getMonth() + 1;
currentYear=today.getFullYear();
specificDateSelected=false;
updateMonthDisplay(currentMonth, currentYear);
applyFilters();
}
const eventsByDate=allEvents.reduce((acc, event)=> {
const eventDate=new Date(parseInt(event.event_start_date, 10) * 1000);
acc[eventDate.toISOString().split("T")[0]]=event;
return acc;
}, {});
const NAV_SVG=`
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M1.64592 4.64592C1.69236 4.59935 1.74754 4.56241 1.80828 4.5372C1.86903 4.512 1.93415 4.49902 1.99992 4.49902C2.06568 4.49902 2.13081 4.512 2.19155 4.5372C2.2523 4.56241 2.30747 4.59935 2.35392 4.64592L7.99992 10.2929L13.6459 4.64592C13.6924 4.59943 13.7476 4.56255 13.8083 4.53739C13.8691 4.51223 13.9342 4.49929 13.9999 4.49929C14.0657 4.49929 14.1308 4.51223 14.1915 4.53739C14.2522 4.56255 14.3074 4.59943 14.3539 4.64592C14.4004 4.6924 14.4373 4.74759 14.4624 4.80833C14.4876 4.86907 14.5005 4.93417 14.5005 4.99992C14.5005 5.06566 14.4876 5.13076 14.4624 5.1915C14.4373 5.25224 14.4004 5.30743 14.3539 5.35392L8.35392 11.3539C8.30747 11.4005 8.2523 11.4374 8.19155 11.4626C8.13081 11.4878 8.06568 11.5008 7.99992 11.5008C7.93415 11.5008 7.86903 11.4878 7.80828 11.4626C7.74754 11.4374 7.69236 11.4005 7.64592 11.3539L1.64592 5.35392C1.59935 5.30747 1.56241 5.2523 1.5372 5.19155C1.512 5.13081 1.49902 5.06568 1.49902 4.99992C1.49902 4.93415 1.512 4.86903 1.5372 4.80828C1.56241 4.74754 1.59935 4.69236 1.64592 4.64592Z" fill="#1A1A1A"/>
</svg>
`;
const isMobile=document.body.classList.contains("touch-device");
const datePickerElements=document.querySelectorAll(".event-datepicker");
datePickerElements.forEach((element)=> {
const instance=window.initializeLocalizedDatepicker(element, {
isMobile: isMobile,
minDate: earliestEventDate,
maxDate: latestEventDate,
autoClose: true,
...(isMobile
? {}
: {
position({ $datepicker, $target, $pointer }){
const wrapper=$target.closest(".datepicker-wrapper");
if(!wrapper) return;
const button=wrapper.querySelector(".calendar-icon-button");
if(!button) return;
const rect=button.getBoundingClientRect();
const top=rect.bottom + window.scrollY;
const left=rect.left + window.scrollX;
$datepicker.style.top=`${top}px`;
$datepicker.style.left=`${left}px`;
$pointer.style.display="none";
}}),
onSelect: function ({ date, datepicker }){
if(date){
applyFilters(date);
datePickerInstances.forEach((dpInstance)=> {
dpInstance.instance.$el.classList.add("has-value");
const wrapper=dpInstance.instance.$el.closest(".datepicker-wrapper");
const button=wrapper.querySelector(".calendar-icon-button");
if(button){
button.classList.add("has-value");
}
if(dpInstance.instance!==datepicker){
dpInstance.instance.selectDate(date, { silent: true });
}});
}else{
datePickerInstances.forEach((dpInstance)=> {
dpInstance.instance.$el.classList.remove("has-value");
const wrapper=dpInstance.instance.$el.closest(".datepicker-wrapper");
const button=wrapper.querySelector(".calendar-icon-button");
if(button){
button.classList.remove("has-value");
}
if(dpInstance.instance!==datepicker){
dpInstance.instance.clear({ silent: true });
}});
applyFilters(null);
}},
onRenderCell: ({ date, cellType })=> {
if(cellType!=="day") return {};
const utcDate=new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));
const formattedDate=utcDate.toISOString().split("T")[0];
const event=eventsByDate[formattedDate];
if(!event) return {};
const internalEventIcon=event.is_internal
? `
<span class="event-icon">
<svg width="14" height="14" viewBox="0 0 10 10" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_127_1172)">
<path d="M5.00028 8.85875C2.87214 8.85875 1.14134 7.1282 1.14134 5.00023C1.14134 2.87263 2.87214 1.14144 5.00028 1.14144C7.12777 1.14144 8.85866 2.87263 8.85866 5.00023C8.85866 7.1282 7.12777 8.85875 5.00028 8.85875ZM5.00028 0.3125C2.41519 0.3125 0.3125 2.41539 0.3125 5.00023C0.3125 7.58516 2.41519 9.6875 5.00028 9.6875C7.58472 9.6875 9.6875 7.58516 9.6875 5.00023C9.6875 2.41539 7.58472 0.3125 5.00028 0.3125Z" fill="currentColor"/>
<path d="M5.86132 5.18231L5.90266 5.91294L5.55768 5.15116L4.40582 3.11523H3.26758V7.33685H4.19194V4.93883L4.1437 4.21439L4.48177 4.9451L5.84051 7.33685H6.78559V3.11523H5.86132V5.18231Z" fill="currentColor"/>
</g>
<defs>
<clipPath id="clip0_127_1172">
<rect width="10" height="10" fill="white"/>
</clipPath>
</defs>
</svg>
</span>
`
: "";
return {
html: internalEventIcon + utcDate.getUTCDate(),
classes: `has-event day-cell${event.is_internal ? " rne-event":""}`,
attrs: { title: `Event: ${event.title}` }};},
prevHtml: NAV_SVG,
nextHtml: NAV_SVG
});
datePickerInstances.push({ element, instance });
});
updateMonthDisplay(currentMonth, currentYear);
applyFilters();
$prevMonthButton.on("click", function (e){
e.preventDefault();
if($(this).hasClass("disabled")) return;
let newMonth=currentMonth - 1;
let newYear=currentYear;
if(newMonth < 1){
newMonth=12;
newYear -=1;
}
navigateToMonth(newMonth, newYear);
});
$nextMonthButton.on("click", function (e){
e.preventDefault();
if($(this).hasClass("disabled")) return;
let newMonth=currentMonth + 1;
let newYear=currentYear;
if(newMonth > 12){
newMonth=1;
newYear +=1;
}
navigateToMonth(newMonth, newYear);
});
$("#event-filter-form").on("submit", (e)=> e.preventDefault());
$("#event-filter-form input").on("input", function (){
applyFilters();
});
$("#event-filter-form").on("rne-select-change", 'input[name="event_place"], input[name="event_topic"]', function (){
applyFilters();
});
$(".event-date-reset").on("click", function (e){
e.preventDefault();
resetForm();
});
$(".calendar-icon-button").on("click", function (){
const wrapper=$(this).closest(".datepicker-wrapper");
if(!wrapper.length) return;
const $input=wrapper.find(".event-datepicker");
if(!$input.length) return;
const dpInstance=datePickerInstances.find((dp)=> dp.element===$input[0]);
if(dpInstance){
dpInstance.instance.show();
}});
});
(function (){
document.addEventListener("DOMContentLoaded", ()=> {
const mediaForm=document.getElementById("media-form");
if(!mediaForm){
return;
}
const documentsDataElement=document.getElementById("documents-data");
if(!documentsDataElement){
console.error("Documents data element not found.");
return;
}
let full_documents_data;
try {
full_documents_data=JSON.parse(documentsDataElement.textContent);
} catch (e){
console.error("Failed to parse documents data JSON:", e);
return;
}
new ContentFilter({
root: mediaForm,
data: full_documents_data,
hasMediaPlayers: true,
templates: {
pdf: document.getElementById("template-pdf").innerHTML,
audio: document.getElementById("template-audio").innerHTML,
video: document.getElementById("template-video").innerHTML
}});
});
})();