import {komodoProduct,visitDetails} from './komodo-product-copy.mjs?v=176';
import {komodoCopy} from './komodo-hub-copy.mjs?v=178';
let saved;try{saved=localStorage.getItem('rai-language')}catch{}
const requested=new URLSearchParams(location.search).get('lang');
let language=komodoCopy[requested]?requested:komodoCopy[saved]?saved:'en';
const page=document.body.dataset.komodoPage;
const titleKeys={hub:'hubTitle',town:'navTown',park:'navPark',flores:'navFlores',plan:'navPlan'};
const introKeys={hub:'hubIntro',town:'townIntro',park:'parkIntro',flores:'floresIntro',plan:'planIntro'};
const form=document.querySelector('#komodo-trip-form');
const review=document.querySelector('#komodo-trip-review');
const error=document.querySelector('#komodo-form-error');
const status=document.querySelector('#komodo-form-status');
const submit=form?.querySelector('button[type="submit"]');
let submitted=false;
function writeBrief(){
 if(!form||review.hidden)return;
 const c=komodoCopy[language],f=form.elements,n=new Intl.NumberFormat(language);
 const lines=[komodoProduct.copy[language].label+' · €'+komodoProduct.price];
 lines.push(c.formName+': '+f.name.value.trim());
 lines.push(c.formEmail+': '+f.email.value.trim());
 if(f.month.value){const [year,month]=f.month.value.split('-').map(Number);lines.push(c.formMonth+': '+new Intl.DateTimeFormat(language,{year:'numeric',month:'long',timeZone:'UTC'}).format(new Date(Date.UTC(year,month-1,1))));}
 for(const [name,key] of [['days','formDays'],['adults','formAdults'],['children','formChildren']])lines.push(c[key]+': '+n.format(Number(f[name].value)));
 lines.push(c.formStyle+': '+c[f.style.value],c.formFocus+': '+c[f.focus.value]);
 if(f.notes.value.trim())lines.push(c.formNotes+': '+f.notes.value.trim());
 const brief=lines.join('\n');
 document.querySelector('#komodo-trip-brief').textContent=brief;
 document.querySelector('#komodo-trip-whatsapp').href='https://wa.me/306940062743?text='+encodeURIComponent('RAI · Labuan Bajo & Komodo\n\n'+brief);
}
function apply(next){
 language=komodoCopy[next]?next:'en';const c=komodoCopy[language];
 for(const el of document.querySelectorAll('[data-komodo-product]'))el.textContent=komodoProduct.copy[language][el.dataset.komodoProduct];
 for(const el of document.querySelectorAll('[data-visit-copy]'))el.textContent=visitDetails[language][el.dataset.visitCopy];
 for(const el of document.querySelectorAll('[data-komodo-copy]')){const value=c[el.dataset.komodoCopy];if(typeof value==='string')el.textContent=value;}
 document.title=c[titleKeys[page]]+' | RAI — Routes & Adventures Indonesia';
 document.querySelector('meta[name="description"]')?.setAttribute('content',c[introKeys[page]]);
 document.querySelector('meta[property="og:title"]')?.setAttribute('content',c[titleKeys[page]]+' | RAI');
 document.querySelector('meta[property="og:description"]')?.setAttribute('content',c[introKeys[page]]);
 if(error&&!error.hidden)error.textContent=c.invalid;
 if(status&&!status.hidden&&submitted)status.textContent=c.sent;
 if(submit&&!submitted)submit.firstChild.textContent=c.prepare+' ';
 writeBrief();
}
document.addEventListener('rai:portal-languagechange',event=>apply(event.detail.language));
form?.addEventListener('submit',async event=>{
 event.preventDefault();const invalid=[...form.elements].filter(el=>'validity' in el&&!el.validity.valid);
 for(const el of form.querySelectorAll('[aria-invalid]'))el.removeAttribute('aria-invalid');
 if(submitted)return;
 if(invalid.length){for(const el of invalid)el.setAttribute('aria-invalid','true');error.textContent=komodoCopy[language].invalidTrip;error.hidden=false;review.hidden=true;invalid[0].focus();return;}
 error.hidden=true;status.hidden=true;review.hidden=true;submit.disabled=true;submit.firstChild.textContent=komodoCopy[language].sending+' ';
 const payload=Object.fromEntries(new FormData(form));payload.language=language;
 try{
  const response=await fetch('/api/komodo-requests',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(payload)});
  const result=await response.json();
  if(!response.ok||!result.ok){if(result.code==='invalid_contact'){throw Error('invalid_contact')}throw Error('email_unavailable')}
  submitted=true;review.hidden=false;writeBrief();status.textContent=result.confirmationSent?komodoCopy[language].sent:komodoCopy[language].sentNoConfirmation;status.hidden=false;submit.firstChild.textContent=komodoCopy[language].sent.split('.')[0]+' ';
  review.focus({preventScroll:true});review.scrollIntoView({behavior:matchMedia('(prefers-reduced-motion: reduce)').matches?'instant':'smooth',block:'center'});
 }catch(e){status.hidden=true;error.textContent=komodoCopy[language][e.message==='invalid_contact'?'invalidContact':'emailUnavailable'];error.hidden=false;submit.disabled=false;submit.firstChild.textContent=komodoCopy[language].prepare+' ';}
});
form?.addEventListener('input',()=>{if(review&&!review.hidden){review.hidden=true;document.querySelector('#komodo-trip-whatsapp').removeAttribute('href');}});
apply(language);
