/* Mataba static interactions (vanilla JS) */ (function(){ "use strict"; var body=document.body; // Mobile menu (layoutContext port) var burger=document.getElementById('hamburger'); var backdrop=document.getElementById('drawerBackdrop'); var closeBtn=document.getElementById('drawerClose'); function setMenu(open){ body.classList.toggle('menu-open',open); if(burger)burger.setAttribute('aria-expanded',open?'true':'false'); } if(burger)burger.addEventListener('click',function(){setMenu(!body.classList.contains('menu-open'));}); if(backdrop)backdrop.addEventListener('click',function(){setMenu(false);}); if(closeBtn)closeBtn.addEventListener('click',function(){setMenu(false);}); document.querySelectorAll('.nav a').forEach(function(a){a.addEventListener('click',function(){setMenu(false);});}); document.addEventListener('keydown',function(e){if(e.key==='Escape'){setMenu(false);closeModal();}}); // Login modal (sign-in-modal port, validation from login.schema.ts) var modal=document.getElementById('loginModal'); var phone=document.getElementById('phoneInput'); var err=document.getElementById('phoneError'); var okMsg=document.getElementById('phoneOk'); function openModal(){if(modal){modal.classList.add('open');modal.setAttribute('aria-hidden','false');if(phone)phone.focus();}} function closeModal(){if(modal){modal.classList.remove('open');modal.setAttribute('aria-hidden','true');}} window.matabaOpenLogin=openModal; document.querySelectorAll('[data-open-login]').forEach(function(b){b.addEventListener('click',openModal);}); document.querySelectorAll('[data-close-login]').forEach(function(b){b.addEventListener('click',closeModal);}); if(modal)modal.addEventListener('click',function(e){if(e.target===modal)closeModal();}); var form=document.getElementById('loginForm'); if(form)form.addEventListener('submit',function(e){ e.preventDefault(); var v=(phone.value||'').trim(); var valid=/^09\d{9}$/.test(v); if(!valid){ err.textContent='شماره موبایل باید با 09 شروع شود و ۱۱ رقم باشد (مثلاً 09181234567).'; if(okMsg)okMsg.textContent=''; phone.setAttribute('aria-invalid','true'); return; } err.textContent=''; phone.removeAttribute('aria-invalid'); if(okMsg)okMsg.textContent='درخواست شما با موفقیت ثبت شد. کارشناسان مطبا به زودی با شما تماس می‌گیرند.'; }); // Testimonials carousel (DoctorsCmSlider port, replaces Swiper) var track=document.getElementById('tTrack'); function step(){if(!track)return 0;var c=track.querySelector('.tcard');if(!c)return 320;return c.getBoundingClientRect().width+20;} var prev=document.getElementById('tPrev'),next=document.getElementById('tNext'); if(prev&&track)prev.addEventListener('click',function(){track.scrollBy({left:step(),top:0,behavior:'smooth'});}); if(next&&track)next.addEventListener('click',function(){track.scrollBy({left:-step(),top:0,behavior:'smooth'});}); // autoplay 3s like original, pause on hover var timer=null; function start(){stop();timer=setInterval(function(){ if(!track)return; var max=track.scrollWidth-track.clientWidth-4; if(track.scrollLeft<=4){track.scrollTo({left:max,behavior:'smooth'});} else{track.scrollBy({left:-step(),behavior:'smooth'});} },3000);} function stop(){if(timer)clearInterval(timer);timer=null;} if(track){start();track.addEventListener('mouseenter',stop);track.addEventListener('mouseleave',start);} var dForm=document.getElementById('domainForm'); if(dForm)dForm.addEventListener('submit',function(e){ e.preventDefault(); var q=document.getElementById('domainInput').value.trim(); var msg=document.getElementById('domainMsg'); if(!q){msg.textContent='نام دامنه را وارد کنید.';return;} msg.textContent='نام دامنه «'+q+'» در دسترس است. برای ثبت با مطبا تماس بگیرید.'; }); document.querySelectorAll('.domain').forEach(function(b){ b.addEventListener('click',function(){ var inp=document.getElementById('domainInput'); if(inp){inp.value=inp.value.replace(/\.(ir|com|net|doctor|site|shop)\.?$/i,'')+b.textContent.trim();inp.focus();} }); }); function wireLead(id){ var f=document.getElementById(id); if(!f)return; f.addEventListener('submit',function(e){ e.preventDefault(); var name=f.querySelector('[name=name]'),mobile=f.querySelector('[name=mobile]'), spec=f.querySelector('[name=spec]'),msg=f.querySelector('textarea'), eEl=f.querySelector('.ferr'),oEl=f.querySelector('.fok'); var problems=[]; if(name&&!name.value.trim())problems.push('نام و نام خانوادگی لازم است.'); var mv=mobile?mobile.value.trim():''; if(mv&&!/^09\d{9}$/.test(mv))problems.push('شماره تماس معتبر نیست (11 رقم با 09).'); if(msg&&!msg.value.trim())problems.push('توضیحات را بنویسید.'); if(problems.length){eEl.textContent=problems.join(' ');oEl.textContent='';return;} eEl.textContent=''; oEl.textContent='درخواست شما با موفقیت ثبت شد. کارشناسان مطبا به زودی با شما تماس می‌گیرند.'; f.reset(); }); } wireLead('leadForm');wireLead('leadFormPage');wireLead('contactFormPage'); // Active nav on scroll var links=document.querySelectorAll('.nav a[href^="#"]'); var secs=[].map.call(links,function(a){return document.querySelector(a.getAttribute('href'));}).filter(Boolean); function onScroll(){ var y=window.scrollY+140,cur=null; secs.forEach(function(s){if(s.offsetTop<=y)cur=s;}); links.forEach(function(a){a.classList.toggle('active',cur&&a.getAttribute('href')==='#'+cur.id);}); } window.addEventListener('scroll',onScroll,{passive:true});onScroll(); })();