// Service tab switching functionality function switchServiceTab(tabName) { // Remove active class from all tabs document.querySelectorAll('.tab-button').forEach(tab => { tab.classList.remove('active'); if (tabName === 'adults') { if (tab.id === 'adults-tab') { tab.className = 'tab-button active bg-gradient-to-r from-[var(--primary-color)] to-[var(--accent-color)] text-white px-8 py-3 rounded-full font-semibold text-lg transition-all duration-300 shadow-lg hover:shadow-xl'; } else { tab.className = 'tab-button bg-white text-[var(--primary-color)] border-2 border-[var(--primary-color)] px-8 py-3 rounded-full font-semibold text-lg transition-all duration-300 hover:bg-[var(--light-background-color)]'; } } else { if (tab.id === 'children-tab') { tab.className = 'tab-button active bg-gradient-to-r from-[var(--primary-color)] to-[var(--accent-color)] text-white px-8 py-3 rounded-full font-semibold text-lg transition-all duration-300 shadow-lg hover:shadow-xl'; } else { tab.className = 'tab-button bg-white text-[var(--primary-color)] border-2 border-[var(--primary-color)] px-8 py-3 rounded-full font-semibold text-lg transition-all duration-300 hover:bg-[var(--light-background-color)]'; } } }); // Hide all service sections document.querySelectorAll('.services-tab-content').forEach(content => { content.classList.add('hidden'); }); // Show the selected service section const targetSection = document.getElementById(tabName + '-services'); if (targetSection) { targetSection.classList.remove('hidden'); } } // Test category switching functionality function switchTestCategory(categoryName) { // Update tab styles document.querySelectorAll('.test-tab-button').forEach(tab => { if (tab.id === categoryName + '-tab') { tab.className = 'test-tab-button active bg-gradient-to-r from-[var(--primary-color)] to-[var(--accent-color)] text-white px-6 py-3 rounded-full font-semibold transition-all duration-300 shadow-lg hover:shadow-xl'; } else { tab.className = 'test-tab-button bg-white text-[var(--primary-color)] border-2 border-[var(--primary-color)] px-6 py-3 rounded-full font-semibold transition-all duration-300 hover:bg-[var(--light-background-color)]'; } }); // Hide all test categories document.querySelectorAll('.test-category-content').forEach(content => { content.classList.add('hidden'); }); // Show selected category const targetCategory = document.getElementById(categoryName + '-tests'); if (targetCategory) { targetCategory.classList.remove('hidden'); } } // Psychological tests data const psychologicalTests = { 'depression-adult-male': { title: 'Сэтгэлийн хямралын тест', questions: [ { question: 'Сүүлийн хоёр долоо хоногийн турш та хэр өвчтэй, гуниглаж, найдваргүй мэдрэв?', options: [ { text: 'Огт тийм биш', value: 0 }, { text: 'Хааяа тийм', value: 1 }, { text: 'Ихэнх хугацаанд тийм', value: 2 }, { text: 'Байнга тийм', value: 3 } ] }, { question: 'Танд сонирхол алдагдсан уу, юу ч хийхийг хүсэхгүй байна уу?', options: [ { text: 'Огт тийм биш', value: 0 }, { text: 'Хааяа тийм', value: 1 }, { text: 'Ихэнх хугацаанд тийм', value: 2 }, { text: 'Байнга тийм', value: 3 } ] }, { question: 'Та унтахад бэрхшээлтэй эсвэл хэт их унтдаг уу?', options: [ { text: 'Огт тийм биш', value: 0 }, { text: 'Хааяа тийм', value: 1 }, { text: 'Ихэнх хугацаанд тийм', value: 2 }, { text: 'Байнга тийм', value: 3 } ] } ] }, 'anxiety-adult-male': { title: 'Түгшүүрийн тест', questions: [ { question: 'Та сүүлийн сарын хугацаанд хэр их түгшүүртэй байсан бэ?', options: [ { text: 'Огт түгшээгээгүй', value: 0 }, { text: 'Бага зэрэг түгшээсэн', value: 1 }, { text: 'Дунд зэргээр түгшээсэн', value: 2 }, { text: 'Маш их түгшээсэн', value: 3 } ] }, { question: 'Танд санаа зовнил үүсэх нь хялбар уу?', options: [ { text: 'Огт тийм биш', value: 0 }, { text: 'Хааяа тийм', value: 1 }, { text: 'Ихэнх үед тийм', value: 2 }, { text: 'Байнга тийм', value: 3 } ] } ] } }; // Test state management let currentTest = null; let currentQuestionIndex = 0; let testAnswers = []; // User Management let isAdminLoggedIn = false; let isUserLoggedIn = false; let currentUser = null; // Handler instances let registrationFormHandler = null; let smoothScrollHandler = null; // Admin functions function adminLogin() { const email = document.getElementById('admin-email').value; const password = document.getElementById('admin-password').value; if (!email || !password) { alert('И-мэйл болон нууц үгээ оруулна уу!'); return; } // Simple demo login - in real app, this would connect to backend if (email === 'admin@mindcare.mn' && password === 'admin123') { isAdminLoggedIn = true; document.getElementById('admin-login-form').classList.add('hidden'); document.getElementById('admin-dashboard').classList.remove('hidden'); // Update dashboard stats updateAdminStats(); alert('Амжилттай нэвтэрлээ!'); } else { alert('И-мэйл эсвэл нууц үг буруу байна!'); } } function updateAdminStats() { // Simulate real-time data document.getElementById('active-users').textContent = Math.floor(Math.random() * 50) + 10; document.getElementById('pending-consultations').textContent = Math.floor(Math.random() * 15) + 3; } function adminLogout() { isAdminLoggedIn = false; document.getElementById('admin-login-form').classList.remove('hidden'); document.getElementById('admin-dashboard').classList.add('hidden'); document.getElementById('admin-email').value = ''; document.getElementById('admin-password').value = ''; } function openVoiceCounseling() { alert('Дуу хоолойн зөвлөгөөний систем удахгүй нээгдэх болно. Одоогоор чатаар холбогдоно уу.'); } function openMessageCenter() { alert('Мессэжийн төв удахгүй нээгдэх болно. Одоогоор чатаар холбогдоно уу.'); } function viewTestResults() { alert('Тестийн үр дүнгүүдийг харах хэсэг удахгүй нээгдэх болно.'); } // User functions function userLogin() { const contact = document.getElementById('user-contact').value; const password = document.getElementById('user-password').value; if (!contact || !password) { alert('И-мэйл/утас болон нууц үгээ оруулна уу!'); return; } // Simple demo login if ((contact === 'user@example.com' || contact === '99001234') && password === 'user123') { isUserLoggedIn = true; currentUser = { name: 'Батбаяр', email: 'user@example.com' }; document.getElementById('user-login-form').classList.add('hidden'); document.getElementById('user-dashboard').classList.remove('hidden'); document.getElementById('user-name').textContent = currentUser.name; document.getElementById('last-login').textContent = new Date().toLocaleDateString('mn-MN'); alert('Амжилттай нэвтэрлээ!'); } else { alert('И-мэйл/утас эсвэл нууц үг буруу байна!'); } } function userLogout() { isUserLoggedIn = false; currentUser = null; document.getElementById('user-login-form').classList.remove('hidden'); document.getElementById('user-dashboard').classList.add('hidden'); document.getElementById('user-contact').value = ''; document.getElementById('user-password').value = ''; } function showUserRegistration() { document.getElementById('registration-modal').classList.remove('hidden'); } function closeRegistration() { document.getElementById('registration-modal').classList.add('hidden'); // Clear form document.getElementById('reg-name').value = ''; document.getElementById('reg-email').value = ''; document.getElementById('reg-phone').value = ''; document.getElementById('reg-password').value = ''; } function registerUser() { const name = document.getElementById('reg-name').value; const email = document.getElementById('reg-email').value; const phone = document.getElementById('reg-phone').value; const password = document.getElementById('reg-password').value; if (!name || !email || !phone || !password) { alert('Бүх талбарыг бөглөнө үү!'); return; } // Simple email validation const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; if (!emailRegex.test(email)) { alert('И-мэйл хаяг буруу байна!'); return; } // In real app, this would send to backend alert(`Амжилттай бүртгэгдлээ, ${name}! Одоо нэвтэрч орж болно.`); closeRegistration(); } function requestCounseling() { alert('Зөвлөгөө хүсэлт илгээгдлээ! Мэргэжилтэн удахгүй холбогдох болно.'); } function viewMyTests() { alert('Таны авсан тестүүдийг харах хэсэг удахгүй нээгдэх болно.'); } function viewCounselingHistory() { alert('Зөвлөгөөний түүх харах хэсэг удахгүй нээгдэх болно.'); } // Start a psychological test function startTest(testId) { currentTest = psychologicalTests[testId]; if (!currentTest) { alert('Тест олдсонгүй. Дахин оролдоно уу.'); return; } currentQuestionIndex = 0; testAnswers = []; // Show modal document.getElementById('test-modal').classList.remove('hidden'); // Set title document.getElementById('test-title').textContent = currentTest.title; // Load first question loadQuestion(); } // Load current question function loadQuestion() { const question = currentTest.questions[currentQuestionIndex]; const totalQuestions = currentTest.questions.length; // Update progress document.getElementById('test-progress').textContent = `Асуулт ${currentQuestionIndex + 1}/${totalQuestions}`; const progressPercentage = ((currentQuestionIndex + 1) / totalQuestions) * 100; document.getElementById('progress-bar').style.width = progressPercentage + '%'; // Load question content const optionsHtml = question.options.map((option, index) => ` `).join(''); document.getElementById('test-content').innerHTML = `

