const popup = document.getElementById("building-popup"); const title = document.getElementById("popup-title"); const tooltip = document.getElementById("map-tooltip"); function resetTabs() { document .querySelectorAll(".tab") .forEach((t) => t.classList.remove("active")); document .querySelectorAll(".tab-content") .forEach((c) => c.classList.remove("active")); // erster Tab aktiv const firstTab = document.querySelector(".tab"); const firstContent = document.querySelector(".tab-content"); if (firstTab) firstTab.classList.add("active"); if (firstContent) firstContent.classList.add("active"); } document.querySelectorAll(".building").forEach((b) => { b.addEventListener("click", async (e) => { e.preventDefault(); const name = b.querySelector("title").textContent; const url = b.getAttribute("href"); title.innerText = name; // Position des Gebäudes const rect = b.getBoundingClientRect(); popup.style.left = "50%"; popup.style.top = "50%"; popup.style.display = "block"; resetTabs(); // AJAX Gebäudedaten laden const res = await fetch("/api" + url); const data = await res.json(); document.getElementById("tab-info").innerHTML = `

${data.name}

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}

`; }); }); // Tabs 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"); }); }); document.querySelector(".popup-close").onclick = () => { popup.style.display = "none"; }; async function loadBuilding(buildingId) { try { const res = await fetch("/api/building/" + buildingId); const data = await res.json(); document.getElementById("tab-info").innerHTML = `

${data.name}

Level: ${data.level}

Punkte: ${data.points} / ${data.nextLevelPoints}

${data.description}

`; document.getElementById("tab-upgrade").innerHTML = `

Nächstes Level benötigt:

${data.nextLevelPoints} Punkte

Kosten: ${data.upgradeCost}

`; document.getElementById("tab-history").innerHTML = `

${data.history}

`; } catch (err) { console.error("Fehler beim Laden des Gebäudes:", err); } } document.querySelectorAll(".building").forEach((building) => { building.addEventListener("mouseenter", async (e) => { const id = building.dataset.id; const res = await fetch("/api/building/" + id); const data = await res.json(); tooltip.innerHTML = ` ${data.name}
Level ${data.level}
Punkte ${data.points}/${data.nextLevelPoints}

Upgrade Kosten:
${data.upgradeCost} `; tooltip.style.display = "block"; }); building.addEventListener("mousemove", (e) => { tooltip.style.left = e.clientX + 15 + "px"; tooltip.style.top = e.clientY + 15 + "px"; }); building.addEventListener("mouseleave", () => { tooltip.style.display = "none"; }); });