document.addEventListener("DOMContentLoaded", () => {
  const zielbereich = document.getElementById("textfeld");

  // Scrollt die gesamte Seite bis zur Oberkante von #textliste-scrollen
  function scrollSeiteZurTextliste() {
    const target = document.getElementById("textliste-scrollen");
    if (target) {
      const rect = target.getBoundingClientRect();
      const top = rect.top + window.scrollY;
      window.scrollTo({ top, behavior: "smooth" });
    }
  }

  // Artikel laden
  async function ladeArtikel(url, push = false) {
    zielbereich.style.opacity = 0;
    try {
      const response = await fetch(url);
      if (!response.ok) throw new Error(`HTTP-Fehler: ${response.status}`);

      const html = await response.text();
      const parser = new DOMParser();
      const doc = parser.parseFromString(html, "text/html");
      const article = doc.querySelector("article");

      if (article) {
        setTimeout(() => {
          zielbereich.innerHTML = article.outerHTML;
          zielbereich.style.opacity = 1;
          scrollSeiteZurTextliste();
        }, 300);
        if (push) history.pushState(null, "", url);
      } else {
        zielbereich.innerHTML = "<p>⚠️ Kein Artikel gefunden.</p>";
        zielbereich.style.opacity = 1;
      }
    } catch (err) {
      console.error("Fehler beim Laden:", err);
      zielbereich.innerHTML = `<p>❌ Fehler: ${err.message}</p>`;
      zielbereich.style.opacity = 1;
    }
  }

  // Initiales Laden
  const aktuellePfad = window.location.pathname;
  if (aktuellePfad === "/" || aktuellePfad.endsWith("index.html")) {
    ladeArtikel("/editorial.html", false);
  } else {
    ladeArtikel(aktuellePfad, false);
  }

  // Zurück-Button
  window.addEventListener("popstate", () => {
    ladeArtikel(window.location.pathname, false);
  });

  // Klick-Handling
  document.addEventListener("click", e => {
    const link = e.target.closest("a");
    if (!link) return;

    const href = link.getAttribute("href");

    // 1) Rubrik-Links im Menü: href="#id"
    if (href && href.startsWith("#")) {
      e.preventDefault();
      const targetId = href.substring(1); // z.B. "kodder"
      scrollSeiteZurTextliste();
      const ziel = document.getElementById(targetId);
      if (ziel) {
        ziel.scrollIntoView({ behavior: "smooth", block: "start" });
      }
      return; // NICHT laden
    }

    // 2) Rubrik-Links im Editorial: class="rubrik-link" data-target="id"
    if (link.classList.contains("rubrik-link")) {
      e.preventDefault();
      const targetId = link.dataset.target;
      scrollSeiteZurTextliste();
      const ziel = document.getElementById(targetId);
      if (ziel) {
        ziel.scrollIntoView({ behavior: "smooth", block: "start" });
      } else {
        zielbereich.innerHTML = `<p>⚠️ Rubrik <strong>${targetId}</strong> wurde nicht gefunden.</p>`;
      }
      return; // NICHT laden
    }

    // 3) Artikel-Links mit data-load
    if (link.hasAttribute("data-load")) {
      e.preventDefault();
      const url = new URL(href, window.location.origin).pathname;
      ladeArtikel(url, true);
      scrollSeiteZurTextliste();
    }
  });
});
