// source --> https://gopalvashisht.com/wp-content/plugins/latepoint/public/javascripts/front.js?ver=5.2.6 
function latepoint_is_timeframe_in_periods(e,t,a){for(var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=0;o<a.length;o++){var i=0,s=0,l=0,r=0,d=a[o].split(":");if(2==d.length?(i=d[0],s=d[1]):(l=d[2],r=d[3],i=parseFloat(d[0])-parseFloat(l),s=parseFloat(d[1])+parseFloat(r)),n){if(latepoint_is_period_inside_another(e,t,i,s))return!0}else if(latepoint_is_period_overlapping(e,t,i,s))return!0}return!1}function latepoint_is_period_overlapping(e,t,a,n){return e<n&&a<t}function latepoint_is_period_inside_another(e,t,a,n){return e>=a&&t<=n}function latepoint_minutes_to_hours_preferably(e){var t=latepoint_is_army_clock(),a=Math.floor(e/60);!t&&a>12&&(a-=12);var n=e%60;return n>0&&(a=a+":"+n),a}function latepoint_minutes_to_hours(e){var t=latepoint_is_army_clock(),a=Math.floor(e/60);return!t&&a>12&&(a-=12),a}function latepoint_am_or_pm(e){return latepoint_is_army_clock()?"":e<720||1440==e?"am":"pm"}function latepoint_hours_and_minutes_to_minutes(e,t){var a=e.split(":"),n=a[0],o=a[1];return"pm"==t&&n<12&&(n=parseInt(n)+12),"am"==t&&12==n&&(n=0),o=parseInt(o)+60*n}function latepoint_get_time_system(){return latepoint_helper.time_system}function latepoint_is_army_clock(){return"24"==latepoint_get_time_system()}function latepoint_minutes_to_hours_and_minutes(e){var t=latepoint_is_army_clock(),a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"%02d:%02d",n=Math.floor(e/60);return!t&&n>12&&(n-=12),t||0!=n||(n=12),e%=60,"function"==typeof sprintf?sprintf(a,n,e):`${n.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`}function latepoint_timestamped_ajaxurl(){let e=latepoint_helper.ajaxurl,t=Date.now();return e.includes("?")?`${e}&t=${t}`:`${e}?t=${t}`}function latepoint_random_generator(){var e=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)};return e()+e()+"-"+e()+"-"+e()+"-"+e()+"-"+e()+e()+e()}function latepoint_validate_form(e){let t=[];return e.find("select[data-os-validate], input[data-os-validate], textarea[data-os-validate]").each((function(){let e=jQuery(this).data("os-validate").split(" "),a=jQuery(this),n=a.closest(".os-form-group").find("label").text(),o=!1;if(e)for(let i=0;i<e.length;i++)switch(e[i]){case"presence":a.is(":checkbox")?a.is(":checked")||(t.push({message:n+" "+latepoint_helper.msg_validation_presence_checkbox}),o=!0):a.val()||(t.push({message:n+" "+latepoint_helper.msg_validation_presence}),o=!0);break;case"phone":window.lp_intlTelInputGlobals.getInstance(a[0]).isValidNumber()||(t.push({message:n+" "+latepoint_helper.msg_validation_invalid}),o=!0)}o?a.closest(".os-form-group").addClass("os-invalid"):a.closest(".os-form-group").removeClass("os-invalid")})),t}function latepoint_create_form_data_from_non_form_element(e){let t=new FormData,a=e.find("select, input, textarea").serializeArray();return a&&a.forEach((e=>t.append(e.name,e.value))),t}function latepoint_create_form_data(e,t=!1,a=!1){let n,o=new FormData,i=new FormData(e[0]);return a&&Object.keys(a).forEach((e=>{i.set(e,a[e])})),"lp_intlTelInputGlobals"in window&&"lp_intlTelInputUtils"in window&&e.find("input.os-mask-phone").each((function(){const e=this.getAttribute("name"),t=window.lp_intlTelInputGlobals.getInstance(this).getNumber(window.lp_intlTelInputUtils.numberFormat.E164);i.set(e,t)})),o.append("params",latepoint_formdata_to_url_encoded_string(i)),o.append("action",latepoint_helper.route_action),o.append("route_name",t||e.data("route-name")),o.append("layout","none"),o.append("return_format","json"),e.find('input[type="file"]').each((function(){n=this.files;let e=this.getAttribute("name");for(let t=0;t<n.length;t++)o.append(e+"[]",n[t])})),o}function latepoint_mask_timefield(e){jQuery().inputmask&&e.inputmask({mask:"99:99",placeholder:"HH:MM"})}function latepoint_formdata_to_url_encoded_string(e){let t=new FormData;for(const[a,n]of e)n instanceof File||("[]"===a.slice(-2)?t.append(a,n):t.set(a,n));return new URLSearchParams(t).toString()}function latepoint_mask_percent(e){jQuery().inputmask&&e.inputmask({alias:"decimal",radixPoint:latepoint_helper.decimal_separator,digits:4,digitsOptional:!1,suffix:"%",placeholder:"0",rightAlign:!1})}function latepoint_mask_minutes(e){jQuery().inputmask&&e.inputmask({removeMaskOnSubmit:!0,alias:"numeric",digits:0,suffix:latepoint_helper.msg_minutes_suffix,placeholder:"0",rightAlign:!1})}function latepoint_mask_money(e){jQuery().inputmask&&e.inputmask({alias:"currency",groupSeparator:latepoint_helper.thousand_separator,radixPoint:latepoint_helper.decimal_separator,digits:latepoint_helper.number_of_decimals,digitsOptional:!1,prefix:latepoint_helper.currency_symbol_before?latepoint_helper.currency_symbol_before+" ":"",suffix:latepoint_helper.currency_symbol_after?" "+latepoint_helper.currency_symbol_after:"",placeholder:"0",rightAlign:!1})}function latepoint_mask_date(e){jQuery().inputmask&&e.inputmask({alias:"datetime",inputFormat:latepoint_helper.date_format_for_js})}function latepoint_init_phone_masking_from_placeholder(e){if(!latepoint_helper.mask_phone_number_fields)return;let t=e.attr("placeholder");t&&jQuery().inputmask&&e.inputmask(t.replace(/[0-9]/g,9))}function latepoint_mask_phone(e){let t=e[0];if(t&&!window.lp_intlTelInputGlobals.getInstance(t)){let i=document.body,s=JSON.parse(latepoint_helper.included_phone_countries);1===s.length&&""===s[0]&&(s=[]);const l=s.length?[]:window.lp_intlTelInputGlobals.defaults.preferredCountries;for(var a=window.lp_intlTelInputGlobals.getCountryData(),n=0;n<a.length;n++){var o=a[n];o.name=o.name.replace(/ *\([^)]*\) */g,"")}let r=latepoint_helper.default_phone_country;s.length&&!s.includes(r)&&(r=s[0]),window.lp_intlTelInput(t,{dropdownContainer:i,formatOnDisplay:!0,nationalMode:!0,autoPlaceholder:"aggressive",initialCountry:r,geoIpLookup:function(e){const t="latepoint_phone_country";latepoint_has_cookie(t)?e(latepoint_get_cookie(t)):jQuery.get("https://ipinfo.io",(function(){}),"jsonp").always((function(a){let n=r;a&&a.country&&(n=a.country.toLowerCase(),latepoint_set_cookie(t,n)),e(n)}))},allowDropdown:1!=s.length,onlyCountries:s,preferredCountries:l,separateDialCode:latepoint_helper.is_enabled_show_dial_code_with_flag}).promise.then((function(){latepoint_init_phone_masking_from_placeholder(e)})),e.on("countrychange",(function(e){latepoint_init_phone_masking_from_placeholder(jQuery(this))}))}}function latepoint_show_booking_end_time(){return"yes"==latepoint_helper.show_booking_end_time}function latepoint_set_cookie(e,t,a){let n=new Date;n.setTime(n.getTime()+864e5*a),document.cookie=e+"="+t+";path=/;expires="+n.toGMTString()}function latepoint_get_cookie(e){let t=document.cookie.match("(^|;) ?"+e+"=([^;]*)(;|$)");return t?t[2]:null}function latepoint_has_cookie(e){return null!==latepoint_get_cookie(e)}function latepoint_delete_cookie(e){latepoint_set_cookie(e,"",-1)}function latepoint_add_notification(e,t="success"){var a=jQuery("body").find(".os-notifications");a.length||(jQuery("body").append('<div class="os-notifications"></div>'),a=jQuery("body").find(".os-notifications")),a.find(".item").length>0&&a.find(".item:first-child").remove(),a.append('<div class="item item-type-'+t+'">'+e+'<span class="os-notification-close"><i class="latepoint-icon latepoint-icon-x"></i></span></div>')}function latepoint_add_lightbox_notification(e,t="success"){var a=jQuery(".latepoint-lightbox-content").find(".os-notifications");a.length||(jQuery(".latepoint-lightbox-content").prepend('<div class="os-notifications"></div>'),a=jQuery(".latepoint-lightbox-content").find(".os-notifications")),a.find(".item").length>0&&a.find(".item:first-child").remove(),a.append('<div class="item item-type-'+t+'">'+e+'<span class="os-notification-close"><i class="latepoint-icon latepoint-icon-x"></i></span></div>')}function latepoint_generate_form_message_html(e,t){var a='<div class="os-form-message-w status-'+t+'"><ul>';return Array.isArray(e)?e.forEach((function(e){a+="<li>"+e+"</li>"})):a+="<li>"+e+"</li>",a+="</ul></div>"}function latepoint_display_in_side_sub_panel(e){jQuery(".latepoint-side-panel-w").length||latepoint_show_data_in_side_panel(""),jQuery(".latepoint-side-panel-w .latepoint-side-panels .side-sub-panel-wrapper").remove(),jQuery(".latepoint-side-panel-w .latepoint-side-panels").append(e)}function latepoint_clear_form_messages(e){e.find(".os-form-message-w").remove()}function latepoint_show_data_in_side_panel(e,t="",a=!0){jQuery(".latepoint-side-panel-w").remove(),jQuery("body").append('<div class="latepoint-side-panel-w '+t+' os-loading"><div class="latepoint-side-panel-shadow"></div><div class="latepoint-side-panels"><div class="latepoint-side-panel-i"></div></div></div>'),jQuery(".latepoint-side-panel-i").html(e),a&&(jQuery(".latepoint-side-panel-i").find(".os-form-header .latepoint-side-panel-close").remove(),jQuery(".latepoint-side-panel-i").find(".os-form-header").append('<a href="#" class="latepoint-side-panel-close latepoint-side-panel-close-trigger"><i class="latepoint-icon latepoint-icon-x"></i></a>')),setTimeout((function(){jQuery(".latepoint-side-panel-w").removeClass("os-loading")}),100)}function latepoint_show_data_in_lightbox(e,t="",a=!0,n="div",o="",i="div"){jQuery(".latepoint-lightbox-w").remove();let s="latepoint-lightbox-w latepoint-w latepoint-border-radius-"+latepoint_helper.style_border_radius+" ";t&&(s+=t);let l="latepoint-lightbox-i ";o&&(l+=o);let r=a?'<a href="#" class="latepoint-lightbox-close" tabindex="0"><i class="latepoint-icon latepoint-icon-x"></i></a>':"";jQuery("body").append("<"+n+' class="'+s+'"><'+i+' class="'+l+'">'+e+r+"</"+i+'><div class="latepoint-lightbox-shadow"></div></'+n+">"),jQuery("body").addClass("latepoint-lightbox-active")}function latepoint_init_order_summary_lightbox(){let e=jQuery(".customer-dashboard-order-summary-lightbox");latepoint_init_qr_trigger(e),latepoint_init_item_details_popup(e)}function latepoint_init_qr_trigger(e){e.on("click",".qr-show-trigger",(function(){return jQuery(this).closest(".summary-box-wrapper").find(".qr-code-on-full-summary").toggleClass("show-vevent-qr-code"),!1}))}function latepoint_init_item_details_popup(e){e.on("click",".os-item-details-popup-close",(function(){var e=jQuery(this).closest(".latepoint-lightbox-content");return e.find(".os-item-details-popup.open").remove(),e.find(".full-summary-wrapper").show(),e.find(".booking-status-info-wrapper").show(),!1})),e.on("click",".os-trigger-item-details-popup",(function(){var e=jQuery(this).closest(".latepoint-lightbox-content");return e.find(".full-summary-wrapper").hide(),e.find(".booking-status-info-wrapper").hide(),e.find(".os-item-details-popup.open").remove(),e.find("#"+jQuery(this).data("item-details-popup-id")).clone().addClass("open").appendTo(e),!1}))}function latepoint_init_bundle_scheduling_summary(){}function latepoint_manage_by_key_reload_booking(){let e=jQuery(".manage-booking-wrapper");e.addClass("os-loading");let t={key:e.data("key")},a={action:latepoint_helper.route_action,route_name:e.data("route-name"),params:t,layout:"none",return_format:"json"};jQuery.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:a,success:function(t){e.removeClass("os-loading"),"success"===t.status?e.replaceWith(t.message):latepoint_show_message_inside_element(t.message,e,"error")}})}function latepoint_init_manage_booking_by_key(){let e=jQuery(".manage-booking-wrapper");e.length&&(jQuery(".latepoint-w").on("change",".change-booking-status-trigger",(function(){e.addClass("os-loading");let t={key:e.data("key"),status:jQuery(this).val()},a={action:latepoint_helper.route_action,route_name:jQuery(this).closest(".change-booking-status-trigger-wrapper").data("route-name"),params:t,layout:"none",return_format:"json"};return jQuery.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:a,success:function(t){e.removeClass("os-loading"),"success"===t.status?latepoint_manage_by_key_reload_booking():latepoint_show_message_inside_element(t.message,e,"error")}}),!1})),e.on("click",".qr-show-trigger",(function(){return jQuery(this).closest(".manage-booking-wrapper").find(".qr-code-on-full-summary").addClass("show-vevent-qr-code"),!1})),e.on("click",".os-item-details-popup-close",(function(){var e=jQuery(this).closest(".manage-booking-wrapper");return e.find(".os-item-details-popup.open").remove(),e.find(".manage-booking-inner, .manage-booking-controls").show(),!1})),e.on("click",".os-trigger-item-details-popup",(function(){var e=jQuery(this).closest(".manage-booking-wrapper");return e.find(".manage-booking-inner, .manage-booking-controls").hide(),e.find(".os-item-details-popup.open").remove(),e.find("#"+jQuery(this).data("item-details-popup-id")).clone().addClass("open").appendTo(e),!1})))}function latepoint_init_form_masks(){"lp_intlTelInput"in window&&"lp_intlTelInputGlobals"in window&&jQuery(".os-mask-phone").each((function(){latepoint_mask_phone(jQuery(this))}))}function latepoint_scroll_to_top_of_booking_form(e){e.parent().hasClass("latepoint-inline-form")&&e[0].scrollIntoView({block:"nearest",behavior:"smooth"}),e.parent().hasClass("latepoint-lightbox-i")&&e.find(".latepoint-body").scrollTop(0)}async function latepoint_init_payment_method_actions(e,t){let a=[],n="yes"==e.data("next-submit-is-last");e.trigger("latepoint:initPaymentMethod",[{payment_method:t,callbacks_list:a,is_last_step:n}]),e.removeClass("step-content-loaded").addClass("step-content-loading");try{for(const e of a)await e.action();e.removeClass("step-content-loading").addClass("step-content-loaded").find('.lp-payment-method-content[data-payment-method="'+t+'"]').show()}catch(t){latepoint_show_error_and_stop_loading_booking_form(t,e)}}function latepoint_lightbox_close(){jQuery("body").removeClass("latepoint-lightbox-active"),jQuery(".latepoint-lightbox-w").remove()}function latepoint_show_next_btn(e){e.find(".latepoint-next-btn").removeClass("disabled"),e.removeClass("hidden-buttons")}function latepoint_clear_step_services(e){}function latepoint_clear_step_service_extras(e){}function latepoint_clear_step_locations(e){}function latepoint_clear_step_agents(e){}function latepoint_clear_step_datepicker(e){}function latepoint_hide_next_btn(e){e.find(".latepoint-next-btn").addClass("disabled"),e.find(".latepoint-prev-btn.disabled").length&&e.addClass("hidden-buttons")}function latepoint_show_prev_btn(e){e.find(".latepoint-prev-btn").removeClass("disabled"),e.removeClass("hidden-buttons")}function latepoint_hide_prev_btn(e){e.find(".latepoint-prev-btn").addClass("disabled"),e.find(".latepoint-next-btn.disabled").length&&e.addClass("hidden-buttons")}function latepoint_remove_cart_item(e){let t=e.closest(".latepoint-booking-form-element"),a=e.data("cart-item-id");e.addClass("os-loading");let n={action:latepoint_helper.route_action,route_name:e.data("route"),params:jQuery.param({cart_item_id:a}),layout:"none",return_format:"json"};jQuery.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:n,success:function(n){"success"===n.status?a!=t.find('input[name="active_cart_item[id]"]').val()?e.closest(".latepoint-summary-w").length?latepoint_reload_summary(t):latepoint_reload_step(t):latepoint_restart_booking_process(t):(e.removeClass("os-loading"),latepoint_show_message_inside_element(n.message,t.find(".latepoint-body"),"error"))}})}function latepoint_apply_coupon(e){var t=e.closest(".latepoint-booking-form-element"),a=e;a.closest(".coupon-code-input-w").addClass("os-loading");var n=new FormData(t.find(".latepoint-form")[0]),o={action:latepoint_helper.route_action,route_name:e.data("route"),params:latepoint_formdata_to_url_encoded_string(n),layout:"none",return_format:"json"};jQuery.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:o,success:function(e){a.closest(".coupon-code-input-w").removeClass("os-loading"),"success"===e.status?(latepoint_show_message_inside_element(e.message,t.find(".latepoint-body"),"success"),t.find('.step-payment-w input[name="cart[payment_method]"]').val(""),t.find('input[name="cart[payment_token]"]').val(""),t.find('input[name="cart[payment_portion]"]').val(""),latepoint_reload_step(t)):latepoint_show_message_inside_element(e.message,t.find(".latepoint-body"),"error")}})}function latepoint_remove_coupon(e){e.closest(".applied-coupon-code-wrapper").fadeOut();let t=e.closest(".latepoint-booking-form-element").find('input[name="coupon_code"]');t.val(""),latepoint_apply_coupon(t)}function latepoint_restart_booking_process(e){let t=e.find(".latepoint-step-content").first().data("step-code");return latepoint_reload_step(e,t),!1}function latepoint_reload_step(e,t=!1){return t&&(e.find(".latepoint_current_step_code").val(t),e.removeClass((function(e,t){return(t.match(/(^|\s)current-step-\S+/g)||[]).join(" ")})).addClass("current-step-"+t),e.find('.latepoint-step-content[data-step-code="'+t+'"]')&&(e.find('.latepoint-step-content[data-step-code="'+t+'"]').nextAll(".latepoint-step-content").remove(),e.find('.latepoint-step-content[data-step-code="'+t+'"]').remove())),e.data("next-submit-is-last","no"),e.find(".latepoint_step_direction").val("specific"),latepoint_submit_booking_form(e.find(".latepoint-form")),!1}function latepoint_reset_password_from_booking_init(){jQuery(".os-step-existing-customer-login-w").hide(),jQuery(".os-password-reset-form-holder").on("click",".password-reset-back-to-login",(function(){return jQuery(".os-password-reset-form-holder").html(""),jQuery(".os-step-existing-customer-login-w").show(),!1}))}function latepoint_bundle_selected(e){let t=e.closest(".latepoint-booking-form-element");t.find('input[name="active_cart_item[variant]"]').val("bundle"),t.find('input[name="booking[service_id]"]').val("")}function latepoint_service_selected(e){e.closest(".latepoint-booking-form-element").find('input[name="active_cart_item[variant]"]').val("booking")}async function latepoint_reload_summary(e){let t=e.closest(".latepoint-with-summary");if(!t.length)return;if(e.hasClass("is-bundle-scheduling"))return;let a=e.find(".latepoint_current_step_code").val();e.find(".latepoint-summary-w").addClass("os-loading");let n=e.find(".latepoint-form"),o=new FormData(n[0]),i={action:latepoint_helper.route_action,route_name:latepoint_helper.reload_booking_form_summary_route,params:latepoint_formdata_to_url_encoded_string(o),layout:"none",return_format:"json"},s=await jQuery.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:i});if("success"!==s.status)throw new Error(s.message?s.message:"Error reloading summary");e.find(".os-summary-contents").html(s.message),e.find(".latepoint-summary-w").removeClass("os-loading"),a&&!["verify","confirmation"].includes(a)&&s.message?t.addClass("latepoint-summary-is-open"):t.removeClass("latepoint-summary-is-open"),latepoint_init_booking_summary_panel(e)}function latepoint_init_booking_summary_panel(e){let t=e.find(".latepoint-summary-w");t.length&&(t.find(".load-customer-step-trigger").on("click",(function(){return jQuery(this).addClass("os-loading"),latepoint_reload_step(e,"customer"),!1})),t.find(".price-breakdown-unfold").on("click",(function(){return jQuery(this).closest(".summary-price-breakdown-wrapper").removeClass("compact-summary"),!1})),t.find(".os-remove-item-from-cart").on("click keydown",(function(e){if("keydown"!==e.type||" "===e.key||"Enter"===e.key)return latepoint_remove_cart_item(jQuery(this)),!1})))}function latepoint_password_changed_show_login(e){jQuery(".os-step-existing-customer-login-w").show(),jQuery(".os-password-reset-form-holder").html(""),latepoint_show_message_inside_element(e.message,jQuery(".os-step-existing-customer-login-w"),"success")}function latepoint_hide_message_inside_element(e=jQuery(".latepoint-body")){e.length&&e.find(".latepoint-message").length&&e.find(".latepoint-message").remove()}function latepoint_show_message_inside_element(e,t=jQuery(".latepoint-body"),a="error"){e=e||"Error. Please try again.",t.length&&(t.find(".latepoint-message").length?t.find(".latepoint-message").removeClass("latepoint-message-success").removeClass("latepoint-message-error").addClass("latepoint-message-"+a).html(e).show():t.prepend('<div class="latepoint-message latepoint-message-'+a+'">'+e+"</div>"),"error"==a&&t.find(".latepoint-message")[0].scrollIntoView({block:"nearest",behavior:"smooth"}))}function latepoint_add_action(e,t,a=10){return e.push({priority:a,action:t}),e.sort(((e,t)=>e.priority-t.priority)),e}function latepoint_update_next_btn_label(e){let t=e.find(".latepoint-step-content").last().data("next-btn-label");t&&e.find(".latepoint-next-btn span").text(t)}function latepoint_init_step(e,t){switch(latepoint_init_step_selectable_items(t),latepoint_init_step_category_items(e),e){case"customer":latepoint_init_step_customer(t);break;case"booking__datepicker":latepoint_init_step_datepicker(t);break;case"booking__agents":latepoint_init_step_agents();break;case"booking__locations":latepoint_init_step_locations();break;case"booking__services":latepoint_init_step_services();break;case"payment__methods":latepoint_init_step_payment__methods(t);break;case"payment__times":latepoint_init_step_payment__times(t);break;case"payment__portions":latepoint_init_step_payment__portions(t);break;case"payment__pay":latepoint_init_step_payment__pay(t);break;case"verify":latepoint_init_step_verify(t);break;case"confirmation":latepoint_init_step_confirmation(t)}t.trigger("latepoint:initStep",[{step_code:e}]),t.trigger("latepoint:initStep:"+e)}async function latepoint_generate_day_timeslots(e,t=!1,a=!1){t||(t=e.closest(".latepoint-booking-form-element")),e.addClass("selected");var n=e.data("service-duration"),o=e.data("interval"),i=(e.data("work-start-time"),e.data("work-end-time"),e.data("total-work-minutes")),s=[],l=[];if(e.attr("data-bookable-minutes"))if(e.data("bookable-minutes").toString().indexOf(":")>-1){let t=e.data("bookable-minutes").toString().split(",");for(let e=0;e<t.length;e++)s.push(parseInt(t[e].split(":")[0])),l.push(parseInt(t[e].split(":")[1]))}else s=e.data("bookable-minutes").toString().split(",").map(Number);var r=e.data("work-minutes").toString().split(",").map(Number),d=t.find(".timeslots");if(d.html(""),i>0&&s.length&&r.length){var p=!1;r.forEach((function(e){var t=latepoint_am_or_pm(e),a="dp-timepicker-trigger",r=0;if("timeline"==latepoint_helper.time_pick_style?a+=" dp-timeslot":a+=" dp-timebox",!1!==p&&e-p>n){var c=latepoint_minutes_to_hours_and_minutes(p+n)+" "+latepoint_am_or_pm(p+n)+" - "+latepoint_minutes_to_hours_and_minutes(e)+" "+latepoint_am_or_pm(e),_=(e-p-n)/i*100;d.append('<div class="'+a+' is-off" style="max-width:'+_+"%; width:"+_+'%"><span class="dp-label">'+c+"</span></div>")}s.includes(e)?l.length&&(r=l[s.indexOf(e)]):a+=" is-booked";var u="",m="",f="",h="";(e%60==0||o>=60)&&(a+=" with-tick",u='<span class="dp-tick"><strong>'+latepoint_minutes_to_hours_preferably(e)+"</strong> "+t+"</span>");var y=latepoint_minutes_to_hours_and_minutes(e)+" "+t;if(latepoint_show_booking_end_time()){var g=e+n;g>1440&&(g-=1440);var v=latepoint_am_or_pm(g);y+=' - <span class="dp-label-end-time">'+latepoint_minutes_to_hours_and_minutes(g)+" "+v+"</span>"}r&&(f='<span class="dp-capacity">'+(m=r+" "+(r>1?latepoint_helper.many_spaces_message:latepoint_helper.single_space_message))+"</span>",h='<span class="dp-label-capacity">'+m+"</span>");y=y.trim(),d.removeClass("slots-not-available").append('<div tabindex="0" class="'+a+'" data-minutes="'+e+'"><span class="dp-label">'+h+'<span class="dp-label-time">'+y+"</span></span>"+u+f+"</div>"),p=e}))}else d.addClass("slots-not-available").append('<div class="not-working-message">'+latepoint_helper.msg_not_available+"</div>");jQuery(".times-header-label span").text(e.data("nice-date")),t.find(".time-selector-w").slideDown(200,(function(){a||(a=t.find(".latepoint-body")),a.stop(),t.find(".time-selector-w")[0].scrollIntoView({block:"nearest",behavior:"smooth"})}))}function latepoint_recurring_option_clicked(e){if("keydown"===e.type&&" "!==e.key&&"Enter"!==e.key)return;let t=jQuery(this),a=t.closest(".latepoint-booking-form-element");return a.find(".latepoint_is_recurring").val(t.data("value")),latepoint_trigger_next_btn(a),a.find(".step-datepicker-w").removeClass("show-recurring-prompt"),!1}function latepoint_timeslot_clicked(e){if("keydown"===e.type&&" "!==e.key&&"Enter"!==e.key)return;e.preventDefault();let t=jQuery(this).closest(".latepoint-booking-form-element"),a=jQuery(this);if(a.hasClass("is-booked")||jQuery(this).hasClass("is-off"));else if(a.hasClass("selected"))a.removeClass("selected"),a.find(".dp-success-label").remove(),t.find(".latepoint_start_time").val(""),latepoint_hide_next_btn(t),latepoint_reload_summary(t);else{t.find(".dp-timepicker-trigger.selected").removeClass("selected").find(".dp-success-label").remove();a.find(".dp-label-time").html();a.addClass("selected").find(".dp-label").prepend('<span class="dp-success-label">'+latepoint_helper.datepicker_timeslot_selected_label+"</span>");let e=parseInt(a.data("minutes")),n=a.closest(".os-dates-and-times-w").find(".os-day.selected").data("date");if(t.find(".recurring-bookings-preview-wrapper").length&&t.find(".os-recurrence-rules").length){if(t.find(".recurring-bookings-preview-wrapper .recurring-booking-preview.is-editing").length){let a=t.find(".os-recurrence-selection-fields-wrapper"),o=t.find(".recurring-bookings-preview-wrapper .recurring-booking-preview.is-editing");return a.find('input[name="recurrence[overrides]['+o.data("stamp")+'][custom_day]"]').val(n),a.find('input[name="recurrence[overrides]['+o.data("stamp")+'][custom_minutes]"]').val(e),window.latepointRecurringBookingsFrontFeature.reload_recurrence_rules(t,!1)}return t.find(".latepoint_start_date").val(n),t.find(".latepoint_start_time").val(e),window.latepointRecurringBookingsFrontFeature.reload_recurrence_rules(t,!0)}t.find(".latepoint_start_date").val(n),t.find(".latepoint_start_time").val(e),"yes"===a.closest(".os-dates-and-times-w").data("allow-recurring")?(t.find(".step-datepicker-w").addClass("show-recurring-prompt"),t.find(".os-recurring-suggestion-wrapper")[0].scrollIntoView({block:"nearest",behavior:"smooth"}),latepoint_hide_next_btn(t),latepoint_hide_prev_btn(t)):latepoint_trigger_next_btn(t)}return!1}function latepoint_init_timeslots(e=!1){e&&(e.off("click",".dp-timepicker-trigger",latepoint_timeslot_clicked),e.on("click",".dp-timepicker-trigger",latepoint_timeslot_clicked),e.off("keydown",".dp-timepicker-trigger",latepoint_timeslot_clicked),e.on("keydown",".dp-timepicker-trigger",latepoint_timeslot_clicked),e.off("click",".os-recurring-suggestion-option",latepoint_recurring_option_clicked),e.on("click",".os-recurring-suggestion-option",latepoint_recurring_option_clicked),e.off("keydown",".os-recurring-suggestion-option",latepoint_recurring_option_clicked),e.on("keydown",".os-recurring-suggestion-option",latepoint_recurring_option_clicked))}async function latepoint_monthly_calendar_load_next_month(e){try{if(e.find(".os-monthly-calendar-days-w.active + .os-monthly-calendar-days-w").length)return e.find(".os-monthly-calendar-days-w.active").removeClass("active").next(".os-monthly-calendar-days-w").addClass("active"),e.find(".os-month-prev-btn").removeClass("disabled"),latepoint_calendar_set_month_label(e),!0;{let t=e.find(".os-month-next-btn"),a=t.data("route");t.addClass("os-loading");let n=e.find(".os-monthly-calendar-days-w").last(),o=n.data("calendar-year"),i=n.data("calendar-month");12==i?(o+=1,i=1):i+=1;let s=new FormData(e.find(".latepoint-form")[0]);s.set("target_date_string",`${o}-${i}-1`);let l=latepoint_formdata_to_url_encoded_string(s),r={action:latepoint_helper.route_action,route_name:a,params:l,layout:"none",return_format:"json"},d=await jQuery.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:r,success:function(e){}});return t.removeClass("os-loading"),"success"===d.status?(e.find(".os-months").append(d.message),e.find(".os-monthly-calendar-days-w.active").removeClass("active").next(".os-monthly-calendar-days-w").addClass("active"),latepoint_calendar_set_month_label(e),latepoint_calendar_show_or_hide_prev_next_buttons(e),!0):(console.log(d.message),!1)}}catch(e){return console.log(e),alert("Error:"+e),!1}}function latepoint_init_monthly_calendar_navigation(e=!1){e&&(e.find(".os-month-next-btn").on("click",(async function(){return latepoint_monthly_calendar_load_next_month(jQuery(this).closest(".latepoint-booking-form-element"))})),e.find(".os-month-prev-btn").on("click",(function(){var e=jQuery(this).closest(".latepoint-booking-form-element");return e.find(".os-monthly-calendar-days-w.active").prev(".os-monthly-calendar-days-w").length&&(e.find(".os-monthly-calendar-days-w.active").removeClass("active").prev(".os-monthly-calendar-days-w").addClass("active"),latepoint_calendar_set_month_label(e)),latepoint_calendar_show_or_hide_prev_next_buttons(e),!1})))}function latepoint_calendar_set_month_label(e){e.find(".os-current-month-label .current-year").text(e.find(".os-monthly-calendar-days-w.active").data("calendar-year")),e.find(".os-current-month-label .current-month").text(e.find(".os-monthly-calendar-days-w.active").data("calendar-month-label"))}function latepoint_calendar_show_or_hide_prev_next_buttons(e){e.find(".os-current-month-label .current-year").text(e.find(".os-monthly-calendar-days-w.active .os-monthly-calendar-days").data("calendar-year")),e.find(".os-current-month-label .current-month").text(e.find(".os-monthly-calendar-days-w.active .os-monthly-calendar-days").data("calendar-month-label")),e.find(".os-monthly-calendar-days-w.active").prev(".os-monthly-calendar-days-w").length?e.find(".os-month-prev-btn").removeClass("disabled"):e.find(".os-month-prev-btn").addClass("disabled")}function latepoint_format_minutes_to_time(e,t){var a=latepoint_am_or_pm(e),n=latepoint_minutes_to_hours_and_minutes(e)+" "+a;if(latepoint_show_booking_end_time()){var o=e+t,i=latepoint_am_or_pm(o);n+=" - "+latepoint_minutes_to_hours_and_minutes(o)+" "+i}return n=n.trim()}function latepoint_monthly_calendar_day_clicked(e){if("keydown"===e.type&&" "!==e.key&&"Enter"!==e.key)return;let t=jQuery(this);if(t.hasClass("os-day-passed"))return!1;if(t.hasClass("os-not-in-allowed-period"))return!1;if(t.closest(".os-dates-and-times-w").hasClass("calendar-style-modern")){if(t.hasClass("os-month-prev"))return!1;if(t.hasClass("os-month-next"))return!1}var a=jQuery(this).closest(".latepoint-booking-form-element");if(t.closest(".os-recurrence-datepicker-wrapper").length)t.closest(".os-recurrence-datepicker-wrapper").find(".os-day.selected").removeClass("selected"),t.addClass("selected"),t.closest(".os-dates-and-times-w").hasClass("days-only")?(t.closest(".step-recurring-bookings-w").find('input[name="recurrence[rules][repeat_end_date]"]').val(t.data("date")),window.latepointRecurringBookingsFrontFeature.reload_recurrence_rules(a,!0)):(latepoint_generate_day_timeslots(t),t.closest(".os-recurrence-datepicker-wrapper").find(".time-selector-w")[0].scrollIntoView({block:"nearest",behavior:"smooth"}));else if(t.closest(".os-monthly-calendar-days-w").hasClass("hide-if-single-slot"))if(t.hasClass("os-not-available"));else{if(a.find(".os-day.selected").removeClass("selected"),t.addClass("selected"),a.find(".latepoint_start_date").val(t.data("date")),t.hasClass("os-one-slot-only")){var n=t.data("bookable-minutes").toString().split(":")[0];latepoint_format_minutes_to_time(Number(n),Number(t.data("service-duration")));a.find(".latepoint_start_time").val(t.data("bookable-minutes")),latepoint_show_next_btn(a),a.find(".time-selector-w").slideUp(200)}else latepoint_generate_day_timeslots(t),a.find(".latepoint_start_time").val(""),latepoint_hide_next_btn(a);latepoint_reload_summary(a)}else a.find(".latepoint_start_date").val(t.data("date")),a.find(".os-day.selected").removeClass("selected"),t.addClass("selected"),latepoint_generate_day_timeslots(t),latepoint_reload_summary(a),a.find(".latepoint_start_time").val(""),latepoint_hide_next_btn(a);return!1}async function latepoint_init_step_datepicker(e=!1){if(!e)return!0;if(latepoint_init_timeslots(e),
latepoint_init_monthly_calendar_navigation(e),e.off("click",".os-months .os-day",latepoint_monthly_calendar_day_clicked),e.on("click",".os-months .os-day",latepoint_monthly_calendar_day_clicked),e.off("keydown",".os-months .os-day",latepoint_monthly_calendar_day_clicked),e.on("keydown",".os-months .os-day",latepoint_monthly_calendar_day_clicked),e.find('input[name="booking[start_date]"]').val())e.find('.os-day[data-date="'+e.find('input[name="booking[start_date]"]').val()+'"]').trigger("click");else if(e.find(".os-dates-and-times-w").hasClass("auto-search")){let t=24,a=(new Date).getFullYear();for(let n=0;n<t;n++){let t=e.find(".os-monthly-calendar-days-w.active"),n=t.data("calendar-month-label");if(t.data("calendar-year")!=a&&(n+=" "+t.data("calendar-year")),e.find(".os-calendar-searching-info span").text(n),t.find(".os-day.os-month-current").not(".os-not-available").first().length)break;await latepoint_monthly_calendar_load_next_month(e)}}return e.find(".os-dates-and-times-w").removeClass("is-searching"),!0}function latepoint_init_step_verify(e=!1){e&&(e.closest(".latepoint-summary-is-open").removeClass("latepoint-summary-is-open"),e.find(".latepoint-body .load-customer-step-trigger").on("click",(function(){return jQuery(this).addClass("os-loading"),latepoint_reload_step(e,"customer"),!1})),e.find(".coupon-code-wrapper-on-verify .coupon-code-trigger-on-verify-w a").on("click",(function(e){return jQuery(this).closest(".coupon-code-wrapper-on-verify").addClass("entering-coupon").find(".coupon-code-input").trigger("focus"),!1})),e.find(".coupon-code-wrapper-on-verify .coupon-code-input-cancel").on("click",(function(e){return jQuery(this).closest(".coupon-code-wrapper-on-verify").removeClass("entering-coupon"),!1})),e.find(".coupon-code-wrapper-on-verify .coupon-code-input-submit").on("click",(function(e){return latepoint_apply_coupon(jQuery(this).closest(".coupon-code-input-w").find(".coupon-code-input")),!1})),e.find(".os-remove-item-from-cart").on("click keydown",(function(e){if("keydown"!==e.type||" "===e.key||"Enter"===e.key)return confirm(jQuery(this).data("confirm-text"))&&latepoint_remove_cart_item(jQuery(this)),!1})),e.find(".coupon-code-wrapper-on-verify .coupon-code-clear").on("click",(function(e){return latepoint_remove_coupon(jQuery(this)),!1})),e.find(".coupon-code-wrapper-on-verify input.coupon-code-input").on("keyup",(function(e){if(13===e.which)return latepoint_apply_coupon(jQuery(this)),!1})))}function latepoint_init_step_payment__pay(e=!1){var t=e.find('input[name="cart[payment_method]"]').val();latepoint_init_payment_method_actions(e,t)}function latepoint_init_step_payment__portions(e=!1){e.find(".lp-payment-trigger-payment-portion-selector").on("click keydown",(function(e){if("keydown"!==e.type||" "===e.key||"Enter"===e.key){var t=jQuery(this).closest(".latepoint-booking-form-element");return t.find('input[name="'+jQuery(this).data("holder")+'"]').val(jQuery(this).data("value")),latepoint_show_prev_btn(t),latepoint_trigger_next_btn(t),!1}}))}function latepoint_init_step_payment__times(e=!1){e.find(".lp-payment-trigger-payment-time-selector").on("click keydown",(function(e){if("keydown"!==e.type||" "===e.key||"Enter"===e.key){var t=jQuery(this).closest(".latepoint-booking-form-element");return t.find('input[name="'+jQuery(this).data("holder")+'"]').val(jQuery(this).data("value")),latepoint_show_prev_btn(t),latepoint_trigger_next_btn(t),!1}}))}function latepoint_init_step_payment__methods(e=!1){e.find(".lp-payment-trigger-payment-method-selector").on("click",(function(e){var t=jQuery(this).closest(".latepoint-booking-form-element");return t.find('input[name="'+jQuery(this).data("holder")+'"]').val(jQuery(this).data("value")),latepoint_show_prev_btn(t),latepoint_trigger_next_btn(t),!1}))}function latepoint_category_item_clicked(e){if("keydown"===e.type&&" "!==e.key&&"Enter"!==e.key)return;let t=jQuery(e.target);latepoint_show_prev_btn(t.closest(".latepoint-booking-form-element")),t.closest(".latepoint-step-content").addClass("selecting-item-category");let a=t.closest(".os-item-category-w"),n=t.closest(".os-item-categories-main-parent");return a.hasClass("selected")?(a.removeClass("selected"),a.parent().closest(".os-item-category-w").length?a.parent().closest(".os-item-category-w").addClass("selected"):n.removeClass("show-selected-only")):(n.find(".os-item-category-w.selected").removeClass("selected"),n.addClass("show-selected-only"),a.addClass("selected")),!1}function latepoint_init_step_category_items(e){let t=jQuery('.latepoint-step-content[data-step-code="'+e+'"] .os-item-category-info');t.on("click",latepoint_category_item_clicked),t.on("keydown",latepoint_category_item_clicked)}function latepoint_init_step_selectable_items(e){e.off("click",".os-selectable-items .os-selectable-item",latepoint_selectable_item_clicked),e.on("click",".os-selectable-items .os-selectable-item",latepoint_selectable_item_clicked),e.off("click",".os-selectable-items .os-selectable-item .item-quantity-selector-input",latepoint_selectable_item_quantity_keyup),e.on("click",".os-selectable-items .os-selectable-item .item-quantity-selector-input",latepoint_selectable_item_quantity_keyup),e.off("keydown",".os-selectable-items .os-selectable-item",latepoint_selectable_item_clicked),e.on("keydown",".os-selectable-items .os-selectable-item",latepoint_selectable_item_clicked)}function latepoint_update_quantity_for_selectable_items(e){var t=e.closest(".os-selectable-items").find(".os-selectable-item.selected").map((function(){return jQuery(this).hasClass("has-quantity")?jQuery(this).data("item-id")+":"+jQuery(this).find("input.item-quantity-selector-input").val():jQuery(this).data("item-id")})).get();e.closest(".latepoint-booking-form-element").find(e.data("id-holder")).val(t)}function latepoint_selectable_item_quantity_keyup(e){var t=jQuery(this).closest(".latepoint-booking-form-element"),a=jQuery(this).closest(".os-selectable-item"),n=jQuery(this).val();if(n&&n.match(/^\d+$/)){var o=a.data("max-quantity");o&&n>o&&(n=o)}else n=0;if(jQuery(this).val(n),a.hasClass("selected")&&n>0||!a.hasClass("selected")&&0==n)return latepoint_update_quantity_for_selectable_items(a),latepoint_reload_summary(t),!1;a.trigger("click")}function latepoint_selectable_item_clicked(e){if("keydown"!==e.type||" "===e.key||"Enter"===e.key){e.stopPropagation(),e.stopImmediatePropagation();var t=jQuery(this).closest(".latepoint-booking-form-element");if(jQuery(this).hasClass("has-quantity")){if(jQuery(e.target).hasClass("item-quantity-selector")){var a=parseInt(jQuery(this).find("input.item-quantity-selector-input").val()),n="minus"==jQuery(e.target).data("sign")?a-1:a+1,o=jQuery(this).data("max-quantity");if(n<0&&(n=0),o&&n>o&&(n=o),jQuery(this).find("input.item-quantity-selector-input").val(n),jQuery(this).hasClass("selected")&&n>0||!jQuery(this).hasClass("selected")&&0==n)return latepoint_update_quantity_for_selectable_items(jQuery(this)),latepoint_reload_summary(t),!1}if(jQuery(e.target).hasClass("item-quantity-selector-input"))return latepoint_update_quantity_for_selectable_items(jQuery(this)),latepoint_reload_summary(t),!1}return jQuery(this).hasClass("os-allow-multiselect")?(jQuery(this).hasClass("selected")?(jQuery(this).removeClass("selected"),jQuery(this).hasClass("has-quantity")&&jQuery(this).find("input.item-quantity-selector-input").val(0)):(jQuery(this).addClass("selected"),!jQuery(this).hasClass("has-quantity")||jQuery(this).find("input.item-quantity-selector-input").val()>0||jQuery(this).find("input.item-quantity-selector-input").val(1)),latepoint_update_quantity_for_selectable_items(jQuery(this)),latepoint_reload_summary(t),latepoint_show_next_btn(t)):(jQuery(this).hasClass("os-duration-item")||jQuery(this).closest(".os-item-categories-main-parent").find(".os-selectable-item.selected").removeClass("selected"),jQuery(this).closest(".os-selectable-items").find(".os-selectable-item.selected").removeClass("selected"),jQuery(this).addClass("selected"),t.find(jQuery(this).data("id-holder")).val(jQuery(this).data("item-id")),jQuery(this).data("cart-item-item-data-key")&&latepoint_update_active_cart_item_item_data(t,jQuery(this).data("cart-item-item-data-key"),jQuery(this).data("item-id")),jQuery(this).data("os-call-func")&&window[jQuery(this).data("os-call-func")](jQuery(this)),jQuery(this).data("activate-sub-step")?window[jQuery(this).data("activate-sub-step")](jQuery(this)):latepoint_trigger_next_btn(t)),!1}}function latepoint_update_active_cart_item_item_data(e,t,a){let n=e.find('input[name="active_cart_item[item_data]"]').val()?JSON.parse(e.find('input[name="active_cart_item[item_data]"]').val()):{};n[t]=a,e.find('input[name="active_cart_item[item_data]"]').val(JSON.stringify(n))}function latepoint_format_price(e){return","==latepoint_helper.decimal_separator&&(e=String(e).replace(".",",")),latepoint_helper.currency_symbol_before+String(e)+latepoint_helper.currency_symbol_after}function latepoint_init_step_services(){}function latepoint_trigger_next_btn(e){e.find(".latepoint_step_direction").val("next"),latepoint_submit_booking_form(e.find(".latepoint-form"))}function latepoint_init_step_locations(){}function latepoint_init_agent_details_link(e){e.on("click",".os-trigger-item-details-popup",(function(){e.find(".os-item-details-popup.open").remove();var t=e.find("#"+jQuery(this).data("item-details-popup-id")).first().clone().attr("id","");return e.find(".latepoint-form-w").addClass("showing-item-details-popup"),t.addClass("open").appendTo(e.find(".latepoint-body")),!1})),e.on("click",".os-item-details-popup.open .os-item-details-popup-close",(function(){return e.find(".latepoint-form-w").removeClass("showing-item-details-popup"),jQuery(this).closest(".os-item-details-popup.open").remove(),!1}))}function latepoint_init_step_agents(){}function latepoint_init_booking_summary_lightbox(){let e=jQuery(".customer-dashboard-booking-summary-lightbox");latepoint_init_qr_trigger(e),latepoint_init_item_details_popup(e)}function latepoint_init_step_confirmation(e=!1){e&&(e.on("click",".set-customer-password-btn",(function(){let e=jQuery(this),t=jQuery(this).closest(".latepoint-booking-form-element");e.addClass("os-loading");let a={password_nonce:jQuery('input[name="new_password_nonce"]').val(),password:jQuery('input[name="customer[password]"]').val()},n={action:latepoint_helper.route_action,route_name:jQuery(this).data("btn-action"),params:jQuery.param(a),layout:"none",return_format:"json"};return jQuery.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:n,success:function(a){e.removeClass("os-loading"),"success"===a.status?(t.find(".step-confirmation-set-password").html("").hide(),t.find(".confirmation-cabinet-info").show()):latepoint_show_message_inside_element(a.message,t.find(".step-confirmation-set-password"),"error")}}),!1})),e.on("click",".qr-show-trigger",(function(){return jQuery(this).closest(".latepoint-booking-form-element").find(".qr-code-on-full-summary").addClass("show-vevent-qr-code"),!1})),e.on("click",".show-set-password-fields",(function(){var e=jQuery(this).closest(".latepoint-booking-form-element");return e.find(".step-confirmation-set-password").show(),e.find("#customer_password").trigger("focus"),jQuery(this).closest(".info-box").hide(),!1})))}function latepoint_init_customer_login_form(){jQuery(".latepoint-login-form-w").length&&jQuery(".latepoint-login-form-w").each((function(){"auto-redirect"==jQuery(this).data("success-action")?window.location.replace(jQuery(this).data("redirect-url")):latepoint_init_auth_form(jQuery(this))}))}function latepoint_init_customer_dashboard(){latepoint_init_form_masks(),jQuery(".latepoint-customer-timezone-selector-w select").on("change",(function(e){var t=jQuery(this);t.closest(".latepoint-customer-timezone-selector-w").addClass("os-loading");var a={action:latepoint_helper.route_action,route_name:jQuery(this).closest(".latepoint-customer-timezone-selector-w").data("route-name"),params:{timezone_name:jQuery(this).val()},layout:"none",return_format:"json"};jQuery.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:a,success:function(e){t.closest(".latepoint-customer-timezone-selector-w").removeClass("os-loading"),"success"===e.status&&location.reload()}})})),jQuery(".latepoint-request-booking-cancellation").on("click",(function(){if(!confirm(latepoint_helper.cancel_booking_prompt))return!1;var e=jQuery(this),t=e.closest(".customer-booking"),a=jQuery(this).data("route"),n={id:t.data("id")},o={action:latepoint_helper.route_action,route_name:a,params:n,layout:"none",return_format:"json"};return e.addClass("os-loading"),jQuery.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:o,success:function(t){"success"===t.status?(e.remove(),location.reload()):e.removeClass("os-loading")}}),!1}))}function latepoint_get_customer_name(e){var t="",a=e.find('input[name="customer[first_name]"]').val(),n=e.find('input[name="customer[last_name]"]').val();return a&&(t+=a),n&&(t+=" "+n),t.trim()}function latepoint_init_customer_otp_code_verify_form(e){let t=e.find(".latepoint-verify-otp-button"),a=e.find(".os-otp-code-field");t.length&&a.length&&(a.trigger("focus"),t.on("keydown",(function(e){"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),jQuery(this).trigger("click"))})),e.find(".latepoint-customer-otp-resend").on("click",(function(t){t.preventDefault(),latepoint_resend_customer_otp_code(e,jQuery(this))})),e.find(".latepoint-customer-otp-close").on("click",(function(){return e.find(".latepoint-customer-otp-input-container").html(""),e.find(".hide-when-entering-otp").removeClass("os-hidden"),latepoint_show_booking_form_footer(e),!1})),a.on("input",(function(){const e=jQuery(this).val().replace(/[^0-9]/g,"");jQuery(this).val(e),6===e.length&&t.trigger("click")})),a.on("keydown",(function(e){"Enter"===e.key&&(e.preventDefault(),t.trigger("click"))})),t.on("click",(function(t){return latepoint_verify_customer_otp_code(e)})))}async function latepoint_verify_customer_otp_code(e){let t=e.find(".latepoint-verify-otp-button"),a=e.find(".os-otp-code-field");if(a.removeClass("os-invalid"),6!==a.val().length)return a.addClass("os-invalid").addClass("os-shake"),!1;t.addClass("os-loading");let n=new FormData(e.find(".latepoint-form")[0]),o={action:"latepoint_route_call",route_name:t.data("route"),params:latepoint_formdata_to_url_encoded_string(n),layout:"none",return_format:"json"};try{let a=await jQuery.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:o});if(t.removeClass("os-loading"),"success"===a.status){if("redirect"===e.data("success-action"))return window.location.replace(e.data("redirect-url")),!0;latepoint_hide_message_inside_element(e.find(".latepoint-customer-otp-input-code-wrapper")),e.find('input[name="customer_contact_verification_token"]').val(a.message),latepoint_reload_step(e)}else latepoint_show_message_inside_element(a.message,e.find(".latepoint-customer-otp-input-code-wrapper"),"error");return!1}catch(t){throw latepoint_show_message_inside_element("Error generating OTP",e.find(".latepoint-customer-otp-input-code-wrapper"),"error"),t}}async function latepoint_show_verify_contact_form_with_otp_code(e,t){e.find(".latepoint-customer-otp-input-container").html(t),e.find(".hide-when-entering-otp").addClass("os-hidden"),e.removeClass("step-content-loading").addClass("step-content-loaded"),e.find(".latepoint-next-btn, .latepoint-prev-btn").removeClass("os-loading"),latepoint_init_customer_otp_code_verify_form(e),latepoint_hide_booking_form_footer(e)}function latepoint_hide_booking_form_footer(e){e.addClass("hidden-buttons")}function latepoint_show_booking_form_footer(e){e.removeClass("hidden-buttons")}async function latepoint_resend_customer_otp_code(e,t){t.addClass("os-loading");let a=new FormData(e.find(".latepoint-form")[0]);"lp_intlTelInputGlobals"in window&&"lp_intlTelInputUtils"in window&&e.find("input.os-mask-phone").each((function(){const e=this.getAttribute("name"),t=window.lp_intlTelInputGlobals.getInstance(this).getNumber(window.lp_intlTelInputUtils.numberFormat.E164);a.set(e,t)}));let n={action:"latepoint_route_call",route_name:t.data("otp-resend-route"),params:latepoint_formdata_to_url_encoded_string(a),layout:"none",return_format:"json"};try{let a=await jQuery.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:n});return t.removeClass("os-loading"),"success"===a.status?(latepoint_hide_message_inside_element(e.find(".hide-when-entering-otp")),e.find(".hide-when-entering-otp").addClass("os-hidden"),e.find(".latepoint-customer-otp-input-container").html(a.message),latepoint_init_customer_otp_code_verify_form(e)):latepoint_show_message_inside_element(a.message,e.find(".latepoint-customer-otp-input-wrapper"),"error"),!1}catch(t){throw latepoint_show_message_inside_element("Error generating OTP",e.find(".latepoint-customer-otp-input-wrapper"),"error"),t}}async function latepoint_request_customer_otp_code(e,t){t.addClass("os-loading");let a=new FormData(e.find(".latepoint-form")[0]);"lp_intlTelInputGlobals"in window&&"lp_intlTelInputUtils"in window&&e.find("input.os-mask-phone").each((function(){const e=this.getAttribute("name"),t=window.lp_intlTelInputGlobals.getInstance(this).getNumber(window.lp_intlTelInputUtils.numberFormat.E164);a.set(e,t)}));let n={action:"latepoint_route_call",route_name:t.data("otp-request-route"),params:latepoint_formdata_to_url_encoded_string(a),layout:"none",return_format:"json"};try{let a=await jQuery.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:n});return t.removeClass("os-loading"),"success"===a.status?(latepoint_hide_message_inside_element(e.find(".hide-when-entering-otp")),e.find(".hide-when-entering-otp").addClass("os-hidden"),e.find(".latepoint-customer-otp-input-container").html(a.message),latepoint_init_customer_otp_code_verify_form(e)):latepoint_show_message_inside_element(a.message,e.find(".hide-when-entering-otp"),"error"),!1}catch(t){throw latepoint_show_message_inside_element("Error generating OTP",e.find(".hide-when-entering-otp"),"error"),t}}function latepoint_customer_auth_load_next_step(e){}function latepoint_init_customer_otp_code_request_form(e){let t=e.find(".latepoint-request-otp-button");t.length>0&&(t.on("click",(function(t){return latepoint_request_customer_otp_code(e,jQuery(this))})),t.on("keydown",(function(e){"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),jQuery(this).trigger("click"))})),e.find(".latepoint-customer-otp-request-wrapper").find("input, select").on("keydown",(function(e){"Enter"===e.key&&(e.preventDefault(),t.trigger("click"))})))}async function latepoint_login_customer(e,t){t.addClass("os-loading");let a=e.find(".latepoint-form"),n=new FormData(a[0]);"lp_intlTelInputGlobals"in window&&"lp_intlTelInputUtils"in window&&a.find("input.os-mask-phone").each((function(){const e=this.getAttribute("name"),t=window.lp_intlTelInputGlobals.getInstance(this).getNumber(window.lp_intlTelInputUtils.numberFormat.E164);n.set(e,t)}));let o={action:"latepoint_route_call",route_name:t.data("password-login-route"),params:latepoint_formdata_to_url_encoded_string(n),layout:"none",return_format:"json"};try{let a=await jQuery.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:o});if(t.removeClass("os-loading"),"success"===a.status)return"redirect"===e.data("success-action")?(window.location.replace(e.data("redirect-url")),!0):latepoint_reload_step(e);throw new Error(a.message)}catch(t){latepoint_show_message_inside_element(t.message,e.find(".os-step-existing-customer-login-w"))}}function latepoint_init_auth_form(e){latepoint_init_customer_otp_code_request_form(e),latepoint_init_customer_otp_code_verify_form(e),e.find(".login-with-password-toggle").on("change",(function(){jQuery(this).hasClass("os-opposite")?jQuery(this).is(":checked")?(e.find(".os-customer-otp-notice").hide(),e.find(".os-customer-login-password-fields-w").show()):(e.find(".os-customer-otp-notice").show(),e.find(".os-customer-login-password-fields-w").hide()):jQuery(this).is(":checked")?(e.find(".os-customer-otp-notice").show(),e.find(".os-customer-login-password-fields-w").hide()):(e.find(".os-customer-otp-notice").hide(),e.find(".os-customer-login-password-fields-w").show())})),e.find(".alternative-login-option").on("click",(function(){let t=jQuery(this).data("auth-via"),a=jQuery(this).data("otp-delivery-method");return e.find('input[name="auth[contact_type]"]').val(t),e.find('input[name="auth[delivery_method]"]').val(a),e.find(".customer-login-method-wrapper").addClass("os-hidden"),e.find('.customer-login-method-wrapper[data-login-method="'+t+'"]').removeClass("os-hidden"),e.find(".alternative-login-option").removeClass("os-hidden"),jQuery(this).addClass("os-hidden"),!1})),e.find(".login-options-via-wrapper .login-option").on("click",(function(){let e=jQuery(this).closest(".latepoint-customer-auth-options-wrapper"),t=jQuery(this).data("login-method"),a=jQuery(this).data("otp-delivery-method");return"no"===jQuery(this).data("is-otp-enabled")?(e.find(".login-with-password-toggle.os-opposite:not(:checked)").length&&e.find(".login-with-password-toggle.os-opposite").trigger("click"),e.find(".latepoint-customer-otp-option").hide(),e.find(".step-login-existing-customer-btn").addClass("latepoint-btn-block")):e.find(".latepoint-customer-otp-option").length&&(e.find(".latepoint-customer-otp-option").show(),e.find(".step-login-existing-customer-btn").removeClass("latepoint-btn-block")),e.find('input[name="auth[contact_type]"]').val(t),e.find('input[name="auth[delivery_method]"]').val(a),jQuery(this).closest(".login-options-via-wrapper").find(".login-option.os-selected").removeClass("os-selected"),jQuery(this).addClass("os-selected"),jQuery(".customer-login-method-wrapper").addClass("os-hidden"),jQuery('.customer-login-method-wrapper[data-login-method="'+t+'"]').removeClass("os-hidden"),!1})),e.find(".os-customer-login-w input").on("keyup",(function(t){if(13===t.keyCode)return t.preventDefault(),e.find(".step-login-existing-customer-btn").trigger("click"),!1})),e.find(".step-login-existing-customer-btn").on("click",(function(t){t.preventDefault();let a=e.find('input[name="auth[via]"]').val();if(e.find('input[name="auth[via]"]').is(":checkbox")){let t=e.find('input[name="auth[via]"]').is(":checked");"otp"!==a||t?"password"!==a||t||(a="otp"):a="password"}"otp"===a?latepoint_request_customer_otp_code(e,jQuery(this)):"password"===a&&latepoint_login_customer(e,jQuery(this))}))}function latepoint_init_step_customer(e){latepoint_init_form_masks(),latepoint_init_auth_form(e),e.find(".step-customer-logout-btn").on("click",(function(){let e=jQuery(this).closest(".latepoint-booking-form-element");e.find('input[name="customer_contact_verification_token"]').val("");let t={action:latepoint_helper.route_action,route_name:jQuery(this).data("btn-action"),layout:"none",return_format:"json"};return latepoint_step_content_change_start(e),jQuery.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:t,success:function(t){e.find('input[name="auth[action]"]').val("logout"),latepoint_reload_step(e)}}),!1}))}function latepoint_step_content_change_start(e){e.removeClass("step-content-loaded").addClass("step-content-loading")}function latepoint_step_content_change_end(e,t){e&&t.find(".latepoint-body .latepoint-step-content").replaceWith(e),t.removeClass("step-content-loading").addClass("step-content-mid-loading"),setTimeout((function(){t.removeClass("step-content-mid-loading").addClass("step-content-loaded")}),50)}function latepoint_change_step_desc(e,t){e.removeClass("step-changed").addClass("step-changing"),setTimeout((function(){var a=e.find('.latepoint-progress li[data-step-code="'+t+'"]');a.addClass("active").addClass("complete").prevAll().addClass("complete").removeClass("active"),a.nextAll().removeClass("complete").removeClass("active");var n=e.find('.latepoint-step-desc-library[data-step-code="'+t+'"]').html();e.find(".latepoint-step-desc").html(n);var o=e.find('.os-heading-text-library[data-step-code="'+t+'"]').html();e.find(".os-heading-text").html(o),setTimeout((function(){e.removeClass("step-changing").addClass("step-changed")}),50)}),500)}function latepoint_progress_prev(e,t){var a=e.find('.latepoint-progress li[data-step-code="'+t+'"]');a.addClass("active").addClass("complete").prevAll().addClass("complete").removeClass("active"),a.nextAll().removeClass("complete").removeClass("active")}function latepoint_progress_next(e,t){var a=e.find('.latepoint-progress li[data-step-code="'+t+'"]');a.addClass("active").addClass("complete").prevAll().addClass("complete").removeClass("active"),a.nextAll().removeClass("complete").removeClass("active")}function latepoint_next_step_description(e,t){e.removeClass("step-changed").addClass("step-changing"),setTimeout((function(){e.find(".latepoint-step-desc").html(e.find(".latepoint-step-desc-library.active").removeClass("active").next(".latepoint-step-desc-library").addClass("active").html()),e.find(".os-heading-text").html(e.find(".os-heading-text-library.active").removeClass("active").next(".os-heading-text-library").addClass("active").html()),setTimeout((function(){e.removeClass("step-changing").addClass("step-changed")}),50)}),500)}function latepoint_prev_step_description(e,t){e.removeClass("step-changed").addClass("step-changing"),setTimeout((function(){e.find(".latepoint-step-desc").html(e.find(".latepoint-step-desc-library.active").removeClass("active").prev(".latepoint-step-desc-library").addClass("active").html()),e.find(".os-heading-text").html(e.find(".os-heading-text-library.active").removeClass("active").prev(".os-heading-text-library").addClass("active").html()),setTimeout((function(){e.removeClass("step-changing").addClass("step-changed")}),50)}),500)}function latepoint_validate_fields(e){var t=!0;return e.each((function(e){if(""==jQuery(this).val())return t=!1,!1})),t}async function latepoint_submit_booking_form(e){let t=e.closest(".latepoint-booking-form-element"),a=t.find(".latepoint_current_step_code").val(),n=[];latepoint_check_if_booking_form_is_final_submit(t)&&latepoint_add_action(n,(async()=>await latepoint_check_if_order_intent_still_bookable(t)),1),t.trigger("latepoint:submitBookingForm",[{current_step:a,callbacks_list:n,is_final_submit:latepoint_check_if_booking_form_is_final_submit(t),direction:t.find(".latepoint_step_direction").val()}]);try{latepoint_hide_prev_btn(t),await latepoint_process_list_of_callbacks(n,t,e)}catch(e){return latepoint_show_prev_btn(t),latepoint_show_error_and_stop_loading_booking_form(e,t),!1}t.removeClass("step-content-loaded").addClass("step-content-loading"),latepoint_hide_prev_btn(t);try{latepoint_hide_message_inside_element(t.find(".latepoint-body"));let a=await jQuery.ajax({type:"post",dataType:"json",processData:!1,contentType:!1,url:latepoint_timestamped_ajaxurl(),data:latepoint_create_form_data(e)});if(e.find(".latepoint_step_direction").val("next"),"success"===a.status){if(a.fields_to_update)for(const[e,n]of Object.entries(a.fields_to_update))t.find('input[name="'+e+'"]').val(n);t.data("flash-error")&&(latepoint_show_message_inside_element(t.data("flash-error"),t.find(".latepoint-body")),t.data("flash-error","")),t.find(".latepoint_current_step_code").val(a.step_code),t.removeClass((function(e,t){return(t.match(/(^|\s)current-step-\S+/g)||[]).join(" ")})).addClass("current-step-"+a.step_code),setTimeout((function(){t.removeClass("step-content-loading").addClass("step-content-mid-loading"),t.find(".latepoint-body").find(".latepoint-step-content").addClass("is-hidden"),t.find('.latepoint-step-content[data-step-code="'+a.step_code+'"]')&&t.find('.latepoint-step-content[data-step-code="'+a.step_code+'"]').remove(),t.find(".latepoint-body").append(a.message),latepoint_update_next_btn_label(t),latepoint_init_step(a.step_code,t),setTimeout((function(){t.removeClass("step-content-mid-loading").addClass("step-content-loaded"),t.find(".latepoint-next-btn, .latepoint-prev-btn").removeClass("os-loading"),latepoint_scroll_to_top_of_booking_form(t)}),50)}),500),a.is_pre_last_step?t.data("next-submit-is-last","yes"):t.data("next-submit-is-last","no"),a.is_last_step?(t.addClass("hidden-buttons").find(".latepoint-footer").remove(),t.find(".latepoint-progress").css("opacity",0),t.closest(".latepoint-summary-is-open").removeClass("latepoint-summary-is-open"),t.closest(".latepoint-show-side-panel").removeClass("latepoint-show-side-panel").addClass("latepoint-hide-side-panel"),t.addClass("is-final-step")):(!0===a.show_next_btn?latepoint_show_next_btn(t):latepoint_hide_next_btn(t),!0===a.show_prev_btn?latepoint_show_prev_btn(t):latepoint_hide_prev_btn(t)),latepoint_change_step_desc(t,a.step_code),latepoint_reload_summary(t)}else{if(a.fields_to_update)for(const[e,n]of Object.entries(a.fields_to_update))t.find('input[name="'+e+'"]').val(n);if(a.callback){let e=a.callback;if(e.includes(".")){let n=e.split(".");"function"!=typeof window[n[0]][n[1]]&&console.log(e+" is undefined"),a.callback_data?window[n[0]][n[1]](t,a.callback_data):window[n[0]][n[1]](t)}else"function"!=typeof window[e]&&console.log(e+" is undefined"),a.callback_data?window[e](t,a.callback_data):window[e](t)}else if(a.send_to_step&&"resubmit"===a.send_to_step){let n=parseInt(e.data("resubmit-count"))?parseInt(e.data("resubmit-count")):1;if(e.data("resubmit-count",n+1),!(n>6))return await latepoint_sleep(2e3),latepoint_submit_booking_form(e);latepoint_show_message_inside_element(a.message,t.find(".latepoint-body"))}else t.removeClass("step-content-loading").addClass("step-content-loaded"),t.find(".latepoint-next-btn, .latepoint-prev-btn").removeClass("os-loading"),a.send_to_step&&t.find('.latepoint-step-content[data-step-code="'+a.send_to_step+'"]').length?(t.data("flash-error",a.message),latepoint_reload_step(t,a.send_to_step)):(latepoint_show_message_inside_element(a.message,t.find(".latepoint-body")),latepoint_show_prev_btn(t))}}catch(e){console.log(e),alert("Error:"+e)}}function latepoint_sleep(e){return new Promise((t=>setTimeout(t,e)))}function latepoint_show_error_and_stop_loading_booking_form(e,t){e.send_to_step&&t.find('.latepoint-step-content[data-step-code="'+e.send_to_step+'"]').length?(latepoint_reload_step(t,e.send_to_step),t.data("flash-error",e.message)):(latepoint_show_message_inside_element(e.message,t.find(".latepoint-body"),"error"),t.hasClass("step-content-loading")&&t.removeClass("step-content-loading").addClass("step-content-loaded"),t.find(".latepoint-next-btn").removeClass("os-loading"),t.find(".latepoint-step-content:last-child").prev(".latepoint-step-content").length&&latepoint_show_prev_btn(t),latepoint_scroll_to_top_of_booking_form(t))}function latepoint_reset_active_cart_item(e){e.find('input[name="active_cart_item[id]"]').val(""),e.find('input[name="active_cart_item[variant]"]').val(""),e.find('input[name="active_cart_item[item_data]"]').val("")}function latepoint_check_if_booking_form_is_final_submit(e){return"yes"==e.data("next-submit-is-last")}async function latepoint_check_if_order_intent_still_bookable(e){let t=await jQuery.ajax({type:"post",dataType:"json",processData:!1,contentType:!1,url:latepoint_timestamped_ajaxurl(),data:latepoint_create_form_data(e.find(".latepoint-form"),latepoint_helper.check_order_intent_bookable_route)});if("success"===t.status)return!0;throw new Error(t.message)}async function latepoint_process_list_of_callbacks(e,t,a){for(const t of e)await t.action()}function latepoint_clear_presets(e){e.find(".clear_for_new_item").val("")}function latepoint_init_booking_form(e){e.on("click keydown",".checkout-from-summary-panel-btn",(function(t){if("keydown"!==t.type||" "===t.key||"Enter"===t.key)return latepoint_reload_step(e,jQuery(this).data("step")),jQuery(this).closest(".latepoint-w").removeClass("show-summary-on-mobile"),!1})),e.on("click keydown",".latepoint-add-another-item-trigger",(function(t){
if("keydown"!==t.type||" "===t.key||"Enter"===t.key)return latepoint_helper.reset_presets_when_adding_new_item&&latepoint_clear_presets(e),latepoint_reset_active_cart_item(e),latepoint_reload_step(e,jQuery(this).data("step")),!1})),e.find(".latepoint-form").on("submit",(function(e){e.preventDefault(),latepoint_submit_booking_form(jQuery(this))})),latepoint_init_booking_summary_panel(e),e.on("click keydown",".latepoint-lightbox-summary-trigger",(function(e){if(e.preventDefault(),"keydown"===e.type&&" "!==e.key&&"Enter"!==e.key)return;return jQuery(this).closest(".latepoint-w").toggleClass("show-summary-on-mobile"),!1})),e.find(".latepoint-lightbox-close").on("click",(function(){let e=new URLSearchParams(location.search);return e.has("latepoint_order_intent_key")&&(e.delete("latepoint_order_intent_key"),history.replaceState(null,"","?"+e+location.hash)),jQuery("body").removeClass("latepoint-lightbox-active"),jQuery(".latepoint-lightbox-w").remove(),!1})),e.on("click keydown",".lp-option",(function(e){"keydown"===e.type&&" "!==e.key&&"Enter"!==e.key||(jQuery(this).closest(".lp-options").find(".lp-option.selected").removeClass("selected"),jQuery(this).addClass("selected"))})),e.find(".latepoint-next-btn").on("click",(async function(t){if(t.preventDefault(),jQuery(this).hasClass("disabled")||jQuery(this).hasClass("os-loading"))return!1;jQuery(this).addClass("os-loading");var a=jQuery(this).closest(".latepoint-form"),n=e.find(".latepoint_current_step_code").val();a.find(".latepoint_step_direction").val("next");var o=[];e.trigger("latepoint:nextStepClicked",[{current_step:n,callbacks_list:o}]),latepoint_hide_prev_btn(e);try{await latepoint_process_list_of_callbacks(o,e,a),await latepoint_submit_booking_form(a)}catch(t){latepoint_show_error_and_stop_loading_booking_form(t,e)}return!1})),e.find(".latepoint-prev-btn").on("click",(function(t){if(jQuery(this).hasClass("disabled")||jQuery(this).hasClass("os-loading"))return!1;let a=e.find(".latepoint-step-content:last-child");if(a.hasClass("selecting-item-category"))return a.find(".os-item-category-w .os-item-category-w.selected").length?a.find(".os-item-category-w .os-item-category-w.selected").parents(".os-item-category-w").addClass("selected").find(".os-item-category-w.selected").removeClass("selected"):(a.removeClass("selecting-item-category").find(".os-item-category-w.selected").removeClass("selected"),a.removeClass("selecting-item-category").find(".os-item-categories-holder.show-selected-only").removeClass("show-selected-only")),e.find(".latepoint-step-content").length<=1&&!a.hasClass("selecting-item-category")&&latepoint_hide_prev_btn(e),latepoint_reload_summary(e),!1;a.data("clear-action")&&window[a.data("clear-action")](e);let n=jQuery(this);n.addClass("os-loading"),e.removeClass("step-content-loaded").addClass("step-content-loading");let o=e.find(".latepoint-step-content.is-hidden").last(),i=o.data("step-code"),s=a.data("step-code").split("__")[0],l=i.split("__")[0],r=e.find('input[name="active_cart_item[id]"]').val();return latepoint_change_step_desc(e,i),setTimeout((function(){if(o.removeClass("is-hidden"),a.remove(),e.find(".latepoint_current_step_code").val(i),e.removeClass((function(e,t){return(t.match(/(^|\s)current-step-\S+/g)||[]).join(" ")})).addClass("current-step-"+i),e.find(".latepoint-next-btn span").text(e.find(".latepoint-next-btn").data("label")),e.data("next-submit-is-last","no"),latepoint_update_next_btn_label(e),latepoint_show_next_btn(e),n.removeClass("os-loading"),e.find(".latepoint-step-content").length<=1)if(o.hasClass("selecting-item-category"),"booking__services"==i){var t=e.find(".step-services-w");t.hasClass("selecting-item-category")?t.find(".os-services > .os-item.selected").hasClass("is-preselected")||latepoint_show_prev_btn(e):latepoint_hide_prev_btn(e)}else o.hasClass("selecting-item-category")||latepoint_hide_prev_btn(e);if(e.removeClass("step-content-loading").addClass("step-content-mid-loading"),"booking"==l&&"booking"!=s&&r){e.find(".latepoint-summary-w").addClass("os-loading");let t={action:latepoint_helper.route_action,route_name:latepoint_helper.remove_cart_item_route,params:jQuery.param({cart_item_id:r}),layout:"none",return_format:"json"};jQuery.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:t,success:function(t){"success"===t.status?(e.find('input[name="active_cart_item[id]"]').val(""),"bundle"==e.find('input[name="active_cart_item[variant]"]').val()&&(latepoint_update_active_cart_item_item_data(e,"bundle_id",""),e.find('input[name="active_cart_item[variant]"]').val("")),latepoint_reload_summary(e)):(e.find(".latepoint-summary-w").removeClass("os-loading"),latepoint_show_message_inside_element(t.message,e.find(".latepoint-body"),"error"))}})}else latepoint_reload_summary(e);setTimeout((function(){e.removeClass("step-content-mid-loading").addClass("step-content-loaded"),latepoint_hide_message_inside_element(e.find(".latepoint-body")),latepoint_scroll_to_top_of_booking_form(e);e.trigger("latepoint:prevStepReInit",[{current_step:i,callbacks_list:[]}])}),150)}),700),!1})),latepoint_init_agent_details_link(e),e.trigger("latepoint:initBookingForm")}function latepoint_init_booking_form_by_trigger(e){let t=latepoint_helper.booking_button_route,a={},n={},o={},i={};e.data("show-service-categories")&&(n.show_service_categories=e.data("show-service-categories")),e.data("show-locations")&&(n.show_locations=e.data("show-locations")),e.data("show-services")&&(n.show_services=e.data("show-services")),e.data("show-agents")&&(n.show_agents=e.data("show-agents")),e.data("calendar-start-date")&&(n.calendar_start_date=e.data("calendar-start-date")),e.data("selected-location")&&(o.selected_location=e.data("selected-location")),e.data("selected-agent")&&(o.selected_agent=e.data("selected-agent")),e.data("selected-service")&&(o.selected_service=e.data("selected-service")),e.data("selected-bundle")&&(o.selected_bundle=e.data("selected-bundle")),e.data("selected-duration")&&(o.selected_duration=e.data("selected-duration")),e.data("selected-total-attendees")&&(o.selected_total_attendees=e.data("selected-total-attendees")),e.data("selected-service-category")&&(o.selected_service_category=e.data("selected-service-category")),e.data("selected-start-date")&&(o.selected_start_date=e.data("selected-start-date")),e.data("selected-start-time")&&(o.selected_start_time=e.data("selected-start-time")),e.data("order-item-id")&&(o.order_item_id=e.data("order-item-id")),e.data("source-id")&&(o.source_id=e.data("source-id")),"yes"==e.data("hide-summary")&&(i.hide_summary=!0),"yes"==e.data("hide-side-panel")&&(i.hide_side_panel=!0),0==jQuery.isEmptyObject(n)&&(a.restrictions=n),0==jQuery.isEmptyObject(o)&&(a.presets=o),0==jQuery.isEmptyObject(i)&&(a.booking_element_styles=i);let s={action:latepoint_helper.route_action,route_name:t,params:a,layout:"none",return_format:"json"},l=e.hasClass("latepoint-book-form-wrapper");l&&(s.params.booking_element_type="inline_form"),e.addClass("os-loading"),jQuery.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:s,success:t=>{if("success"===t.status){let a=!1;if(l)e.html(t.message),a=e.find(".latepoint-booking-form-element");else{let e="booking-form-in-lightbox";latepoint_show_data_in_lightbox(t.message,e,!1),a=jQuery(".latepoint-lightbox-w .latepoint-booking-form-element"),jQuery("body").addClass("latepoint-lightbox-active")}latepoint_init_booking_form(a),latepoint_init_step(t.step,a),e.removeClass("os-loading")}else e.removeClass("os-loading")}})}async function latepoint_init_transaction_payment_form(){let e=[],t=jQuery(".latepoint-transaction-payment-form"),a=t.find('input[name="current_step"]').val();switch(t.on("click keydown",".lp-option",(e=>{let a=jQuery(e.currentTarget);if("keydown"!==e.type||" "===e.key||"Enter"===e.key)return a.closest(".lp-options").find(".lp-option.selected").removeClass("selected"),a.addClass("selected"),t.find('input[name="'+a.data("holder")+'"]').val(a.data("value")),t.trigger("submit"),!1})),a){case"methods":case"processors":case"confirmation":break;case"pay":t.trigger("latepoint:initOrderPaymentMethod",[{callbacks_list:e,payment_method:t.find('input[name="payment_method"]').val(),payment_processor:t.find('input[name="payment_processor"]').val()}]),t.addClass("os-loading");try{for(const t of e)await t.action();t.removeClass("os-loading")}catch(e){latepoint_show_error_and_stop_loading_booking_form(e,t)}}t.on("submit",(async function(e){e.preventDefault(),await latepoint_submit_transaction_payment_form(jQuery(e.target))}))}async function latepoint_submit_transaction_payment_form(e){if(e.hasClass("os-loading"))return!1;let t=[];e.find(".latepoint-message").remove(),e.addClass("os-loading"),e.find(".latepoint-btn").addClass("os-loading"),e.trigger("latepoint:submitTransactionPaymentForm",[{callbacks_list:t,payment_method:e.find('input[name="payment_method"]').val(),payment_processor:e.find('input[name="payment_processor"]').val(),current_step:e.find('input[name="current_step"]').val()}]);try{for(const e of t)await e.action()}catch(t){return e.removeClass("os-loading").find(".os-loading").removeClass("os-loading"),latepoint_show_message_inside_element(t.message,e.find(".lp-payment-method-content"),"error"),!1}try{let t=await jQuery.ajax({type:"post",dataType:"json",processData:!1,contentType:!1,url:latepoint_timestamped_ajaxurl(),data:latepoint_create_form_data(e,latepoint_helper.invoices_payment_form_route)});return e.removeClass("os-loading").find(".os-loading").removeClass("os-loading"),"success"===t.status?(e.html(t.message),await latepoint_init_transaction_payment_form()):(latepoint_show_message_inside_element(t.message,e.find(".lp-payment-method-content"),"error"),!1)}catch(t){e.removeClass("os-loading").find(".os-loading").removeClass("os-loading"),console.log(t),alert("Error:"+t)}}function latepoint_hide_reschedule_button(){jQuery(".reschedule-confirmation-button-wrapper").hide()}function latepoint_show_reschedule_button(){jQuery(".reschedule-confirmation-button-wrapper").show()}function latepoint_customer_cabinet_reload_booking_tile(e){e.addClass("os-loading");let t={booking_id:e.data("id")},a={action:latepoint_helper.route_action,route_name:e.data("route-name"),params:t,layout:"none",return_format:"json"};jQuery.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:a,success:function(t){e.removeClass("os-loading"),"success"===t.status?e.replaceWith(t.message):alert(t.message)}})}function show_summary_before_payment(e){let t={action:latepoint_helper.route_action,route_name:latepoint_helper.invoices_summary_before_payment_route,params:{key:e},layout:"none",return_format:"json"};jQuery.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:t,success:function(e){latepoint_show_data_in_lightbox(e.message,"width-500")}})}function latepoint_reload_reschedule_calendar(e){e.addClass("os-loading");let t=e.find(".os-monthly-calendar-days-w.active").last(),a=t.data("calendar-year"),n=t.data("calendar-month"),o={action:latepoint_helper.route_action,route_name:e.data("route"),params:{timezone_name:e.find('input[type="hidden"].latepoint_timezone_name').val(),key:e.find('input[type="hidden"].latepoint_manage_booking_key').val(),target_date_string:`${a}-${n}-1`,booking_id:e.find('input[type="hidden"].latepoint_booking_id').val()},layout:"none",return_format:"json"};return jQuery.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:o,success:function(t){e.removeClass("os-loading"),"success"===t.status&&jQuery(".latepoint-lightbox-i").html(t.message)}}),latepoint_calendar_show_or_hide_prev_next_buttons(e),!1}function latepoint_init_reschedule(){let e=jQuery(".reschedule-calendar-wrapper");latepoint_init_timezone_picker(e),e.on("click",".latepoint-request-reschedule-trigger",(function(){let e=jQuery(this),t=e.closest(".reschedule-calendar-wrapper"),a=t.find('input[type="hidden"].latepoint_booking_id').val();e.addClass("os-loading");let n={booking_id:a,key:t.find('input[type="hidden"].latepoint_manage_booking_key').val(),start_date:t.find('input[type="hidden"].latepoint_start_date').val(),start_time:t.find('input[type="hidden"].latepoint_start_time').val(),timezone_name:t.find('input[type="hidden"].latepoint_timezone_name').val()},o={action:latepoint_helper.route_action,route_name:e.data("route-name"),params:n,layout:"none",return_format:"json"};return jQuery.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:o,success:function(t){e.removeClass("os-loading"),"success"===t.status?(jQuery(".latepoint-lightbox-content").html(t.message),jQuery(".latepoint-lightbox-footer, .latepoint-lightbox-heading").remove(),jQuery(".customer-bookings-tiles").length?latepoint_customer_cabinet_reload_booking_tile(jQuery('.customer-bookings-tiles .customer-booking[data-id="'+a+'"]')):latepoint_manage_by_key_reload_booking()):(latepoint_show_message_inside_element(t.message,jQuery(".latepoint-lightbox-content"),"error"),jQuery(".latepoint-lightbox-content").animate({scrollTop:0},300))}}),!1})),e.on("click keydown",".dp-timepicker-trigger",(function(e){if("keydown"!==e.type||" "===e.key||"Enter"===e.key){var t=jQuery(this).closest(".reschedule-calendar-wrapper");if(jQuery(this).hasClass("is-booked")||jQuery(this).hasClass("is-off"));else if(jQuery(this).hasClass("selected"))jQuery(this).removeClass("selected"),jQuery(this).find(".dp-success-label").remove(),t.find(".latepoint_start_time").val(""),latepoint_hide_reschedule_button();else{t.find(".dp-timepicker-trigger.selected").removeClass("selected").find(".dp-success-label").remove();jQuery(this).find(".dp-label-time").html();jQuery(this).addClass("selected").find(".dp-label").prepend('<span class="dp-success-label">'+latepoint_helper.datepicker_timeslot_selected_label+"</span>");var a=parseInt(jQuery(this).data("minutes")),n=new Date(t.find(".os-day.selected").data("date"));t.find(".latepoint_start_date").val(n.toISOString().split("T")[0]),t.find(".latepoint_start_time").val(a),latepoint_show_reschedule_button()}return!1}})),e.on("click",".os-month-next-btn",(function(){var e=jQuery(this).closest(".reschedule-calendar-wrapper"),t=jQuery(this).data("route");if(e.find(".os-monthly-calendar-days-w.active + .os-monthly-calendar-days-w").length)e.find(".os-monthly-calendar-days-w.active").removeClass("active").next(".os-monthly-calendar-days-w").addClass("active"),latepoint_calendar_set_month_label(e);else{var a=jQuery(this);a.addClass("os-loading");var n=e.find(".os-monthly-calendar-days-w").last(),o=n.data("calendar-year"),i=n.data("calendar-month");12==i?(o+=1,i=1):i+=1;var s={action:latepoint_helper.route_action,route_name:t,params:{timezone_name:e.find('input[type="hidden"].latepoint_timezone_name').val(),key:e.find('input[type="hidden"].latepoint_manage_booking_key').val(),target_date_string:`${o}-${i}-1`,booking:{id:e.find('input[type="hidden"].latepoint_booking_id').val()}},layout:"none",return_format:"json"};jQuery.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:s,success:function(t){a.removeClass("os-loading"),"success"===t.status&&(e.find(".os-months").append(t.message),e.find(".os-monthly-calendar-days-w.active").removeClass("active").next(".os-monthly-calendar-days-w").addClass("active"),latepoint_calendar_set_month_label(e))}})}return latepoint_calendar_show_or_hide_prev_next_buttons(e),!1})),e.on("click",".os-month-prev-btn",(function(){var e=jQuery(this).closest(".reschedule-calendar-wrapper");return e.find(".os-monthly-calendar-days-w.active").prev(".os-monthly-calendar-days-w").length&&(e.find(".os-monthly-calendar-days-w.active").removeClass("active").prev(".os-monthly-calendar-days-w").addClass("active"),latepoint_calendar_set_month_label(e)),latepoint_calendar_show_or_hide_prev_next_buttons(e),!1})),e.on("click",".os-day",(function(){if(jQuery(this).hasClass("os-day-passed"))return!1;if(jQuery(this).hasClass("os-not-in-allowed-period"))return!1;if(jQuery(this).closest(".os-dates-and-times-w").hasClass("calendar-style-modern")){if(jQuery(this).hasClass("os-month-prev"))return!1;if(jQuery(this).hasClass("os-month-next"))return!1}var e=jQuery(this).closest(".reschedule-calendar-wrapper");if(jQuery(this).closest(".os-monthly-calendar-days-w").hasClass("hide-if-single-slot"))if(jQuery(this).hasClass("os-not-available"));else if(e.find(".os-day.selected").removeClass("selected"),jQuery(this).addClass("selected"),e.find(".latepoint_start_date").val(jQuery(this).data("date")),jQuery(this).hasClass("os-one-slot-only")){var t=jQuery(this).data("bookable-minutes").toString().split(":")[0];latepoint_format_minutes_to_time(Number(t),Number(jQuery(this).data("service-duration")));e.find(".latepoint_start_time").val(jQuery(this).data("bookable-minutes")),e.find(".time-selector-w").slideUp(200),latepoint_show_reschedule_button()}else latepoint_generate_day_timeslots(jQuery(this),e,e.find(".latepoint-lightbox-content")),e.find(".latepoint_start_time").val("");else{e.find(".latepoint_start_date").val(jQuery(this).data("date")),e.find(".os-day.selected").removeClass("selected"),jQuery(this).addClass("selected"),latepoint_generate_day_timeslots(jQuery(this),e,e.find(".latepoint-lightbox-content"));let t=jQuery(this).closest(".latepoint-booking-form-element");t.length&&latepoint_reload_summary(t),e.find(".latepoint_start_time").val(""),latepoint_hide_next_btn(e)}return!1}))}function latepoint_reload_day_schedule(e){e.addClass("os-loading");let t={action:latepoint_helper.route_action,route_name:e.data("route-name"),params:e.find("select, textarea, input").serialize(),layout:"none",return_format:"json"};jQuery.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:t,success:function(t){"success"===t.status&&e.replaceWith(t.message)}})}function latepoint_reload_events_calendar(e){e.addClass("os-loading");let t={action:latepoint_helper.route_action,route_name:e.data("route-name"),params:e.find("select, textarea, input").serialize(),layout:"none",return_format:"json"};jQuery.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:t,success:function(t){"success"===t.status&&e.replaceWith(t.message)}})}jQuery((function($){$(".latepoint").find("[data-os-action-onload]").length&&$(".latepoint").find("[data-os-action-onload]").each((function(){var e=jQuery(this);e.addClass("os-loading");var t=e.data("os-params"),a=e.data("os-return-format")?e.data("os-return-format"):"json",n={action:"latepoint_route_call",route_name:e.data("os-action-onload"),params:t,return_format:a};jQuery.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:n,success:function(t){e.removeClass("os-loading"),"success"===t.status&&"self"==e.data("os-output-target")&&e.html(t.message)}})})),jQuery("body.latepoint").on("change","select[data-os-on-change]",(function(e){let t=jQuery(this),a=t.data("os-on-change");if(a.includes(".")){let e=a.split(".");"function"!=typeof window[e[0]][e[1]]?console.log(a+" is undefined"):window[e[0]][e[1]](t)}else"function"!=typeof window[a]?console.log(a+" is undefined"):window[a](t)})),$(".latepoint").on("click","button[data-os-action], a[data-os-action], div[data-os-action], span[data-os-action], tr[data-os-action]",(function(e){var t=jQuery(this);if(t.data("os-prompt")&&!confirm(t.data("os-prompt")))return!1;var a=t.data("os-params");t.data("os-source-of-params")&&(a=latepoint_formdata_to_url_encoded_string(latepoint_create_form_data_from_non_form_element($(t.data("os-source-of-params")))));var n=t.data("os-return-format")?t.data("os-return-format"):"json",o={action:"latepoint_route_call",route_name:t.data("os-action"),params:a,return_format:n};if(t.addClass("os-loading"),"side-panel"==t.data("os-output-target")){$(".latepoint-side-panel-w").remove();let e=t.data("os-lightbox-classes")?t.data("os-lightbox-classes"):"";$("body").append('<div class="latepoint-side-panel-w '+e+' os-loading"><div class="latepoint-side-panel-shadow"></div><div class="latepoint-side-panels"><div class="latepoint-side-panel-i"></div></div></div>')}else"full-panel"==t.data("os-output-target")&&($(".latepoint-full-panel-w").remove(),$("body").append('<div class="latepoint-full-panel-w os-loading"></div>'));return $.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:o,success:function(e){if("success"===e.status){if("lightbox"==t.data("os-output-target"))latepoint_show_data_in_lightbox(e.message,t.data("os-lightbox-classes"),"yes"!==t.data("os-lightbox-no-close-button"),t.data("os-lightbox-tag"),t.data("os-lightbox-inner-classes"),t.data("os-lightbox-inner-tag"));else if("side-panel"==t.data("os-output-target"))$(".latepoint-side-panel-i").html(e.message),jQuery(".latepoint-side-panel-i").find(".os-form-header .latepoint-side-panel-close").remove(),jQuery(".latepoint-side-panel-i").find(".os-form-header").append('<a href="#" class="latepoint-side-panel-close latepoint-side-panel-close-trigger"><i class="latepoint-icon latepoint-icon-x"></i></a>'),setTimeout((function(){$(".latepoint-side-panel-w").removeClass("os-loading")}),100);else if("full-panel"==t.data("os-output-target"))$(".latepoint-full-panel-w").html(e.message),setTimeout((function(){$(".latepoint-full-panel-w").removeClass("os-loading")}),100);else{if("reload"==t.data("os-success-action"))return latepoint_add_notification(e.message),void location.reload();if("redirect"==t.data("os-success-action"))return void(t.data("os-redirect-to")?(latepoint_add_notification(e.message),window.location.replace(t.data("os-redirect-to"))):window.location.replace(e.message));if(t.data("os-output-target")&&$(t.data("os-output-target")).length)"append"==t.data("os-output-target-do")?$(t.data("os-output-target")).append(e.message):"prepend"==t.data("os-output-target-do")?$(t.data("os-output-target")).prepend(e.message):$(t.data("os-output-target")).html(e.message);else switch(t.data("os-before-after")){case"before":t.before(e.message);break;case"after":t.after(e.message);break;case"replace":t.replaceWith(e.message);break;case"none":break;default:latepoint_add_notification(e.message)}}if(t.data("os-after-call")){if((n=t.data("os-after-call")).includes(".")){var a=n.split(".");"function"!=typeof window[a[0]][a[1]]&&console.log(n+" is undefined"),t.data("os-pass-this")&&t.data("os-pass-response")?window[a[0]][a[1]](t,e):t.data("os-pass-this")?window[a[0]][a[1]](t):t.data("os-pass-response")?window[a[0]][a[1]](e):window[a[0]][a[1]]()}else"function"!=typeof window[n]&&console.log(n+" is undefined"),t.data("os-pass-this")&&t.data("os-pass-response")?window[n](t,e):t.data("os-pass-this")?window[n](t):t.data("os-pass-response")?window[n](e):window[n]()}t.removeClass("os-loading")}else if(t.removeClass("os-loading"),t.data("os-output-target")&&$(t.data("os-output-target")).length?$(t.data("os-output-target")).prepend(latepoint_generate_form_message_html(e.message,"error")):alert(e.message),t.data("os-after-call-error")){var n;if((n=t.data("os-after-call-error")).includes(".")){a=n.split(".");"function"!=typeof window[a[0]][a[1]]&&console.log(n+" is undefined"),t.data("os-pass-this")&&t.data("os-pass-response")?window[a[0]][a[1]](t,e):t.data("os-pass-this")?window[a[0]][a[1]](t):t.data("os-pass-response")?window[a[0]][a[1]](e):window[a[0]][a[1]]()}else"function"!=typeof window[n]&&console.log(n+" is undefined"),t.data("os-pass-this")&&t.data("os-pass-response")?window[n](t,e):t.data("os-pass-this")?window[n](t):t.data("os-pass-response")?window[n](e):window[n]()}}}),!1})),$(".latepoint").on("click",'form[data-os-action] button[type="submit"]',(function(e){$(this).addClass("os-loading")})),$(".latepoint").on("submit","form[data-os-action]",(function(e){e.preventDefault();var t=$(this),a=new FormData(t[0]);"lp_intlTelInputGlobals"in window&&"lp_intlTelInputUtils"in window&&t.find("input.os-mask-phone").each((function(){if(window.lp_intlTelInputGlobals.getInstance(this)){const e=this.getAttribute("name"),t=window.lp_intlTelInputGlobals.getInstance(this).getNumber(window.lp_intlTelInputUtils.numberFormat.E164);a.set(e,t)}}));let n=latepoint_create_form_data(t,$(this).data("os-action"));return t.find('button[type="submit"]').addClass("os-loading"),$.ajax({type:"post",dataType:"json",processData:!1,contentType:!1,url:latepoint_timestamped_ajaxurl(),data:n,success:function(e){if(t.find('button[type="submit"].os-loading').removeClass("os-loading"),latepoint_clear_form_messages(t),"success"===e.status){if("reload"==t.data("os-success-action"))return latepoint_add_notification(e.message),void location.reload();if("redirect"==t.data("os-success-action"))return void(t.data("os-redirect-to")?(latepoint_add_notification(e.message),window.location.replace(t.data("os-redirect-to"))):window.location.replace(e.message));if(t.data("os-output-target")&&$(t.data("os-output-target")).length?$(t.data("os-output-target")).html(e.message):"redirect"==e.message?window.location.replace(e.url):latepoint_add_notification(e.message),t.data("os-record-id-holder")&&e.record_id&&t.find('[name="'+t.data("os-record-id-holder")+'"]').val(e.record_id),t.data("os-after-call")){var a=t.data("os-after-call");if(a.includes(".")){var n=a.split(".");"function"!=typeof window[n[0]][n[1]]&&console.log(a+" is undefined"),t.data("os-pass-this")&&t.data("os-pass-response")?window[n[0]][n[1]](t,e):t.data("os-pass-this")?window[n[0]][n[1]](t):t.data("os-pass-response")?window[n[0]][n[1]](e):window[n[0]][n[1]]()}else"function"!=typeof window[a]&&console.log(a+" is undefined"),t.data("os-pass-this")&&t.data("os-pass-response")?window[a](t,e):t.data("os-pass-this")?window[a](t):t.data("os-pass-response")?window[a](e):window[a]()}$("button.os-loading").removeClass("os-loading")}else $("button.os-loading").removeClass("os-loading"),t.data("os-show-errors-as-notification")?latepoint_add_notification(e.message,"error"):(latepoint_add_notification(e.message,"error"),$([document.documentElement,document.body]).animate({scrollTop:t.find(".os-form-message-w").offset().top-30},200));e.form_values_to_update&&$.each(e.form_values_to_update,(function(e,a){t.find('[name="'+e+'"]').val(a)}))}}),!1}))}));class LatepointStripeConnectFront{constructor(e){this.stripeKey=e,this.stripeElements=null,this.stripeCore=null,this.stripePaymentMethod=null,this.stripeContinueOrderIntentURL=null,this.stripeContinueTransactionIntentURL=null,this.stripePaymentIntentSecret=null,this.stripePaymentElement=null,this.ready()}ready(){jQuery(document).ready((()=>{jQuery("body").on("latepoint:submitBookingForm",".latepoint-booking-form-element",((e,t)=>{if(!latepoint_helper.demo_mode&&t.is_final_submit&&"next"==t.direction){if("payment_element"===jQuery(e.currentTarget).find('input[name="cart[payment_method]"]').val())latepoint_add_action(t.callbacks_list,(async()=>{if(this.stripePaymentIntentSecret&&this.stripeCore)return await this.confirmPaymentElementPayment(jQuery(e.currentTarget))}))}})),jQuery("body").on("latepoint:submitTransactionPaymentForm",".latepoint-transaction-payment-form",((e,t)=>{"pay"===t.current_step&&"stripe_connect"===t.payment_processor&&"payment_element"===t.payment_method&&latepoint_add_action(t.callbacks_list,(async()=>{if(this.stripePaymentIntentSecret&&this.stripeCore)return await this.confirmPaymentElementPaymentForTransaction(jQuery(e.currentTarget))}))})),jQuery("body").on("latepoint:initPaymentMethod",".latepoint-booking-form-element",((e,t)=>{if(latepoint_helper.demo_mode)latepoint_show_next_btn(jQuery(e.currentTarget));else if("payment_element"===t.payment_method)latepoint_add_action(t.callbacks_list,(async()=>await this.createPaymentIntent(jQuery(e.currentTarget),t.payment_method)))})),jQuery("body").on("latepoint:initOrderPaymentMethod",".latepoint-transaction-payment-form",((e,t)=>{if("stripe_connect"===t.payment_processor&&"payment_element"===t.payment_method)latepoint_add_action(t.callbacks_list,(async()=>await this.createPaymentIntentForTransaction(jQuery(e.currentTarget))))}))}))}async createPaymentIntentForTransaction(e){try{this.stripeCore=Stripe(this.stripeKey,{stripeAccount:latepoint_helper.stripe_connected_account_id}),this.stripeElements=this.stripeCore.elements()}catch(e){console.log(e),alert(e)}let t=latepoint_create_form_data(e,latepoint_helper.stripe_connect_route_create_payment_intent_for_transaction_intent),a=await jQuery.ajax({type:"post",dataType:"json",processData:!1,contentType:!1,url:latepoint_timestamped_ajaxurl(),data:t});if("success"!==a.status)throw alert(a.message),new Error(a.message);if(e.find('input[name="payment_token"]').val(a.payment_intent_id),this.stripePaymentIntentSecret=a.payment_intent_secret,this.stripeContinueTransactionIntentURL=a.continue_transaction_intent_url,latepoint_show_next_btn(e),e.find(".stripe-payment-element").length)return this.initPaymentElement(e)}async createPaymentIntent(e,t){this.stripeCore=Stripe(this.stripeKey,{stripeAccount:latepoint_helper.stripe_connected_account_id}),this.stripeElements=this.stripeCore.elements();let a=latepoint_create_form_data(e.find(".latepoint-form"),latepoint_helper.stripe_connect_route_create_payment_intent,{booking_form_page_url:window.location.href}),n=await jQuery.ajax({type:"post",dataType:"json",processData:!1,contentType:!1,url:latepoint_timestamped_ajaxurl(),data:a});if("success"!==n.status)throw alert(n.message),new Error(n.message);if(e.find('input[name="cart[payment_token]"]').val(n.payment_intent_id),this.stripePaymentIntentSecret=n.payment_intent_secret,this.stripeContinueOrderIntentURL=n.continue_order_intent_url,latepoint_show_next_btn(e),e.find(".stripe-payment-element").length)return this.initPaymentElement(e)}async confirmPaymentElementPaymentForTransaction(e){let t=this.stripeElements,a=this.stripeContinueTransactionIntentURL,n=await this.stripeCore.confirmPayment({elements:t,confirmParams:{return_url:a},redirect:"if_required"});if(n.error)throw new Error(n.error.message);return e.find('input[name="payment_token"]').val(n.paymentIntent.id),n.paymentIntent.id}async confirmPaymentElementPayment(e){let t=this.stripeElements,a=this.stripeContinueOrderIntentURL,n=await this.stripeCore.confirmPayment({elements:t,confirmParams:{return_url:a},redirect:"if_required"});if(n.error)throw new Error(n.error.message);return e.find('input[name="cart[payment_token]"]').val(n.paymentIntent.id),n.paymentIntent.id}initPaymentElement(e){let t={theme:"stripe",variables:{fontFamily:"Overpass",colorPrimary:"#1d7bff"},rules:{".Tab":{border:"1px solid #E0E6EB",boxShadow:"none",borderRadius:"0",marginBottom:"10px"},".Input":{boxShadow:"none",borderRadius:"0"},".Tab:hover":{color:"var(--colorText)"},".Tab--selected":{borderColor:"var(--colorPrimary)",boxShadow:"0 0 0 1px var(--colorPrimary)"},".Input--invalid":{boxShadow:"0 1px 1px 0 rgba(0, 0, 0, 0.07), 0 0 0 2px var(--colorPrimary)"}}};this.stripeElements=this.stripeCore.elements({clientSecret:this.stripePaymentIntentSecret,appearance:t,fonts:[{cssSrc:"https://fonts.googleapis.com/css2?family=Overpass&display=swap"}]});return this.stripePaymentElement=this.stripeElements.create("payment",{layout:{type:"tabs",defaultCollapsed:!1}}),this.stripePaymentElement.mount(e.find(".stripe-payment-element")[0])}}latepoint_helper.is_stripe_connect_enabled&&(window.latepointStripeConnectFront=new LatepointStripeConnectFront(latepoint_helper.stripe_connect_key)),jQuery(document).ready((function($){if(latepoint_init_customer_login_form(),latepoint_init_customer_dashboard(),latepoint_init_manage_booking_by_key(),jQuery("body").on("click",".le-filter-trigger",(function(){let e=jQuery(this).closest(".latepoint-calendar-wrapper");return e.hasClass("show-filters")?(e.removeClass("show-filters"),e.find(".latepoint-calendar-filters select").val(""),latepoint_reload_events_calendar(e)):e.addClass("show-filters"),!1})),jQuery("body").on("click",".le-navigation-trigger",(function(){let e=jQuery(this),t=e.closest(".latepoint-calendar-wrapper");return t.find('input[name="target_date_string"]').val(e.data("target-date")),e.addClass("os-loading"),
latepoint_reload_events_calendar(t),!1})),jQuery("body").on("change",".le-day-filters select",(function(){return latepoint_reload_day_schedule(jQuery(this).closest(".le-day-view-wrapper")),!1})),jQuery("body").on("change",".latepoint-calendar-filters select, .le-range-selector select",(function(){let e=jQuery(this).closest(".latepoint-calendar-wrapper");return e.find(".le-filter").addClass("os-loading"),latepoint_reload_events_calendar(e),!1})),jQuery("body").on("click",".close-calendar-types",(function(){return jQuery(this).closest(".add-to-calendar-wrapper").removeClass("show-types"),!1})),jQuery("body").on("click",".open-calendar-types",(function(){return jQuery(this).closest(".add-to-calendar-wrapper").addClass("show-types"),!1})),jQuery("body").on("latepoint:nextStepClicked",".latepoint-booking-form-element",((e,t)=>{latepoint_add_action(t.callbacks_list,(async()=>{let t=latepoint_validate_form(jQuery(e.currentTarget).find(".latepoint-form"));if(t.length){let e=t.map((e=>e.message)).join(", ");throw new Error(e)}return!0}),1)})),latepoint_helper.start_from_order_intent_key){$("body").append('<div class="latepoint-continue-intent-loading"></div>');let e={action:latepoint_helper.route_action,route_name:latepoint_helper.start_from_order_intent_route,params:{order_intent_key:latepoint_helper.start_from_order_intent_key},layout:"none",return_format:"json"};$.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:e,success:function(e){if($(".latepoint-continue-intent-loading").remove(),"success"===e.status){var t;latepoint_show_data_in_lightbox(e.message,e.lightbox_class),latepoint_init_booking_form(t=jQuery(".latepoint-lightbox-w .latepoint-booking-form-element")),t.find(".latepoint-step-content").addClass("is-hidden").last().removeClass("is-hidden"),t.find(".latepoint-step-content").length>1&&latepoint_show_prev_btn(t),(t=jQuery(".latepoint-lightbox-w .latepoint-booking-form-element")).find(".latepoint-step-content").each((function(){latepoint_init_step($(this).data("step-code"),t)})),$("body").addClass("latepoint-lightbox-active")}}})}if(latepoint_helper.start_from_transaction_access_key){show_summary_before_payment(latepoint_helper.start_from_transaction_access_key)}jQuery("body").on("click",".latepoint-lightbox-close",(function(){return latepoint_lightbox_close(),!1})),jQuery("body").on("click",".os-step-tabs .os-step-tab",(function(){let e=jQuery(this).closest(".latepoint-booking-form-element");jQuery(this).closest(".os-step-tabs").find(".os-step-tab").removeClass("active"),jQuery(this).addClass("active");var t=jQuery(this).data("target");jQuery(this).closest(".os-step-tabs-w").find(".os-step-tab-content").hide(),"show"===jQuery(this).data("next-btn")?latepoint_show_next_btn(e):latepoint_hide_next_btn(e),jQuery(this).data("auth-action")&&e.find('input[name="auth[action]"]').val(jQuery(this).data("auth-action")),jQuery(t).show()})),jQuery("body").on("keyup",".os-form-group .os-form-control",(function(){jQuery(this).val()?jQuery(this).closest(".os-form-group").addClass("has-value"):jQuery(this).closest(".os-form-group").removeClass("has-value")})),jQuery(".latepoint-tab-triggers").on("click",".latepoint-tab-trigger",(function(){var e=jQuery(this).closest(".latepoint-tabs-w");return e.find(".latepoint-tab-trigger.active").removeClass("active"),e.find(".latepoint-tab-content").removeClass("active"),jQuery(this).addClass("active"),e.find(".latepoint-tab-content"+jQuery(this).data("tab-target")).addClass("active"),!1})),jQuery(".latepoint-book-form-wrapper").length&&jQuery(".latepoint-book-form-wrapper").each((function(){latepoint_init_booking_form_by_trigger(jQuery(this))})),jQuery("body").on("click",".latepoint-book-button, .os_trigger_booking",(function(){return latepoint_init_booking_form_by_trigger(jQuery(this)),!1}))}));
// source --> https://gopalvashisht.com/wp-content/plugins/latepoint-payments-razorpay/public/javascripts/latepoint-payments-razorpay-front.js?ver=2.1.5 
class LatepointPaymentsRazorpayFrontAddon {

