/* =====================================================================
gallery.js — filterbare Mediengalerie + Lightbox (für medien.html)
MEDIA-Array unten mit echten Bildern befüllen sobald verfügbar
(assets/img/...). Bis dahin rendert jeder Eintrag ohne "src" einen
Platzhalter-Block mit passendem Alt-Text, damit die Struktur schon
steht und nur noch Bilder eingehängt werden müssen.
===================================================================== */
const MEDIA = [
{ id: 1, category: "dogfather", alt: "Dogfather Profilbild", src: "" },
{ id: 2, category: "dogfather", alt: "Dogfather beim Stream", src: "" },
{ id: 3, category: "team", alt: "Team Dogi Gruppenbild", src: "" },
{ id: 4, category: "team", alt: "Patrick (Scout)", src: "" },
{ id: 5, category: "team", alt: "Bananenstift (Scout)", src: "" },
{ id: 6, category: "team", alt: "VanVan", src: "" },
{ id: 7, category: "hasidog", alt: "HasiDog Logo/Maskottchen", src: "" },
{ id: 8, category: "hasidog", alt: "Husky Casper", src: "" },
{ id: 9, category: "hasidog", alt: "Casper & Kater Simba", src: "" },
{ id: 10, category: "manager", alt: "Spicy Media Logo", src: "" },
{ id: 11, category: "aktionen", alt: "Weihnachtsaktion Portugal", src: "" },
{ id: 12, category: "aktionen", alt: "VanVan Teddys Merch", src: "" },
// TODO: echte Bilder aus den vom User gelieferten Assets ergänzen
// (assets/img/... Pfad eintragen, dann wird automatisch das Bild
// statt des Platzhalters angezeigt).
];
function renderGalleryItem(item) {
const media = item.src
? ``
: `
Keine Bilder in dieser Kategorie.
`; bindLightbox(); } filterBar.addEventListener("click", (e) => { const btn = e.target.closest(".filter-btn"); if (!btn) return; filterBar.querySelectorAll(".filter-btn").forEach((b) => b.classList.remove("active")); btn.classList.add("active"); draw(btn.dataset.filter); }); function bindLightbox() { const lb = document.getElementById("lightbox"); const lbContent = document.getElementById("lightbox-content"); if (!lb || !lbContent) return; grid.querySelectorAll(".gallery-item").forEach((el) => { el.addEventListener("click", () => { lbContent.innerHTML = el.innerHTML; lb.classList.add("open"); }); }); } draw("alle"); 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"); }); } } document.addEventListener("DOMContentLoaded", initGallery);