1import{p as x,h as M,b as j,c as C}from"./app-CrT3tLfm.js";function a(t,n=document){return n.querySelector(t)}function q(t,n=document){return Array.from(n.querySelectorAll(t))}function $(t){t?.classList.remove("hidden")}function _(t){t?.classList.add("hidden")}function g(t,n,r="0"){const c=String(t);return c.length>=n?c:new Array(n-c.length+1).join(r)+c}async function D(t){const n=await fetch(t,{method:"GET",headers:M(),credentials:"same-origin"});if(!n.ok)throw new Error(`HTTP ${n.status}`);return await n.json()}function A(t){const n=a(".reservation-slots-title");_(n);const r=a(".reservation-slots");if(!r)return;_(r),r.innerHTML="";const c=t.reservation_calendar_cache[0]?.start||0,m=(t.reservation_calendar_cache[0]?.start_time||0)-c,e=/(:00)$/,i=300;let l=m-i;t.reservation_calendar_cache.forEach(o=>{if(o.type==="break"){const d=a("template#break-slot");if(!d)return;const p=d.content.cloneNode(!0),h=new Date(1970,0,1);h.setUTCSeconds(m+o.start);const v=new Date(1970,0,1);v.setUTCSeconds(m+o.end);const f=`${o.name||""} (${h.toLocaleTimeString("sk",{hour:"2-digit",minute:"2-digit"})} - ${v.toLocaleTimeString("sk",{hour:"2-digit",minute:"2-digit"})})`,y=a(".break-slot-title",p);y&&(y.innerHTML=f),r.appendChild(p);return}let u=a(".reservation-slots .reservation-empty");u?.parentElement&&u.parentElement.removeChild(u),(!o.slots||o.slots.length<1)&&(u=document.createElement("div"),u.classList.add("reservation-empty"),u.innerText="Momentálne už nie sú k dispozÃcii žiadne voľné Äasy",r.appendChild(u)),o.slots.forEach(d=>{let p=!0;const h=a("template#reservation-slot");if(!h)return;const v=h.content.cloneNode(!0);for(;m+d.start>=l+i;)p=!1,l+=i;if(p)return;const f=new Date(1970,0,1);f.setUTCSeconds(l);let y=`<span>${f.toLocaleTimeString("sk").replace(e,"")}</span>`;d.expires&&(y+=`<br><em>Rezervovaný do: ${d.expires}</em>`);const k=a(".reservation-slot-time",v);k&&(k.innerHTML=y);const T=a("input",v);if(T&&(T.value=String(d.start)),d.expires){const b=a("label",v);b&&(b.style.cursor="not-allowed",b.style.opacity=".75"),T?.remove()}r.appendChild(v)})}),$(n),$(r)}function H(t){const n=a(".reservation-dates-title"),r=a(".reservation-dates");if(!r)return;const c={};let s=[];t.forEach(e=>{e.reservation_calendar_cache?.length===1&&e.reservation_calendar_cache[0].type==="break"||e.reservation_calendar_dates.forEach(i=>{if(e.plan.type==="public"){const l=`${i}_${e.plan.id}`;s.push(l),c[l]=e}else s.push(i),c[i]=e})}),s=Array.from(new Set(s)),r.innerHTML="";let m=a(".reservation-dates .reservation-empty");m?.parentElement&&m.parentElement.removeChild(m),s.length<1&&(m=document.createElement("div"),m.classList.add("reservation-empty"),m.innerText="Momentálne už nie sú k dispozÃcii žiadne voľné Äasy",r.appendChild(m)),s.forEac
1h(e=>{const i=a("template#reservation-date");if(!i)return;const l=c[e];if(!l)return;const o=i.content.cloneNode(!0),u=l.reservation_calendar_cache[0]?.plan_type||"individual",d=a("input",o);d&&(d.value=e,u==="individual"&&d.addEventListener("change",w=>{const S=w.currentTarget,z=c[S.value];z&&A(z)}));const p=e.split("_")[0].split("-"),h=new Date(Number(p[0]),Number(p[1])-1,Number(p[2])),v=a(".reservation-date-date",o);v&&(v.dataset.term=e,v.innerText=h.toLocaleDateString("sk"));const f=l.reservation_calendar_cache,y=f[0],k=f[f.length-1];let T="",b="";if(u==="public")T=l.plan.start,b=l.plan.end;else{const w=y?.start_time||0,S=k?.end_time||0;T=`${g(Math.floor(w/3600),2)}:${g(Math.floor(w%3600/60),2)}`,b=`${g(Math.floor(S/3600),2)}:${g(Math.floor(S%3600/60),2)}`}const L=a(".reservation-date-time",o);L&&(L.dataset.term=e,L.innerText=`${T} - ${b}`),r.appendChild(o)}),t.forEach(e=>{const i=`${e.reservation_calendar_date}_${e.reservation_calendar_plan}`;if(e.plan.view_title=="name_datetime"){const l=a(`.reservation-date-date[data-term="${i}"]`),o=a(`.reservation-date-time[data-term="${i}"]`);if(l&&o)o.innerText=`${l.innerText} | ${o.innerText}`,l.innerText=e.plan.name;else{const u=a(`.reservation-date-date[data-term="${e.reservation_calendar_date}"]`),d=a(`.reservation-date-time[data-term="${e.reservation_calendar_date}"]`);u&&d&&(u.innerText=`${d.innerText} | ${u.innerText}`,d.innerText=e.plan.name)}}else if(e.plan.view_title==="name"){const l=a(`.reservation-date-date[data-term="${i}"]`),o=a(`.reservation-date-time[data-term="${i}"]`);if(l)l.innerText=e.plan.name;else{const u=a(`.reservation-date-date[data-term="${e.reservation_calendar_date}"]`);u&&(u.innerText=e.plan.name)}if(o)o.style.display="none";else{const u=a(`.reservation-date-time[data-term="${e.reservation_calendar_date}"]`);u&&(u.style.display="none")}}}),$(n),$(r)}async function E(t){const n=a("input[name=id]");if(!n)return;const r=n.value,c=a(".reservation-dates-title");_(c);const s=a(".reservation-dates");s&&(s.innerHTML="NaÄÃtavam dostupné termÃny...");const m=a(".reservation-slots-title");_(m);const e=a(".reservation-slots");e&&(_(e),e.innerHTML="Vyberte datum pre naÄÃtanie dostupných Äasov...");try{const i=await D(`/reservations/getTerms/${r}${t?"/"+t:""}`);i!==0&&i!=="0"&&H(i)}catch{alert("Nepodarilo sa naÄÃtaÅ¥ zoznam dostupných termÃnov. ProsÃm, skúste to znova neskôr.")}}function P(){const t=a(".reservation-form");if(!t)return;const n=q(".reservation-category input");n.length?(n.forEach(r=>{r.addEventListener("change",()=>{E(r.value)})}),E(n[0].value)):E(),document.querySelector('[data-form="reservation-verify"]')?.addEventListener("submit",async r=>{r.preventDefault();const s=r.target.querySelector('button[type="submit"]');s?.classList.add("loading"),s?.setAttribute("disabled","disabled"),await R(t,s)})}async function F(t){const n=t.querySelector(".reservation-sms-submit button");n?.setAttribute("disabled","disabled"),n?.classList.add("hidden");try{if(+await j("reservation-create-consent",{loading:!0})){const c=new FormData(t),s=await fetch("/reservations/submit",{method:"POST",headers:x(null),body:c,credentials:"same-origin"}),e=(s.headers.get("content-type")||"").includes("application/json")?await s.json():await s.text();if(N(e))return;if(e===0||e==="0")alert("Nepodarilo sa dokonÄiÅ¥ rezerváciu. Skúste to, prosÃm, znova neskôr."),n?.classList.remove("hidden");else if(e==="new"){const i=t.querySelector(".reservation-verify-submit");i&&i.classList.remove("hidden")}else if(e==="done"){window.location.href="/rezervacia/dokoncenie";return}else alert(`Nepodarilo sa dokonÄiÅ¥ rezerváciu: ${String(e)}`),n?.classList.remove("hidden")}else n?.classList.remove("hidden");C("reservation-create-consent")}catch{C("reservation-create-consent"),alert("Nepodarilo sa nadviazaÅ¥ spojenie so serverom. Skúste to, prosÃm, znova neskôr.")}finally{n?.removeAttribute("disabled")}}async function R(t,n){const r=t.querySelector(".reservation-verify-submit"),c=t.querySelector(".reservation-sms-submit button");try{const s=a('[name="sms"]')||a('[name="sms"]');if(!s||!s.value.trim()){await F(t);return}const m=new FormData(t);m.append("sms",s.value.trim());const e=await fetch("/reservations/checkCode",{method:"POST",headers:x(null),body:m,credentials:"same-origin"}),l=(e.headers.get("content-type")||"").includes("application/json")?await e.json():await e.text();if(s.value="",l===0||l==="fail"){alert("Neplatný overovacà kód. Skontrolujte platnosÅ¥ overovacieho kódu.");return}const o=await fetch("/reservations/submit",{method:"POST",headers:x(null),body:m,credentials:"same-origin"}),d=(o.headers.get("content-type")||"").includes("application/json")?await o.json():await o.text();if(N(d))return;if(d==="done"){window.location.href="/rezervacia/dokoncenie";return}d===0||d==="0"?(alert("Nepodarilo sa dokonÄiÅ¥ rezerváciu. Skúste to, prosÃm, znova neskôr."),c?.classList.remove("hidden")):(alert(`Nepodarilo sa dokonÄiÅ¥ rezerváciu: ${String(d)}`),c?.classList.remove("hidden")),r&&(r.classList.add("hidden"),c?.classList.remove("hidden"))}catch{r&&(r.classList.add("hidden"),c?.classList.remove("hidden")),alert("Nepodarilo sa nadviazaÅ¥ spojenie so serverom. Skúste to, prosÃm, znova neskôr.")}finally{n?.classList.remove("loading"),n?.removeAttribute("disabled"),c?.classList.remove("hidden")}}function N(t){return t.toString().split(";")[0]==="pay"?(window.location.href=t.toString().split(";")[1],!0):!1}P();export{P as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.