    // Init
    constructor(razorpayKey) {
        this.razorpayKey = razorpayKey;
        this.razorpayCore = null;
        this.razorpayOrderId = null;
        this.ready();
    }

    ready() {
        jQuery(document).ready(() => {

            jQuery('body').on('latepoint:initPaymentMethod', '.latepoint-booking-form-element', (e, data) => {
                if (data.payment_method == 'razorpay_checkout') {
                    latepoint_add_action(data.callbacks_list, async () => {
                        return this.initPaymentModal(jQuery(e.currentTarget));
                    });
                }
            });

            jQuery('body').on('latepoint:initOrderPaymentMethod', '.latepoint-transaction-payment-form', (e, data) => {
                const $transaction_intent_form = jQuery(e.currentTarget);

                if (data.payment_method == 'razorpay_checkout') {
                    latepoint_add_action(data.callbacks_list, async () => {
                        return this.initOrderPaymentModal($transaction_intent_form);
                    });
                }
            });

        });
    }

    async initPaymentModal($booking_form_element) {

        let form_data = new FormData($booking_form_element.find('.latepoint-form')[0]);
        var data = {
            action: 'latepoint_route_call',
            route_name: latepoint_helper.razorpay_payment_options_route,
            params: latepoint_formdata_to_url_encoded_string(form_data),
            layout: 'none',
            return_format: 'json'
        }
        try {
            let response = await jQuery.ajax({
                type: "post",
                dataType: "json",
                url: latepoint_timestamped_ajaxurl(),
                data: data
            });
            if (response.status == 'success') {

                if (response.amount > 0) {
                    $booking_form_element.find('.latepoint_order_intent_key').val(response.order_intent_key);
                    response.options.handler = (response) => {
                        $booking_form_element.find('input[name="cart[payment_token]"]').val(response.razorpay_payment_id);
                        latepoint_submit_booking_form($booking_form_element.find('.latepoint-form'));
                    };
                    response.options.modal = {
                        ondismiss: () => {
                            $booking_form_element.find('.latepoint-prev-btn').trigger('click');
                        }
                    };
                    this.razorpayCore = new Razorpay(response.options);
                    this.razorpayCore.open();
                } else {
                    // free booking
                    return true;
                }
            } else {
                throw new Error('Error: ' + response.message);
            }
        } catch (e) {
            throw e;
        }
    }