${question.question}

${optionsHtml}
`; // Update button states document.getElementById('prev-btn').disabled = currentQuestionIndex === 0; document.getElementById('next-btn').textContent = currentQuestionIndex === totalQuestions - 1 ? 'Дуусгах' : 'Дараах'; } // Next question function nextQuestion() { const selectedAnswer = document.querySelector('input[name="test-answer"]:checked'); if (!selectedAnswer) { alert('Хариулт сонгоно уу!'); return; } // Save answer testAnswers[currentQuestionIndex] = parseInt(selectedAnswer.value); if (currentQuestionIndex === currentTest.questions.length - 1) { // Test completed showResults(); } else { // Next question currentQuestionIndex++; loadQuestion(); } } // Previous question function previousQuestion() { if (currentQuestionIndex > 0) { currentQuestionIndex--; loadQuestion(); // Restore previous answer if exists if (testAnswers[currentQuestionIndex] !== undefined) { const answerValue = testAnswers[currentQuestionIndex]; const radioButton = document.querySelector(`input[name="test-answer"][value="${answerValue}"]`); if (radioButton) { radioButton.checked = true; } } } } // Show test results function showResults() { document.getElementById('test-modal').classList.add('hidden'); // Calculate results const totalScore = testAnswers.reduce((sum, answer) => sum + answer, 0); const maxScore = currentTest.questions.length * 3; const percentage = Math.round((totalScore / maxScore) * 100); let resultMessage = ''; let resultColor = ''; let recommendations = ''; if (percentage <= 25) { resultMessage = 'Сайн байдал'; resultColor = 'text-green-600'; recommendations = 'Танд сэтгэл зүйн асуудал байхгүй байна. Эрүүл мэндээ хадгалж, идэвхтэй амьдрахыг зөвлөж байна.'; } else if (percentage <= 50) { resultMessage = 'Бага зэргийн түгшүүр'; resultColor = 'text-yellow-600'; recommendations = 'Бага зэргийн сэтгэл зүйн дарамт байна. Спорт хийх, амрах цагийг нэмэгдүүлэх нь тустай.'; } else if (percentage <= 75) { resultMessage = 'Дунд зэргийн асуудал'; resultColor = 'text-orange-600'; recommendations = 'Мэргэжилтэнтэй уулзахыг зөвлөж байна. Стрессийг бууруулах арга барилыг сурах хэрэгтэй.'; } else { resultMessage = 'Анхаарал татах түвшин'; resultColor = 'text-red-600'; recommendations = 'Нэн даруй сэтгэл зүйчтэй уулзахыг зөвлөж байна. Та ганцаараа биш, туслалцаа авах боломжтой.'; } document.getElementById('test-results-content').innerHTML = `
${percentage}%
${resultMessage}

