document.addEventListener("DOMContentLoaded", function () {
    const bar = document.getElementById("mm-announcement");
    if (!bar) return;

    // --- 1. Positionierung ---
    const position = bar.dataset.position || 'below-header';

    if (position === "top") {
        document.body.insertAdjacentElement('afterbegin', bar);
    } 
    else if (position === "below-slider") {
        const anchor = document.getElementById("mm-announcement-anchor");
        if (anchor) {
            anchor.replaceWith(bar);
        } else {
            const header = document.getElementById("masthead");
            if (header) header.insertAdjacentElement('afterend', bar);
        }
    }
    else if (position === "below-header") {
        const header = document.getElementById("masthead");
        if (header) header.insertAdjacentElement('afterend', bar);
    } 
    else {
        const header = document.getElementById("masthead");
        if (header) header.insertAdjacentElement('afterend', bar);
    }

    const closeBtn = bar.querySelector(".mm-announcement-close");
    if (closeBtn) {
        closeBtn.addEventListener("click", function () {
            bar.style.display = "none";
        });
    }

    // --- 2. Countdown Timer Logik ---
    const timerElement = document.querySelector('.mm-countdown-timer');
    
    if (timerElement) {
        const targetDateString = timerElement.getAttribute('data-date');
        const expiredMessage = timerElement.getAttribute('data-expired');
        
        // Prüfen ob Datum gesetzt ist
        if (targetDateString) {
            const countDownDate = new Date(targetDateString).getTime();

            const updateTimer = setInterval(function() {
                const now = new Date().getTime();
                const distance = countDownDate - now;

                if (distance < 0) {
                    clearInterval(updateTimer);
                    timerElement.innerHTML = expiredMessage;
                    // Optional: Rot einfärben wenn abgelaufen
                    timerElement.style.color = '#ff3333'; 
                    return;
                }

                // Zeitberechnung
                const days = Math.floor(distance / (1000 * 60 * 60 * 24));
                const hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
                const minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
                const seconds = Math.floor((distance % (1000 * 60)) / 1000);

                // Formatierung (z.B. 05 statt 5)
                const fDays = days > 0 ? days + "d " : "";
                const fHours = hours < 10 ? "0" + hours : hours;
                const fMinutes = minutes < 10 ? "0" + minutes : minutes;
                const fSeconds = seconds < 10 ? "0" + seconds : seconds;

                timerElement.innerHTML = fDays + fHours + ":" + fMinutes + ":" + fSeconds;
            }, 1000);
            
            // Sofort einmal ausführen, um Ladezeit zu vermeiden
            // Wir lösen das Interval manuell für den ersten Durchlauf aus, 
            // indem wir den Code kopieren oder den Timeout kurz setzen. 
            // Für diesen Fall reicht der erste Tick nach 1 Sekunde, 
            // aber wir können es direkt aufrufen:
            // (Hier nutzen wir einfach den ersten Tick des Intervals)
        } else {
            timerElement.style.display = 'none';
        }
    }
});