var Packlink=window.Packlink||{};(function(){let hookedUpdate=!1;let modal;let closeButton;let updateButton;let privateData={locations:[],endpoint:null,selectedLocation:null,isCart:!1,translations:{},locale:'en'};Packlink.checkout={};Packlink.checkout.init=initialize;Packlink.checkout.setIsCart=setIsCart;Packlink.checkout.setLocations=setLocations;Packlink.checkout.setLocale=setLocale;Packlink.checkout.setTranslations=setTranslations;Packlink.checkout.setSaveEndpoint=setSaveEndpoint;Packlink.checkout.setDropOffAddress=setDropOffAddress;Packlink.checkout.setSelectedLocationId=setSelectedLocationId;Packlink.checkout.setNoDropOffLocationsMessage=setNoDropOffLocationsMessage;function initialize(){modal=document.getElementById('pl-picker-modal');closeButton=document.getElementById('pl-picker-modal-close');updateButton=document.querySelector("[name='calc_shipping']");let templates=document.getElementById("packlink-js-templates");[].forEach.call(document.getElementsByName('packlink_show_image'),function(item){let parent=item.parentElement;let showImage=item.value;let imageInput=parent.querySelector('input[name="packlink_image_url"]');let button=parent.querySelector('#packlink-drop-off-picker');let isDropOff=parent.querySelector('input[name="packlink_is_drop_off"]');if(showImage==='yes'&&imageInput&&parent.querySelector('.pl-checkout-carrier-image')===null){injectImage(imageInput)}
if(isDropOff&&button){button.addEventListener('click',handleSelectDropOffLocationAction);button.removeAttribute('style')}});if(modal){closeButton.addEventListener('click',function(){modal.style.display='none'});initLocationPicker();let errorMessage=document.getElementById('no-drop-off-locations-message');if(privateData.locations.length>0){errorMessage.style.display='none'}}
if(!hookedUpdate&&updateButton&&jQuery){jQuery(document.body).on('updated_wc_div',initialize);hookedUpdate=!0}
document.addEventListener('DOMContentLoaded',setDropOffAddress)}
function setDropOffAddress(){if(!privateData.selectedLocation||privateData.isCart){return}
let selected=findLocationById(privateData.selectedLocation);if(!selected){return}
setHiddenFields(selected);let button=document.querySelector('#packlink-drop-off-picker');let element=document.querySelector('p.woocommerce-shipping-destination');if(!element){element=document.createElement('p');element.className='woocommerce-shipping-destination'}
element.innerHTML='<strong>'+privateData.translations.dropOffTitle+'</strong><br/>'+[selected.name,selected.address,selected.city].join(', ');if(button){button.parentNode.insertBefore(element,button.nextSibling)}}
function setHiddenFields(location){let dropOffId=document.querySelector('input[name="packlink_drop_off_id"]');let dropOffExtra=document.querySelector('input[name="packlink_drop_off_extra"]');if(dropOffId&&dropOffExtra){dropOffId.value=location.id;dropOffExtra.value=JSON.stringify(location)}}
function setLocations(locations){privateData.locations=locations}
function setSaveEndpoint(endpoint){privateData.endpoint=endpoint}
function setSelectedLocationId(locationId){privateData.selectedLocation=''+locationId}
function setIsCart(isCart){privateData.isCart=isCart}
function setTranslations(translations){privateData.translations=translations}
function setLocale(locale){privateData.locale=locale}
function findLocationById(id){id=''+id;return privateData.locations.find(function(a){return a.id===id})}
function injectImage(imageSrcInput){let image=document.createElement('img');image.src=imageSrcInput.value;image.alt='carrier image';image.className='pl-checkout-carrier-image';let label=imageSrcInput.parentElement.querySelector('label');if(label){label.prepend(image)}else{imageSrcInput.parentElement.prepend(image)}}
function initLocationPicker(){Packlink.locationPicker.display(privateData.locations,function(id){let selected;privateData.selectedLocation=id;selected=findLocationById(id);Packlink.ajaxService.post(privateData.endpoint,selected,function(){let button=document.querySelector('#packlink-drop-off-picker');if(button){button.innerHTML=privateData.translations.changeDropOff}
if(!privateData.isCart){setHiddenFields(selected)}},function(){});setDropOffAddress();modal.style.display='none'},privateData.selectedLocation,privateData.locale)}
function setNoDropOffLocationsMessage(message){if(document.getElementById('no-drop-off-locations-message')){return}
let info=document.createElement('div');info.className='woocommerce-info';info.innerHTML=message;let noticeWrapper=document.createElement('div');noticeWrapper.id='no-drop-off-locations-message';noticeWrapper.appendChild(info);let checkoutElement=document.querySelector('[name="checkout"]');if(checkoutElement){checkoutElement.insertAdjacentElement('beforebegin',noticeWrapper)}
noticeWrapper.style.display='none'}
function handleSelectDropOffLocationAction(){initLocationPicker();let errorMessage=document.getElementById('no-drop-off-locations-message');if(privateData.locations.length>0){modal.style.display='block'}
if(errorMessage){errorMessage.style.display=privateData.locations.length>0?'none':'block'}}})()