// script.js - Voice queries now return text responses only // DOM Elements const chatMessages = document.getElementById('chatMessages'); const userInput = document.getElementById('userInput'); const sendButton = document.getElementById('sendButton'); const voiceButton = document.getElementById('voiceButton'); const typingIndicator = document.getElementById('typingIndicator'); const messageCount = document.getElementById('messageCount'); const activeLanguage = document.getElementById('activeLanguage'); const currentLanguageDisplay = document.getElementById('currentLanguageDisplay'); const welcomeTime = document.getElementById('welcomeTime'); const englishQuestions = document.getElementById('english-questions'); const urduQuestions = document.getElementById('urdu-questions'); // State Management let currentLanguage = 'english'; let messageCounter = 0; let mediaRecorder; let audioChunks = []; let isRecording = false; // Initialize document.addEventListener('DOMContentLoaded', function() { initializeApp(); setupEventListeners(); setWelcomeTime(); initializeWelcomeMessage(); }); async function initializeApp() { updateLanguageDisplay(); updateInputPlaceholder(); await loadPredefinedQuestions(); updateQuestionsDisplay(); } function setupEventListeners() { // Send message on button click sendButton.addEventListener('click', sendMessage); // Send message on Enter key userInput.addEventListener('keypress', function(e) { if (e.key === 'Enter') { sendMessage(); } }); // Tab switching document.querySelectorAll('.tab-btn').forEach(btn => { btn.addEventListener('click', function() { const tabId = this.getAttribute('data-tab'); switchTab(tabId); }); }); // Voice button listener if (voiceButton) { voiceButton.addEventListener('click', async () => { if (!isRecording) { startRecording(); } else { stopRecording(); } }); } userInput.focus(); } function initializeWelcomeMessage() { // Ensure the welcome message has proper styling and is visible const welcomeMessage = document.querySelector('.system-message'); if (welcomeMessage) { welcomeMessage.style.opacity = '1'; welcomeMessage.style.transform = 'translateY(0) scale(1)'; } } function setWelcomeTime() { const now = new Date(); welcomeTime.textContent = now.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }); } function switchTab(tabId) { document.querySelectorAll('.tab-btn').forEach(btn => btn.classList.remove('active')); document.querySelector(`[data-tab="${tabId}"]`).classList.add('active'); document.querySelectorAll('.tab-content').forEach(content => content.classList.remove('active')); document.getElementById(`${tabId}-tab`).classList.add('active'); const newLanguage = tabId === 'urdu' ? 'urdu' : 'english'; if (currentLanguage !== newLanguage) { currentLanguage = newLanguage; updateLanguageDisplay(); updateInputPlaceholder(); } } function updateLanguageDisplay() { activeLanguage.textContent = currentLanguage === 'urdu' ? 'اردو' : 'English'; currentLanguageDisplay.textContent = currentLanguage === 'urdu' ? 'Urdu' : 'English'; } function updateInputPlaceholder() { if (currentLanguage === 'urdu') { userInput.placeholder = 'بریسٹ کینسر کے بارے میں پوچھیں...'; userInput.style.direction = 'rtl'; userInput.style.textAlign = 'right'; } else { userInput.placeholder = 'Ask about breast cancer support, treatment options, or recovery...'; userInput.style.direction = 'ltr'; userInput.style.textAlign = 'left'; } } async function loadPredefinedQuestions() { try { const englishResponse = await fetch('/predefined-questions?language=english'); const englishData = await englishResponse.json(); if (englishData.status === 'success') { window.predefinedEnglishQuestions = englishData.questions; } const urduResponse = await fetch('/predefined-questions?language=urdu'); const urduData = await urduResponse.json(); if (urduData.status === 'success') { window.predefinedUrduQuestions = urduData.questions; } } catch (error) { console.error('Error loading predefined questions:', error); } } function updateQuestionsDisplay() { updateQuestionList(englishQuestions, 'english'); updateQuestionList(urduQuestions, 'urdu'); } function updateQuestionList(container, language) { container.innerHTML = ''; const predefinedQuestions = language === 'urdu' ? window.predefinedUrduQuestions : window.predefinedEnglishQuestions; if (predefinedQuestions && predefinedQuestions.length > 0) { predefinedQuestions.forEach((questionData) => { const questionCard = createQuestionCard(questionData, language); container.appendChild(questionCard); }); } else { const emptyState = document.createElement('div'); emptyState.className = 'empty-state'; emptyState.innerHTML = `
${language === 'urdu' ? 'ابھی تک کوئی اردو سوالات نہیں ہیں۔' : 'No questions available yet.'}
`; container.appendChild(emptyState); } } function createQuestionCard(questionData, language) { const questionCard = document.createElement('button'); questionCard.className = `question-card ${language === 'urdu' ? 'urdu-text' : ''} predefined-card`; questionCard.setAttribute('data-question', questionData.question); const icon = questionData.icon || 'fas fa-question-circle'; questionCard.innerHTML = `