    async initOrderPaymentModal($transaction_intent_form) {

        let form_data = new FormData($transaction_intent_form[0]);

        let data = {
            action: 'latepoint_route_call',
            route_name: latepoint_helper.razorpay_order_payment_options_route,
            params: latepoint_formdata_to_url_encoded_string(form_data),
            layout: 'none',
            return_format: 'json'
        }

        try {
            let response = await jQuery.ajax({
                type: "post",
                dataType: "json",
                url: latepoint_timestamped_ajaxurl(),
                data: data
            });
            if (response.status == 'success') {

                if (response.amount > 0) {
                    response.options.handler = async (response) => {
                        $transaction_intent_form.find('input[name="payment_token"]').val(response.razorpay_payment_id);
                        return await $transaction_intent_form.trigger('submit');
                    };
                    response.options.modal = {
                        ondismiss: () => {
                            let $access_key = $transaction_intent_form.find('input[name="key"]').val();
                            show_summary_before_payment($access_key);
                        }
                    };
                    this.razorpayCore = new Razorpay(response.options);
                    this.razorpayCore.open();
                } else {
                    // free booking
                    return true;
                }
            } else {
                throw new Error('Error: ' + response.message);
            }
        } catch (e) {
            console.error(e.message);
            throw e;
        }
    }

}


