document.addEventListener('DOMContentLoaded', function () { const contactForm = document.getElementById('contactForm'); if (contactForm) { contactForm.addEventListener('submit', function (e) { e.preventDefault(); const name = document.getElementById('name').value; const email = document.getElementById('email').value; const message = document.getElementById('message').value; const submitButton = this.querySelector('button[type="submit"]'); const originalButtonText = submitButton.innerHTML; // Basic validation if (!name || !email || !message) { showToast('Please fill out all fields.', 'danger'); return; } submitButton.innerHTML = ' Sending...'; submitButton.disabled = true; const formData = new FormData(this); fetch('contact_handler.php', { method: 'POST', body: formData }) .then(response => response.json()) .then(data => { if (data.success) { showToast('Thank you! Your message has been sent.', 'success'); contactForm.reset(); } else { showToast(data.error || 'An unknown error occurred.', 'danger'); } }) .catch(error => { showToast('An error occurred while sending the message.', 'danger'); console.error('Error:', error); }) .finally(() => { submitButton.innerHTML = originalButtonText; submitButton.disabled = false; }); }); } }); function showToast(message, type = 'success') { const toastContainer = document.getElementById('toast-container'); if (!toastContainer) return; const toastId = 'toast-' + Date.now(); const toastHTML = ` `; toastContainer.insertAdjacentHTML('beforeend', toastHTML); const toastElement = document.getElementById(toastId); const toast = new bootstrap.Toast(toastElement, { delay: 5000 }); toast.show(); toastElement.addEventListener('hidden.bs.toast', function () { toastElement.remove(); }); }