const validateRecaptcha=()=>{let e=grecaptcha.getResponse();return 0!==e.length||(alert("Bitte best\xe4tigen Sie, dass Sie kein Roboter sind."),!1)},setupEscapeKeyCloseMenu=()=>{document.addEventListener("keydown",e=>{"Escape"===e.key&&closeSlideMenu()},{})},setupDropdownToggles=()=>{document.querySelectorAll(".dropdown-toggle").forEach(e=>{e.addEventListener("click",t=>{t.preventDefault();let n=e.parentNode,s=document.querySelectorAll(".nav-item.open");s.forEach(e=>e.classList.remove("open")),n.classList.toggle("open",!n.classList.contains("open"))})})},closeDropdownsOnClickOutside=()=>{document.addEventListener("click",e=>{e.target.matches(".dropdown-toggle")||document.querySelectorAll(".nav-item.open").forEach(t=>{t.contains(e.target)||t.classList.remove("open")})},{})},setupNavbarToggler=()=>{let e=!1,t=document.querySelectorAll(".navbar-toggler"),n=t=>{t.preventDefault(),e||(e=!0,document.documentElement.classList.add("interacted"),requestAnimationFrame(()=>{document.body.classList.toggle("slidebar-open"),document.getElementById("primary-slide-menu").classList.toggle("open"),e=!1}))};t.forEach(e=>{e.addEventListener("click",n,{}),e.addEventListener("touchstart",n,{})})},closeMenuOnSpecificConditions=()=>{document.addEventListener("click",e=>{let t=document.getElementById("primary-slide-menu");if(!t)return;let n=t.contains(e.target),s=e.target.closest(".navbar-toggler");(!n&&!s||e.target.matches("#modal-shadow"))&&closeSlideMenu()},{})},closeSlideMenu=()=>{document.body.classList.remove("slidebar-open"),document.getElementById("primary-slide-menu").classList.remove("open")},initMenuAim=()=>{let e=document.querySelector("#collapsing-navbar");e&&e.querySelectorAll(".navbar-nav > li").forEach(e=>{e.addEventListener("mouseenter",()=>{let t=e.querySelector(".dropdown-menu");t&&!e.classList.contains("open")&&(t.style.display="block",e.classList.add("open"))},{}),e.addEventListener("mouseleave",()=>{let t=e.querySelector(".dropdown-menu");t&&(t.style.display="none",e.classList.remove("open"))},{})})};document.addEventListener("DOMContentLoaded",()=>{setupDropdownToggles(),closeDropdownsOnClickOutside(),initMenuAim(),setupNavbarToggler(),closeMenuOnSpecificConditions(),setupEscapeKeyCloseMenu()},{});
;(function(){document.addEventListener('DOMContentLoaded',function(){var a=document.querySelectorAll('.dropdown-toggle');a.forEach(function(t){t.addEventListener('click',function(){var li=t.parentNode;var s=li.classList.contains('open');t.setAttribute('aria-expanded',s?'true':'false');},{});t.addEventListener('keydown',function(e){var k=e.key;if(k===' '||k==='Spacebar'||k==='Enter'||k==='ArrowDown'){e.preventDefault();var li=t.parentNode;li.classList.add('open');t.setAttribute('aria-expanded','true');var m=t.id?document.getElementById(t.getAttribute('aria-controls')):null;var f=m?m.querySelector('.dropdown-item, a, button, [tabindex]:not([tabindex="-1"])'):null;if(f)f.focus()}if(k==='Escape'){var li=t.parentNode;li.classList.remove('open');t.setAttribute('aria-expanded','false');t.focus();}},{});});document.addEventListener('keydown',function(e){if(e.key!=='Escape')return;var o=document.querySelector('.nav-item.open');if(!o)return;var m=o.querySelector('.dropdown-menu');if(m&&m.contains(document.activeElement)){o.classList.remove('open');var tg=o.querySelector('.dropdown-toggle');if(tg){tg.setAttribute('aria-expanded','false');tg.focus();}}},{ });document.addEventListener('click',function(e){if(e.target.matches('.dropdown-toggle'))return;document.querySelectorAll('.nav-item.open').forEach(function(li){if(!li.contains(e.target)){li.classList.remove('open');var t=li.querySelector('.dropdown-toggle');if(t)t.setAttribute('aria-expanded','false');}});},{ });var n=document.querySelector('#collapsing-navbar');if(n){n.querySelectorAll('.navbar-nav > li').forEach(function(li){li.addEventListener('mouseenter',function(){var t=li.querySelector('.dropdown-toggle');if(t)t.setAttribute('aria-expanded','true');},{});li.addEventListener('mouseleave',function(){var t=li.querySelector('.dropdown-toggle');if(t)t.setAttribute('aria-expanded','false');},{});});}},{});})();
!function(){var e=navigator.userAgent.toLowerCase().indexOf("webkit")>-1,t=navigator.userAgent.toLowerCase().indexOf("opera")>-1,n=navigator.userAgent.toLowerCase().indexOf("msie")>-1;(e||t||n)&&document.getElementById&&window.addEventListener&&window.addEventListener("hashchange",function(){var e,t=location.hash.substring(1);/^[A-z0-9_-]+$/.test(t)&&(e=document.getElementById(t))&&(/^(?:a|select|input|button|textarea)$/i.test(e.tagName)||(e.tabIndex=-1),e.focus())},!1)}();
(function (){
const is={
arr: function (a){
return Array.isArray(a);
},
obj: function (a){
return Object.prototype.toString.call(a).includes("Object");
},
str: function (a){
return typeof a==="string";
},
fnc: function (a){
return typeof a==="function";
},
und: function (a){
return typeof a==="undefined";
},
nil: function (a){
return is.und(a)||a===null;
},
};
function getMediaQueryString(minWidth, maxWidth){
if(minWidth&&maxWidth){
return `(min-width: ${minWidth}px) and (max-width: ${maxWidth}px)`;
}
if(maxWidth){
return `(max-width: ${maxWidth}px)`;
}
if(minWidth){
return `(min-width: ${minWidth}px)`;
}
return null;
}
function matchAnyMedia(){
const { BASE_BREAKPOINT_ID, breakpoints }=window.BreakdanceFrontend.data;
return breakpoints
.filter((b)=> b.id!==BASE_BREAKPOINT_ID)
.some((b)=> matchMedia(b));
}
function matchMedia(idOrBreakpoint){
const { BASE_BREAKPOINT_ID, breakpoints }=window.BreakdanceFrontend.data;
const isId=typeof idOrBreakpoint==="string";
const breakpoint=isId
? breakpoints.find((b)=> b.id===idOrBreakpoint)
: idOrBreakpoint;
if(!breakpoint) return false;
if(breakpoint.id===BASE_BREAKPOINT_ID) return !matchAnyMedia();
const { minWidth, maxWidth }=breakpoint;
const mediaQuery=getMediaQueryString(minWidth, maxWidth);
return window.matchMedia(mediaQuery).matches;
}
function getCurrentBreakpoint(breakpointIds){
const { BASE_BREAKPOINT_ID, breakpoints }=window.BreakdanceFrontend.data;
const activeBreakpoint=breakpoints
.filter((b)=> {
if(!breakpointIds) return true;
return breakpointIds.includes(b.id);
})
.sort((a, b)=> a.maxWidth - b.maxWidth)
.find((b)=> matchMedia(b));
return (
activeBreakpoint||breakpoints.find((b)=> b.id===BASE_BREAKPOINT_ID)
);
}
function selectString(str){
try {
return document.querySelectorAll(str);
} catch (e){
return null;
}}
function toArray(o){
if(is.arr(o)){
return o;
}
if(is.str(o)){
o=selectString(o)||o;
}
if(o instanceof NodeList||o instanceof HTMLCollection){
return [].slice.call(o);
}
return [o];
}
function cloneObject(obj){
return JSON.parse(JSON.stringify(obj));
}
function mergeObjects(obj1, source){
const target=cloneObject(obj1);
if(!is.obj(source)){
return target;
}
Object.keys(source).forEach((key)=> {
const targetValue=target[key];
const sourceValue=source[key];
if(is.obj(targetValue)&&is.obj(sourceValue)){
target[key]=mergeObjects(Object.assign({}, targetValue), sourceValue);
}else if(!is.nil(sourceValue)){
target[key]=sourceValue;
}});
return target;
}
function on(eventName, element, callback){
if(!is.fnc(callback)){
callback=element;
element=null;
}
if(element){
toArray(element).forEach((el)=> {
el.addEventListener(eventName, callback);
});
}else{
window.addEventListener(eventName, callback);
}}
function off(eventName, element, callback){
if(!is.fnc(callback)){
callback=element;
element=null;
}
if(element){
toArray(element).forEach((el)=> {
el.removeEventListener(eventName, callback);
});
}else{
window.removeEventListener(eventName, callback);
}}
function onResize(callback){
const resizeObserver=new ResizeObserver(callback);
resizeObserver.observe(document.body);
return ()=> {
resizeObserver.disconnect();
};}
function debounce(callback, wait, immediate){
let timeout;
return function (){
const context=this,
args=arguments;
const later=function (){
timeout=null;
if(!immediate) callback.apply(context, args);
};
const callNow=immediate&&!timeout;
clearTimeout(timeout);
timeout=setTimeout(later, wait);
if(callNow) callback.apply(context, args);
};}
function throttle(callback, wait){
let waiting=false;
return function (){
if(!waiting){
callback.apply(this, arguments);
waiting=true;
setTimeout(()=> {
waiting=false;
}, wait);
}};}
function prefersReducedMotion(){
return window.matchMedia("(prefers-reduced-motion: reduce)").matches;
}
function makeAjaxRequest(url, options){
return fetch(url, options);
}
function isBuilder(){
try {
return !!window.parent.Breakdance;
} catch (e){
return false;
}}
if(!window.BreakdanceFrontend){
window.BreakdanceFrontend={};}
window.BreakdanceFrontend.utils={
is,
getCurrentBreakpoint,
getMediaQueryString,
matchMedia,
matchAnyMedia,
toArray,
cloneObject,
mergeObjects,
on,
off,
onResize,
debounce,
throttle,
prefersReducedMotion,
makeAjaxRequest,
isBuilder,
};})();