const langButtons=()=>document.querySelectorAll('[data-lang-toggle]'); function mountSharedLayout(){ const current=document.body.dataset.page; const header=document.querySelector('#shared-header'); if(header)header.outerHTML=`
`; const footer=document.querySelector('#shared-footer'); if(footer)footer.outerHTML=``; } function setLanguage(lang){ document.documentElement.lang=lang;document.documentElement.dir=lang==='ar'?'rtl':'ltr';document.body.classList.toggle('is-ar',lang==='ar');document.title=lang==='ar'?document.body.dataset.titleAr:document.body.dataset.titleEn; document.querySelectorAll('[data-en][data-ar]').forEach(el=>{el.innerHTML=lang==='ar'?el.dataset.ar:el.dataset.en}); document.querySelectorAll('.logo-mark').forEach(mark=>mark.textContent='ف'); document.querySelectorAll('[data-alt-en][data-alt-ar]').forEach(el=>el.alt=lang==='ar'?el.dataset.altAr:el.dataset.altEn); langButtons().forEach(btn=>{ btn.textContent=lang==='ar'?'English':'Arabic'; btn.setAttribute('aria-label',lang==='ar'?'Switch to English':'Switch to Arabic'); }); localStorage.setItem('elfakhri-language',lang); } document.addEventListener('DOMContentLoaded',()=>{ mountSharedLayout(); setLanguage(localStorage.getItem('elfakhri-language')||'en'); langButtons().forEach(btn=>btn.addEventListener('click',()=>setLanguage(document.documentElement.lang==='ar'?'en':'ar'))); const header=document.querySelector('.header'),menu=document.querySelector('.menu');menu?.addEventListener('click',()=>header.classList.toggle('open'));document.querySelectorAll('.header nav a').forEach(a=>a.addEventListener('click',()=>header.classList.remove('open'))); const observer=new IntersectionObserver(es=>es.forEach(e=>{if(e.isIntersecting){e.target.classList.add('visible');observer.unobserve(e.target)}}),{threshold:.1});document.querySelectorAll('.reveal').forEach(el=>observer.observe(el)); });