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&&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;it.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'),a=jQuery("body").find(".os-notifications")),a.find(".item").length>0&&a.find(".item:first-child").remove(),a.append('
'+e+'
')}function latepoint_add_lightbox_notification(e,t="success"){var a=jQuery(".latepoint-lightbox-content").find(".os-notifications");a.length||(jQuery(".latepoint-lightbox-content").prepend('
'),a=jQuery(".latepoint-lightbox-content").find(".os-notifications")),a.find(".item").length>0&&a.find(".item:first-child").remove(),a.append('
'+e+'
')}function latepoint_generate_form_message_html(e,t){var a='
    ';return Array.isArray(e)?e.forEach((function(e){a+="
  • "+e+"
  • "})):a+="
  • "+e+"
  • ",a+="
"}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('
'),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('')),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?'':"";jQuery("body").append("<"+n+' class="'+s+'"><'+i+' class="'+l+'">'+e+r+"
"),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('
'+e+"
"),"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;e0&&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('
'+c+"
")}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=''+latepoint_minutes_to_hours_preferably(e)+" "+t+"");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+=' - '+latepoint_minutes_to_hours_and_minutes(g)+" "+v+""}r&&(f=''+(m=r+" "+(r>1?latepoint_helper.many_spaces_message:latepoint_helper.single_space_message))+"",h=''+m+"");y=y.trim(),d.removeClass("slots-not-available").append('
'+h+''+y+""+u+f+"
"),p=e}))}else d.addClass("slots-not-available").append('
'+latepoint_helper.msg_not_available+"
");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(''+latepoint_helper.datepicker_timeslot_selected_label+"");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;no&&(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(''+latepoint_helper.datepicker_timeslot_selected_label+"");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('
')}else"full-panel"==t.data("os-output-target")&&($(".latepoint-full-panel-w").remove(),$("body").append('
'));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(''),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('
');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}))}));