(function(){
  const WA='212629524640';
  const modal=document.getElementById('tbModal');
  const modalImage=document.getElementById('tbModalImage');
  const modalTitle=document.getElementById('tbModalTitle');
  const modalText=document.getElementById('tbModalText');
  const modalSource=document.getElementById('tbModalSource');
  function wa(message){return 'https://wa.me/'+WA+'?text='+encodeURIComponent(message)}
  let selected=null;
  const delivery=30;
  function message(){
    const city=(document.getElementById('tbCustomerCity')?.value||'').trim();
    const phone=(document.getElementById('tbCustomerPhone')?.value||'').trim();
    if(!selected) return '';
    const total=selected.price+delivery;
    return `السلام عليكم، أريد طلب TahaBio\n\nالمنتج: مزيج المكسرات والعسل\nالكمية: ${selected.qty} ${selected.qty===1?'علبة':'علب'}\nالوزن الإجمالي: ${selected.qty*850} غرام\nثمن المنتج: ${selected.price} درهم\nالتوصيل: ${delivery} درهم\nالإجمالي: ${total} درهم\nالمدينة: ${city}\nرقم الهاتف: ${phone}\n\nوشكرًا.`
  }
  function update(){
    const order=document.getElementById('order');
    const a=document.getElementById('tbWhatsApp');
    const q=document.getElementById('tbSelectedQty'),p=document.getElementById('tbSelectedPrice'),t=document.getElementById('tbSelectedTotal');
    if(!selected){
      order?.classList.remove('has-selection');
      if(q)q.textContent='—';
      if(p)p.textContent='—';
      if(t)t.textContent='—';
      if(a)delete a.dataset.ready;
      return;
    }
    order?.classList.add('has-selection');
    if(q)q.textContent=`${selected.qty} ${selected.qty===1?'علبة':'علب'}`;
    if(p)p.textContent=`${selected.price} درهم`;
    if(t)t.textContent=`${selected.price+delivery} درهم`;
    if(a)a.dataset.ready='true';
  }
  document.querySelectorAll('.tb-qty').forEach(btn=>btn.addEventListener('click',()=>{
    selected={qty:+btn.dataset.qty,price:+btn.dataset.price};
    document.querySelectorAll('.tb-qty').forEach(x=>{x.classList.remove('selected');x.setAttribute('aria-checked','false')});
    btn.classList.add('selected');btn.setAttribute('aria-checked','true');update();
  }));
  document.querySelectorAll('[data-wa-order]').forEach(a=>a.addEventListener('click',e=>{
    e.preventDefault();
    const order=document.getElementById('order');
    if(order){
      const header=document.querySelector('.tb-header');
      const offset=(header?.getBoundingClientRect().height||0)+12;
      const top=order.getBoundingClientRect().top+window.scrollY-offset;
      window.scrollTo({top,behavior:'smooth'});
    }
  }));
  const orderWhatsApp=document.getElementById('tbWhatsApp');
  function markRequiredField(input, messageText){
    if(!input) return false;
    const label=input.closest('label');
    if(!label) return false;
    label.classList.add('has-error');
    let error=label.querySelector('.tb-field-error');
    if(!error){
      error=document.createElement('small');
      error.className='tb-field-error';
      label.appendChild(error);
    }
    error.textContent=messageText;
    input.setAttribute('aria-invalid','true');
    return true;
  }
  function clearFieldError(input){
    if(!input) return;
    const label=input.closest('label');
    if(label){
      label.classList.remove('has-error');
      const error=label.querySelector('.tb-field-error');
      if(error) error.remove();
    }
    input.removeAttribute('aria-invalid');
  }
  [document.getElementById('tbCustomerCity'),document.getElementById('tbCustomerPhone')].forEach(input=>{
    input?.addEventListener('input',()=>clearFieldError(input));
  });
  if(orderWhatsApp) orderWhatsApp.addEventListener('click',()=>{
    const city=document.getElementById('tbCustomerCity');
    const phone=document.getElementById('tbCustomerPhone');
    const cityMissing=!city?.value.trim();
    const phoneMissing=!phone?.value.trim();
    if(cityMissing || phoneMissing){
      if(cityMissing) markRequiredField(city,'يجب إدخال المدينة قبل إرسال الطلب.'); else clearFieldError(city);
      if(phoneMissing) markRequiredField(phone,'يجب إدخال رقم الهاتف قبل إرسال الطلب.'); else clearFieldError(phone);
      orderWhatsApp.classList.remove('tb-validation-shake');
      void orderWhatsApp.offsetWidth;
      orderWhatsApp.classList.add('tb-validation-shake');
      (cityMissing ? city : phone)?.focus();
      return;
    }
    clearFieldError(city);
    clearFieldError(phone);
    window.open(wa(message()),'_blank','noopener');
  });

  function openModal(el){modalImage.src=el.dataset.image;modalImage.alt=el.dataset.name;modalTitle.textContent=el.dataset.name;modalText.textContent=el.dataset.text;if(modalSource)modalSource.textContent=el.dataset.source||'Harvard T.H. Chan School of Public Health / Mayo Clinic';modal.classList.add('open');modal.setAttribute('aria-hidden','false');document.body.style.overflow='hidden'}
  document.querySelectorAll('.tb-ingredient,[data-benefit]').forEach(el=>el.addEventListener('click',()=>openModal(el)));
  document.querySelectorAll('[data-close]').forEach(el=>el.addEventListener('click',closeModal));
  function closeModal(){modal.classList.remove('open');modal.setAttribute('aria-hidden','true');document.body.style.overflow=''}
  document.addEventListener('keydown',e=>{if(e.key==='Escape')closeModal()});
  const menu=document.querySelector('.tb-menu'),nav=document.querySelector('.tb-mobile-nav');
  if(menu)menu.addEventListener('click',()=>{const open=nav.classList.toggle('open');menu.setAttribute('aria-expanded',String(open))});
  nav.querySelectorAll('a').forEach(a=>a.addEventListener('click',()=>{nav.classList.remove('open');menu.setAttribute('aria-expanded','false')}));
  const storyDetailTitle=document.getElementById('tbStoryDetailTitle');
  const storyDetailText=document.getElementById('tbStoryDetailText');
  document.querySelectorAll('.tb-story-card').forEach(btn=>btn.addEventListener('click',()=>{
    if(storyDetailTitle) storyDetailTitle.textContent=btn.dataset.storyTitle||'';
    if(storyDetailText) storyDetailText.textContent=btn.dataset.storyText||'';
    document.querySelectorAll('.tb-story-card').forEach(x=>{x.classList.remove('is-active');x.setAttribute('aria-pressed','false')});
    btn.classList.add('is-active');
    btn.setAttribute('aria-pressed','true');
  }));
  document.getElementById('order')?.classList.remove('has-selection');
  update();
})();
