(function(){'use strict';function debounce(func,wait){let timeout;return function executedFunction(...args){const later=()=>{clearTimeout(timeout);func(...args);};clearTimeout(timeout);timeout=setTimeout(later,wait);};}function setCurrentYear(){const yearElements=document.querySelectorAll('#current-year');const currentYear=new Date().getFullYear();yearElements.forEach(el=>{el.textContent=currentYear;});}function initAccordions(){const accordionTriggers=document.querySelectorAll('.accordion__trigger');accordionTriggers.forEach(trigger=>{trigger.addEventListener('click',function(){const isExpanded=this.getAttribute('aria-expanded')==='true';const content=this.nextElementSibling;const accordion=this.closest('.accordion');if(accordion){accordion.querySelectorAll('.accordion__trigger').forEach(t=>{if(t!==this){t.setAttribute('aria-expanded','false');const c=t.nextElementSibling;if(c)c.setAttribute('aria-hidden','true');}});}this.setAttribute('aria-expanded',!isExpanded);if(content){content.setAttribute('aria-hidden',isExpanded);}});});}function initMobileNav(){const navToggle=document.querySelector('.nav-toggle');const navMenu=document.querySelector('.nav-menu');if(!navToggle||!navMenu)return;navToggle.addEventListener('click',function(){const isExpanded=this.getAttribute('aria-expanded')==='true';this.setAttribute('aria-expanded',!isExpanded);navMenu.classList.toggle('is-open');document.body.classList.toggle('nav-open');});document.addEventListener('click',function(e){if(!navMenu.contains(e.target)&&!navToggle.contains(e.target)){navToggle.setAttribute('aria-expanded','false');navMenu.classList.remove('is-open');document.body.classList.remove('nav-open');}});}function initSmoothScroll(){document.querySelectorAll('a[href^="#"]').forEach(anchor=>{anchor.addEventListener('click',function(e){const targetId=this.getAttribute('href');if(targetId==='#')return;const target=document.querySelector(targetId);if(target){e.preventDefault();target.scrollIntoView({behavior:'smooth',block:'start'});}});});}function initHeaderScroll(){const header=document.querySelector('.site-header');if(!header)return;let lastScroll=0;const handleScroll=debounce(function(){const currentScroll=window.pageYOffset;if(currentScroll>100){header.classList.add('is-scrolled');}else{header.classList.remove('is-scrolled');}if(currentScroll>lastScroll&¤tScroll>200){header.classList.add('is-hidden');}else{header.classList.remove('is-hidden');}lastScroll=currentScroll;},10);window.addEventListener('scroll',handleScroll,{passive:true});}function initScrollAnimations(){const animatedElements=document.querySelectorAll('[data-animate]');if(!animatedElements.length)return;const observer=new IntersectionObserver((entries)=>{entries.forEach(entry=>{if(entry.isIntersecting){entry.target.classList.add('is-visible');observer.unobserve(entry.target);}});},{threshold:0.1,rootMargin:'0px 0px-50px 0px'});animatedElements.forEach(el=>observer.observe(el));}function initFormValidation(){const forms=document.querySelectorAll('form[data-validate]');forms.forEach(form=>{form.addEventListener('submit',function(e){let isValid=true;const requiredFields=form.querySelectorAll('[required]');requiredFields.forEach(field=>{if(!field.value.trim()){isValid=false;field.classList.add('is-invalid');}else{field.classList.remove('is-invalid');}if(field.type==='email'&&field.value){const emailRegex=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;if(!emailRegex.test(field.value)){isValid=false;field.classList.add('is-invalid');}}});if(!isValid){e.preventDefault();}});});}function initLazyLoading(){const lazyImages=document.querySelectorAll('img[data-src]');if(!lazyImages.length)return;if('IntersectionObserver' in window){const imageObserver=new IntersectionObserver((entries)=>{entries.forEach(entry=>{if(entry.isIntersecting){const img=entry.target;img.src=img.dataset.src;img.removeAttribute('data-src');imageObserver.unobserve(img);}});});lazyImages.forEach(img=>imageObserver.observe(img));}else{lazyImages.forEach(img=>{img.src=img.dataset.src;img.removeAttribute('data-src');});}}function initVoiceAudio(){const voiceButtons=document.querySelectorAll('.voice-play');if(!voiceButtons.length)return;const getAudioPath=(audioId)=>{const script=document.querySelector('script[src*="main"]');if(script){const scriptSrc=script.getAttribute('src');try{const scriptUrl=new URL(scriptSrc,window.location.href);const baseUrl=new URL('../audio/',scriptUrl);const audioUrl=new URL(`${audioId}.mp3`,baseUrl);return audioUrl.href;}catch(e){if(scriptSrc.startsWith('/')){return scriptSrc.replace('/assets/js/','/assets/audio/').replace(/main.*\.js$/,audioId+'.mp3');}else{const pathParts=window.location.pathname.split('/').filter(p=>p);const scriptParts=scriptSrc.split('/').filter(p=>p);scriptParts.pop();scriptParts.pop();scriptParts.push('audio');const relativePath='../'.repeat(pathParts.length-1)+scriptParts.join('/')+'/'+audioId+'.mp3';return relativePath;}}}const pathParts=window.location.pathname.split('/').filter(p=>p);if(pathParts.length>1){return '../assets/audio/'+audioId+'.mp3';}return '/assets/audio/'+audioId+'.mp3';};let currentAudio=null;let currentButton=null;voiceButtons.forEach(button=>{button.addEventListener('click',function(e){e.preventDefault();e.stopPropagation();const audioId=this.dataset.audio;if(!audioId)return;const audioPath=getAudioPath(audioId);if(currentButton===this&¤tAudio&&!currentAudio.paused){currentAudio.pause();this.classList.remove('voice-play--playing');return;}if(currentAudio){currentAudio.pause();currentAudio.currentTime=0;if(currentButton){currentButton.classList.remove('voice-play--playing');}}currentAudio=new Audio(audioPath);currentButton=this;this.classList.add('voice-play--playing');currentAudio.play().catch(err=>{console.warn('Audio playback failed:',err);this.classList.remove('voice-play--playing');});currentAudio.addEventListener('ended',()=>{if(currentButton){currentButton.classList.remove('voice-play--playing');}currentAudio=null;currentButton=null;});currentAudio.addEventListener('error',()=>{console.warn('Audio file not found:',audioPath);if(currentButton){currentButton.classList.remove('voice-play--playing');}currentAudio=null;currentButton=null;});});});window.addEventListener('beforeunload',()=>{if(currentAudio){currentAudio.pause();}});voiceButtons.forEach(button=>{button.addEventListener('keydown',function(e){if(e.key==='Enter'||e.key===' '){e.preventDefault();this.click();}});});}function init(){setCurrentYear();initAccordions();initMobileNav();initSmoothScroll();initHeaderScroll();initScrollAnimations();initFormValidation();initLazyLoading();initVoiceAudio();}if(document.readyState==='loading'){document.addEventListener('DOMContentLoaded',init);}else{init();}})();