const headerHtml = `
`; const footerHtml = ` `; function getCurrentTheme() { return document.documentElement.getAttribute("data-theme") === "dark" ? "dark" : "light"; } function updateToggleState(theme) { const icon = document.getElementById("toggle-icon"); const toggleButton = document.getElementById("theme-toggle"); if (!icon || !toggleButton) { return; } icon.textContent = theme === "dark" ? "🌙" : "☀"; toggleButton.setAttribute("aria-pressed", theme === "dark" ? "true" : "false"); toggleButton.setAttribute("aria-label", theme === "dark" ? "Svetli način" : "Temni način"); } function logout() { // Odstrani cookie tako, da ga nastaviš z max-age=0 document.cookie = "token=; max-age=0; path=/; secure; samesite=strict"; document.cookie = "username=; max-age=0; path=/; secure; samesite=strict"; window.location.href = "/"; } document.addEventListener("DOMContentLoaded", function() { // Naslov document.title = `SSNJ - ${document.title}`; // Konstrukcija vseh stvari for (let element of document.getElementsByClassName("page-header")) { element.innerHTML = headerHtml; } // Dodaj gumb za prijavo, če uporabnik ni prijavljen const isLoggedIn = document.cookie.split(";").some(cookie => cookie.trim().startsWith("token=")); if (!isLoggedIn) { const navRight = document.querySelector(".nav-right"); if (navRight) { const loginBtn = `Prijava`; // Najdi zadnji element in dodaj gumb za njim const lastLink = navRight.querySelector("a:last-child"); document.getElementById("nav-login-holder").innerHTML = loginBtn; } } else { const navRight = document.querySelector(".nav-right"); if (navRight) { const logoutBtn = `Odjava`; // Najdi zadnji element in dodaj gumb za njim const lastLink = navRight.querySelector("a:last-child"); document.getElementById("nav-login-holder").innerHTML = logoutBtn; document.querySelector(".nav-btn-primary").addEventListener("click", logout); } } for (let element of document.getElementsByClassName("page-footer")) { element.innerHTML = footerHtml; } updateToggleState(getCurrentTheme()); // Univerzalne funkcionalnosti, ki so potrebne na več straneh const galleryImages = document.querySelectorAll(".page-gallery-image"); galleryImages.forEach(image => { image.addEventListener("click", () => { const src = image.getAttribute("src"); const alt = image.getAttribute("alt"); const modalHtml = ` `; document.body.insertAdjacentHTML("beforeend", modalHtml); const modal = document.getElementById("image-modal"); modal.style.visibility = 'visible'; document.body.classList.add("modal-open"); modal.querySelector(".close").addEventListener("click", () => { modal.remove(); document.body.classList.remove("modal-open"); }); }); }); }); function toggleTheme() { const current = getCurrentTheme(); const next = current === "dark" ? "light" : "dark"; document.documentElement.setAttribute("data-theme", next); localStorage.setItem("theme", next); updateToggleState(next); } matchMedia("(prefers-color-scheme: dark)").addEventListener("change", (e) => { if (!localStorage.getItem("theme")) { const theme = e.matches ? "dark" : "light"; document.documentElement.setAttribute("data-theme", theme); updateToggleState(theme); } });