let jQGLS=jQuery.noConflict();
jQGLS(document).ready(function ($){
let popup;
let current_lon;
let current_lat;
let change;
function iframeListener(event){
let response;
try {
response=jQGLS.parseJSON(event.data);
} catch (e){
}
if(event.data){
if(event.data==='tpw-close'){
$('#tgls-popup-widget').remove();
}
if(event.data==='tpw-loaded'){
$('#tgls-popup-widget-loading').hide();
}}
if(event.data.event_id){
if(event.data.event_id==='closeWidget'){
$('#tgls-popup-widget').remove();
}}
if(event.data&&event.data.event_id)
if(event.data.event_id==="ps_data_handover"){
let data=event.data.parcelshop.detail
let zip=data.zipcode;
let id=data.pclshopid;
let name=data.name;
let city=data.city;
let address=data.address + ', ' + data.zipcode + ' ' + data.city;
let street=data.address;
let country=data.ctrcode;
let text=id + ';' + name + ';' + city + ';' + street + ';' + zip + ';' + address + ';' + country;
let dataajax;
if(!change)
dataajax={
action: 'tgls_get_selected_branch',
branch_data: text
};
else {
let orderId=getUrlParameter('post');
if(orderId===''||orderId===false){
orderId=getUrlParameter('id');
}
text=text + ';' + orderId;
dataajax={
action: 'tgls_get_selected_branch_change',
branch_data: text
};}
$.post(tgls_wcp_localize.ajaxurl, dataajax, function (response){
$('#tgls-popup-widget').remove;
if(change){
location.reload();
}else{
let checkoutSelected=$('.tgls-checkout_show_selected');
checkoutSelected.empty();
checkoutSelected.append(response);
sessionStorage.tglsSelectedPickup=checkoutSelected.html();
sessionStorage.tglsSelected=id;
$('#tgls-checkout_selected_pickup_hidden').val(id);
sessionStorage.tgls_is_selected=true;
$(document.body).trigger('update_checkout');
$('#tgls-popup-widget').remove();
}});
}
if(typeof response!=='undefined')
if(response.type==='tpw_selected_branch'){
response=response[0];
let zip=response.postal_code;
let id=response.pid;
let name=response.name;
let city=response.city;
let address=response.adresa;
let street=response.street;
let country=response.country;
let text=id + ';' + name + ';' + city + ';' + street + ';' + zip + ';' + address + ';' + country;
let data;
if(!change)
data={
action: 'tgls_get_selected_branch',
branch_data: text
};
else {
text=text + ';' + getUrlParameter('post');
data={
action: 'tgls_get_selected_branch_change',
branch_data: text
};}
$.post(tgls_wcp_localize.ajaxurl, data, function (response){
$('#tgls-popup-widget').remove();
if(change){
location.reload();
}else{
let checkoutSelected=$('.tgls-checkout_show_selected');
checkoutSelected.empty();
checkoutSelected.append(response);
sessionStorage.tglsSelectedPickup=checkoutSelected.html();
sessionStorage.tglsSelected=id;
$('#tgls-checkout_selected_pickup_hidden').val(id);
sessionStorage.tgls_is_selected=true;
$(document.body).trigger('update_checkout');
$('#tgls-popup-widget').remove();
}});
}}
window.addEventListener('message', iframeListener)
function init_dialog(){
let title=tgls_wcp_localize.select_branch;
let method=$("form.checkout input[type=radio]:checked").val();
let country;
if(!change){
if($('#shipping_country').val()!==''&&$('#ship-to-different-address-checkbox').is(':checked'))
country=$('#shipping_country').val();
else
country=$('#billing_country').val();
}else{
country=$('.tgls-pickup-state').val();
}
let lng=tgls_wcp_localize.language
if(lng!=='cs'&&lng!=='sk'&&lng!=='en')
lng='en';
let noBoxes="";
if(tgls_wcp_localize.tgls_disable_boxes=='ok'){
noBoxes="&nogroup[]=17&nogroup[]=18&nogroup[]=19";
}
let dialog='';
dialog='<div id="tgls-popup-widget" style="display: none" class="tgls-popup-widget tgls-custom-modal" title="' + title + '">';
dialog=dialog + '<div class="tgls-custom-modal-content-pickup">';
dialog=dialog + '<iframe allow="geolocation" style="height:100%;border:none" src="https://maps.gls-czech.cz/?find=1&closeBtn=1&ctrcode=' + country + '&lng=' + lng + noBoxes + '"></iframe>';
dialog=dialog + '<input type="hidden" name="tgls_selected_shipping" id="tgls_selected_shipping" value="' + method + '"/>';
dialog=dialog + '</div>';
dialog=dialog + '</div>';
$('body').append(dialog);
popup=$('.tgls-popup-widget');
}
$(document).on("click", "#tgls-open-popup-widget", function (e){
e.preventDefault();
open_dialog_click();
});
function open_dialog_click(){
window.parent.postMessage('tglsOpened', '*');
change=false;
dialogMain(change);
}
function dialogMain(change){
init_dialog();
if(change){
popup.show()
}else{
popup.show()
}
window.dispatchEvent(new Event('resize'));
}
$('form.checkout').on('change', 'select[name=billing_country]', function (){
if(popup)
if(popup.length){
popup.remove()
}});
$('form.checkout').on('change', 'input[name^="shipping_method"]', function (){
if($(".woocommerce-checkout-review-order").filter(":hidden").length===0){
let value=this.value;
if(value==='toret_gls_parcelshop'){
if(tgls_wcp_localize.tgls_show_on_select==='ok'){
open_dialog_click();
}}
}});
function initGeolocation(){
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(function success(position){
current_lon=position.coords.longitude;
current_lat=position.coords.latitude;
});
}else{
alert("Sorry, your browser does not support geolocation services.");
}}
$(document.body).on('updated_checkout', function (){
if(typeof sessionStorage.tglsSelectedPickup!=="undefined"){
let checkoutSelected=$('.tgls-checkout_show_selected');
checkoutSelected.empty().append(sessionStorage.tglsSelectedPickup);
$('#tgls-checkout_selected_pickup_hidden').val(sessionStorage.tglsSelected);
}});
var checkout_form=$('form.checkout');
checkout_form.on('checkout_place_order', function (){
let checkoutSelected=$('.tgls-checkout_show_selected');
if(checkoutSelected.length){
if(checkoutSelected.html()===''&&!sessionStorage.tgls_is_selected){
alert(tgls_wcp_localize.select_branch)
return false;
}}
sessionStorage.tgls_is_selected=false;
sessionStorage.tglsSelectedPickup='';
sessionStorage.tglsSelected='';
return true;
});
jQuery('body').on('click', '#place_order', function (){
if(jQuery('[name="shipping_method[0]"]:checked').val().indexOf('toret_gls_parcelshop') > -1){
if(jQuery('body #tgls-pickup-id').length){
if(jQuery('body #tgls-pickup-id').val()===''){
alert(tgls_wcp_localize.select_branch)
return false;
}}else{
alert(tgls_wcp_localize.select_branch)
return false;
}}
});
$(document).on("click", '#tgls-change-pickup', function (e){
e.preventDefault();
change=true;
dialogMain(change);
});
var getUrlParameter=function getUrlParameter(sParam){
var sPageURL=window.location.search.substring(1),
sURLVariables=sPageURL.split('&'),
sParameterName,
i;
for (i=0; i < sURLVariables.length; i++){
sParameterName=sURLVariables[i].split('=');
if(sParameterName[0]===sParam){
return sParameterName[1]===undefined ? true:decodeURIComponent(sParameterName[1]);
}}
return false;
};});