/** * Media Inquiry Form Handler */ const form = document.getElementById('media-inquiry-form'); const submitButton = document.getElementById('submit-button'); const successMessage = document.getElementById('success-message'); const errorMessage = document.getElementById('error-message'); // Helper to get translated text function t(key) { if (window.i18nTranslations) { const keys = key.split('.'); let value = window.i18nTranslations; for (const k of keys) { value = value?.[k]; } return value || key; } return key; } form.addEventListener('submit', async (e) => { e.preventDefault(); // Hide previous messages successMessage.style.display = 'none'; errorMessage.style.display = 'none'; // Disable submit button submitButton.disabled = true; submitButton.querySelector('span').textContent = t('messages.submitting'); // Collect form data const formData = { contact: { name: document.getElementById('contact-name').value, email: document.getElementById('contact-email').value, outlet: document.getElementById('contact-outlet').value, phone: document.getElementById('contact-phone').value || null }, inquiry: { subject: document.getElementById('inquiry-subject').value, message: document.getElementById('inquiry-message').value, deadline: document.getElementById('inquiry-deadline').value || null, topic_areas: [] } }; try { const response = await fetch('/api/media/inquiries', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(formData) }); const data = await response.json(); if (response.ok) { // Success successMessage.textContent = data.message || t('messages.success'); successMessage.style.display = 'block'; form.reset(); window.scrollTo({ top: 0, behavior: 'smooth' }); } else { // Error errorMessage.textContent = data.message || t('messages.error'); errorMessage.style.display = 'block'; window.scrollTo({ top: 0, behavior: 'smooth' }); } } catch (error) { console.error('Submit error:', error); errorMessage.textContent = t('messages.network_error'); errorMessage.style.display = 'block'; window.scrollTo({ top: 0, behavior: 'smooth' }); } finally { // Re-enable submit button submitButton.disabled = false; submitButton.querySelector('span').textContent = t('form.submit_button'); } });