document.addEventListener('DOMContentLoaded', function (){
const bundleButton=document.getElementById('add-bundle-to-cart');
if(!bundleButton) return;
if(typeof pbb_ajax==='undefined'){
console.error('PBB: pbb_ajax není definovan!');
return;
}
if(typeof pbb_i18n==='undefined'){
console.error('PBB: pbb_i18n není definovan!');
return;
}
bundleButton.addEventListener('click', function (){
const selected=document.querySelector('input[name="selected_bundle"]:checked');
const bundleType=selected?.value||null;
const productId=bundleButton.dataset.product_id;
if(!bundleType||!productId){
alert(pbb_i18n.select_bundle);
return;
}
bundleButton.classList.add('loading');
bundleButton.disabled=true;
const formData=new URLSearchParams({
action: 'pbb_add_bundle_to_cart',
bundle_type: bundleType,
product_id: productId
});
fetch(pbb_ajax.ajax_url, {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: formData
})
.then(response=> response.json())
.then(payload=> {
bundleButton.classList.remove('loading');
bundleButton.disabled=false;
if(payload.success){
const title=encodeURIComponent(payload.data.product_title||pbb_i18n.default_title);
const url=new URL(window.location.href);
url.searchParams.set('pbb_notice', 'success');
url.searchParams.set('title', payload.data.product_title||'');
window.location.href=url.toString();
}else{
const msg=typeof payload.data==='string'
? payload.data
: pbb_i18n.unknown_error;
alert(pbb_i18n.add_error + ' ' + msg);
}})
.catch(error=> {
bundleButton.classList.remove('loading');
bundleButton.disabled=false;
console.error('PBB: Chyba při AJAX požadavku:', error);
alert(pbb_i18n.unknown_error);
});
});
});