/* ===================================================================== medien-welt.js — gemeinsame Render-Logik für die 3 Welten-Medienseiten (medien-dogfather.html / medien-hasidog.html / medien-casper.html) Jede der 3 Seiten setzt
und lädt data-media.js, data-videos.js, data-aktionen.js VOR dieser Datei — so gibt es EIN Template/Skript für alle 3 Welten, ohne Code-Verdopplung. ===================================================================== */ function renderFotoItem(item) { const media = item.src ? `${a.summary}
Details ansehen → `; } function bindLightbox() { const lb = document.getElementById("lightbox"); const lbContent = document.getElementById("lightbox-content"); if (!lb || !lbContent) return; document.querySelectorAll("#foto-grid .gallery-item").forEach((el) => { el.addEventListener("click", () => { lbContent.innerHTML = el.innerHTML; lb.classList.add("open"); }); }); } document.addEventListener("DOMContentLoaded", () => { const welt = document.body.dataset.welt; if (!welt) return; const fotoGrid = document.getElementById("foto-grid"); if (fotoGrid) { const fotos = (window.MEDIA || []).filter((m) => m.welt === welt); fotoGrid.innerHTML = fotos.map(renderFotoItem).join("") || `Noch keine Fotos in dieser Welt.
`; bindLightbox(); } const videoGrid = document.getElementById("video-grid"); if (videoGrid) { const videos = (window.VIDEOS || []).filter((v) => v.welt === welt); videoGrid.innerHTML = videos.map(renderVideoItem).join("") || `Noch keine Videos in dieser Welt.
`; } const aktionenGrid = document.getElementById("aktionen-grid"); if (aktionenGrid) { const aktionen = (window.AKTIONEN || []).filter((a) => a.welt === welt); aktionenGrid.innerHTML = aktionen.map(renderAktionItem).join("") || `Aktuell keine Events in dieser Welt.
`; } const lb = document.getElementById("lightbox"); if (lb) { lb.addEventListener("click", (e) => { if (e.target === lb || e.target.closest(".lightbox-close")) lb.classList.remove("open"); }); document.addEventListener("keydown", (e) => { if (e.key === "Escape") lb.classList.remove("open"); }); } });