// Language switcher functionality let currentLanguage = 'en'; // Default language set to English function switchLanguage(lang) { console.log('Switching to language:', lang); // Debug log currentLanguage = lang; // Hide all language elements first const allEnElements = document.querySelectorAll('.lang-en'); const allEsElements = document.querySelectorAll('.lang-es'); console.log('Found EN elements:', allEnElements.length); // Debug log console.log('Found ES elements:', allEsElements.length); // Debug log if (lang === 'en') { // Show English, hide Spanish allEnElements.forEach(el => { el.classList.remove('hidden'); el.style.display = ''; }); allEsElements.forEach(el => { el.classList.add('hidden'); el.style.display = 'none'; }); } else if (lang === 'es') { // Show Spanish, hide English allEnElements.forEach(el => { el.classList.add('hidden'); el.style.display = 'none'; }); allEsElements.forEach(el => { el.classList.remove('hidden'); el.style.display = ''; }); } // Update button states updateLanguageButtons(lang); // Store language preference localStorage.setItem('preferred-language', lang); } function updateLanguageButtons(lang) { const allLanguageButtons = document.querySelectorAll('.language-btn'); allLanguageButtons.forEach(btn => { const btnLang = btn.getAttribute('data-lang'); if (btnLang === lang) { // Active button styles btn.classList.add('active-lang'); // Handle desktop buttons (EN/ES) if (btn.textContent.trim() === 'EN' || btn.textContent.trim() === 'ES') { btn.classList.add('text-[var(--primary-color)]', 'font-bold'); btn.classList.remove('text-[var(--dark-text-color)]'); } // Handle mobile buttons (English/Español) if (btn.textContent.trim() === 'English' || btn.textContent.trim() === 'Español') { btn.classList.remove('bg-[var(--secondary-button-bg-color)]', 'text-[var(--secondary-button-text-color)]'); btn.classList.add('bg-[var(--primary-color)]', 'text-white'); } } else { // Inactive button styles btn.classList.remove('active-lang'); // Handle desktop buttons if (btn.textContent.trim() === 'EN' || btn.textContent.trim() === 'ES') { btn.classList.remove('text-[var(--primary-color)]', 'font-bold'); btn.classList.add('text-[var(--dark-text-color)]'); } // Handle mobile buttons if (btn.textContent.trim() === 'English' || btn.textContent.trim() === 'Español') { btn.classList.remove('bg-[var(--primary-color)]', 'text-white'); btn.classList.add('bg-[var(--secondary-button-bg-color)]', 'text-[var(--secondary-button-text-color)]'); } } }); } function initializeLanguage() { // Check for saved language preference, but default to English const savedLang = localStorage.getItem('preferred-language'); if (savedLang && (savedLang === 'en' || savedLang === 'es')) { switchLanguage(savedLang); } else { // Default to English switchLanguage('en'); } } // Make switchLanguage function globally available window.switchLanguage = switchLanguage; // Export functions for the module system function init() { console.log('Language switcher initializing...'); // Debug log // Initialize language on page load setTimeout(() => { initializeLanguage(); }, 100); // Small delay to ensure DOM is ready // Add click handlers for language buttons (backup to onclick) document.querySelectorAll('.language-btn').forEach(btn => { btn.addEventListener('click', function(e) { e.preventDefault(); const lang = this.getAttribute('data-lang'); console.log('Button clicked, switching to:', lang); // Debug log switchLanguage(lang); }); }); console.log('Language switcher initialized'); // Debug log } function teardown() { // Clean up event listeners if needed document.querySelectorAll('.language-btn').forEach(btn => { btn.removeEventListener('click', switchLanguage); }); } // Export the functions export { init, teardown };