"use strict";(()=>{var m=document.querySelector("#cart-button"),l=document.querySelector("#added-to-cart"),v={};async function h(){try{let e=await(await fetch("https://koszyk.vsprint.pl/api/cart",{credentials:"include"})).json();if(!Array.isArray(e))throw new Error("Received data is not an array");return e}catch(a){return console.error("Failed to fetch cart items:",a),[]}}async function c(){m?.classList.remove("hide");let a=document.querySelector(".state-default"),e=document.querySelector(".state-empty"),n=document.querySelector(".state-error");try{let t=await h(),o=t.reduce((s,d)=>s+d.price*d.quantity,0),i=document.getElementById("cart-total");i&&(i.style.display="block",i.textContent=`${o.toFixed(2)} z\u0142 + VAT`);let r=document.getElementById("cart-quantity");if(r){let s=t.reduce((d,y)=>d+y.quantity,0);r.textContent=s.toString()}a&&e&&n&&(t.length>0?(e.style.display="none",n.style.display="none",a.style.display="block"):(a.style.display="none",n.style.display="none",e.style.display="flex")),await E(t)}catch(t){console.error("Failed to update cart UI:",t),a&&e&&n&&(e.style.display="none",a.style.display="none",n.style.display="flex")}}async function w(a){let e=a.closest(".pricing19_plan")||a.closest(".home_pricing_plan");if(!e){console.error("Product element not found");return}let n=a.getAttribute("ticket-type");if(!n){console.error("Invalid or missing ticket type:",n),alert("Nieprawid\u0142owy typ biletu. Prosz\u0119 wybra\u0107 ponownie.");return}let t=e.querySelector('select[data-input="variant"]'),o=null;if(t&&t.getAttribute("validate")==="true"){if(t.value===""){alert("Prosz\u0119 wybra\u0107 opcj\u0119 przed dodaniem produktu do koszyka.");return}o=t.value}let i=1,r=e.querySelector('input[data-input="quantity"]');i=r&&r.value.trim()!==""?parseInt(r.value,10):1;try{await f({ticketType:n,variant:o||null,quantity:i})}catch(s){console.error("Error getting selected item:",s)}}async function f(a){let e=document.querySelector('[flipico-cart="loader"]'),n=e?.querySelector('[data-animation-type="lottie"]');try{e&&(e.classList.remove("hide"),n&&!window.cartLoaderAnimation&&(n.innerHTML="",window.cartLoaderAnimation=window.lottie.loadAnimation({container:n,renderer:"svg",loop:!0,autoplay:!1,path:n.getAttribute("data-src")||""})),window.cartLoaderAnimation&&window.cartLoaderAnimation.goToAndPlay(0,!0));let t=await fetch("https://koszyk.vsprint.pl/api/cart",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a),credentials:"include"});if(!t.ok)throw new Error(`Failed to add item to cart: ${t.statusText}`);let i=(await t.json()).find(r=>r.ticketType===a.ticketType&&(r.variant??null)===(a.variant??null));i&&(window.dataLayer.push({ecommerce:null}),window.dataLayer.push({event:"add_to_cart",ecommerce:{currency:"PLN",value:i.price*i.quantity,items:[{item_id:i.id,item_name:i.id,affiliation:"Konferencja App",price:i.price,quantity:i.quantity}]}}))}catch(t){console.error("Failed to add item to cart:",t)}finally{e&&(e.classList.add("hide"),window.cartLoaderAnimation&&window.cartLoaderAnimation.stop()),await c(),l&&(l.style.display="flex",l.style.opacity="0",l.style.transition="opacity 0.5s ease",setTimeout(()=>{l.style.opacity="1"},10),setTimeout(()=>{l.style.opacity="0",setTimeout(()=>{l.style.display="none"},500)},1500))}}var p=()=>{document.querySelectorAll('a[data-input="addtocart"]').forEach(e=>{e.dataset.listenerAdded!=="true"&&(e.addEventListener("click",async n=>{n.preventDefault();try{await w(e)}catch(t){console.error("Error adding to cart:",t)}}),e.dataset.listenerAdded="true")})};async function b(a,e=null){try{let n=e==="null"?null:e,t=await fetch(`https://koszyk.vsprint.pl/api/cart/${a}`,{method:"DELETE",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({variant:n})});if(!t.ok)throw new Error(`Failed to remove item: ${t.statusText}`);window.dataLayer.push({ecommerce:null}),window.dataLayer.push({event:"remove_from_cart",ecommerce:{items:[{item_id:a,item_name:a,affiliation:"Konferencja App"}]}}),await c()}catch(n){console.error("Failed to remove item from cart:",n)}}async function g(a,e,n=null){try{let t=await fetch(`https://koszyk.vsprint.pl/api/cart/${a}`,{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({variant:n==="null"?null:n,quantity:e,attendeeName:v[a]||[]})});if(!t.ok)throw new Error(`Failed to update item quantity: ${t.statusText}`);window.location.href.includes("koszyk")||await c()}catch(t){console.error("Failed to update item quantity:",t)}}function T(){document.addEventListener("change",async a=>{let e=a.target;if(!e.classList.contains("is-quantity"))return;let n=parseInt(e.value,10),t=e.closest(".cart-item"),o=t?.querySelector(".deletebutton")?.getAttribute("data-item-id"),i=t?.querySelector(".deletebutton")?.getAttribute("data-variant")||null;o&&n>0&&await g(o,n,i)})}async function E(a){let e=document.querySelector(".cart-list");if(!e)return;e.innerHTML="",a.forEach((t,o)=>{let i=document.createElement("div");i.className="cart-item",i.innerHTML=`
${t.ticketType.toUpperCase()}
Wariant:
 ${t.variant}
Cena:
 ${t.price} z\u0142 + VAT
Ilo\u015B\u0107:
 ${t.quantity}
`,e.appendChild(i)}),T(),document.querySelectorAll(".deletebutton").forEach(t=>{t.addEventListener("click",async o=>{let i=o.currentTarget,r=i.getAttribute("data-item-id"),s=i.getAttribute("data-variant")||null;r?await b(r,s):console.error("Failed to remove item from cart: missing item ID")})})}async function u(){await c()}window.Webflow||(window.Webflow=[]);window.Webflow.push(async()=>{try{await u(),await p()}catch(a){console.error("B\u0142\u0105d podczas obs\u0142ugi Webflow:",a)}});})();