function updateCurrentTime() { const now = new Date(); const timeStr = now.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }); document.getElementById("current-time").textContent = timeStr; // Update datum informatie elke minuut updateDateInfo(); } function updateDateInfo() { fetch('/api/date-info') .then(response => response.json()) .then(data => { const gregorianElement = document.querySelector('.gregorian-datum'); const hijriArabicElement = document.querySelector('.hijri-datum-arabic'); const hijriDutchElement = document.querySelector('.hijri-datum-dutch'); if (gregorianElement) gregorianElement.textContent = data.gregorian_full; if (hijriArabicElement) hijriArabicElement.textContent = data.hijri_arabic; if (hijriDutchElement) hijriDutchElement.textContent = data.hijri_dutch; }) .catch(error => { console.log('Fout bij bijwerken datum:', error); }); } // Gebedstijden ophalen uit een globale variabele (wordt in de template gezet) let prayerTimes = window.prayerTimes || []; let prayerNames = window.prayerNames || []; let currentPrayerIndex = 0; function startCountdowns(times, names) { prayerTimes = times; prayerNames = names; currentPrayerIndex = getNextPrayerIndex(); startCountdown(prayerTimes[currentPrayerIndex], prayerNames[currentPrayerIndex]); } function getNextPrayerIndex() { const now = new Date(); for (let i = 0; i < prayerTimes.length; i++) { const [h, m] = prayerTimes[i].split(":"); const t = new Date(); t.setHours(parseInt(h)); t.setMinutes(parseInt(m)); t.setSeconds(0); if (t > now) return i; } return 0; // fallback: eerste gebed } function startCountdown(targetTimeStr, prayerName) { const parts = targetTimeStr.split(":"); let target = new Date(); target.setHours(parseInt(parts[0])); target.setMinutes(parseInt(parts[1])); target.setSeconds(0); document.querySelector('.huidig-gebed .naam').textContent = prayerName; function update() { const now = new Date(); let diff = Math.floor((target - now) / 1000); if (diff <= 0) { // Speel adhaan af via browser const audio = document.getElementById('adhanAudio'); if (audio) audio.play(); // Ga naar volgende gebed currentPrayerIndex = (currentPrayerIndex + 1) % prayerTimes.length; const nextTime = prayerTimes[currentPrayerIndex]; const nextName = prayerNames[currentPrayerIndex]; startCountdown(nextTime, nextName); return; } const h = String(Math.floor(diff / 3600)).padStart(2, '0'); const m = String(Math.floor((diff % 3600) / 60)).padStart(2, '0'); const s = String(diff % 60).padStart(2, '0'); document.getElementById("countdown").textContent = `${h}:${m}:${s}`; } update(); window._countdownInterval && clearInterval(window._countdownInterval); window._countdownInterval = setInterval(update, 1000); } function setupThemeToggle() { const toggleBtn = document.getElementById("themeToggle"); const html = document.documentElement; function applyTheme(theme) { html.className = theme; localStorage.setItem('theme', theme); } const saved = localStorage.getItem('theme') || 'light'; applyTheme(saved); toggleBtn.addEventListener("click", () => { const current = html.className === 'light' ? 'dark' : 'light'; applyTheme(current); }); }