document.addEventListener('DOMContentLoaded', () => { // --- Chat Widget Logic --- const chatForm = document.getElementById('chat-form'); const chatInput = document.getElementById('chat-input'); const chatMessages = document.getElementById('chat-messages'); if (chatForm && chatInput && chatMessages) { const appendMessage = (text, sender) => { const msgDiv = document.createElement('div'); msgDiv.classList.add('message', sender); msgDiv.textContent = text; chatMessages.appendChild(msgDiv); chatMessages.scrollTop = chatMessages.scrollHeight; }; chatForm.addEventListener('submit', async (e) => { e.preventDefault(); const message = chatInput.value.trim(); if (!message) return; appendMessage(message, 'visitor'); chatInput.value = ''; try { const response = await fetch('api/chat.php', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ message }) }); const data = await response.json(); // Artificial delay for realism setTimeout(() => { appendMessage(data.reply, 'bot'); }, 500); } catch (error) { console.error('Error:', error); appendMessage("Sorry, something went wrong. Please try again.", 'bot'); } }); } // --- Patient Form: Auto-calculate DOB from Age --- function calculateDobFromAge(ageInputId, dobInputId) { const ageInput = document.getElementById(ageInputId); const dobInput = document.getElementById(dobInputId); if (ageInput && dobInput) { ageInput.addEventListener('input', function() { const age = parseInt(this.value); if (!isNaN(age) && age >= 0) { const currentYear = new Date().getFullYear(); const birthYear = currentYear - age; // Default to Jan 1st of the birth year const dob = `${birthYear}-01-01`; dobInput.value = dob; // Trigger change event if needed (e.g. for validation or other listeners) dobInput.dispatchEvent(new Event('change')); dobInput.dispatchEvent(new Event('input')); } else { dobInput.value = ''; } }); } } calculateDobFromAge('add_patient_age', 'add_patient_dob'); calculateDobFromAge('edit_patient_age', 'edit_patient_dob'); });