document.addEventListener('DOMContentLoaded', function () { const header = document.getElementById('mainHeader'); if (header) { window.addEventListener('scroll', function () { if (window.scrollY > 100) { header.classList.add('scrolled'); } else { header.classList.remove('scrolled'); } }); } // Intersection Observer for animations const animatedElements = document.querySelectorAll('.animate-on-scroll'); if (animatedElements.length > 0) { const observer = new IntersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting) { entry.target.classList.add('is-visible'); // Optional: unobserve after animation // observer.unobserve(entry.target); } }); }, { threshold: 0.1 }); animatedElements.forEach(el => { observer.observe(el); }); } // Newsletter Form Handler const newsletterForm = document.getElementById('newsletterForm'); if (newsletterForm) { newsletterForm.addEventListener('submit', function(e) { e.preventDefault(); const emailInput = newsletterForm.querySelector('input[type="email"]'); if (emailInput.value) { alert('Danke für Ihr Interesse! Sie wurden zu unserem Newsletter hinzugefügt.'); emailInput.value = ''; } else { alert('Bitte geben Sie eine gültige E-Mail-Adresse ein.'); } }); } // Cookie Banner Handler const cookieBanner = document.getElementById('cookieBanner'); const cookieAccept = document.getElementById('cookieAccept'); const cookieReject = document.getElementById('cookieReject'); const cookieConsent = localStorage.getItem('cookie_consent'); // Show banner if no consent has been given if (!cookieConsent) { setTimeout(() => { cookieBanner.classList.add('visible'); }, 1000); // Delay showing the banner slightly } const handleCookieConsent = (consent) => { localStorage.setItem('cookie_consent', consent); cookieBanner.classList.remove('visible'); }; if(cookieAccept) { cookieAccept.addEventListener('click', () => handleCookieConsent('accepted')); } if(cookieReject) { cookieReject.addEventListener('click', () => handleCookieConsent('rejected')); } // Mobile Menu Handler const mobileToggle = document.querySelector('.mobile-toggle'); const mobileMenu = document.getElementById('mobileMenu'); const closeMobileMenu = document.getElementById('closeMobileMenu'); const body = document.body; const openMenu = () => { mobileMenu.classList.add('open'); body.classList.add('menu-open'); }; const closeMenu = () => { mobileMenu.classList.remove('open'); body.classList.remove('menu-open'); }; if (mobileToggle && mobileMenu) { mobileToggle.addEventListener('click', openMenu); } if (closeMobileMenu) { closeMobileMenu.addEventListener('click', closeMenu); } // Close menu when clicking a link inside const mobileNavLinks = mobileMenu.querySelectorAll('a[href^="#"]'); mobileNavLinks.forEach(link => { link.addEventListener('click', () => { // Don't close for section toggles if (!link.parentElement.classList.contains('mobile-subsection')) { closeMenu(); } }); }); // Accordion for mobile sub-menu const sectionToggles = mobileMenu.querySelectorAll('.section-toggle'); sectionToggles.forEach(toggle => { toggle.addEventListener('click', () => { const section = toggle.parentElement; const subsection = section.querySelector('.mobile-subsection'); section.classList.toggle('open'); if (section.classList.contains('open')) { subsection.style.maxHeight = subsection.scrollHeight + 'px'; } else { subsection.style.maxHeight = '0'; } }); }); // Language Switcher Handler const langSwitcherBtn = document.getElementById('langSwitcherBtn'); const langDropdown = document.getElementById('langDropdown'); const langSwitcherContainer = document.querySelector('.lang-switcher-container'); if (langSwitcherBtn && langDropdown && langSwitcherContainer) { langSwitcherBtn.addEventListener('click', (event) => { event.stopPropagation(); // Prevent the click from immediately closing the dropdown langSwitcherContainer.classList.toggle('open'); }); document.addEventListener('click', (event) => { if (!langSwitcherContainer.contains(event.target)) { langSwitcherContainer.classList.remove('open'); } }); } });