Зөвлөмж:

${recommendations}

${totalScore}
Нийт оноо
${currentTest.questions.length}
Нийт асуулт
`; document.getElementById('results-modal').classList.remove('hidden'); } // Close test modal function closeTest() { document.getElementById('test-modal').classList.add('hidden'); currentTest = null; currentQuestionIndex = 0; testAnswers = []; } // Close results modal function closeResults() { document.getElementById('results-modal').classList.add('hidden'); } // Share results with professional function shareResults() { alert('Үр дүнгээ мэргэжилтэнтэй хуваалцахын тулд манай чатанд холбогдоно уу.'); closeResults(); } // Visitor counter animation function updateVisitorCounter() { const counter = document.getElementById('visitor-counter'); if (counter) { let currentCount = parseInt(counter.textContent.replace(/,/g, '')); const increment = Math.floor(Math.random() * 3) + 1; // Random increment 1-3 currentCount += increment; counter.textContent = currentCount.toLocaleString(); } } // Global functions for other modules to use window.switchServiceTab = switchServiceTab; window.switchTestCategory = switchTestCategory; window.startTest = startTest; window.nextQuestion = nextQuestion; window.previousQuestion = previousQuestion; window.closeTest = closeTest; window.closeResults = closeResults; window.shareResults = shareResults; window.adminLogin = adminLogin; window.adminLogout = adminLogout; window.openVoiceCounseling = openVoiceCounseling; window.openMessageCenter = openMessageCenter; window.viewTestResults = viewTestResults; window.userLogin = userLogin; window.userLogout = userLogout; window.showUserRegistration = showUserRegistration; window.closeRegistration = closeRegistration; window.registerUser = registerUser; window.requestCounseling = requestCounseling; window.viewMyTests = viewMyTests; window.viewCounselingHistory = viewCounselingHistory; let visitorInterval; let adminStatsInterval; function init() { // Initialize smooth scroll handler if (window.SmoothScrollHandler) { smoothScrollHandler = new window.SmoothScrollHandler(); smoothScrollHandler.init(); } // Initialize registration form handler if (window.RegistrationFormHandler) { registrationFormHandler = new window.RegistrationFormHandler(); registrationFormHandler.init(); } // Initialize payment system if (window.initPaymentSystem) { window.initPaymentSystem(); } // Start visitor counter updates every 5-10 seconds visitorInterval = setInterval(updateVisitorCounter, Math.random() * 5000 + 5000); // Update admin stats every 30 seconds if logged in adminStatsInterval = setInterval(() => { if (isAdminLoggedIn) { updateAdminStats(); } }, 30000); // Initialize with adults tab active switchServiceTab('adults'); // Initialize with adult-male test category active switchTestCategory('adult-male'); } function teardown() { // Cleanup smooth scroll handler if (smoothScrollHandler) { smoothScrollHandler.teardown(); smoothScrollHandler = null; } // Cleanup registration form handler if (registrationFormHandler) { registrationFormHandler.teardown(); registrationFormHandler = null; } if (visitorInterval) { clearInterval(visitorInterval); } if (adminStatsInterval) { clearInterval(adminStatsInterval); } } export { init, teardown };