(function(){"use strict";const CONSENT_COOKIE_NAME="hexahost_cookie_consent";const CONSENT_DAYS=365;const cookieBanner=document.getElementById("cookieConsent");const settingsPanel=document.getElementById("cookieSettingsPanel");const acceptAllButton=document.getElementById("cookieAcceptAll");const acceptEssentialButton=document.getElementById("cookieAcceptEssential");const settingsButton=document.getElementById("cookieSettings");const saveSettingsButton=document.getElementById("cookieSaveSettings");const closeSettingsButton=document.getElementById("cookieCloseSettings");const analyticsCheckbox=document.getElementById("cookieAnalytics");const marketingCheckbox=document.getElementById("cookieMarketing");const cookieStore={set:function(name,value,days){const expiresDate=new Date();expiresDate.setTime(expiresDate.getTime()+days*24*60*60*1000);const expiresString="expires="+expiresDate.toUTCString();document.cookie=name+"="+JSON.stringify(value)+";"+expiresString+";path=/;SameSite=Lax;Secure";},get:function(name){const prefix=name+"=";const cookies=document.cookie.split(";");for(let index=0;indexthis.acceptAll());}if(acceptEssentialButton){acceptEssentialButton.addEventListener("click",()=>this.acceptEssential());}if(settingsButton){settingsButton.addEventListener("click",()=>this.showSettings());}if(saveSettingsButton){saveSettingsButton.addEventListener("click",()=>this.saveSettings());}if(closeSettingsButton){closeSettingsButton.addEventListener("click",()=>this.hideSettings());}document.addEventListener("keydown",event=>{if(event.key==="Escape"&&settingsPanel&&settingsPanel.style.display!=="none"){this.hideSettings();}});},acceptAll:function(){const allConsent={essential:true,analytics:true,marketing:true,timestamp:new Date().toISOString()};this.saveConsent(allConsent);this.hideBanner();this.applyConsent(allConsent);this.showNotification("Alle Cookies wurden akzeptiert.","success");},acceptEssential:function(){const essentialConsent={essential:true,analytics:false,marketing:false,timestamp:new Date().toISOString()};this.saveConsent(essentialConsent);this.hideBanner();this.applyConsent(essentialConsent);this.showNotification("Nur notwendige Cookies wurden akzeptiert.","info");},saveSettings:function(){const customConsent={essential:true,analytics:analyticsCheckbox?analyticsCheckbox.checked:false,marketing:marketingCheckbox?marketingCheckbox.checked:false,timestamp:new Date().toISOString()};this.saveConsent(customConsent);this.hideSettings();this.hideBanner();this.applyConsent(customConsent);this.showNotification("Cookie-Einstellungen wurden gespeichert.","success");},saveConsent:function(consent){cookieStore.set(CONSENT_COOKIE_NAME,consent,CONSENT_DAYS);},getConsent:function(){return cookieStore.get(CONSENT_COOKIE_NAME);},applyConsent:function(consent){const eventPayload={detail:consent};window.dispatchEvent(new CustomEvent("cookieConsentUpdated",eventPayload));if(consent.analytics){this.enableAnalytics();}else{this.disableAnalytics();}if(consent.marketing){this.enableMarketing();}else{this.disableMarketing();}},enableAnalytics:function(){console.log("Analytics enabled");},disableAnalytics:function(){console.log("Analytics disabled");},enableMarketing:function(){console.log("Marketing enabled");},disableMarketing:function(){console.log("Marketing disabled");},showBanner:function(){if(cookieBanner){cookieBanner.classList.remove("hide");cookieBanner.classList.add("show");cookieBanner.setAttribute("aria-hidden","false");setTimeout(()=>{if(acceptAllButton){acceptAllButton.focus();}},100);}},hideBanner:function(){if(cookieBanner){cookieBanner.classList.remove("show");cookieBanner.classList.add("hide");cookieBanner.setAttribute("aria-hidden","true");}},showSettings:function(){if(settingsPanel){const savedConsent=this.getConsent()||this.defaultConsent;if(analyticsCheckbox){analyticsCheckbox.checked=savedConsent.analytics;}if(marketingCheckbox){marketingCheckbox.checked=savedConsent.marketing;}settingsPanel.style.display="block";settingsPanel.setAttribute("aria-hidden","false");}},hideSettings:function(){if(settingsPanel){settingsPanel.style.display="none";settingsPanel.setAttribute("aria-hidden","true");}},showNotification:function(message,type){if(window.HexaHost&&typeof window.HexaHost.showNotification==="function"){window.HexaHost.showNotification(message,type);}},resetConsent:function(){cookieStore.delete(CONSENT_COOKIE_NAME);this.showBanner();if(settingsPanel){settingsPanel.style.display="none";}}};if(document.readyState==="loading"){document.addEventListener("DOMContentLoaded",()=>cookieConsentManager.init());}else{cookieConsentManager.init();}window.CookieConsent=cookieConsentManager;})();