document.addEventListener("DOMContentLoaded", async () => { const elements = document.querySelectorAll("[data-include]"); for (const el of elements) { const file = el.getAttribute("data-include"); try { const res = await fetch(file); if (!res.ok) { throw new Error(`Failed to load ${file}`); } el.innerHTML = await res.text(); } catch (err) { console.error(err); } } // SET FOOTER YEAR AFTER FOOTER IS INCLUDED const yearEl = document.getElementById("yr"); if (yearEl) { yearEl.textContent = new Date().getFullYear(); } // INIT COMPONENTS AFTER INCLUDES LOAD initMobileNavbar(); initLanguageMenu(); }); /* MOBILE NAVBAR */ function initMobileNavbar() { const mobileMenuBtn = document.getElementById("mobileMenuBtn"); const mobileMenu = document.getElementById("mobileMenu"); if (!mobileMenuBtn || !mobileMenu) return; mobileMenuBtn.addEventListener("click", () => { mobileMenu.classList.toggle("hidden"); }); const mobileLinks = mobileMenu.querySelectorAll("a"); mobileLinks.forEach(link => { link.addEventListener("click", () => { mobileMenu.classList.add("hidden"); }); }); } /* LANGUAGE MENU */ function initLanguageMenu() { const langToggle = document.getElementById("langToggle"); const langMenu = document.getElementById("langMenu"); if (!langToggle || !langMenu) return; langToggle.addEventListener("click", () => { langMenu.classList.toggle("hidden"); }); const langLinks = langMenu.querySelectorAll("a"); langLinks.forEach(link => { link.addEventListener("click", () => { langMenu.classList.add("hidden"); }); }); }