function updateCurrentTime() {
  // Check eerst of debug mode actief is
  fetch('/api/debug-time')
    .then(response => response.json())
    .then(data => {
      if (data.success && data.debug_active) {
        // Gebruik debug tijd
        document.getElementById("current-time").textContent = data.current_time_display;
        console.log(`🔧 Debug tijd actief: ${data.current_time_display} (offset: ${data.offset}s)`);
      } else {
        // Gebruik normale tijd
        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();
    })
    .catch(error => {
      // Fallback naar normale tijd bij fout
      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;
let isNextDayPrayer = false;

function startCountdowns(times, names) {
  prayerTimes = times;
  prayerNames = names;
  
  getNextPrayer().then(nextPrayer => {
    currentPrayerIndex = nextPrayer.index;
    isNextDayPrayer = nextPrayer.isNextDay;
    startCountdown(prayerTimes[currentPrayerIndex], prayerNames[currentPrayerIndex], isNextDayPrayer);
  }).catch(error => {
    console.log('Fout bij bepalen volgende gebed:', error);
    // Fallback
    currentPrayerIndex = 0;
    isNextDayPrayer = false;
    startCountdown(prayerTimes[currentPrayerIndex], prayerNames[currentPrayerIndex], isNextDayPrayer);
  });
}

function getNextPrayer() {
  // Gebruik debug tijd als actief
  return fetch('/api/debug-time')
    .then(response => response.json())
    .then(data => {
      let currentTime;
      
      if (data.success && data.debug_active) {
        // Gebruik debug tijd
        const debugTime = data.current_time_display;
        const [h, m] = debugTime.split(":");
        currentTime = parseInt(h) * 60 + parseInt(m);
        console.log(`🔧 Debug tijd gebruikt voor countdown: ${debugTime}`);
      } else {
        // Gebruik normale tijd
        const now = new Date();
        currentTime = now.getHours() * 60 + now.getMinutes();
      }
      
      // Zoek naar volgende gebed vandaag
      for (let i = 0; i < prayerTimes.length; i++) {
        const [h, m] = prayerTimes[i].split(":");
        const prayerTimeMinutes = parseInt(h) * 60 + parseInt(m);
        
        if (prayerTimeMinutes > currentTime) {
          return { index: i, isNextDay: false };
        }
      }
      
      // Alle gebeden van vandaag zijn voorbij, volgende is eerste gebed van morgen
      return { index: 0, isNextDay: true };
    })
    .catch(error => {
      console.log('Fout bij ophalen debug tijd, gebruik normale tijd:', error);
      // Fallback naar normale tijd
      const now = new Date();
      const currentTime = now.getHours() * 60 + now.getMinutes();
      
      for (let i = 0; i < prayerTimes.length; i++) {
        const [h, m] = prayerTimes[i].split(":");
        const prayerTimeMinutes = parseInt(h) * 60 + parseInt(m);
        
        if (prayerTimeMinutes > currentTime) {
          return { index: i, isNextDay: false };
        }
      }
      
      return { index: 0, isNextDay: true };
    });
}

function startCountdown(targetTimeStr, prayerName, isNextDay = false) {
  const parts = targetTimeStr.split(":");
  let target = new Date();
  target.setHours(parseInt(parts[0]));
  target.setMinutes(parseInt(parts[1]));
  target.setSeconds(0);
  
  // Als het volgende gebed morgen is, voeg een dag toe
  if (isNextDay) {
    target.setDate(target.getDate() + 1);
  }

  // Update de naam met "morgen" indicator als nodig
  const displayName = isNextDay ? `${prayerName} (morgen)` : prayerName;
  document.querySelector('.huidig-gebed-bottom .naam').textContent = displayName;

  function update() {
    // Gebruik debug tijd als actief
    fetch('/api/debug-time')
      .then(response => response.json())
      .then(data => {
        let now;
        
        if (data.success && data.debug_active) {
          // Gebruik debug tijd
          const debugTime = data.current_time;
          const [h, m, s] = debugTime.split(":");
          now = new Date();
          now.setHours(parseInt(h), parseInt(m), parseInt(s), 0);
        } else {
          // Gebruik normale tijd
          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();
          
          // Trigger Adzkaar scherm na 3 seconden (geef adhaan tijd om te starten)
          setTimeout(() => {
            triggerAdzkaarScreen(displayName);
          }, 3000);
          
          // Ga naar volgende gebed
          if (isNextDayPrayer) {
            // We waren aan het wachten op het eerste gebed van de nieuwe dag
            // Nu gaan we naar het tweede gebed van vandaag (nieuwe dag)
            currentPrayerIndex = 1;
            isNextDayPrayer = false;
            
            if (currentPrayerIndex < prayerTimes.length) {
              startCountdown(prayerTimes[currentPrayerIndex], prayerNames[currentPrayerIndex], false);
            } else {
              // Dit zou niet moeten gebeuren, maar veiligheidshalve
              currentPrayerIndex = 0;
              isNextDayPrayer = true;
              startCountdown(prayerTimes[currentPrayerIndex], prayerNames[currentPrayerIndex], true);
            }
          } else {
            // Normaal doorgang naar volgende gebed
            currentPrayerIndex++;
            
            if (currentPrayerIndex >= prayerTimes.length) {
              // Alle gebeden van vandaag zijn klaar, ga naar eerste gebed van morgen
              currentPrayerIndex = 0;
              isNextDayPrayer = true;
            }
            
            startCountdown(prayerTimes[currentPrayerIndex], prayerNames[currentPrayerIndex], isNextDayPrayer);
          }
          return;
        }

        // Toon countdown
        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}`;
      })
      .catch(error => {
        // Fallback naar normale tijd
        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();
          
          // Trigger Adzkaar scherm na 3 seconden (geef adhaan tijd om te starten)
          setTimeout(() => {
            triggerAdzkaarScreen(displayName);
          }, 3000);
          
          // Ga naar volgende gebed
          if (isNextDayPrayer) {
            currentPrayerIndex = 1;
            isNextDayPrayer = false;
            
            if (currentPrayerIndex < prayerTimes.length) {
              startCountdown(prayerTimes[currentPrayerIndex], prayerNames[currentPrayerIndex], false);
            } else {
              currentPrayerIndex = 0;
              isNextDayPrayer = true;
              startCountdown(prayerTimes[currentPrayerIndex], prayerNames[currentPrayerIndex], true);
            }
          } else {
            currentPrayerIndex++;
            
            if (currentPrayerIndex >= prayerTimes.length) {
              currentPrayerIndex = 0;
              isNextDayPrayer = true;
            }
            
            startCountdown(prayerTimes[currentPrayerIndex], prayerNames[currentPrayerIndex], isNextDayPrayer);
          }
          return;
        }

        // Toon countdown
        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);
  });
}

function triggerAdzkaarScreen(prayerName) {
  // Check eerst of Adzkaar is ingeschakeld via API
  fetch('/api/trigger-adzkaar', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' }
  })
  .then(response => response.json())
  .then(data => {
    if (data.success) {
      console.log(`📿 Adzkaar scherm wordt getoond na ${prayerName}`);
      
      // Toon Adzkaar modal in plaats van nieuwe pagina
      if (window.showAdzkaarModal) {
        // Gebruik de duur uit de API response of standaard 5 minuten
        const durationMinutes = data.duration_minutes || 5;
        window.showAdzkaarModal(durationMinutes);
      } else {
        console.log('📿 Adzkaar modal functie niet beschikbaar');
      }
    } else {
      console.log(`📿 Adzkaar niet getoond: ${data.error}`);
    }
  })
  .catch(error => {
    console.log(`❌ Fout bij Adzkaar trigger: ${error.message}`);
  });
}
