// Global Application Interactions document.addEventListener('DOMContentLoaded', () => { // Initialize Lucide Icons if (window.lucide) { window.lucide.createIcons(); } // Modal Handling const modalOverlays = document.querySelectorAll('.modal-overlay'); // Function to open modal window.openModal = (modalId) => { const modal = document.getElementById(modalId); if (modal) { modal.classList.add('active'); document.body.style.overflow = 'hidden'; } }; // Function to close modal window.closeModal = (modalId) => { const modal = document.getElementById(modalId); if (modal) { modal.classList.remove('active'); document.body.style.overflow = ''; } }; // Close modal on overlay click modalOverlays.forEach(overlay => { overlay.addEventListener('click', (e) => { if (e.target === overlay) { closeModal(overlay.id); } }); }); // Close modal on Escape key document.addEventListener('keydown', (e) => { if (e.key === 'Escape') { const activeModal = document.querySelector('.modal-overlay.active'); if (activeModal) { closeModal(activeModal.id); } } }); // Simple Form Submission Simulation const forms = document.querySelectorAll('form'); forms.forEach(form => { // Skip login/register forms which already have actions if (form.action.includes('.html')) return; form.addEventListener('submit', (e) => { e.preventDefault(); const submitBtn = form.querySelector('button[type="submit"]'); const originalContent = submitBtn.innerHTML; // Show loading state submitBtn.disabled = true; submitBtn.innerHTML = `