window.latepointPaymentsRazorpayFrontAddon = new LatepointPaymentsRazorpayFrontAddon(latepoint_helper.razorpay_key);
// source --> https://gopalvashisht.com/wp-content/plugins/latepoint-pro-features/public/javascripts/latepoint-pro-features-front.js?ver=1.2.4 
!function($){"use strict";function e(e){var o=e.find(".os-booking-messages-input"),n=o.val(),a={message:{content:n,author_type:e.data("author-type"),booking_id:e.data("booking-id")}},i={action:"latepoint_route_call",route_name:e.data("route"),params:a,return_format:"json"};e.find(".latepoint-btn").addClass("os-loading"),$(".booking-messages-list").find(".os-bm-no-messages").remove();var s=e.data("avatar-url");return $(".booking-messages-list").append('<div class="os-booking-message-w os-bm-customer"><div class="os-booking-message">'+n+'</div><div class="os-bm-info-w"><div class="os-bm-avatar" style="background-image:url('+s+');"></div><div class="os-bm-date">'+latepoint_helper.string_today+"</div></div></div>"),t(),o.val(""),$.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:i,success:function(t){e.removeClass("os-is-typing"),e.find(".latepoint-btn").removeClass("os-loading"),"success"===t.status||(o.val(n),alert(t.message))}}),!1}function t(){jQuery(".booking-messages-list").scrollTop(jQuery(".booking-messages-list")[0].scrollHeight)}function o(e,o){var n=$(".latepoint-chat-box-w");if(!n.length)return!1;o&&n.addClass("os-loading");var a={action:"latepoint_route_call",route_name:n.data("route"),params:{booking_id:e,viewer_user_type:"customer"},return_format:"json"};$.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:a,success:function(a){o&&n.removeClass("os-loading"),"success"===a.status?(n.find(".booking-messages-list").html(a.message),t(),$(".os-booking-messages-input-w").data("booking-id",e)):alert(a.message)}})}$((function(){$(".lc-conversation").on("click",(function(){var e=$(this).data("booking-id");return $(".lc-conversation.lc-selected").removeClass("lc-selected"),$(this).addClass("lc-selected"),o(e,!0),!1})),clearInterval(latepoint_helper.latepoint_message_refresh_timer),$(".latepoint-chat-box-w").length&&$(".lc-conversation").length&&(latepoint_helper.latepoint_message_refresh_timer=setInterval((function(){if(!document.hidden){var e={action:"latepoint_route_call",route_name:$(".latepoint-chat-box-w").data("check-unread-route"),params:{booking_id:$(".lc-conversation.lc-selected").data("booking-id"),viewer_user_type:"customer"},return_format:"json"};$.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:e,success:function(e){"success"===e.status&&"yes"==e.message&&o($(".lc-conversation.lc-selected").data("booking-id"),!1)}})}}),3e3)),$(".os-bm-send-btn").on("click",(function(t){return e($(this).closest(".os-booking-messages-input-w")),!1})),$(".os-booking-messages-input").on("keyup",(function(t){var o=$(this),n=o.closest(".os-booking-messages-input-w");if(13==t.keyCode)return t.preventDefault(),e(n),!1;o.val()?n.addClass("os-is-typing"):n.removeClass("os-is-typing")})),$(".latepoint-trigger-messages-tab").on("click",(function(){o($(".lc-conversation.lc-selected").data("booking-id"),!1)}))}))}(jQuery);class LatepointCustomFieldsFrontAddon{constructor(){this.ready()}init_google_places_autosuggest(e){e.find(".latepoint-google-places-autocomplete").length&&("undefined"!=typeof google?e.find(".latepoint-google-places-autocomplete").each(((e,t)=>{if(jQuery(t).hasClass("os-initialized"))return!0;const o={fields:["formatted_address"]};latepoint_helper.google_places_country_restriction&&(o.componentRestrictions={country:latepoint_helper.google_places_country_restriction});new google.maps.places.Autocomplete(t,o);jQuery(t).addClass("os-initialized")})):console.error("Error loading Google API library"))}init_file_upload_fields(e){e.find(".os-form-file-upload-group").each((function(){if(jQuery(this).hasClass("os-initialized"))return!0;jQuery(this).on("click",".os-uploaded-file-info",(function(){if(!jQuery(this).hasClass("is-uploaded"))return!1})),jQuery(this).on("click",".uf-remove",(function(){var e=jQuery(this).closest(".os-form-group").find(".os-uploaded-file-info"),t=jQuery(this).closest(".os-form-group").find('input[type="file"]');if(t.hasClass("required")&&e.has("is-uploaded"))confirm(latepoint_helper.custom_fields_remove_required_file_prompt)&&t.trigger("click");else{if(e.hasClass("is-uploaded")){if(!confirm(latepoint_helper.custom_fields_remove_file_prompt))return!1;var o=e.closest(".os-form-group").find('input[type="file"]').data("route-name"),n=e.closest(".os-form-group").find('input[type="file"]').data("params"),a={action:latepoint_helper.route_action,route_name:o,params:n,return_format:"json"};jQuery.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:a,success:function(t){"success"===t.status&&e.closest(".os-form-group").find('input[type="hidden"]').remove()}})}jQuery(this).closest(".os-form-group").find(".os-uploaded-file-info").hide(),t.val(null).trigger("change")}return!1})),jQuery(this).on("change",'input[type="file"]',(function(){this.files.length?(jQuery(this).closest(".os-form-group").find(".os-uploaded-file-info").show().attr("href","#").attr("target","_self").find(".uf-name").text(this.files[0].name),jQuery(this).closest(".os-form-group").find(".os-upload-file-input-w").hide()):(jQuery(this).closest(".os-form-group").find(".os-uploaded-file-info").hide().removeClass("is-uploaded"),jQuery(this).closest(".os-form-group").find(".os-upload-file-input-w").show())}))}))}ready(){jQuery(document).ready((()=>{let e=jQuery(".tab-content-customer-info-form");e.length&&(this.init_file_upload_fields(e),this.init_google_places_autosuggest(e)),jQuery("body").on("latepoint:initStep",".latepoint-booking-form-element",((e,t)=>{var o=jQuery('.latepoint-step-content[data-step-code="'+t.step_code+'"]');this.init_file_upload_fields(o),this.init_google_places_autosuggest(o),latepoint_init_form_masks()}))}))}}window.latepointCustomFieldsFrontAddon=new LatepointCustomFieldsFrontAddon;class LatepointGroupBookingsFrontFeature{constructor(){this.ready()}init_total_attendees_selector(e){}ready(){jQuery(document).ready((()=>{jQuery("body").on("latepoint:initStep:booking__group_bookings",".latepoint-booking-form-element",((e,t)=>{let o=jQuery('.latepoint-step-content[data-step-code="booking__group_bookings"]');o.on("change",".total-attendees-selector-input",(function(){let e=jQuery(this).closest(".total-attendees-selector-w").data("max-capacity"),t=jQuery(this).closest(".total-attendees-selector-w").data("min-capacity"),o=jQuery(this).val();o=Math.min(Number(e),Number(o)),o=Math.max(Number(t),Number(o)),jQuery(this).val(o);o>1?jQuery(this).data("summary-plural"):jQuery(this).data("summary-singular");let n=jQuery(this).closest(".latepoint-booking-form-element");latepoint_reload_summary(n)})),o.on("click",".total-attendees-selector",(function(){let e=jQuery(this).hasClass("total-attendees-selector-plus")?1:-1,t=jQuery(this).closest(".total-attendees-selector-w").data("max-capacity"),o=jQuery(this).closest(".total-attendees-selector-w").data("min-capacity"),n=jQuery(this).closest(".total-attendees-selector-w").find("input.total-attendees-selector-input").val(),a=Number(n)>0?Math.max(Number(n)+e,1):1;return a=Math.min(Number(t),a),a=Math.max(Number(o),a),jQuery(this).closest(".total-attendees-selector-w").find("input").val(a).trigger("change"),!1}))}))}))}}window.latepointGroupBookingsFrontFeature=new LatepointGroupBookingsFrontFeature;class LatepointRecurringBookingsFrontFeature{constructor(){this.ready()}ready(){jQuery(document).ready((()=>{jQuery("body").on("latepoint:initStep:booking__recurring_bookings",".latepoint-booking-form-element",((e,t)=>{let o=jQuery(e.target),n=o.find('.latepoint-step-content[data-step-code="booking__recurring_bookings"]');return this.init_recurrence_rules(n.find(".os-recurrence-rules")),this.preview_recurring_bookings(o)})),jQuery("body").on("latepoint:initBookingForm",".latepoint-booking-form-element",((e,t)=>(jQuery(e.target).on("click",".os-recurring-bookings-unfold",(e=>{e.preventDefault(),jQuery(e.currentTarget).closest(".cart-item-wrapper").toggleClass("show-all-recurring-bookings")})),!0)))}))}init_recurrence_rules(e){let t=e.closest(".latepoint-step-content"),o=e.closest(".latepoint-booking-form-element");e.on("change","select, input",(e=>(o.find('.os-recurrence-rules input[name="recurrence[rules][changed]"]').val("yes"),this.preview_recurring_bookings(o)))),e.on("change",'select[name="recurrence[rules][repeat_end_operator]"]',(t=>{let o=jQuery(t.currentTarget);e.attr("data-ends",o.val())})),e.on("change",'select[name="recurrence[rules][repeat_unit]"]',(t=>{let o=jQuery(t.currentTarget);e.attr("data-repeat-unit",o.val())})),e.on("click",".os-end-recurrence-datetime-picker",(async e=>{let o=jQuery(e.currentTarget);o.addClass("os-loading");let n=o.closest(".latepoint-booking-form-element");n.find(".latepoint-footer").addClass("force-hide");let a=new FormData;a.append("params",jQuery.param({preselected_day:o.data("preselected-day")})),a.append("action",latepoint_helper.route_action),a.append("route_name",o.data("route-name")),a.append("return_format","json");try{let e=await jQuery.ajax({type:"post",dataType:"json",processData:!1,contentType:!1,url:latepoint_timestamped_ajaxurl(),data:a});if("success"!=e.status)throw n.find(".latepoint-footer").removeClass("force-hide"),new Error(e.message);t.addClass("show-datepicker").find(".os-recurrence-datepicker-wrapper").html(e.message),this.init_calendar_navigation(t.find(".os-recurrence-datepicker-wrapper .os-dates-and-times-w")),t.find('.os-recurrence-datepicker-wrapper .os-day[data-date="'+o.data("preselected-day")+'"]').addClass("selected"),o.removeClass("os-loading")}catch(e){throw console.log(e),e}})),e.on("click",".os-start-recurrence-datetime-picker",(async e=>{e.preventDefault();let t=jQuery(e.currentTarget);return this.load_datetime_picker(t,t.data("start-datetime-utc"))})),e.on("click",".os-recurrence-weekdays .weekday",(e=>{let t=jQuery(e.currentTarget),o=t.closest(".os-recurrence-weekdays").find(".os-weekday-selected").length;return t.hasClass("os-weekday-selected")&&o>1?t.removeClass("os-weekday-selected"):t.addClass("os-weekday-selected"),t.closest(".os-recurrence-weekdays").find('input[name="recurrence[rules][repeat_on_weekdays]"]').val(t.closest(".os-recurrence-weekdays").find(".os-weekday-selected").map((function(){return jQuery(this).data("weekday")})).get().join(",")).trigger("change"),!1}))}async load_datetime_picker(e,t){e.addClass("os-loading");let o=e.closest(".latepoint-booking-form-element");o.removeClass("step-content-loaded").addClass("step-content-loading");let n=o.find("form.latepoint-form"),a=o.find(".step-recurring-bookings-w.latepoint-step-content");o.find(".latepoint-footer").addClass("force-hide");try{let i=await jQuery.ajax({type:"post",dataType:"json",processData:!1,contentType:!1,url:latepoint_timestamped_ajaxurl(),data:latepoint_create_form_data(n,latepoint_helper.pick_datetime_on_calendar_route,{preselected_datetime_utc:t})});if("success"!=i.status)throw o.find(".latepoint-footer").removeClass("force-hide"),new Error(i.message);{a.addClass("show-datepicker").find(".os-recurrence-datepicker-wrapper").html(i.message),this.init_calendar_navigation(a.find(".os-recurrence-datepicker-wrapper .os-dates-and-times-w"));let t=a.find(".os-recurrence-datepicker-wrapper .os-day.selected");latepoint_generate_day_timeslots(t),o.removeClass("step-content-loading").addClass("step-content-mid-loading"),setTimeout((function(){o.removeClass("step-content-mid-loading").addClass("step-content-loaded"),a.find(".time-selector-w")[0].scrollIntoView({block:"nearest",behavior:"smooth"})}),50),e.removeClass("os-loading")}}catch(e){throw console.log(e),e}}init_calendar_navigation(e){e.find(".os-month-next-btn").on("click",(async()=>this.calendar_load_new_month(e,"next"))),e.find(".os-month-prev-btn").on("click",(async()=>this.calendar_load_new_month(e,"prev")))}calendar_set_month_label(e){e.find(".os-current-month-label .current-year").text(e.find(".os-monthly-calendar-days-w.active").data("calendar-year")),e.find(".os-current-month-label .current-month").text(e.find(".os-monthly-calendar-days-w.active").data("calendar-month-label"))}async calendar_load_new_month(e,t="next"){try{let o=e.find(".os-monthly-calendar-days-w.active"),n="next"===t?o.next(".os-monthly-calendar-days-w"):o.prev(".os-monthly-calendar-days-w");if(n.length)return o.removeClass("active"),n.addClass("active"),"next"===t&&e.find(".os-month-prev-btn").removeClass("disabled"),this.calendar_set_month_label(e),!0;{let n="next"===t?e.find(".os-month-next-btn"):e.find(".os-month-prev-btn"),a=n.data("route");n.addClass("os-loading");let i=o.data("calendar-year"),s=o.data("calendar-month");"next"===t?12==s?(i+=1,s=1):s+=1:1==s?(i-=1,s=12):s-=1;let r=new FormData(e.closest(".latepoint-form")[0]);r.set("target_date_string",`${i}-${s}-1`);let l=latepoint_formdata_to_url_encoded_string(r),c={action:latepoint_helper.route_action,route_name:a,params:l,layout:"none",return_format:"json"},d=await jQuery.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:c});return n.removeClass("os-loading"),"success"===d.status?("next"===t?(e.find(".os-months").append(d.message),o.removeClass("active").next(".os-monthly-calendar-days-w").addClass("active")):(e.find(".os-months").prepend(d.message),o.removeClass("active").prev(".os-monthly-calendar-days-w").addClass("active")),this.calendar_set_month_label(e),!0):(console.log(d.message),!1)}}catch(e){return console.log(e),alert("Error:"+e),!1}}init_recurring_bookings_preview(e){e.find(".recurring-bookings-preview-continue-btn").on("click",(function(t){return t.preventDefault(),jQuery(this).closest(".latepoint-w").removeClass("show-summary-on-mobile"),latepoint_trigger_next_btn(e),!1})),e.find(".rb-bookings-info-link").on("click keydown",(function(e){if(e.preventDefault(),"keydown"!==e.type||" "===e.key||"Enter"===e.key)return jQuery(this).closest(".latepoint-w").toggleClass("show-summary-on-mobile"),!1})),e.find(".recurring-booking-preview").on("click",".rbp-time-edit",(e=>{e.preventDefault();let t=jQuery(e.currentTarget).closest(".recurring-booking-preview");return t.closest(".recurring-bookings-preview-wrapper").find(".recurring-booking-preview.is-editing").removeClass("is-editing"),t.addClass("is-editing"),t.closest(".latepoint-w").removeClass("show-summary-on-mobile"),this.load_datetime_picker(t,t.data("start-datetime-utc"))})),e.find(".recurring-booking-preview").on("click",".rbp-checkbox",(e=>{let t=jQuery(e.currentTarget),o=t.closest(".recurring-booking-preview"),n=t.closest(".latepoint-booking-form-element").find(".os-recurrence-selection-fields-wrapper");return o.hasClass("rbp-is-on")?t.closest(".recurring-bookings-preview-wrapper").find(".rbp-is-on").length>1?(o.removeClass("rbp-is-on").addClass("rbp-is-off"),n.find('input[name="recurrence[overrides]['+o.data("stamp")+'][unchecked]"]').val("yes")):alert("At least one has to be selected"):(o.removeClass("rbp-is-off").addClass("rbp-is-on"),n.find('input[name="recurrence[overrides]['+o.data("stamp")+'][unchecked]"]').val("no")),t.closest(".latepoint-booking-form-element").find('.os-recurrence-rules input[name="recurrence[rules][changed]"]').val("no"),this.preview_recurring_bookings(t.closest(".latepoint-booking-form-element"),!0)}))}async preview_recurring_bookings(e,t=!1){if(latepoint_hide_next_btn(e),e.closest(".latepoint-w").removeClass("latepoint-without-summary").addClass("latepoint-with-summary").addClass("latepoint-summary-is-open"),!e.closest(".latepoint-with-summary").length)return;t||e.find(".latepoint-summary-w").addClass("os-loading"),e.find(".recurring-bookings-preview-total-wrapper").addClass("os-loading");let o=e.find(".latepoint-form"),n=new FormData(o[0]),a={action:latepoint_helper.route_action,route_name:latepoint_helper.recurring_bookings_preview_route,params:latepoint_formdata_to_url_encoded_string(n),layout:"none",return_format:"json"};try{let o=await jQuery.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:a});if("success"===o.status)return t?(e.find(".recurring-bookings-preview-total-wrapper").html(o.price_info).removeClass("os-loading"),e.find(".os-recurrence-preview-information").html(o.bookings_info)):(e.find(".os-summary-contents").html(o.preview),e.find(".os-recurrence-selection-fields-wrapper").html(o.fields),e.find(".os-recurrence-preview-information").html(o.bookings_info),e.find(".latepoint-summary-w").removeClass("os-loading"),this.init_recurring_bookings_preview(e)),latepoint_show_next_btn(e),!0;throw new Error(o.message?o.message:"Error reloading summary")}catch(e){throw e}}async reload_recurrence_rules(e,t=!0){e.find('.os-recurrence-rules input[name="recurrence[rules][changed]"]').val(t?"yes":"no"),e.find(".latepoint-summary-w").addClass("os-loading");let o=e.find(".latepoint-form"),n=new FormData(o[0]),a={action:latepoint_helper.route_action,route_name:e.find(".os-recurrence-rules").data("route-name"),params:latepoint_formdata_to_url_encoded_string(n),layout:"none",return_format:"json"};try{let t=await jQuery.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:a});if("success"===t.status)return e.find(".os-recurrence-rules").replaceWith(t.message),e.find(".os-recurrence-datepicker-wrapper").html("").closest(".step-recurring-bookings-w").removeClass("show-datepicker"),this.init_recurrence_rules(e.find(".os-recurrence-rules")),e.find(".latepoint-footer").removeClass("force-hide"),await this.preview_recurring_bookings(e);throw new Error(t.message?t.message:"Error reloading summary")}catch(e){throw e}}}function latepoint_init_facebook_login(e){let t=e.hasClass("latepoint-booking-form-element");e.find("#facebook-signin-btn").length&&e.find("#facebook-signin-btn").on("click",(function(){FB.login((function(o){if("connected"===o.status&&o.authResponse){var n={token:o.authResponse.accessToken},a={action:latepoint_helper.route_action,route_name:e.find("#facebook-signin-btn").data("login-action"),params:jQuery.param(n),layout:"none",return_format:"json"};t&&latepoint_step_content_change_start(e),jQuery.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:a,success:function(o){t?"success"===o.status?(e.find('input[name="auth[action]"]').val("social-login-facebook"),latepoint_reload_step(e)):(latepoint_show_message_inside_element(o.message,e.find(".os-step-existing-customer-login-w ")),t&&latepoint_step_content_change_end(!1,e)):"success"===o.status?location.reload():latepoint_show_message_inside_element(o.message,e)}})}}),{scope:"public_profile,email"})}))}function latepoint_process_google_login(e,t=!1){var o={token:e.credential},n={action:latepoint_helper.route_action,route_name:latepoint_helper.social_login_google_route,params:jQuery.param(o),layout:"none",return_format:"json"};t&&latepoint_step_content_change_start(t),jQuery.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:n,success:function(e){"success"===e.status?t?(t.find('input[name="auth[action]"]').val("social-login-google"),latepoint_reload_step(t)):location.reload():(latepoint_show_message_inside_element(e.message,t.find(".os-step-existing-customer-login-w ")),latepoint_step_content_change_end(!1,t))}})}async function latepoint_init_google_login(e){if(!e.find("#google-signin-btn").length||"undefined"==typeof google)return;let t=e.hasClass("latepoint-booking-form-element");window.latepoint_is_google_initialized||(google.accounts.id.initialize({client_id:latepoint_helper.social_login_google_client_id,callback:o=>{t?latepoint_process_google_login(o,e):latepoint_process_google_login(o)}}),window.latepoint_is_google_initialized=!0),e.find("#google-signin-btn").off("click.google-signin").on("click.google-signin",(function(e){e.preventDefault();const t=document.createElement("div");t.style.display="none",document.body.appendChild(t),google.accounts.id.renderButton(t,{theme:"outline",size:"medium"}),setTimeout((()=>{const e=t.querySelector('[role="button"]');e&&e.click(),document.body.removeChild(t)}),100)}))}function latepoint_load_facebook_scripts(){var e,t,o,n,a;latepoint_helper.social_login_facebook_app_id&&(window.fbAsyncInit=function(){FB.init({appId:latepoint_helper.social_login_facebook_app_id,cookie:!0,xfbml:!0,version:"v9.0"}),FB.AppEvents.logPageView()},e=document,t="script",o="facebook-jssdk",a=e.getElementsByTagName(t)[0],e.getElementById(o)||((n=e.createElement(t)).id=o,n.src="https://connect.facebook.net/en_US/sdk.js",a.parentNode.insertBefore(n,a)))}function latepoint_init_customer_social_login(){jQuery(".latepoint-login-form-w").length&&jQuery(".latepoint-login-form-w").each((function(){latepoint_init_facebook_login(jQuery(this)),latepoint_init_google_login(jQuery(this))}))}function latepoint_init_timezone_picker(e){if(e.on("change",".latepoint_timezone_name",(function(t){var o=jQuery(this),n={action:latepoint_helper.route_action,route_name:latepoint_helper.change_timezone_route,params:{timezone_name:jQuery(this).val()},layout:"none",return_format:"json"};e.removeClass("step-content-loaded").addClass("step-content-loading"),jQuery.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:n,success:function(t){e.removeClass("step-content-loading"),"success"===t.status&&(o.closest(".latepoint-booking-form-element").length?o.closest(".latepoint-booking-form-element").hasClass("current-step-booking__datepicker")&&latepoint_reload_step(o.closest(".latepoint-booking-form-element")):latepoint_reload_reschedule_calendar(o.closest(".reschedule-calendar-datepicker")))}})})),!latepoint_helper.is_timezone_selected){const t=Intl.DateTimeFormat().resolvedOptions().timeZone;t&&t!=e.find(".latepoint_timezone_name").val()&&e.find(".latepoint_timezone_name").val(t).trigger("change")}e.on("click",".os-timezone-info-value",(async function(e){let t=jQuery(e.currentTarget);t.addClass("os-loading");let o=!1;o=t.closest(".latepoint-booking-form-element").length?t.closest(".latepoint-booking-form-element"):t.closest(".reschedule-calendar-datepicker");let n=t.data("route"),a=await jQuery.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:{action:"latepoint_route_call",route_name:n,params:{timezone_name:o.find(".latepoint_timezone_name").val()},layout:"none",return_format:"json"}});if("success"!==a.status)throw new Error(a.message);o.find(".os-timezone-selector-wrapper-with-shadow").length&&o.find(".os-timezone-selector-wrapper-with-shadow").remove(),o.hasClass("reschedule-calendar-datepicker")?o.append(a.message):o.find(".latepoint-form-w").append(a.message),latepoint_init_timezone_picker_search(o),t.removeClass("os-loading")}))}function latepoint_init_timezone_picker_search(e){let t=e.find(".os-timezones-filter-input");t.trigger("focus");let o=e.find(".os-timezone-selector-wrapper-with-shadow");e.find(".os-timezone-selector-close").on("click",(function(t){e.find(".os-timezone-selector-wrapper-with-shadow").remove()})),o.on("click",".os-timezone-selector-option ",(function(t){return e.find(".latepoint_timezone_name").val(jQuery(this).data("value")).trigger("change"),e.find(".os-timezone-selector-wrapper-with-shadow").remove(),!1})),t.on("keyup",(function(t){if(27===t.keyCode)return void e.find(".os-timezone-selector-wrapper-with-shadow").remove();let o=jQuery(this).val().toLowerCase(),n=!1;o?jQuery(".os-selected-timezone-info").hide():jQuery(".os-selected-timezone-info").show(),jQuery(".os-timezone-group").each((function(){let e=!1;jQuery(this).find(".os-timezone-selector-option").each((function(){let t=jQuery(this).attr("data-value")||"",a=jQuery(this).text()||"";t.toLowerCase().includes(o)||a.toLowerCase().includes(o)?(jQuery(this).show(),e=!0,n=!0):jQuery(this).hide()})),e?jQuery(this).show():jQuery(this).hide()})),n||""===o?jQuery(".os-timezone-no-matches").hide():0===jQuery(".os-timezone-no-matches").length?jQuery(".os-timezones-list").append('<div class="os-timezone-no-matches">'+jQuery(".os-timezones-filter-input").data("not-found-message")+"</div>"):jQuery(".os-timezone-no-matches").show()}))}window.latepointRecurringBookingsFrontFeature=new LatepointRecurringBookingsFrontFeature,jQuery(document).ready((()=>{latepoint_load_facebook_scripts(),jQuery("body").on("latepoint:initStep:customer",".latepoint-booking-form-element",((e,t)=>{latepoint_init_facebook_login(jQuery(e.target)),latepoint_init_google_login(jQuery(e.target))}))})),jQuery(document).ready((()=>{jQuery("body").on("latepoint:initBookingForm",".latepoint-booking-form-element",(e=>{latepoint_init_timezone_picker(jQuery(e.currentTarget))}))}));class LatepointCloudflareTurnstileManager{constructor(){this.ready()}init_widget(e){if("on"===latepoint_helper.enable_cloudflare_turnstile&&e.find(".turnstile-widget").length){e.find(".latepoint-next-btn").css("visibility","hidden");const t=e.find(".turnstile-widget-wrapper");t.addClass("os-loading");const o=t.find(".turnstile-widget");turnstile.render(o[0],{sitekey:o.data("sitekey"),callback:t=>this.on_success(t,o[0],e),"error-callback":t=>this.on_error(t,o[0],e),"expired-callback":()=>this.on_expired(o[0],e),"before-interactive-callback":()=>this.on_require_interaction(o[0],e)})}}ready(){jQuery(document).ready((()=>{jQuery("body").on("latepoint:initStep:verify",".latepoint-booking-form-element",((e,t)=>{let o=jQuery(e.target);this.init_widget(o)})),jQuery("body").on("latepoint:prevStepReInit",".latepoint-booking-form-element",((e,t)=>{if("verify"==t.current_step){let t=jQuery(e.target);this.reset(t)}}))}))}on_require_interaction(e,t){t.find(".turnstile-widget-wrapper").removeClass("os-loading").addClass("required-interaction")}on_success(e,t,o){t.setAttribute("data-turnstile-token",e),t.classList.add("turnstile-completed"),o.find(".latepoint-next-btn").css("visibility","visible"),o.find(".turnstile-widget-wrapper").removeClass("os-loading").fadeOut(1200)}on_error(e,t,o){const n={110200:"This domain is not authorized for verification. Please contact support.",110100:"Invalid site key configuration.",110110:"Invalid site key for this domain.",300010:"Generic client execution error.",300020:"Invalid action for this site key.",300030:"Invalid cData parameter.",600010:"Invalid response parameter.",600020:"Invalid or already seen response parameter.",600030:"Response parameter not found."}[e]||`Verification failed. Error: ${e}`;alert(n),o.find(".turnstile-widget-wrapper").show().addClass("os-loading"),o.find(".latepoint-next-btn").css("visibility","hidden"),t.removeAttribute("data-turnstile-token"),t.classList.remove("turnstile-completed")}on_expired(e,t){t.find(".turnstile-widget-wrapper").show().addClass("os-loading"),t.find(".latepoint-next-btn").css("visibility","hidden"),e.removeAttribute("data-turnstile-token"),e.classList.remove("turnstile-completed")}reset(e){e.find(".turnstile-widget-wrapper").show().addClass("os-loading");let t=e.find(".turnstile-widget")[0];t.removeAttribute("data-turnstile-token"),t.classList.remove("turnstile-completed"),turnstile.reset(t)}}window.latepointCloudflareTurnstileManager=new LatepointCloudflareTurnstileManager,jQuery(document).ready((function($){latepoint_init_customer_social_login()}));