// shared/js/door-open.js // Bratonien Adventskalender – Öffnungslogik (inkl. Klick auf Openfield) document.querySelectorAll(".door, .fluegel, .openfield").forEach(elem => { elem.addEventListener("click", () => { const day = elem.dataset.day; const openfield = document.querySelector(`.openfield[data-day="${day}"]`); const doors = document.querySelectorAll(`.door[data-day="${day}"]`); const fluegelLinks = document.querySelector(`.fluegel.left[data-day="${day}"]`); const fluegelRechts = document.querySelector(`.fluegel.right[data-day="${day}"]`); // === EINZELTÜR === if ( elem.classList.contains("door") || (elem.classList.contains("openfield") && doors.length > 0) ) { const door = doors[0]; if (!door) return; if (door.classList.contains("open")) { console.log(`Tür ${day} erneut geöffnet (auch via Openfield)`); return; } door.classList.add("open"); if (openfield) openfield.classList.add("open"); console.log(`Tür ${day} geöffnet${elem.classList.contains("openfield") ? " (via Openfield)" : ""}`); return; } // === DOPPELFLÜGEL === if ( elem.classList.contains("fluegel") || (elem.classList.contains("openfield") && fluegelLinks && fluegelRechts) ) { const alreadyOpen = document.querySelectorAll(`.fluegel[data-day="${day}"].rota`); if (alreadyOpen.length === 2) { console.log(`Flügeltür ${day} erneut geöffnet (auch via Openfield)`); return; } if (fluegelLinks) fluegelLinks.classList.add("rota"); if (fluegelRechts) fluegelRechts.classList.add("rota"); if (openfield) openfield.classList.add("open"); console.log(`Flügeltür ${day} geöffnet${elem.classList.contains("openfield") ? " (via Openfield)" : ""}`); } }); });