// source --> https://kreolity.com/wp-content/plugins/latepoint-payments-paypal/public/javascripts/latepoint-payments-paypal-front.js?ver=2.1.1 
class LatepointPaymentsPaypalFrontAddon{constructor(){this.paypal=null,this.ready()}ready(){jQuery(document).ready((()=>{this.paypal=paypal,jQuery("body").on("latepoint:initPaymentMethod",".latepoint-booking-form-element",((t,e)=>{latepoint_helper.demo_mode||"paypal"!=e.payment_method||latepoint_add_action(e.callbacks_list,(async()=>await this.createOrder(jQuery(t.currentTarget))))})),jQuery("body").on("latepoint:initOrderPaymentMethod",".latepoint-transaction-payment-form",((t,e)=>{if("paypal"===e.payment_processor&&"paypal"===e.payment_method){const a=jQuery(t.currentTarget);a.find(".latepoint-lightbox-footer").hide(),a.find(".clean-layout-content-footer").hide(),latepoint_add_action(e.callbacks_list,(async()=>await this.createOrderForTransaction(a)))}}))}))}getChargeAmount(t){return t.find(".lp-paypal-btn-trigger").data("charge-amount")}async createOrderForTransaction(t){t.find(".lp-paypal-btn-trigger").html("");let e=this.getChargeAmount(t),a=t.find(".lp-paypal-btn-trigger").data("intent-key");return await this.paypal.Buttons({createOrder:function(t,n){return n.order.create({purchase_units:[{amount:{value:e,currency_code:latepoint_helper.paypal_payment_currency},custom_id:"TRANS_INTENT_"+a}],application_context:{shipping_preference:"NO_SHIPPING"}})},onApprove:function(e,a){return a.order.authorize().then((async a=>{let n=a.purchase_units[0].payments.authorizations[0].id;e.orderID;return t.find('input[name="payment_token"]').val(n),await t.trigger("submit")}))}}).render(t.find(".lp-paypal-btn-trigger")[0])}async createOrder(t){t.find(".lp-paypal-btn-trigger").html(""),t.find(".lp-paypal-demo-mode-trigger").on("click",(function(){$(this).closest(".latepoint-form").submit()}));let e=this.getChargeAmount(t),a=t.find(".lp-paypal-btn-trigger").data("intent-key");return await this.paypal.Buttons({createOrder:function(t,n){return n.order.create({purchase_units:[{amount:{value:e,currency_code:latepoint_helper.paypal_payment_currency},custom_id:"ORDER_INTENT_"+a}],application_context:{shipping_preference:"NO_SHIPPING"}})},onApprove:function(e,a){return t.removeClass("step-content-loaded").addClass("step-content-loading"),a.order.authorize().then((async a=>{let n=a.purchase_units[0].payments.authorizations[0].id;e.orderID;return t.find('input[name="cart[payment_token]"]').val(n),await latepoint_submit_booking_form(t.find(".latepoint-form"))}))}}).render(t.find(".lp-paypal-btn-trigger")[0])}}window.latepointPaymentsPaypalFrontAddon=new LatepointPaymentsPaypalFrontAddon;
// source --> https://kreolity.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()}));