document.addEventListener('DOMContentLoaded', function() { const menuButton = document.getElementById('menuButton'); const sideMenu = document.getElementById('sideMenu'); const menuOverlay = document.getElementById('menuOverlay'); function toggleMenu() { menuButton.classList.toggle('active'); sideMenu.classList.toggle('active'); menuOverlay.classList.toggle('active'); } function closeMenu() { menuButton.classList.remove('active'); sideMenu.classList.remove('active'); menuOverlay.classList.remove('active'); } if (menuButton) { menuButton.addEventListener('click', toggleMenu); } if (menuOverlay) { menuOverlay.addEventListener('click', closeMenu); } // Close menu on escape key document.addEventListener('keydown', function(e) { if (e.key === 'Escape') { closeMenu(); } }); // Global Search const searchInput = document.getElementById('globalSearch'); const searchResults = document.getElementById('searchResults'); let searchTimeout; if (searchInput) { searchInput.addEventListener('input', function(e) { const query = e.target.value.trim(); clearTimeout(searchTimeout); if (query.length < 2) { searchResults.classList.remove('active'); searchResults.innerHTML = ''; return; } searchTimeout = setTimeout(function() { var xhr = new XMLHttpRequest(); xhr.open('GET', '/search?q=' + encodeURIComponent(query), true); xhr.onreadystatechange = function() { if (xhr.readyState === 4) { if (xhr.status === 200) { var results = JSON.parse(xhr.responseText); if (results.length === 0) { searchResults.innerHTML = '