/** * Navigation bar utility (shared across all pages) * Highlights current page link based on filename */ (function() { 'use strict'; // Determine current page var path = location.pathname; var currentPage = path.substring(path.lastIndexOf('/') + 1) || 'index.html'; // Add active class to current nav link document.querySelectorAll('nav a[href]').forEach(function(link) { var href = link.getAttribute('href'); if (href === currentPage || (currentPage === 'index.html' && href === '/')) { link.classList.add('active'); } }); // Update user display in nav if logged in function updateNavUser() { var userDisplay = document.getElementById('userDisplay'); var loginBtn = document.getElementById('loginBtn'); var logoutBtn = document.getElementById('logoutBtn'); if (window.currentUser) { if (userDisplay) { userDisplay.textContent = window.currentUser.displayName || 'User'; userDisplay.classList.remove('hidden'); } if (loginBtn) loginBtn.classList.add('hidden'); if (logoutBtn) logoutBtn.classList.remove('hidden'); } else { if (userDisplay) userDisplay.classList.add('hidden'); if (loginBtn) loginBtn.classList.remove('hidden'); if (logoutBtn) logoutBtn.classList.add('hidden'); } } // Run on DOM ready if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', updateNavUser); } else { updateNavUser(); } window.updateNavUser = updateNavUser; })();