const popup = document.getElementById("building-popup"); const title = document.getElementById("popup-title"); const tooltip = document.getElementById("map-tooltip"); /* ================================ Tabs zurücksetzen ================================ */ function resetTabs() { document .querySelectorAll(".tab") .forEach((t) => t.classList.remove("active")); document .querySelectorAll(".tab-content") .forEach((c) => c.classList.remove("active")); const firstTab = document.querySelector(".tab"); const firstContent = document.querySelector(".tab-content"); if (firstTab) firstTab.classList.add("active"); if (firstContent) firstContent.classList.add("active"); } /* ================================ Gebäude Popup öffnen ================================ */ document.querySelectorAll(".building").forEach((building) => { building.addEventListener("click", async (e) => { e.preventDefault(); try { const name = building.querySelector("title")?.textContent || "Gebäude"; const url = building.getAttribute("href"); title.innerText = name; popup.style.left = "50%"; popup.style.top = "50%"; popup.style.display = "block"; resetTabs(); const res = await fetch("/api" + url); if (!res.ok) throw new Error("API Fehler"); const data = await res.json(); document.getElementById("tab-info").innerHTML = `
Level: ${data.level}
Punkte: ${data.points} / ${data.nextLevelPoints}
${data.description}
`; document.getElementById("tab-actions").innerHTML = ` `; document.getElementById("tab-upgrade").innerHTML = `Kosten: ${data.upgradeCost}
`; document.getElementById("tab-history").innerHTML = `${data.history}
`; } catch (error) { console.error("Gebäude konnte nicht geladen werden:", error); } }); }); /* ================================ Tabs wechseln ================================ */ document.querySelectorAll(".tab").forEach((tab) => { tab.addEventListener("click", () => { document .querySelectorAll(".tab") .forEach((t) => t.classList.remove("active")); tab.classList.add("active"); document .querySelectorAll(".tab-content") .forEach((c) => c.classList.remove("active")); document.getElementById("tab-" + tab.dataset.tab).classList.add("active"); }); }); /* ================================ Popup schließen ================================ */ document.querySelector(".popup-close").onclick = () => { popup.style.display = "none"; }; /* ================================ Tooltip ================================ */ document.querySelectorAll(".building").forEach((building) => { building.addEventListener("mouseenter", async (e) => { try { const id = building.dataset.id; const res = await fetch("/api/building/" + id); if (!res.ok) throw new Error("API Fehler"); const data = await res.json(); tooltip.innerHTML = ` ${data.name}