// source --> https://morgansdetailing.co.uk/wp-content/plugins/latepoint-pro-features/public/javascripts/latepoint-pro-features-front.js?ver=1.3.0 
!function(e){"use strict";function t(t){var n=t.find(".os-booking-messages-input"),a=n.val(),i={message:{content:a,author_type:t.data("author-type"),booking_id:t.data("booking-id")}},s={action:"latepoint_route_call",route_name:t.data("route"),params:i,return_format:"json"};t.find(".latepoint-btn").addClass("os-loading"),e(".booking-messages-list").find(".os-bm-no-messages").remove();var r=t.data("avatar-url");return e(".booking-messages-list").append('<div class="os-booking-message-w os-bm-customer"><div class="os-booking-message">'+a+'</div><div class="os-bm-info-w"><div class="os-bm-avatar" style="background-image:url('+r+');"></div><div class="os-bm-date">'+latepoint_helper.string_today+"</div></div></div>"),o(),n.val(""),e.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:s,success:function(e){t.removeClass("os-is-typing"),t.find(".latepoint-btn").removeClass("os-loading"),"success"===e.status||(n.val(a),alert(e.message))}}),!1}function o(){jQuery(".booking-messages-list").scrollTop(jQuery(".booking-messages-list")[0].scrollHeight)}function n(t,n){var a=e(".latepoint-chat-box-w");if(!a.length)return!1;n&&a.addClass("os-loading");var i={action:"latepoint_route_call",route_name:a.data("route"),params:{booking_id:t,viewer_user_type:"customer"},return_format:"json"};e.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:i,success:function(i){n&&a.removeClass("os-loading"),"success"===i.status?(a.find(".booking-messages-list").html(i.message),o(),e(".os-booking-messages-input-w").data("booking-id",t)):alert(i.message)}})}e(function(){e(".lc-conversation").on("click",function(){var t=e(this).data("booking-id");return e(".lc-conversation.lc-selected").removeClass("lc-selected"),e(this).addClass("lc-selected"),n(t,!0),!1}),clearInterval(latepoint_helper.latepoint_message_refresh_timer),e(".latepoint-chat-box-w").length&&e(".lc-conversation").length&&(latepoint_helper.latepoint_message_refresh_timer=setInterval(function(){if(!document.hidden){var t={action:"latepoint_route_call",route_name:e(".latepoint-chat-box-w").data("check-unread-route"),params:{booking_id:e(".lc-conversation.lc-selected").data("booking-id"),viewer_user_type:"customer"},return_format:"json"};e.ajax({type:"post",dataType:"json",url:latepoint_timestamped_ajaxurl(),data:t,success:function(t){"success"===t.status&&"yes"==t.message&&n(e(".lc-conversation.lc-selected").data("booking-id"),!1)}})}},3e3)),e(".os-bm-send-btn").on("click",function(o){return t(e(this).closest(".os-booking-messages-input-w")),!1}),e(".os-booking-messages-input").on("keyup",function(o){var n=e(this),a=n.closest(".os-booking-messages-input-w");if(13==o.keyCode)return o.preventDefault(),t(a),!1;n.val()?a.addClass("os-is-typing"):a.removeClass("os-is-typing")}),e(".latepoint-trigger-messages-tab").on("click",function(){n(e(".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,nonce:latepoint_helper.social_login_nonce},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,nonce:latepoint_helper.social_login_nonce},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){if("undefined"==typeof turnstile)return void this.show_error_message(e,"Verification service failed to load. Please refresh and try again.");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. Please contact the site administrator.",110110:"Invalid site key for this domain. Please contact the site administrator.",300010:"Verification error. Please try again later.",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]||`Turnstile Verification failed. Error: ${e}`;alert(n),this.show_error_message(o,n),t.removeAttribute("data-turnstile-token"),t.classList.remove("turnstile-completed")}show_error_message(e,t){const o=e.find(".turnstile-widget-wrapper");o.removeClass("os-loading"),o.find(".turnstile-widget").hide();let n=o.find(".turnstile-error-message");n.length||(o.append('<div class="turnstile-error-message"></div>'),n=o.find(".turnstile-error-message")),n.text(t).show(),e.find(".latepoint-next-btn").css("visibility","hidden")}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(e){latepoint_init_customer_social_login()});