File: /var/www/goautomatic.pl/wp-content/plugins/latepoint/public/javascripts/front.js.map
{"version":3,"sources":["../../lib/assets/javascripts/bin/time.js","../../lib/assets/javascripts/bin/shared.js","../../lib/assets/javascripts/bin/notifications.js","../../lib/assets/javascripts/bin/actions.js","../../lib/assets/javascripts/bin/front/main.js","../../lib/assets/javascripts/bin/front/_customer.js","../../lib/assets/javascripts/bin/front/_events.js","../../lib/assets/javascripts/front.js"],"names":[],"mappings":"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","file":"front.js","sourcesContent":["function latepoint_is_timeframe_in_periods(timeframe_start, timeframe_end, periods_arr) {\n var is_inside = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n for (var i = 0; i < periods_arr.length; i++) {\n\n var period_start = 0;\n var period_end = 0;\n var buffer_before = 0;\n var buffer_after = 0;\n\n var period_info = periods_arr[i].split(':');\n if (period_info.length == 2) {\n period_start = period_info[0];\n period_end = period_info[1];\n } else {\n buffer_before = period_info[2];\n buffer_after = period_info[3];\n period_start = parseFloat(period_info[0]) - parseFloat(buffer_before);\n period_end = parseFloat(period_info[1]) + parseFloat(buffer_after);\n }\n if (is_inside) {\n if (latepoint_is_period_inside_another(timeframe_start, timeframe_end, period_start, period_end)) {\n return true;\n }\n } else {\n if (latepoint_is_period_overlapping(timeframe_start, timeframe_end, period_start, period_end)) {\n return true;\n }\n }\n };\n return false;\n}\n\nfunction latepoint_is_period_overlapping(period_one_start, period_one_end, period_two_start, period_two_end) {\n // https://stackoverflow.com/questions/325933/determine-whether-two-date-ranges-overlap/\n return period_one_start < period_two_end && period_two_start < period_one_end;\n}\nfunction latepoint_is_period_inside_another(period_one_start, period_one_end, period_two_start, period_two_end) {\n return period_one_start >= period_two_start && period_one_end <= period_two_end;\n}\n\n\n// Converts time in minutes to hours if possible, if minutes also exists - shows minutes too\nfunction latepoint_minutes_to_hours_preferably(time) {\n var army_clock = latepoint_is_army_clock();\n\n var hours = Math.floor(time / 60);\n if (!army_clock && hours > 12) hours = hours - 12;\n\n var minutes = time % 60;\n if(minutes > 0) hours = hours + ':' + minutes;\n return hours;\n}\n\n\nfunction latepoint_minutes_to_hours(time) {\n var army_clock = latepoint_is_army_clock();\n\n var hours = Math.floor(time / 60);\n if (!army_clock && hours > 12) hours = hours - 12;\n return hours;\n}\n\n\nfunction latepoint_am_or_pm(minutes) {\n if(latepoint_is_army_clock()) return '';\n return (minutes < 720 || minutes == 1440) ? 'am' : 'pm';\n}\n\nfunction latepoint_hours_and_minutes_to_minutes(hours_and_minutes, ampm) {\n var hours_and_minutes_arr = hours_and_minutes.split(':');\n var hours = hours_and_minutes_arr[0];\n var minutes = hours_and_minutes_arr[1];\n if(ampm == \"pm\" && hours<12) hours = parseInt(hours)+12;\n if(ampm == \"am\" && hours==12) hours = 0;\n minutes = parseInt(minutes) + (hours * 60);\n return minutes;\n}\n\nfunction latepoint_get_time_system(){\n return latepoint_helper.time_system;\n}\n\nfunction latepoint_is_army_clock(){\n return (latepoint_get_time_system() == '24');\n}\n\nfunction latepoint_minutes_to_hours_and_minutes(minutes) {\n var army_clock = latepoint_is_army_clock();\n var format = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '%02d:%02d';\n\n var hours = Math.floor(minutes / 60);\n if(!army_clock && (hours > 12)) hours = hours - 12;\n if(!army_clock && hours == 0) hours = 12;\n var minutes = minutes % 60;\n return sprintf(format, hours, minutes);\n}\n","function latepoint_random_generator() {\n var S4 = function() {\n return (((1+Math.random())*0x10000)|0).toString(16).substring(1);\n };\n return (S4()+S4()+\"-\"+S4()+\"-\"+S4()+\"-\"+S4()+\"-\"+S4()+S4()+S4());\n}\n\nfunction latepoint_validate_form($form){\n\tlet errors = [];\n\t$form.find('select[data-os-validate], input[data-os-validate], textarea[data-os-validate]').each(function(){\n\t\tlet validations = jQuery(this).data('os-validate').split(' ');\n\t\tlet $input = jQuery(this);\n\t\tlet label = $input.closest('.os-form-group').find('label').text();\n\t\tlet field_has_errors = false;\n\t\tif(validations) {\n\t\t\tfor (let i = 0; i < validations.length; i++) {\n\t\t\t\tswitch (validations[i]) {\n\t\t\t\t\tcase 'presence':\n\t\t\t\t\t\tif(!$input.val()){\n\t\t\t\t\t\t\terrors.push({message: label + ' ' + latepoint_helper.msg_validation_presence});\n\t\t\t\t\t\t\tfield_has_errors = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'phone':\n\t\t\t\t\t\tif (!window.intlTelInputGlobals.getInstance($input[0]).isValidNumber()) {\n\t\t\t\t\t\t\terrors.push({message: label + ' ' + latepoint_helper.msg_validation_invalid});\n\t\t\t\t\t\t\tfield_has_errors = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif(field_has_errors){\n\t\t\t$input.closest('.os-form-group').addClass('os-invalid');\n\t\t}else{\n\t\t\t$input.closest('.os-form-group').removeClass('os-invalid');\n\t\t}\n\t});\n\treturn errors;\n}\n\nfunction latepoint_create_form_data_from_non_form_element($elem){\n\tlet formData = new FormData();\n\t// create objecte from all input fields that are inside of the element\n\tlet fields = $elem.find('select, input, textarea').serializeArray();\n\tif(fields){\n\t\tfields.forEach(field => formData.append(field.name, field.value));\n\t}\n\treturn formData;\n}\n\nfunction latepoint_create_form_data_from_booking_form($booking_form, route_name = false, extra_params = false){\n let form_data = new FormData();\n let params = new FormData($booking_form[0]);\n\n\tif(extra_params){\n\t\tObject.keys(extra_params).forEach(key => {\n\t\t\t\tparams.set(key, extra_params[key]);\n\t\t});\n\t}\n\n // get values from phone number fields\n if (('intlTelInputGlobals' in window) && ('intlTelInputUtils' in window)) {\n $booking_form.find('input.os-mask-phone').each(function () {\n const phoneInputName = this.getAttribute('name');\n const phoneInputValue = window.intlTelInputGlobals.getInstance(this).getNumber(window.intlTelInputUtils.numberFormat.E164);\n\t\t\t// override value generated automatically by formdata with a formatted value of a phone field with country code\n params.set(phoneInputName, phoneInputValue);\n });\n }\n\tparams.set('_wpnonce', $booking_form.find('#_wpnonce').val());\n\n form_data.append('params', latepoint_formdata_to_url_encoded_string(params));\n form_data.append('action', latepoint_helper.route_action);\n form_data.append('route_name', route_name ? route_name : $booking_form.data('route-name'));\n form_data.append('layout', 'none');\n form_data.append('return_format', 'json');\n\n let file_data;\n // put file data into main form_data object, since we can't send them in \"params\" string\n $booking_form.find('input[type=\"file\"]').each(function(){\n file_data = this.files; // get multiple files from input file\n let file_name = this.getAttribute(\"name\");\n for(let i = 0;i<file_data.length;i++){\n form_data.append(file_name+'[]', file_data[i]);\n }\n });\n return form_data;\n}\n\nfunction latepoint_mask_timefield($elem){\n\tif(jQuery().inputmask){\n\t $elem.inputmask({\n\t 'mask': '99:99',\n\t 'placeholder': 'HH:MM'\n\t });\n\t}\n}\n\nfunction latepoint_formdata_to_url_encoded_string(form_data){\n\tlet filtered_form_data = new FormData();\n // remove file fields from params, so we can serialize it into string,\n\t// !important, this will not include file fields into the form_data, so you have to include them manually, see latepoint_create_form_data_from_booking_form() that does it\n\t// note: we don't use form_data.remove(key) on original object because we might want to preserve it\n for (const [key, value] of form_data) {\n\t\tif(value instanceof File) continue;\n\t\tif(key.slice(-2) === '[]'){\n\t\t\t// expecting array, append\n\t\t\tfiltered_form_data.append(key, value);\n\t\t}else{\n\t\t\tfiltered_form_data.set(key, value);\n\t\t}\n }\n\treturn new URLSearchParams(filtered_form_data).toString();\n}\n\nfunction latepoint_mask_percent($elem){\n\tif(jQuery().inputmask){\n\t $elem.inputmask({\n\t\t\t'alias': 'decimal',\n\t\t\t'radixPoint': latepoint_helper.decimal_separator,\n\t\t\t'digits': 4,\n\t\t\t'digitsOptional': false,\n\t\t\t'suffix': '%',\n\t\t\t'placeholder': '0',\n\t\t\t'rightAlign': false\n\t });\n\t}\n}\n\nfunction latepoint_mask_minutes($elem){\n\tif(jQuery().inputmask){\n\t $elem.inputmask({\n\t\t\t'removeMaskOnSubmit' : true,\n\t\t\t'alias': 'numeric',\n\t\t\t'digits': 0,\n\t\t\t'suffix': latepoint_helper.msg_minutes_suffix,\n\t\t\t'placeholder': '0',\n\t\t\t'rightAlign': false\n\t });\n\t}\n}\n\n\nfunction latepoint_mask_money($elem){\n\tif(jQuery().inputmask){\n\t $elem.inputmask({\n\t\t\t'alias': 'currency',\n\t\t\t'groupSeparator': latepoint_helper.thousand_separator,\n\t\t\t'radixPoint': latepoint_helper.decimal_separator,\n\t\t\t'digits': latepoint_helper.number_of_decimals,\n\t\t\t'digitsOptional': false,\n\t\t\t'prefix': latepoint_helper.currency_symbol_before ? latepoint_helper.currency_symbol_before + ' ' : '',\n\t\t\t'suffix': latepoint_helper.currency_symbol_after ? ' ' + latepoint_helper.currency_symbol_after : '',\n\t\t\t'placeholder': '0',\n\t\t\t'rightAlign': false\n\t });\n\t}\n}\n\nfunction latepoint_mask_date($elem){\n\tif(jQuery().inputmask){\n\t $elem.inputmask({\n\t\t\t'alias': 'datetime',\n\t\t\t'inputFormat' : latepoint_helper.date_format_for_js\n\t });\n\t}\n}\n\nfunction latepoint_init_phone_masking_from_placeholder($input){\n\tif(!latepoint_helper.mask_phone_number_fields) return;\n\tlet format = $input.attr('placeholder');\n\tif(format && jQuery().inputmask) {\n\t\t$input.inputmask(format.replace(/[0-9]/g, 9));\n\t}\n}\n\nfunction latepoint_mask_phone($elem){\n\tlet jsElem = $elem[0];\n\n\t// First priority is to prevent duplicates (common in non-document.body contexts)\n\tif (jsElem && !window.intlTelInputGlobals.getInstance(jsElem)) {\n\t\tlet dropdownContainer = document.body;\n\n\t\tlet onlyCountries = JSON.parse(latepoint_helper.included_phone_countries);\n\t\t// Remedy a quirk with json_encode(EMPTY_ARRAY)\n\t\tif (onlyCountries.length === 1 && onlyCountries[0] === \"\") {\n\t\t\tonlyCountries = [];\n\t\t}\n\t\tconst preferredCountries = onlyCountries.length ? [] : window.intlTelInputGlobals.defaults.preferredCountries;\n\n\t\t// remove country name in english and only use names in country language\n\t\tvar countryData = window.intlTelInputGlobals.getCountryData();\n\n\t\tfor (var i = 0; i < countryData.length; i++) {\n\t\t\tvar country = countryData[i];\n\t\t\tcountry.name = country.name.replace(/ *\\([^)]*\\) */g, \"\");\n\t\t}\n\n\t\tlet defaultCountryCode = latepoint_helper.default_phone_country;\n\t\tif(onlyCountries.length && !onlyCountries.includes(defaultCountryCode)){\n\t\t\tdefaultCountryCode = onlyCountries[0];\n\t\t}\n\n\n\t\tlet iti = window.intlTelInput(jsElem, {\n\t\t\tdropdownContainer: dropdownContainer,\n\t\t\tformatOnDisplay: true,\n\t\t\tnationalMode: true,\n\t\t\tautoPlaceholder: 'aggressive',\n\t\t\tinitialCountry: defaultCountryCode,\n\t\t\tgeoIpLookup: function (callback) {\n\t\t\t\tconst cookieName = 'latepoint_phone_country';\n\n\t\t\t\tif (latepoint_has_cookie(cookieName)) {\n\t\t\t\t\tcallback(latepoint_get_cookie(cookieName));\n\t\t\t\t} else {\n\t\t\t\t\tjQuery.get('https://ipinfo.io', function () {\n\t\t\t\t\t}, 'jsonp').always(function (response) {\n\t\t\t\t\t\t// Sensible default\n\t\t\t\t\t\tlet countryCode = defaultCountryCode;\n\n\t\t\t\t\t\tif (response && response.country) {\n\t\t\t\t\t\t\tcountryCode = response.country.toLowerCase();\n\t\t\t\t\t\t\tlatepoint_set_cookie(cookieName, countryCode);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcallback(countryCode);\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t},\n\t\t\tallowDropdown: onlyCountries.length != 1,\n\t\t\tonlyCountries: onlyCountries,\n\t\t\tpreferredCountries: preferredCountries,\n\t\t\tseparateDialCode: latepoint_helper.is_enabled_show_dial_code_with_flag\n\t\t});\n\n\t\titi.promise.then(function() {\n\t\t\tlatepoint_init_phone_masking_from_placeholder($elem);\n\t\t});\n\n\n\t\t$elem.on(\"countrychange\", function(event) {\n\t\t\tlatepoint_init_phone_masking_from_placeholder(jQuery(this));\n\t\t});\n\t}\n}\n\nfunction latepoint_show_booking_end_time(){\n\treturn (latepoint_helper.show_booking_end_time == 'yes');\n}\n\nfunction latepoint_set_cookie(name, value, days) {\n\tlet date = new Date;\n\tdate.setTime(date.getTime() + 24*60*60*1000*days);\n\tdocument.cookie = name + \"=\" + value + \";path=/;expires=\" + date.toGMTString();\n}\n\nfunction latepoint_get_cookie(name) {\n\tlet cookie = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');\n\treturn cookie ? cookie[2] : null;\n}\n\nfunction latepoint_has_cookie(name) {\n\treturn latepoint_get_cookie(name) !== null;\n}\n\nfunction latepoint_delete_cookie(name) { latepoint_set_cookie(name, '', -1); }","function latepoint_add_notification(message, message_type = 'success'){\n\tvar wrapper = jQuery('body').find('.os-notifications');\n\tif(!wrapper.length){\n\t\tjQuery('body').append('<div class=\"os-notifications\"></div>');\n\t\twrapper = jQuery('body').find('.os-notifications');\n\t}\n\tif(wrapper.find('.item').length > 0) wrapper.find('.item:first-child').remove();\n\twrapper.append('<div class=\"item item-type-'+ message_type +'\">' + message + '<span class=\"os-notification-close\"><i class=\"latepoint-icon latepoint-icon-x\"></i></span></div>');\n}","function latepoint_generate_form_message_html(messages, status){\n var message_html = '<div class=\"os-form-message-w status-' + status + '\"><ul>';\n if(Array.isArray(messages)){\n messages.forEach(function(message){\n message_html+= '<li>' + message + '</li>';\n });\n }else{\n message_html+= '<li>' + messages + '</li>';\n }\n message_html+= '</ul></div>';\n return message_html;\n}\n\nfunction latepoint_clear_form_messages($form){\n $form.find('.os-form-message-w').remove();\n}\n\nfunction latepoint_show_data_in_lightbox(message, extra_classes = ''){\n jQuery('.latepoint-lightbox-w').remove();\n var lightbox_css_classes = 'latepoint-lightbox-w latepoint-w ';\n if(extra_classes) lightbox_css_classes+= extra_classes;\n jQuery('body').append('<div class=\"'+ lightbox_css_classes +'\"><div class=\"latepoint-lightbox-i\">' + message + '<a href=\"#\" class=\"latepoint-lightbox-close\"><i class=\"latepoint-icon latepoint-icon-x\"></i></a></div><div class=\"latepoint-lightbox-shadow\"></div></div>');\n jQuery('body').addClass('latepoint-lightbox-active');\n}\n\n\n\n// DOCUMENT READY\njQuery(function( $ ) {\n\n if($('.latepoint').find('[data-os-action-onload]').length){\n $('.latepoint').find('[data-os-action-onload]').each(function(){\n var $this = jQuery(this);\n $this.addClass('os-loading');\n var params = $this.data('os-params');\n var return_format = $this.data('os-return-format') ? $this.data('os-return-format') : 'json'\n var data = { action: 'latepoint_route_call', route_name: $this.data('os-action-onload'), params: params, return_format: return_format }\n jQuery.ajax({\n type : \"post\",\n dataType : \"json\",\n url : latepoint_helper.ajaxurl,\n data : data,\n success: function(response) {\n $this.removeClass('os-loading');\n if (response.status === \"success\") {\n if($this.data('os-output-target') == 'self'){\n $this.html(response.message);\n }\n }\n }\n });\n });\n }\n /* \n Ajax buttons action\n */\n $('.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){\n var $this = jQuery(this);\n if($this.data('os-prompt') && !confirm($this.data('os-prompt'))) return false;\n var params = $this.data('os-params');\n if($this.data('os-source-of-params')){\n var form_data = latepoint_create_form_data_from_non_form_element($($this.data('os-source-of-params')));\n params = latepoint_formdata_to_url_encoded_string(form_data);\n }\n var return_format = $this.data('os-return-format') ? $this.data('os-return-format') : 'json'\n var data = { action: 'latepoint_route_call', route_name: $this.data('os-action'), params: params, return_format: return_format }\n $this.addClass('os-loading');\n if($this.data('os-output-target') == 'side-panel'){\n $('.latepoint-side-panel-w').remove();\n $('body').append('<div class=\"latepoint-side-panel-w os-loading\"><div class=\"latepoint-side-panel-i\"></div><div class=\"latepoint-side-panel-shadow\"></div></div>');\n }\n $.ajax({\n type : \"post\",\n dataType : \"json\",\n url : latepoint_helper.ajaxurl,\n data : data,\n success: function(response){\n if(response.status === \"success\"){\n if($this.data('os-output-target') == 'lightbox'){\n latepoint_show_data_in_lightbox(response.message, $this.data('os-lightbox-classes'));\n }else if($this.data('os-output-target') == 'side-panel'){\n $('.latepoint-side-panel-i').html(response.message);\n setTimeout(function(){\n $('.latepoint-side-panel-w').removeClass('os-loading');\n }, 100);\n }else if($this.data('os-success-action') == 'reload'){\n latepoint_add_notification(response.message);\n location.reload();\n return;\n }else if($this.data('os-success-action') == 'redirect'){\n if($this.data('os-redirect-to')){\n latepoint_add_notification(response.message);\n window.location.replace($this.data('os-redirect-to'));\n }else{\n window.location.replace(response.message); \n }\n return;\n }else if($this.data('os-output-target') && $($this.data('os-output-target')).length){\n if($this.data('os-output-target-do') == 'append'){\n $($this.data('os-output-target')).append(response.message);\n }else{\n $($this.data('os-output-target')).html(response.message);\n }\n }else{\n switch($this.data('os-before-after')){\n case 'before':\n $this.before(response.message);\n break;\n case 'after':\n $this.after(response.message);\n break;\n case 'replace':\n $this.replaceWith(response.message);\n break;\n case 'none':\n break;\n default:\n latepoint_add_notification(response.message);\n }\n }\n if($this.data('os-after-call')){\n var func_name = $this.data('os-after-call');\n var callback = false;\n if(func_name.includes('.')){\n var func_arr = func_name.split('.');\n if(typeof window[func_arr[0]][func_arr[1]] !== 'function'){\n console.log(func_name + ' is undefined');\n }\n if($this.data('os-pass-this') && $this.data('os-pass-response')){\n window[func_arr[0]][func_arr[1]]($this, response);\n }else if($this.data('os-pass-this')){\n window[func_arr[0]][func_arr[1]]($this);\n }else if($this.data('os-pass-response')){\n window[func_arr[0]][func_arr[1]](response);\n }else{\n window[func_arr[0]][func_arr[1]]();\n }\n }else{\n if(typeof window[func_name] !== 'function'){\n console.log(func_name + ' is undefined');\n }\n if($this.data('os-pass-this') && $this.data('os-pass-response')){\n window[func_name]($this, response);\n }else if($this.data('os-pass-this')){\n window[func_name]($this);\n }else if($this.data('os-pass-response')){\n window[func_name](response);\n }else{\n window[func_name]();\n }\n }\n }\n $this.removeClass('os-loading');\n }else{\n $this.removeClass('os-loading');\n if($this.data('os-output-target') && $($this.data('os-output-target')).length){\n $($this.data('os-output-target')).prepend(latepoint_generate_form_message_html(response.message, 'error'));\n }else{\n alert(response.message);\n }\n if($this.data('os-after-call-error')){\n var func_name = $this.data('os-after-call-error');\n var callback = false;\n if(func_name.includes('.')){\n var func_arr = func_name.split('.');\n if(typeof window[func_arr[0]][func_arr[1]] !== 'function'){\n console.log(func_name + ' is undefined');\n }\n if($this.data('os-pass-this') && $this.data('os-pass-response')){\n window[func_arr[0]][func_arr[1]]($this, response);\n }else if($this.data('os-pass-this')){\n window[func_arr[0]][func_arr[1]]($this);\n }else if($this.data('os-pass-response')){\n window[func_arr[0]][func_arr[1]](response);\n }else{\n window[func_arr[0]][func_arr[1]]();\n }\n }else{\n if(typeof window[func_name] !== 'function'){\n console.log(func_name + ' is undefined');\n }\n if($this.data('os-pass-this') && $this.data('os-pass-response')){\n window[func_name]($this, response);\n }else if($this.data('os-pass-this')){\n window[func_name]($this);\n }else if($this.data('os-pass-response')){\n window[func_name](response);\n }else{\n window[func_name]();\n }\n }\n }\n }\n }\n });\n return false;\n });\n\n\n $('.latepoint').on('click', 'form[data-os-action] button[type=\"submit\"]', function(e){\n $(this).addClass('os-loading');\n });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n /* \n Form ajax submit action\n */\n $('.latepoint').on('submit', 'form[data-os-action]', function(e){\n e.preventDefault(); // prevent native submit\n var $form = $(this);\n var form_data = new FormData($form[0]);\n\n if (('intlTelInputGlobals' in window) && ('intlTelInputUtils' in window)) {\n // Get e164 formatted number from phone fields when form is submitted\n $form.find('input.os-mask-phone').each(function () {\n let telInstance = window.intlTelInputGlobals.getInstance(this);\n if(telInstance){\n const phoneInputName = this.getAttribute('name');\n const phoneInputValue = window.intlTelInputGlobals.getInstance(this).getNumber(window.intlTelInputUtils.numberFormat.E164);\n form_data.set(phoneInputName, phoneInputValue);\n }\n });\n }\n\n var data = { action: 'latepoint_route_call', route_name: $(this).data('os-action'), params: latepoint_formdata_to_url_encoded_string(form_data), return_format: 'json' }\n $form.find('button[type=\"submit\"]').addClass('os-loading');\n $.ajax({\n type : \"post\",\n dataType : \"json\",\n url : latepoint_helper.ajaxurl,\n data : data,\n success: function(response){\n $form.find('button[type=\"submit\"].os-loading').removeClass('os-loading');\n latepoint_clear_form_messages($form);\n if(response.status === \"success\"){\n if($form.data('os-success-action') == 'reload'){\n latepoint_add_notification(response.message);\n location.reload();\n return;\n }else if($form.data('os-success-action') == 'redirect'){\n if($form.data('os-redirect-to')){\n latepoint_add_notification(response.message);\n window.location.replace($form.data('os-redirect-to'));\n }else{\n window.location.replace(response.message);\n }\n return;\n }else if($form.data('os-output-target') && $($form.data('os-output-target')).length){\n $($form.data('os-output-target')).html(response.message);\n }else{\n if(response.message == 'redirect'){\n window.location.replace(response.url);\n }else{\n latepoint_add_notification(response.message);\n $form.prepend(latepoint_generate_form_message_html(response.message, 'success'));\n }\n }\n if($form.data('os-record-id-holder') && response.record_id){\n $form.find('[name=\"' + $form.data('os-record-id-holder') + '\"]').val(response.record_id)\n }\n if($form.data('os-after-call')){\n var func_name = $form.data('os-after-call');\n if(typeof window[func_name] !== 'function'){\n console.log(func_name + ' is undefined');\n }\n if($form.data('os-pass-response')){\n window[func_name](response);\n }else{\n window[func_name]();\n }\n }\n $('button.os-loading').removeClass('os-loading');\n }else{\n $('button.os-loading').removeClass('os-loading');\n if($form.data('os-show-errors-as-notification')){\n latepoint_add_notification(response.message, 'error');\n }else{\n $form.prepend(latepoint_generate_form_message_html(response.message, 'error'));\n $([document.documentElement, document.body]).animate({\n scrollTop: ($form.find(\".os-form-message-w\").offset().top - 30)\n }, 200);\n }\n }\n if(response.form_values_to_update){\n $.each(response.form_values_to_update, function(name, value){\n $form.find('[name=\"'+ name +'\"]').val(value);\n });\n }\n }\n });\n return false;\n });\n});","/*\n * Copyright (c) 2022 LatePoint LLC. All rights reserved.\n */\n\n\nfunction latepoint_manage_by_key_reload_booking(){\n let $wrapper = jQuery('.manage-booking-wrapper');\n $wrapper.addClass('os-loading')\n let params = {\n key: $wrapper.data('key')\n }\n let data = {\n action: latepoint_helper.route_action,\n route_name: $wrapper.data('route-name'),\n params: params,\n layout: 'none',\n return_format: 'json'\n };\n\n jQuery.ajax({\n type: \"post\",\n dataType: \"json\",\n url: latepoint_helper.ajaxurl,\n data: data,\n success: function (data) {\n $wrapper.removeClass('os-loading')\n if (data.status === \"success\") {\n $wrapper.replaceWith(data.message);\n } else {\n latepoint_show_message_inside_element(data.message, $wrapper, 'error');\n }\n }\n });\n}\n\nfunction latepoint_init_manage_booking_by_key(){\n let $wrapper = jQuery('.manage-booking-wrapper');\n if(!$wrapper.length) return;\n jQuery('.latepoint-w').on('change', '.change-booking-status-trigger', function(){\n $wrapper.addClass('os-loading')\n let params = {\n key: $wrapper.data('key'),\n status: jQuery(this).val()\n }\n let data = {\n action: latepoint_helper.route_action,\n route_name: jQuery(this).closest('.change-booking-status-trigger-wrapper').data('route-name'),\n params: params,\n layout: 'none',\n return_format: 'json'\n };\n\n jQuery.ajax({\n type: \"post\",\n dataType: \"json\",\n url: latepoint_helper.ajaxurl,\n data: data,\n success: function (data) {\n $wrapper.removeClass('os-loading')\n if (data.status === \"success\") {\n latepoint_manage_by_key_reload_booking();\n } else {\n latepoint_show_message_inside_element(data.message, $wrapper, 'error');\n }\n }\n });\n return false;\n });\n\n\n $wrapper.on('click', '.qr-show-trigger', function(){\n jQuery(this).closest('.manage-booking-wrapper').find('.qr-code-on-full-summary').addClass('show-vevent-qr-code');\n return false;\n });\n $wrapper.on('click', '.os-item-details-popup-close', function(){\n var $wrapper = jQuery(this).closest('.manage-booking-wrapper');\n $wrapper.find('.os-item-details-popup.open').remove();\n $wrapper.find('.manage-booking-inner, .manage-booking-controls').show();\n return false;\n });\n\n $wrapper.on('click', '.os-trigger-item-details-popup', function(){\n var $wrapper = jQuery(this).closest('.manage-booking-wrapper');\n $wrapper.find('.manage-booking-inner, .manage-booking-controls').hide();\n $wrapper.find('.os-item-details-popup.open').remove();\n var $popup = $wrapper.find('#' + jQuery(this).data('item-details-popup-id')).clone();\n $popup.addClass('open').appendTo($wrapper);\n return false;\n });\n}\nfunction latepoint_init_form_masks(){\n\tif(('intlTelInput' in window) && ('intlTelInputGlobals' in window)) {\n\t\tjQuery('.os-mask-phone').each(function() {\n\t\t\tlatepoint_mask_phone(jQuery(this));\n\t\t});\n\t}\n}\n\nfunction latepoint_scroll_to_top_of_booking_form($booking_form_element){\n // if it's a form shortcode (not lightbox), scroll to top of the form\n if($booking_form_element.parent().hasClass('latepoint-shortcode-booking-form')){\n // $booking_form_element[0].scrollIntoView({block: 'center'}); // SHOULD NOT BE FIRST!! Also need to FIX, scroll only if TOP of the booking form is above the viewport\n }\n // if lightbox - scroll body of lightbox to top\n if($booking_form_element.parent().hasClass('latepoint-lightbox-i')){\n $booking_form_element.find('.latepoint-body').scrollTop(0);\n }\n}\n\nfunction latepoint_init_payment_method_actions($booking_form_element, payment_method){\n var callbacks_list = [];\n var is_last_step = $booking_form_element.data('next-submit-is-last') == 'yes';\n $booking_form_element.trigger('latepoint:initPaymentMethod', [{ payment_method: payment_method,\n callbacks_list: callbacks_list,\n is_last_step: is_last_step }]);\n $booking_form_element.removeClass('step-content-loaded').addClass('step-content-loading');\n try{\n\n jQuery.when(...callbacks_list.map(callback => callback.action()))\n .done(() => {\n $booking_form_element.removeClass('step-content-loading').addClass('step-content-loaded').find('.lp-payment-method-content[data-payment-method=\"' + payment_method + '\"]').show();\n })\n .fail((error) => {\n latepoint_show_error_and_stop_loading_booking_form(error, $booking_form_element);\n });\n }catch(error){\n latepoint_show_error_and_stop_loading_booking_form(error, $booking_form_element);\n }\n }\n\n function latepoint_lightbox_close(){\n jQuery('body').removeClass('latepoint-lightbox-active');\n jQuery('.latepoint-lightbox-w').remove();\n }\n\n function latepoint_show_next_btn($booking_form_element){\n $booking_form_element.find('.latepoint-next-btn').removeClass('disabled');\n $booking_form_element.removeClass('hidden-buttons');\n }\n\n function clear_step_services($booking_form_element){\n latepoint_reload_summary($booking_form_element, 'service', '');\n clear_sub_step_attendies($booking_form_element);\n }\n\n function clear_sub_step_attendies($booking_form_element){\n $booking_form_element.find('.latepoint_total_attendies').val(1);\n latepoint_reload_summary($booking_form_element, 'total-attendies', '');\n clear_sub_step_duration($booking_form_element);\n }\n\n function clear_sub_step_duration($booking_form_element){\n $booking_form_element.find('.latepoint_duration').val('');\n latepoint_reload_summary($booking_form_element, 'duration', '');\n }\n\n function clear_step_service_extras($booking_form_element){\n latepoint_reload_summary($booking_form_element, 'service-extras', '');\n }\n\n function clear_step_locations($booking_form_element){\n latepoint_reload_summary($booking_form_element, 'location', '');\n }\n\n function clear_step_agents($booking_form_element){\n latepoint_reload_summary($booking_form_element, 'agent', '');\n }\n\n function clear_step_datepicker($booking_form_element){\n latepoint_reload_summary($booking_form_element, 'time', '');\n latepoint_reload_summary($booking_form_element, 'date', '');\n }\n\n function latepoint_hide_next_btn($booking_form_element){\n $booking_form_element.find('.latepoint-next-btn').addClass('disabled');\n if($booking_form_element.find('.latepoint-prev-btn.disabled').length) $booking_form_element.addClass('hidden-buttons');\n }\n\n\n function latepoint_show_prev_btn($booking_form_element){\n $booking_form_element.find('.latepoint-prev-btn').removeClass('disabled');\n $booking_form_element.removeClass('hidden-buttons');\n }\n\n function latepoint_hide_prev_btn($booking_form_element){\n $booking_form_element.find('.latepoint-prev-btn').addClass('disabled');\n if($booking_form_element.find('.latepoint-next-btn.disabled').length) $booking_form_element.addClass('hidden-buttons');\n }\n\n\nfunction latepoint_show_capacity_selector($item){\n var $booking_form_element = $item.closest('.latepoint-booking-form-element');\n var max_capacity = $item.data('max-capacity');\n var min_capacity = $item.data('min-capacity');\n $booking_form_element.find('.sta-sub-label span').text(max_capacity);\n $booking_form_element.find('.step-services-w').removeClass('selecting-service-duration');\n $booking_form_element.find('.total-attendies-selector-w').data('max-capacity', max_capacity);\n $booking_form_element.find('.total-attendies-selector-w').data('min-capacity', min_capacity);\n $item.closest('.step-services-w').addClass('selecting-total-attendies');\n var current_value = $booking_form_element.find('.total-attendies-selector-input').val();\n $booking_form_element.find('.total-attendies-selector-input').val(Math.max(Number(min_capacity), Number(current_value)));\n latepoint_show_prev_btn($booking_form_element);\n latepoint_show_next_btn($booking_form_element);\n}\n\n\nfunction latepoint_show_durations($item){\n var $booking_form_element = $item.closest('.latepoint-booking-form-element');\n $item.closest('.step-services-w').addClass('selecting-service-duration');\n latepoint_show_prev_btn($booking_form_element);\n latepoint_hide_next_btn($booking_form_element);\n}\n\nfunction latepoint_apply_coupon($elem){\n var $booking_form_element = $elem.closest('.latepoint-booking-form-element');\n\n var $coupon_input = $elem;\n $coupon_input.closest('.coupon-code-input-w').addClass('os-loading');\n var form_data = new FormData($booking_form_element.find('.latepoint-form')[0]);\n var data = {\n action: latepoint_helper.route_action,\n route_name: $elem.data('route'),\n params: latepoint_formdata_to_url_encoded_string(form_data),\n layout: 'none',\n return_format: 'json'\n }\n jQuery.ajax({\n type : \"post\",\n dataType : \"json\",\n url : latepoint_helper.ajaxurl,\n data : data,\n success: function(data){\n $coupon_input.closest('.coupon-code-input-w').removeClass('os-loading');\n if(data.status === \"success\"){\n $booking_form_element.find('input[name=\"booking[coupon_code]\"]').val($coupon_input.val());\n latepoint_show_message_inside_element(data.message, $booking_form_element.find('.latepoint-body'), 'success');\n $booking_form_element.find('.step-payment-w input[name=\"booking[payment_method]\"]').val('');\n $booking_form_element.find('input[name=\"booking[payment_token]\"]').val('');\n $booking_form_element.find('input[name=\"booking[payment_portion]\"]').val('');\n latepoint_reload_step($booking_form_element);\n }else{\n latepoint_show_message_inside_element(data.message, $booking_form_element.find('.latepoint-body'), 'error');\n }\n }\n });\n}\n\nfunction latepoint_remove_coupon($elem){\n $elem.closest('.applied-coupon-code').fadeOut();\n var $booking_form_element = $elem.closest('.latepoint-booking-form-element');\n $booking_form_element.find('input[name=\"booking[coupon_code]\"]').val('');\n latepoint_reload_step($booking_form_element);\n}\n\nfunction latepoint_reload_step($booking_form_element, step_name = false){\n\n if(step_name){\n $booking_form_element.find('.latepoint_current_step').val(step_name);\n $booking_form_element.removeClass(function (index, className) { return (className.match (/(^|\\s)current-step-\\S+/g) || []).join(' '); }).addClass('current-step-' + step_name);\n if($booking_form_element.find('.latepoint-step-content[data-step-name=\"'+ step_name +'\"]')){\n $booking_form_element.find('.latepoint-step-content[data-step-name=\"'+ step_name +'\"]').nextAll('.latepoint-step-content').remove();\n $booking_form_element.find('.latepoint-step-content[data-step-name=\"'+ step_name +'\"]').remove();\n }\n }\n\n $booking_form_element.find('.latepoint_step_direction').val('specific');\n $booking_form_element.find('.latepoint-form').trigger('submit');\n\n return false;\n}\n\nfunction latepoint_get_payment_sub_step($booking_form_element, current_sub_step, prev = false){\n var offset = prev ? -1 : 1;\n var payment_sub_steps = [];\n if($booking_form_element.find('.step-payment-w .lp-payment-times-w').length) payment_sub_steps.push('payment-times');\n if($booking_form_element.find('.step-payment-w .lp-payment-methods-w').length) payment_sub_steps.push('payment-methods');\n if($booking_form_element.find('.step-payment-w .lp-payment-portions-w').length) payment_sub_steps.push('payment-portions');\n\n var selected_payment_method = $booking_form_element.find('input[name=\"booking[payment_method]\"]').val();\n if(selected_payment_method) payment_sub_steps.push('payment-method-content');\n\n var index = payment_sub_steps.indexOf(current_sub_step) + offset;\n if(index >= 0 && index < payment_sub_steps.length){\n var sub_step = payment_sub_steps[index];\n if(sub_step == 'payment-method-content'){\n latepoint_init_payment_method_actions($booking_form_element, selected_payment_method);\n // if no content exists for payment method - do not change sub step\n if(!$booking_form_element.find('.lp-payment-method-content[data-payment-method=\"' + selected_payment_method + '\"]').length) sub_step = current_sub_step;\n }\n return sub_step;\n }else{\n return current_sub_step;\n }\n}\n\n\nfunction latepoint_reset_password_from_booking_init(){\n jQuery('.os-step-existing-customer-login-w').hide();\n jQuery('.os-password-reset-form-holder').on('click', '.password-reset-back-to-login', function(){\n jQuery('.os-password-reset-form-holder').html('');\n jQuery('.os-step-existing-customer-login-w').show();\n return false;\n });\n}\n\nfunction latepoint_reload_summary($booking_form_element, field_name = '', value = ''){\n var $summary_holder = $booking_form_element.closest('.latepoint-with-summary');\n if(!$summary_holder.length) return;\n\n $booking_form_element.find('.latepoint-summary-w').addClass('os-loading');\n var $booking_form = $booking_form_element.find('.latepoint-form');\n var form_data = new FormData($booking_form[0]);\n var data = {\n action: latepoint_helper.route_action,\n route_name: latepoint_helper.reload_booking_summary_route,\n params: latepoint_formdata_to_url_encoded_string(form_data),\n layout: 'none',\n return_format: 'json'\n }\n jQuery.ajax({\n type : \"post\",\n dataType : \"json\",\n url : latepoint_helper.ajaxurl,\n data : data,\n success: function(data){\n if(data.status === \"success\"){\n $booking_form_element.find('.os-summary-contents').html(data.message);\n $booking_form_element.find('.latepoint-summary-w').removeClass('os-loading');\n $summary_holder.addClass('latepoint-summary-is-open');\n }\n }\n });\n return;\n}\n\nfunction latepoint_password_changed_show_login(response){\n jQuery('.os-step-existing-customer-login-w').show();\n jQuery('.os-password-reset-form-holder').html('');\n latepoint_show_message_inside_element(response.message, jQuery('.os-step-existing-customer-login-w'), 'success');\n}\n\nfunction latepoint_hide_message_inside_element($elem = jQuery('.latepoint-body')){\n if($elem.length && $elem.find('.latepoint-message').length){\n $elem.find('.latepoint-message').remove();\n }\n}\n\nfunction latepoint_show_message_inside_element(message, $elem = jQuery('.latepoint-body'), message_type = 'error'){\n if($elem.length){\n if($elem.find('.latepoint-message').length){\n $elem.find('.latepoint-message').removeClass('latepoint-message-success').removeClass('latepoint-message-error').addClass('latepoint-message-'+ message_type +'').html(message).show();\n }else{\n $elem.prepend('<div class=\"latepoint-message latepoint-message-'+ message_type +'\">' + message + '</div>');\n }\n }\n}\n\nfunction latepoint_add_action(callbacks_list, action, priority = 10){\n callbacks_list.push({priority: priority, action: action});\n callbacks_list.sort((a,b) => a.priority - b.priority);\n return callbacks_list;\n}\n\n\nfunction latepoint_init_step(step_name, $booking_form_element){\n latepoint_init_step_selectable_items($booking_form_element);\n latepoint_init_step_category_items(step_name);\n switch(step_name){\n case 'datepicker':\n latepoint_init_step_datepicker($booking_form_element);\n break;\n case 'contact':\n latepoint_init_step_contact();\n break;\n case 'agents':\n latepoint_init_step_agents();\n break;\n case 'locations':\n latepoint_init_step_locations();\n break;\n case 'services':\n latepoint_init_step_services();\n break;\n case 'payment':\n latepoint_init_step_payment($booking_form_element);\n break;\n case 'verify':\n latepoint_init_step_verify($booking_form_element);\n break;\n case 'confirmation':\n latepoint_init_step_confirmation($booking_form_element);\n break;\n }\n\n $booking_form_element.trigger(\"latepoint:initStep\", [{step_name: step_name}]);\n $booking_form_element.trigger(\"latepoint:initStep:\" + step_name);\n latepoint_scroll_to_top_of_booking_form($booking_form_element);\n}\n\n\n\nfunction day_timeslots($day, $wrapper_element = false, $scrollable_wrapper = false){\n if(!$wrapper_element) $wrapper_element = $day.closest('.latepoint-booking-form-element');\n $day.addClass('selected');\n\n var service_duration = $day.data('service-duration');\n var interval = $day.data('interval');\n var work_start_minutes = $day.data('work-start-time');\n var work_end_minutes = $day.data('work-end-time');\n var total_work_minutes = $day.data('total-work-minutes');\n var bookable_minutes = [];\n var available_capacities_of_bookable_minute = [];\n if($day.attr('data-bookable-minutes')){\n if($day.data('bookable-minutes').toString().indexOf(':') > -1){\n // has capacity information embedded into bookable minutes string\n let bookable_minutes_with_capacity = $day.data('bookable-minutes').toString().split(',');\n for(let i = 0; i < bookable_minutes_with_capacity.length; i++){\n bookable_minutes.push(parseInt(bookable_minutes_with_capacity[i].split(':')[0]));\n available_capacities_of_bookable_minute.push(parseInt(bookable_minutes_with_capacity[i].split(':')[1]));\n }\n }else{\n bookable_minutes = $day.data('bookable-minutes').toString().split(',').map(Number);\n }\n }\n var work_minutes = $day.data('work-minutes').toString().split(',').map(Number);\n\n var $timeslots = $wrapper_element.find('.timeslots');\n $timeslots.html('');\n\n if(total_work_minutes > 0 && bookable_minutes.length && work_minutes.length){\n var prev_minutes = false;\n work_minutes.forEach(function(current_minutes){\n var ampm = latepoint_am_or_pm(current_minutes);\n\n var timeslot_class = 'dp-timepicker-trigger';\n var timeslot_available_capacity = 0;\n if(latepoint_helper.time_pick_style == 'timeline'){\n timeslot_class+= ' dp-timeslot';\n }else{\n timeslot_class+= ' dp-timebox';\n }\n\n if(prev_minutes !== false && ((current_minutes - prev_minutes) > service_duration)){\n // show interval that is off between two work periods\n var off_label = latepoint_minutes_to_hours_and_minutes(prev_minutes + service_duration)+' '+ latepoint_am_or_pm(prev_minutes + service_duration) + ' - ' + latepoint_minutes_to_hours_and_minutes(current_minutes)+' '+latepoint_am_or_pm(current_minutes);\n var off_width = (((current_minutes - prev_minutes - service_duration) / total_work_minutes) * 100);\n $timeslots.append('<div class=\"'+ timeslot_class +' is-off\" style=\"max-width:'+ off_width +'%; width:'+ off_width +'%\"><span class=\"dp-label\">' + off_label + '</span></div>');\n }\n\n if(!bookable_minutes.includes(current_minutes)){\n timeslot_class+= ' is-booked';\n }else{\n if(available_capacities_of_bookable_minute.length) timeslot_available_capacity = available_capacities_of_bookable_minute[bookable_minutes.indexOf(current_minutes)];\n }\n var tick_html = '';\n var capacity_label = '';\n var capacity_label_html = '';\n var capacity_internal_label_html = '';\n\n if(((current_minutes % 60) == 0) || (interval >= 60)){\n timeslot_class+= ' with-tick';\n tick_html = '<span class=\"dp-tick\"><strong>'+latepoint_minutes_to_hours_preferably(current_minutes)+'</strong>'+' '+ampm+'</span>';\n }\n var timeslot_label = latepoint_minutes_to_hours_and_minutes(current_minutes)+' '+ampm;\n if(latepoint_show_booking_end_time()){\n var end_minutes = current_minutes + service_duration;\n if(end_minutes > 1440) end_minutes = end_minutes - 1440;\n var end_minutes_ampm = latepoint_am_or_pm(end_minutes);\n timeslot_label+= ' - <span class=\"dp-label-end-time\">' + latepoint_minutes_to_hours_and_minutes(end_minutes)+' '+end_minutes_ampm + '</span>';\n }\n if(timeslot_available_capacity){\n var spaces_message = timeslot_available_capacity > 1 ? latepoint_helper.many_spaces_message : latepoint_helper.single_space_message;\n capacity_label = timeslot_available_capacity + ' ' + spaces_message;\n capacity_label_html = '<span class=\"dp-capacity\">' + capacity_label + '</span>';\n capacity_internal_label_html = '<span class=\"dp-label-capacity\">' + capacity_label + '</span>';\n }\n timeslot_label = timeslot_label.trim();\n $timeslots.removeClass('slots-not-available').append('<div class=\"'+timeslot_class+'\" data-minutes=\"' + current_minutes + '\"><span class=\"dp-label\">' + capacity_internal_label_html + '<span class=\"dp-label-time\">' + timeslot_label + '</span>' +'</span>'+tick_html+ capacity_label_html + '</div>');\n prev_minutes = current_minutes;\n });\n }else{\n // No working hours this day\n $timeslots.addClass('slots-not-available').append('<div class=\"not-working-message\">' + latepoint_helper.msg_not_available + \"</div>\");\n }\n jQuery('.times-header-label span').text($day.data('nice-date'));\n $wrapper_element.find('.time-selector-w').slideDown(200, function(){\n if(!$scrollable_wrapper) $scrollable_wrapper = $wrapper_element.find('.latepoint-body');\n $scrollable_wrapper.stop().animate({\n scrollTop: $scrollable_wrapper[0].scrollHeight\n }, 200);\n });\n}\n\n\n\n\nfunction latepoint_init_timeslots($booking_form_element = false){\n if(!$booking_form_element) return;\n $booking_form_element.find('.time-selector-w').on('click', '.dp-timepicker-trigger', function(){\n if(jQuery(this).hasClass('is-booked') || jQuery(this).hasClass('is-off')){\n // Show error message that you cant select a booked period\n }else{\n if(jQuery(this).hasClass('selected')){\n jQuery(this).removeClass('selected');\n jQuery(this).find('.dp-success-label').remove();\n $booking_form_element.find('.latepoint_start_time').val('');\n latepoint_hide_next_btn($booking_form_element);\n latepoint_reload_summary($booking_form_element, 'time', '');\n }else{\n $booking_form_element.find('.dp-timepicker-trigger.selected').removeClass('selected').find('.dp-success-label').remove();\n var selected_timeslot_time = jQuery(this).find('.dp-label-time').html();\n jQuery(this).addClass('selected').find('.dp-label').prepend('<span class=\"dp-success-label\">' + $booking_form_element.find('.latepoint-form').data('selected-label') + '</span>');\n\n var minutes = parseInt(jQuery(this).data('minutes'));\n var timeshift_minutes = parseInt($booking_form_element.find('.latepoint_timeshift_minutes').val());\n // we substract timeshift minutes because its timeshift minutes that the business is running in, in opposite of what we do when we generate a calendar for a client\n if(timeshift_minutes) minutes = minutes - timeshift_minutes;\n var start_date = new Date($booking_form_element.find('.os-day.selected').data('date'));\n if(minutes < 0){\n // business minutes are in previous day\n minutes = 24*60 + minutes;\n // move start date back 1 day\n start_date.setDate(start_date.getDate() - 1);\n }else if(minutes >= 24*60){\n // business minutes are in next day\n minutes = minutes - 24*60;\n start_date.setDate(start_date.getDate() + 1);\n }\n $booking_form_element.find('.latepoint_start_date').val(start_date.toISOString().split('T')[0])\n $booking_form_element.find('.latepoint_start_time').val(minutes);\n latepoint_trigger_next_btn($booking_form_element);\n latepoint_reload_summary($booking_form_element, 'time', selected_timeslot_time);\n }\n }\n return false;\n });\n}\n\nfunction latepoint_init_monthly_calendar_navigation($booking_form_element = false){\n if(!$booking_form_element) return;\n $booking_form_element.find('.os-month-next-btn').on('click', function(){\n var $booking_form_element = jQuery(this).closest('.latepoint-booking-form-element');\n var next_month_route_name = jQuery(this).data('route');\n if($booking_form_element.find('.os-monthly-calendar-days-w.active + .os-monthly-calendar-days-w').length){\n $booking_form_element.find('.os-monthly-calendar-days-w.active').removeClass('active').next('.os-monthly-calendar-days-w').addClass('active');\n latepoint_calendar_set_month_label($booking_form_element);\n }else{\n // TODO add condition to check maximum number months to call into the future\n if(true){\n var $btn = jQuery(this);\n $btn.addClass('os-loading');\n var $calendar_element = $booking_form_element.find('.os-monthly-calendar-days-w').last();\n var calendar_year = $calendar_element.data('calendar-year');\n var calendar_month = $calendar_element.data('calendar-month');\n if(calendar_month == 12){\n calendar_year = calendar_year + 1;\n calendar_month = 1;\n }else{\n calendar_month = calendar_month + 1;\n }\n var form_data = new FormData($booking_form_element.find('.latepoint-form')[0]);\n form_data.set('target_date_string', `${calendar_year}-${calendar_month}-1`);\n var params = latepoint_formdata_to_url_encoded_string(form_data);\n var data = { action: latepoint_helper.route_action, route_name: next_month_route_name, params: params, layout: 'none', return_format: 'json' }\n jQuery.ajax({\n type : \"post\",\n dataType : \"json\",\n url : latepoint_helper.ajaxurl,\n data : data,\n success: function(data){\n $btn.removeClass('os-loading');\n if(data.status === \"success\"){\n $booking_form_element.find('.os-months').append(data.message);\n $booking_form_element.find('.os-monthly-calendar-days-w.active').removeClass('active').next('.os-monthly-calendar-days-w').addClass('active');\n latepoint_calendar_set_month_label($booking_form_element);\n }else{\n // console.log(data.message);\n }\n }\n });\n }\n }\n latepoint_calendar_show_or_hide_prev_next_buttons($booking_form_element);\n return false;\n });\n $booking_form_element.find('.os-month-prev-btn').on('click', function(){\n var $booking_form_element = jQuery(this).closest('.latepoint-booking-form-element');\n if($booking_form_element.find('.os-monthly-calendar-days-w.active').prev('.os-monthly-calendar-days-w').length){\n $booking_form_element.find('.os-monthly-calendar-days-w.active').removeClass('active').prev('.os-monthly-calendar-days-w').addClass('active');\n latepoint_calendar_set_month_label($booking_form_element);\n }\n latepoint_calendar_show_or_hide_prev_next_buttons($booking_form_element);\n return false;\n });\n}\n\nfunction latepoint_calendar_set_month_label($booking_form_element){\n $booking_form_element.find('.os-current-month-label .current-year').text($booking_form_element.find('.os-monthly-calendar-days-w.active').data('calendar-year'));\n $booking_form_element.find('.os-current-month-label .current-month').text($booking_form_element.find('.os-monthly-calendar-days-w.active').data('calendar-month-label'));\n}\n\n\nfunction latepoint_calendar_show_or_hide_prev_next_buttons($booking_form_element){\n $booking_form_element.find('.os-current-month-label .current-year').text($booking_form_element.find('.os-monthly-calendar-days-w.active .os-monthly-calendar-days').data('calendar-year'));\n $booking_form_element.find('.os-current-month-label .current-month').text($booking_form_element.find('.os-monthly-calendar-days-w.active .os-monthly-calendar-days').data('calendar-month-label'));\n\n if($booking_form_element.find('.os-monthly-calendar-days-w.active').prev('.os-monthly-calendar-days-w').length){\n $booking_form_element.find('.os-month-prev-btn').removeClass('disabled');\n }else{\n $booking_form_element.find('.os-month-prev-btn').addClass('disabled');\n }\n}\n\nfunction latepoint_format_minutes_to_time(minutes, service_duration){\n var ampm = latepoint_am_or_pm(minutes);\n var formatted_time = latepoint_minutes_to_hours_and_minutes(minutes)+' '+ampm;\n if(latepoint_show_booking_end_time()){\n var end_minutes = minutes + service_duration;\n var end_minutes_ampm = latepoint_am_or_pm(end_minutes);\n formatted_time+= ' - ' + latepoint_minutes_to_hours_and_minutes(end_minutes)+' '+end_minutes_ampm;\n }\n formatted_time = formatted_time.trim();\n return formatted_time;\n}\n\nfunction latepoint_init_step_datepicker($booking_form_element = false){\n if(!$booking_form_element) return;\n latepoint_init_timeslots($booking_form_element);\n latepoint_init_monthly_calendar_navigation($booking_form_element);\n $booking_form_element.find('.os-months').on('click', '.os-day', function(){\n if(jQuery(this).hasClass('os-day-passed')) return false;\n if(jQuery(this).hasClass('os-not-in-allowed-period')) return false;\n var $booking_form_element = jQuery(this).closest('.latepoint-booking-form-element');\n if(jQuery(this).closest('.os-monthly-calendar-days-w').hasClass('hide-if-single-slot')){\n\n // HIDE TIMESLOT IF ONLY ONE TIMEPOINT\n if(jQuery(this).hasClass('os-not-available')){\n // clicked on a day that has no available timeslots\n // do nothing\n }else{\n $booking_form_element.find('.os-day.selected').removeClass('selected');\n jQuery(this).addClass('selected');\n // set date\n $booking_form_element.find('.latepoint_start_date').val(jQuery(this).data('date'));\n latepoint_reload_summary($booking_form_element, 'date', jQuery(this).data('nice-date'));\n if(jQuery(this).hasClass('os-one-slot-only')){\n // clicked on a day that has only one slot available\n var bookable_minutes = jQuery(this).data('bookable-minutes').toString().split(':')[0];\n var selected_timeslot_time = latepoint_format_minutes_to_time(Number(bookable_minutes), Number(jQuery(this).data('service-duration')));\n $booking_form_element.find('.latepoint_start_time').val(jQuery(this).data('bookable-minutes'));\n latepoint_show_next_btn($booking_form_element);\n latepoint_reload_summary($booking_form_element, 'time', selected_timeslot_time);\n $booking_form_element.find('.time-selector-w').slideUp(200);\n }else{\n // regular day with more than 1 timeslots available\n // build timeslots\n day_timeslots(jQuery(this));\n // clear time and hide next btn\n $booking_form_element.find('.latepoint_start_time').val('');\n latepoint_hide_next_btn($booking_form_element);\n }\n }\n }else{\n\n // SHOW TIMESLOTS EVEN IF ONLY ONE TIMEPOINT\n $booking_form_element.find('.latepoint_start_date').val(jQuery(this).data('date'));\n latepoint_reload_summary($booking_form_element, 'date', jQuery(this).data('nice-date'));\n $booking_form_element.find('.os-day.selected').removeClass('selected');\n jQuery(this).addClass('selected');\n\n // build timeslots\n day_timeslots(jQuery(this));\n // clear time and hide next btn\n latepoint_reload_summary($booking_form_element, 'time', '');\n $booking_form_element.find('.latepoint_start_time').val('');\n latepoint_hide_next_btn($booking_form_element);\n }\n\n\n return false;\n });\n\n if($booking_form_element.find('input[name=\"booking[start_date]\"]').val()) $booking_form_element.find('.os-day[data-date=\"'+$booking_form_element.find('input[name=\"booking[start_date]\"]').val()+'\"]').trigger('click');\n}\n\n\nfunction latepoint_init_step_verify($booking_form_element = false){\n if(!$booking_form_element) return;\n $booking_form_element.closest('.latepoint-summary-is-open').removeClass('latepoint-summary-is-open');\n}\n\n\nfunction latepoint_init_step_payment($booking_form_element = false){\n if($booking_form_element.find('.step-payment-w').data('full-amount') > 0){\n latepoint_reload_summary($booking_form_element, 'price', latepoint_format_price(($booking_form_element.find('.step-payment-w').data('full-amount') * 100 / 100).toFixed(latepoint_helper.number_of_decimals)));\n }\n if($booking_form_element && ($booking_form_element.find('.step-payment-w').data('default-portion') == 'deposit')){\n $booking_form_element.find('input[name=\"booking[payment_portion]\"]').val('deposit');\n }\n\n // activate payment method content if method and portion are set and no selection is needed\n var selected_payment_method = $booking_form_element.find('input[name=\"booking[payment_method]\"]').val();\n if(selected_payment_method && !jQuery('.lp-payment-times-w').length && !jQuery('.lp-payment-methods-w').length && !jQuery('.lp-payment-portions-w').length){\n latepoint_init_payment_method_actions($booking_form_element, selected_payment_method);\n }\n\n jQuery('.latepoint-booking-form-element .coupon-code-input-submit').on('click', function(e){\n latepoint_apply_coupon(jQuery(this).closest('.coupon-code-input-w').find('.coupon-code-input'));\n return false;\n });\n\n jQuery('.latepoint-booking-form-element .coupon-code-clear').on('click', function(e){\n latepoint_remove_coupon(jQuery(this));\n return false;\n });\n\n jQuery('.latepoint-booking-form-element input.coupon-code-input').on('keyup', function(e){\n if(e.which === 13){\n latepoint_apply_coupon(jQuery(this));\n return false;\n }\n });\n\n\n jQuery('.latepoint-booking-form-element .coupon-code-trigger-w a').on('click', function(e){\n jQuery(this).closest('.payment-total-info').addClass('entering-coupon').find('.coupon-code-input').focus();\n return false;\n });\n\n\n // Pay later button click\n jQuery('.latepoint-booking-form-element .lp-payment-trigger-later').on('click', function(e){\n var $booking_form_element = jQuery(this).closest('.latepoint-booking-form-element');\n $booking_form_element.find('input[name=\"booking[payment_method]\"]').val(jQuery(this).data('method'));\n $booking_form_element.find('input[name=\"booking[payment_portion]\"]').val('');\n $booking_form_element.find('.latepoint-form').trigger('submit');\n });\n\n\n // Selecting Payment Time\n jQuery('.latepoint-booking-form-element .lp-payment-trigger-payment-time-selector').on('click', function(e){\n var $booking_form_element = jQuery(this).closest('.latepoint-booking-form-element');\n var $payment_step = $booking_form_element.find('.step-payment-w');\n\n latepoint_hide_next_btn($booking_form_element);\n latepoint_show_prev_btn($booking_form_element);\n $payment_step.attr('data-sub-step', latepoint_get_payment_sub_step($booking_form_element, $payment_step.attr('data-sub-step')));\n return false;\n });\n\n // Selecting Payment Method\n jQuery('.latepoint-booking-form-element .lp-payment-trigger-payment-method-selector').on('click', function(e){\n var $booking_form_element = jQuery(this).closest('.latepoint-booking-form-element');\n var selected_payment_method = jQuery(this).data('method');\n $booking_form_element.find('input[name=\"booking[payment_method]\"]').val(selected_payment_method);\n\n var $payment_step = $booking_form_element.find('.step-payment-w');\n latepoint_hide_next_btn($booking_form_element);\n latepoint_show_prev_btn($booking_form_element);\n $payment_step.attr('data-sub-step', latepoint_get_payment_sub_step($booking_form_element, $payment_step.attr('data-sub-step')));\n });\n\n jQuery('.latepoint-booking-form-element .lp-payment-trigger-payment-portion-selector').on('click', function(e){\n var $booking_form_element = jQuery(this).closest('.latepoint-booking-form-element');\n var portion = jQuery(this).data('portion');\n $booking_form_element.find('input[name=\"booking[payment_portion]\"]').val(portion);\n if(portion == 'deposit'){\n $booking_form_element.find('.payment-total-info').addClass('paying-deposit');\n }else{\n $booking_form_element.find('.payment-total-info').removeClass('paying-deposit');\n }\n\n var $payment_step = $booking_form_element.find('.step-payment-w');\n latepoint_hide_next_btn($booking_form_element);\n latepoint_show_prev_btn($booking_form_element);\n $payment_step.attr('data-sub-step', latepoint_get_payment_sub_step($booking_form_element, $payment_step.attr('data-sub-step')));\n });\n\n\n}\n\n\nfunction latepoint_init_step_category_items(step_name){\n jQuery('.latepoint-step-content[data-step-name=\"' + step_name + '\"] .os-item-category-info').on('click', function(){\n var $booking_form_element = jQuery(this).closest('.latepoint-booking-form-element');\n latepoint_show_prev_btn($booking_form_element);\n jQuery(this).closest('.latepoint-step-content').addClass('selecting-item-category');\n var $category_wrapper = jQuery(this).closest('.os-item-category-w');\n var $main_parent = jQuery(this).closest('.os-item-categories-main-parent');\n if($category_wrapper.hasClass('selected')){\n $category_wrapper.removeClass('selected');\n if($category_wrapper.parent().closest('.os-item-category-w').length){\n $category_wrapper.parent().closest('.os-item-category-w').addClass('selected');\n }else{\n $main_parent.removeClass('show-selected-only');\n }\n }else{\n $main_parent.find('.os-item-category-w.selected').removeClass('selected');\n $main_parent.addClass('show-selected-only');\n $category_wrapper.addClass('selected');\n }\n return false;\n });\n}\n\n\nfunction latepoint_init_step_selectable_items($booking_form_element){\n $booking_form_element.off('click', '.os-selectable-items .os-selectable-item', latepoint_selectable_item_clicked);\n $booking_form_element.on('click', '.os-selectable-items .os-selectable-item', latepoint_selectable_item_clicked);\n\n $booking_form_element.off('click', '.os-selectable-items .os-selectable-item .item-quantity-selector-input', latepoint_selectable_item_quantity_keyup);\n $booking_form_element.on('click', '.os-selectable-items .os-selectable-item .item-quantity-selector-input', latepoint_selectable_item_quantity_keyup);\n}\n\n\nfunction latepoint_update_quantity_for_selectable_items($item){\n var ids = $item.closest('.os-selectable-items')\n .find('.os-selectable-item.selected')\n .map(function(){\n if(jQuery(this).hasClass('has-quantity')){\n return jQuery(this).data('item-id') + ':' + jQuery(this).find('input.item-quantity-selector-input').val();\n }else{\n return jQuery(this).data('item-id');\n }\n }).get();\n $item.closest('.latepoint-booking-form-element').find($item.data('id-holder')).val(ids);\n}\n\nfunction latepoint_selectable_item_quantity_keyup(event){\n var $booking_form_element = jQuery(this).closest('.latepoint-booking-form-element');\n var $item = jQuery(this).closest('.os-selectable-item');\n var new_value = jQuery(this).val();\n if(new_value && new_value.match(/^\\d+$/)){\n var max_quantity = $item.data('max-quantity');\n if(max_quantity && (new_value > max_quantity)) new_value = max_quantity;\n }else{\n new_value = 0;\n }\n jQuery(this).val(new_value);\n\n if(( $item.hasClass('selected') && (new_value > 0) ) || (!$item.hasClass('selected') && (new_value == 0))){\n latepoint_update_quantity_for_selectable_items($item);\n latepoint_reload_summary($booking_form_element);\n return false;\n }else{\n $item.trigger('click');\n }\n}\n\nfunction latepoint_selectable_item_clicked(event){\n event.stopPropagation();\n event.stopImmediatePropagation();\n var $booking_form_element = jQuery(this).closest('.latepoint-booking-form-element');\n if(jQuery(this).hasClass('has-quantity')){\n if(jQuery(event.target).hasClass('item-quantity-selector')){\n var current_value = parseInt(jQuery(this).find('input.item-quantity-selector-input').val());\n var new_value = (jQuery(event.target).data('sign') == 'minus') ? current_value - 1 : current_value + 1;\n var max_quantity = jQuery(this).data('max-quantity');\n if(new_value < 0) new_value = 0;\n if(max_quantity && (new_value > max_quantity)) new_value = max_quantity;\n jQuery(this).find('input.item-quantity-selector-input').val(new_value);\n if(( jQuery(this).hasClass('selected') && (new_value > 0) ) || (!jQuery(this).hasClass('selected') && (new_value == 0))){\n latepoint_update_quantity_for_selectable_items(jQuery(this));\n latepoint_reload_summary($booking_form_element);\n return false;\n }\n }\n if(jQuery(event.target).hasClass('item-quantity-selector-input')){\n latepoint_update_quantity_for_selectable_items(jQuery(this));\n latepoint_reload_summary($booking_form_element);\n return false;\n }\n }\n var summary_value = '';\n if(jQuery(this).hasClass('os-allow-multiselect')){\n if(jQuery(this).hasClass('selected')){\n jQuery(this).removeClass('selected');\n if(jQuery(this).hasClass('has-quantity')) jQuery(this).find('input.item-quantity-selector-input').val(0);\n }else{\n jQuery(this).addClass('selected');\n if(jQuery(this).hasClass('has-quantity') && !(jQuery(this).find('input.item-quantity-selector-input').val() > 0)){\n jQuery(this).find('input.item-quantity-selector-input').val(1);\n }\n }\n latepoint_update_quantity_for_selectable_items(jQuery(this));\n summary_value = String(jQuery(this).closest('.os-selectable-items').find('.os-selectable-item.selected').map(function(){ return (' ' + jQuery(this).data('summary-value')); }).get()).trim();\n latepoint_show_next_btn($booking_form_element);\n }else{\n if(!jQuery(this).hasClass('os-duration-item')) jQuery(this).closest('.os-item-categories-main-parent').find('.os-selectable-item.selected').removeClass('selected');\n jQuery(this).closest('.os-selectable-items').find('.os-selectable-item.selected').removeClass('selected');\n jQuery(this).addClass('selected');\n $booking_form_element.find(jQuery(this).data('id-holder')).val(jQuery(this).data('item-id'));\n summary_value = jQuery(this).data('summary-value');\n if(jQuery(this).data('os-call-func')){\n window[jQuery(this).data('os-call-func')](jQuery(this));\n }\n if(jQuery(this).data('activate-sub-step')){\n window[jQuery(this).data('activate-sub-step')](jQuery(this));\n }else{\n latepoint_trigger_next_btn($booking_form_element);\n }\n }\n latepoint_reload_summary($booking_form_element, jQuery(this).data('summary-field-name'), summary_value);\n}\n\n\nfunction latepoint_format_price(price){\n // replace default decimal separator dot with comma if it's in settings\n if(latepoint_helper.decimal_separator == ',') price = String(price).replace('.', ',');\n return latepoint_helper.currency_symbol_before + String(price) + latepoint_helper.currency_symbol_after;\n}\n\n\nfunction latepoint_init_step_services(){\n jQuery('.total-attendies-selector-input').on('change', function(){\n var max_capacity = jQuery(this).closest('.total-attendies-selector-w').data('max-capacity');\n var min_capacity = jQuery(this).closest('.total-attendies-selector-w').data('min-capacity');\n var new_value = jQuery(this).val();\n new_value = Math.min(Number(max_capacity), Number(new_value));\n new_value = Math.max(Number(min_capacity), Number(new_value));\n jQuery(this).val(new_value);\n var new_value_formatted = new_value + ' ' + ((new_value > 1) ? jQuery(this).data('summary-plural') : jQuery(this).data('summary-singular'));\n\n var $booking_form_element = jQuery(this).closest('.latepoint-booking-form-element');\n latepoint_reload_summary($booking_form_element, 'total-attendies', new_value_formatted);\n });\n jQuery('.total-attendies-selector').on('click', function(){\n var add_value = (jQuery(this).hasClass('total-attendies-selector-plus')) ? 1 : -1;\n var max_capacity = jQuery(this).closest('.total-attendies-selector-w').data('max-capacity');\n var min_capacity = jQuery(this).closest('.total-attendies-selector-w').data('min-capacity');\n var current_value = jQuery(this).closest('.total-attendies-selector-w').find('input.total-attendies-selector-input').val();\n var new_value = (Number(current_value) > 0) ? Math.max((Number(current_value) + add_value), 1) : 1;\n new_value = Math.min(Number(max_capacity), new_value);\n new_value = Math.max(Number(min_capacity), new_value);\n jQuery(this).closest('.total-attendies-selector-w').find('input').val(new_value).trigger('change');\n return false;\n });\n}\n\n\nfunction latepoint_trigger_next_btn($booking_form_element){\n $booking_form_element.find('.latepoint_step_direction').val('next');\n $booking_form_element.find('.latepoint-form').trigger('submit');\n}\n\nfunction latepoint_init_step_locations(){\n}\n\nfunction latepoint_init_agent_details_link($booking_form_element){\n $booking_form_element.on('click', '.os-trigger-item-details-popup', function(){\n $booking_form_element.find('.os-item-details-popup.open').remove();\n var $popup = $booking_form_element.find('#' + jQuery(this).data('item-details-popup-id')).first().clone().attr('id', '');\n $booking_form_element.find('.latepoint-form-w').addClass('showing-item-details-popup');\n $popup.addClass('open').appendTo($booking_form_element.find('.latepoint-body'));\n return false;\n });\n $booking_form_element.on('click', '.os-item-details-popup.open .os-item-details-popup-close', function(){\n $booking_form_element.find('.latepoint-form-w').removeClass('showing-item-details-popup');\n jQuery(this).closest('.os-item-details-popup.open').remove();\n return false;\n });\n}\n\nfunction latepoint_init_step_agents(){\n}\n\n\nfunction latepoint_init_booking_summary_lightbox(){\n jQuery('.customer-dashboard-booking-summary-lightbox').on('click', '.qr-show-trigger', function(){\n jQuery(this).closest('.latepoint-lightbox-i').find('.qr-code-on-full-summary').addClass('show-vevent-qr-code');\n return false;\n });\n jQuery('.customer-dashboard-booking-summary-lightbox').on('click', '.os-item-details-popup-close', function(){\n var $ligthbox = jQuery(this).closest('.latepoint-lightbox-content');\n $ligthbox.find('.os-item-details-popup.open').remove();\n $ligthbox.find('.full-summary-wrapper').show();\n return false;\n });\n\n jQuery('.customer-dashboard-booking-summary-lightbox').on('click', '.os-trigger-item-details-popup', function(){\n var $ligthbox = jQuery(this).closest('.latepoint-lightbox-content');\n $ligthbox.find('.full-summary-wrapper').hide();\n $ligthbox.find('.os-item-details-popup.open').remove();\n var $popup = $ligthbox.find('#' + jQuery(this).data('item-details-popup-id')).clone();\n $popup.addClass('open').appendTo($ligthbox);\n return false;\n });\n}\n\nfunction latepoint_init_step_confirmation($booking_form_element = false){\n if(!$booking_form_element) return;\n $booking_form_element.on('click', '.set-customer-password-btn', function(){\n var $btn = jQuery(this);\n var $booking_form_element = jQuery(this).closest('.latepoint-booking-form-element');\n\n $btn.addClass('os-loading');\n var params = { account_nonse: jQuery('input[name=\"account_nonse\"]').val(), password: jQuery('input[name=\"customer[password]\"]').val(), password_confirmation: jQuery('input[name=\"customer[password_confirmation]\"]').val()}\n var data = { action: latepoint_helper.route_action, route_name: jQuery(this).data('btn-action'), params: jQuery.param(params), layout: 'none', return_format: 'json' }\n jQuery.ajax({\n type : \"post\",\n dataType : \"json\",\n url : latepoint_helper.ajaxurl,\n data : data,\n success: function(data){\n $btn.removeClass('os-loading');\n if(data.status === \"success\"){\n $booking_form_element.find('.step-confirmation-set-password').html('').hide();\n $booking_form_element.find('.confirmation-cabinet-info').show();\n }else{\n latepoint_show_message_inside_element(data.message, $booking_form_element.find('.step-confirmation-set-password'), 'error');\n }\n }\n });\n return false;\n });\n\n $booking_form_element.on('click', '.qr-show-trigger', function(){\n var $booking_form_element = jQuery(this).closest('.latepoint-booking-form-element');\n $booking_form_element.find('.qr-code-on-full-summary').addClass('show-vevent-qr-code');\n return false;\n });\n\n $booking_form_element.on('click', '.show-set-password-fields', function(){\n var $booking_form_element = jQuery(this).closest('.latepoint-booking-form-element');\n\n $booking_form_element.find('.step-confirmation-set-password').show();\n $booking_form_element.find('#customer_password').focus();\n jQuery(this).closest('.info-box').hide();\n return false;\n });\n}\n\nfunction latepoint_init_customer_dashboard(){\n latepoint_init_form_masks();\n jQuery('.latepoint-customer-timezone-selector-w select').on('change', function(e){\n var $select_box = jQuery(this);\n $select_box.closest('.latepoint-customer-timezone-selector-w').addClass('os-loading');\n var data = { 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'}\n jQuery.ajax({\n type : \"post\",\n dataType : \"json\",\n url : latepoint_helper.ajaxurl,\n data : data,\n success: function(data){\n $select_box.closest('.latepoint-customer-timezone-selector-w').removeClass('os-loading');\n if(data.status === \"success\"){\n location.reload();\n }else{\n\n }\n }\n });\n });\n\n\n\n jQuery('.latepoint-request-booking-cancellation').on('click', function(){\n if(!confirm(latepoint_helper.cancel_booking_prompt)) return false;\n var $this = jQuery(this);\n var $booking_box = $this.closest('.customer-booking');\n\n var route = jQuery(this).data('route');\n var params = {id: $booking_box.data('id')};\n\n var data = { action: latepoint_helper.route_action, route_name: route, params: params, layout: 'none', return_format: 'json' }\n $this.addClass('os-loading');\n jQuery.ajax({\n type : \"post\",\n dataType : \"json\",\n url : latepoint_helper.ajaxurl,\n data : data,\n success: function(data){\n if(data.status === \"success\"){\n $this.remove();\n location.reload();\n }else{\n $this.removeClass('os-loading');\n }\n }\n });\n return false;\n });\n\n}\n\nfunction latepoint_init_customer_dashboard_login(){\n if(jQuery('.latepoint-login-form-w #facebook-signin-btn').length && jQuery('.latepoint-login-form-w').length){\n jQuery('.latepoint-login-form-w #facebook-signin-btn').on('click', function(){\n var $login_form_wrapper = jQuery(this).closest('.latepoint-login-form-w');\n FB.login(function(response){\n if (response.status === 'connected' && response.authResponse) {\n var params = { token: response.authResponse.accessToken};\n var data = { action: latepoint_helper.route_action, route_name: $login_form_wrapper.find('#facebook-signin-btn').data('login-action'), params: jQuery.param(params), layout: 'none', return_format: 'json' };\n latepoint_step_content_change_start($login_form_wrapper);\n jQuery.ajax({\n type : \"post\",\n dataType : \"json\",\n url : latepoint_helper.ajaxurl,\n data : data,\n success: function(data){\n if(data.status === \"success\"){\n location.reload();\n }else{\n latepoint_show_message_inside_element(data.message, $login_form_wrapper);\n latepoint_step_content_change_end(false, $login_form_wrapper);\n }\n }\n });\n } else {\n\n }\n }, {scope: 'public_profile,email'});\n });\n }\n\n if(jQuery('.latepoint-login-form-w #google-signin-btn').length && jQuery('.latepoint-login-form-w').length && typeof google !== 'undefined'){\n // INIT GOOGLE LOGIN\n var googleUser = {};\n\n var $login_form_wrappers = jQuery('.latepoint-login-form-w');\n $login_form_wrappers.each(function(){\n var $login_form_wrapper = jQuery(this);\n google.accounts.id.initialize({\n client_id: latepoint_helper.social_login_google_client_id,\n callback: latepoint_process_google_login\n });\n google.accounts.id.renderButton(\n $login_form_wrapper.find('#google-signin-btn')[0],\n {theme: \"outline\", size: \"medium\"} // customization attributes\n );\n });\n }\n}\n\nfunction get_customer_name($wrapper){\n var customer_name = '';\n var first_name = $wrapper.find('input[name=\"customer[first_name]\"]').val();\n var last_name = $wrapper.find('input[name=\"customer[last_name]\"]').val();\n if(first_name) customer_name+= first_name;\n if(last_name) customer_name+= ' ' + last_name;\n return customer_name.trim();\n}\n\nfunction latepoint_init_step_contact(){\n latepoint_init_facebook_login();\n latepoint_init_google_login();\n latepoint_init_form_masks();\n\n jQuery('.step-contact-w').each(function(){\n latepoint_reload_summary(jQuery(this).closest('.latepoint-booking-form-element'), 'customer', get_customer_name(jQuery(this)));\n });\n\n jQuery('.step-contact-w').on('keyup', 'input[name=\"customer[first_name]\"], input[name=\"customer[last_name]\"]', function(){\n var $booking_form_element = jQuery(this).closest('.latepoint-booking-form-element');\n latepoint_reload_summary($booking_form_element, 'customer', get_customer_name($booking_form_element));\n });\n\n jQuery('.step-contact-w').on('keyup', '.os-form-control.required', function(){\n var $booking_form_element = jQuery(this).closest('.latepoint-booking-form-element');\n if(latepoint_validate_fields($booking_form_element.find('.step-contact-w .os-form-control.required'))){\n }else{\n }\n });\n\n // Init Logout button\n jQuery('.step-customer-logout-btn').on('click', function(){\n var $booking_form_element = jQuery(this).closest('.latepoint-booking-form-element');\n var data = { action: latepoint_helper.route_action, route_name: jQuery(this).data('btn-action'), layout: 'none', return_format: 'json' }\n latepoint_step_content_change_start($booking_form_element);\n jQuery.ajax({\n type : \"post\",\n dataType : \"json\",\n url : latepoint_helper.ajaxurl,\n data : data,\n success: function(data){\n latepoint_reload_step($booking_form_element);\n }\n });\n return false;\n });\n\n // Init Login Existing Customer Button\n jQuery('.step-login-existing-customer-btn').on('click', function(){\n var $booking_form_element = jQuery(this).closest('.latepoint-booking-form-element');\n var params = { email: $booking_form_element.find('.os-step-existing-customer-login-w input[name=\"customer_login[email]\"]').val(), password: $booking_form_element.find('.os-step-existing-customer-login-w input[name=\"customer_login[password]\"]').val()}\n var data = { action: latepoint_helper.route_action, route_name: jQuery(this).data('btn-action'), params: jQuery.param(params), layout: 'none', return_format: 'json' }\n latepoint_step_content_change_start($booking_form_element);\n jQuery.ajax({\n type : \"post\",\n dataType : \"json\",\n url : latepoint_helper.ajaxurl,\n data : data,\n success: function(data){\n if(data.status === \"success\"){\n latepoint_reload_step($booking_form_element);\n }else{\n latepoint_show_message_inside_element(data.message, $booking_form_element.find('.os-step-existing-customer-login-w'));\n latepoint_step_content_change_end(false, $booking_form_element);\n }\n }\n });\n return false;\n });\n}\n\nfunction latepoint_step_content_change_start($booking_form_element){\n $booking_form_element.removeClass('step-content-loaded').addClass('step-content-loading');\n}\n\n// TODO\nfunction latepoint_step_content_change_end(new_content, $booking_form_element){\n if(new_content) $booking_form_element.find('.latepoint-body .latepoint-step-content').replaceWith(new_content);\n $booking_form_element.removeClass('step-content-loading').addClass('step-content-mid-loading');\n setTimeout(function(){\n $booking_form_element.removeClass('step-content-mid-loading').addClass('step-content-loaded');\n }, 50);\n}\n\nfunction latepoint_init_facebook_login(){\n if(!jQuery('#facebook-signin-btn').length || !jQuery('.latepoint-booking-form-element').length) return;\n jQuery('#facebook-signin-btn').on('click', function(){\n var $booking_form_element = jQuery(this).closest('.latepoint-booking-form-element');\n FB.login(function(response){\n if (response.status === 'connected' && response.authResponse) {\n var params = { token: response.authResponse.accessToken};\n var data = { action: latepoint_helper.route_action, route_name: $booking_form_element.find('#facebook-signin-btn').data('login-action'), params: jQuery.param(params), layout: 'none', return_format: 'json' };\n latepoint_step_content_change_start($booking_form_element);\n jQuery.ajax({\n type : \"post\",\n dataType : \"json\",\n url : latepoint_helper.ajaxurl,\n data : data,\n success: function(data){\n if(data.status === \"success\"){\n latepoint_reload_step($booking_form_element);\n }else{\n latepoint_show_message_inside_element(data.message, $booking_form_element.find('.os-step-existing-customer-login-w '));\n latepoint_step_content_change_end(false, $booking_form_element);\n }\n }\n });\n } else {\n\n }\n }, {scope: 'public_profile,email'});\n });\n}\n\nfunction latepoint_process_google_login(response, $booking_form_element = false){\n\n var params = {\n token: response.credential\n };\n var data = {\n action: latepoint_helper.route_action,\n route_name: latepoint_helper.social_login_google_route,\n params: jQuery.param(params),\n layout: 'none',\n return_format: 'json'\n };\n if($booking_form_element) latepoint_step_content_change_start($booking_form_element);\n jQuery.ajax({\n type : \"post\",\n dataType : \"json\",\n url : latepoint_helper.ajaxurl,\n data : data,\n success: function(data){\n if(data.status === \"success\"){\n if($booking_form_element){\n latepoint_reload_step($booking_form_element);\n }else{\n location.reload();\n }\n }else{\n latepoint_show_message_inside_element(data.message, $booking_form_element.find('.os-step-existing-customer-login-w '));\n latepoint_step_content_change_end(false, $booking_form_element);\n }\n }\n });\n}\n\nfunction latepoint_init_google_login(){\n if(!jQuery('#google-signin-btn').length || !jQuery('.latepoint-booking-form-element').length || typeof google === 'undefined') return;\n var googleUser = {};\n\n var $booking_form_elements = jQuery('.latepoint-booking-form-element');\n $booking_form_elements.each(function(){\n var $booking_form_element = jQuery(this);\n google.accounts.id.initialize({\n client_id: latepoint_helper.social_login_google_client_id,\n callback: (response) => latepoint_process_google_login(response, $booking_form_element)\n });\n google.accounts.id.renderButton(\n $booking_form_element.find('#google-signin-btn')[0],\n {theme: \"outline\", size: \"medium\"} // customization attributes\n );\n });\n}\n\nfunction latepoint_change_step_desc($booking_form_element, step_name){\n $booking_form_element.removeClass('step-changed').addClass('step-changing');\n setTimeout(function(){\n // Progress bar\n var $step_progress = $booking_form_element.find('.latepoint-progress li[data-step-name=\"' + step_name + '\"]');\n $step_progress.addClass('active').addClass('complete').prevAll().addClass('complete').removeClass('active');\n $step_progress.nextAll().removeClass('complete').removeClass('active');\n // Side panel\n var side_panel_desc = $booking_form_element.find('.latepoint-step-desc-library[data-step-name=\"' + step_name + '\"]').html();\n $booking_form_element.find('.latepoint-step-desc').html(side_panel_desc);\n\n // Top header\n var top_header_desc = $booking_form_element.find('.os-heading-text-library[data-step-name=\"' + step_name + '\"]').html();\n $booking_form_element.find('.os-heading-text').html(top_header_desc);\n setTimeout(function(){\n $booking_form_element.removeClass('step-changing').addClass('step-changed');\n }, 50);\n }, 500);\n}\n\n\nfunction latepoint_progress_prev($booking_form_element, step_name){\n var $step_progress = $booking_form_element.find('.latepoint-progress li[data-step-name=\"' + step_name + '\"]');\n $step_progress.addClass('active').addClass('complete').prevAll().addClass('complete').removeClass('active');\n $step_progress.nextAll().removeClass('complete').removeClass('active');\n}\n\n\nfunction latepoint_progress_next($booking_form_element, step_name){\n var $step_progress = $booking_form_element.find('.latepoint-progress li[data-step-name=\"' + step_name + '\"]');\n $step_progress.addClass('active').addClass('complete').prevAll().addClass('complete').removeClass('active');\n $step_progress.nextAll().removeClass('complete').removeClass('active');\n}\n\n\nfunction latepoint_next_step_description($booking_form_element, step_name){\n $booking_form_element.removeClass('step-changed').addClass('step-changing');\n setTimeout(function(){\n $booking_form_element.find('.latepoint-step-desc').html($booking_form_element.find('.latepoint-step-desc-library.active').removeClass('active').next('.latepoint-step-desc-library').addClass('active').html());\n $booking_form_element.find('.os-heading-text').html($booking_form_element.find('.os-heading-text-library.active').removeClass('active').next('.os-heading-text-library').addClass('active').html());\n setTimeout(function(){\n $booking_form_element.removeClass('step-changing').addClass('step-changed');\n }, 50);\n }, 500);\n}\nfunction latepoint_prev_step_description($booking_form_element, step_name){\n $booking_form_element.removeClass('step-changed').addClass('step-changing');\n setTimeout(function(){\n $booking_form_element.find('.latepoint-step-desc').html($booking_form_element.find('.latepoint-step-desc-library.active').removeClass('active').prev('.latepoint-step-desc-library').addClass('active').html());\n $booking_form_element.find('.os-heading-text').html($booking_form_element.find('.os-heading-text-library.active').removeClass('active').prev('.os-heading-text-library').addClass('active').html());\n setTimeout(function(){\n $booking_form_element.removeClass('step-changing').addClass('step-changed');\n }, 50);\n }, 500);\n}\n\n\nfunction latepoint_validate_fields($fields){\n var is_valid = true;\n $fields.each(function(index){\n if(jQuery(this).val() == ''){\n is_valid = false;\n return false;\n }\n });\n return is_valid;\n}\n\n\nfunction latepoint_submit_booking_form($booking_form){\n\n var $booking_form_element = $booking_form.closest('.latepoint-booking-form-element');\n\n $booking_form_element.removeClass('step-content-loaded').addClass('step-content-loading');\n jQuery.ajax({\n type : \"post\",\n dataType : \"json\",\n processData: false,\n contentType: false,\n url : latepoint_helper.ajaxurl,\n data : latepoint_create_form_data_from_booking_form($booking_form),\n success: function(data){\n if(data.status === \"success\"){\n latepoint_hide_message_inside_element($booking_form_element.find('.latepoint-body'));\n if($booking_form_element.data('flash-error')){\n latepoint_show_message_inside_element($booking_form_element.data('flash-error'), $booking_form_element.find('.latepoint-body'));\n $booking_form_element.data('flash-error', '');\n }\n $booking_form_element.find('.latepoint_current_step').val(data.step_name);\n $booking_form_element.removeClass(function (index, className) { return (className.match (/(^|\\s)current-step-\\S+/g) || []).join(' '); }).addClass('current-step-' + data.step_name);\n setTimeout(function(){\n $booking_form_element.removeClass('step-content-loading').addClass('step-content-mid-loading');\n $booking_form_element.find('.latepoint-body').find('.latepoint-step-content').addClass('is-hidden');\n if($booking_form_element.find('.latepoint-step-content[data-step-name=\"'+ data.step_name +'\"]')){\n $booking_form_element.find('.latepoint-step-content[data-step-name=\"'+ data.step_name +'\"]').remove();\n }\n $booking_form_element.find('.latepoint-body').append(data.message);\n\n latepoint_init_step(data.step_name, $booking_form_element);\n setTimeout(function(){\n $booking_form_element.removeClass('step-content-mid-loading').addClass('step-content-loaded');\n $booking_form_element.find('.latepoint-next-btn, .latepoint-prev-btn').removeClass('os-loading');\n }, 50);\n }, 500);\n\n if(data.is_pre_last_step){\n $booking_form_element.data('next-submit-is-last', 'yes');\n $booking_form_element.find('.latepoint-next-btn span').text($booking_form_element.find('.latepoint-next-btn').data('pre-last-step-label'));\n }else{\n $booking_form_element.data('next-submit-is-last', 'no');\n $booking_form_element.find('.latepoint-next-btn span').text($booking_form_element.find('.latepoint-next-btn').data('label'));\n }\n if(data.is_last_step){\n $booking_form_element.addClass('hidden-buttons').find('.latepoint-footer').remove();\n $booking_form_element.find('.latepoint-progress').css( 'opacity', 0 );\n $booking_form_element.closest('.latepoint-summary-is-open').removeClass('latepoint-summary-is-open');\n $booking_form_element.addClass('is-final-step');\n }else{\n if(data.show_next_btn === true){\n latepoint_show_next_btn($booking_form_element);\n }else{\n latepoint_hide_next_btn($booking_form_element);\n }\n if(data.show_prev_btn === true){\n latepoint_show_prev_btn($booking_form_element);\n }else{\n latepoint_hide_prev_btn($booking_form_element);\n }\n }\n latepoint_change_step_desc($booking_form_element, data.step_name);\n }else{\n $booking_form_element.removeClass('step-content-loading').addClass('step-content-loaded');\n $booking_form_element.find('.latepoint-next-btn, .latepoint-prev-btn').removeClass('os-loading');\n if(data.send_to_step && $booking_form_element.find('.latepoint-step-content[data-step-name=\"'+ data.send_to_step +'\"]').length){\n $booking_form_element.data('flash-error', data.message);\n latepoint_reload_step($booking_form_element, data.send_to_step);\n }else{\n latepoint_show_message_inside_element(data.message, $booking_form_element.find('.latepoint-body'));\n latepoint_show_prev_btn($booking_form_element);\n }\n }\n $booking_form.find('.latepoint_step_direction').val('next');\n }\n });\n}\n\nfunction latepoint_show_error_and_stop_loading_booking_form(error, $booking_form_element){\n if(error.send_to_step && $booking_form_element.find('.latepoint-step-content[data-step-name=\"'+ error.send_to_step +'\"]').length){\n latepoint_reload_step($booking_form_element, error.send_to_step);\n $booking_form_element.data('flash-error', error.message);\n }else{\n latepoint_show_message_inside_element(error.message, $booking_form_element.find('.latepoint-body'), 'error');\n\n if($booking_form_element.hasClass('step-content-loading')) $booking_form_element.removeClass('step-content-loading').addClass('step-content-loaded');\n $booking_form_element.find('.latepoint-next-btn').removeClass('os-loading');\n\n // if previous step exists - show prev button\n if($booking_form_element.find('.latepoint-step-content:last-child').prev('.latepoint-step-content').length) latepoint_show_prev_btn($booking_form_element);\n latepoint_scroll_to_top_of_booking_form($booking_form_element);\n }\n\n\n}\n\nfunction latepoint_init_booking_form($booking_form_element){\n $booking_form_element.find('.latepoint-form').on('submit', function(e){\n e.preventDefault();\n var $booking_form = jQuery(this);\n\n latepoint_hide_prev_btn($booking_form_element);\n var current_step = $booking_form_element.find('.latepoint_current_step').val();\n var callbacks_list = [];\n $booking_form_element.trigger('latepoint:submitBookingForm', [{ current_step: current_step,\n callbacks_list: callbacks_list,\n is_final_submit: $booking_form_element.data('next-submit-is-last') == 'yes',\n direction: $booking_form_element.find('.latepoint_step_direction').val()}]);\n try{\n jQuery.when(...callbacks_list.map(callback => callback.action()))\n .done(() => {\n latepoint_submit_booking_form($booking_form);\n })\n .fail((error) => {\n latepoint_show_error_and_stop_loading_booking_form(error, $booking_form_element)\n });\n }catch(error){\n latepoint_show_error_and_stop_loading_booking_form(error, $booking_form_element);\n }\n });\n\n $booking_form_element.find('.latepoint-lightbox-summary-trigger').on('click', function(){\n var $wrapper = jQuery(this).closest('.latepoint-w');\n $wrapper.toggleClass('show-summary-on-mobile');\n return false;\n });\n\n $booking_form_element.find('.latepoint-lightbox-close').on('click', function(){\n\n let params = new URLSearchParams(location.search);\n if(params.has('latepoint_booking_intent_key')){\n params.delete('latepoint_booking_intent_key');\n history.replaceState(null, '', '?' + params + location.hash);\n }\n\n jQuery('body').removeClass('latepoint-lightbox-active');\n jQuery('.latepoint-lightbox-w').remove();\n return false;\n });\n\n\n\n $booking_form_element.find('.latepoint-timezone-selector-w select').on('change', function(e){\n var $select_box = jQuery(this);\n $select_box.closest('.latepoint-timezone-selector-w').addClass('os-loading');\n var data = { action: latepoint_helper.route_action, route_name: jQuery(this).closest('.latepoint-timezone-selector-w').data('route-name'), params: { timezone_name: jQuery(this).val()}, layout: 'none', return_format: 'json'}\n $booking_form_element.removeClass('step-content-loaded').addClass('step-content-loading');\n jQuery.ajax({\n type : \"post\",\n dataType : \"json\",\n url : latepoint_helper.ajaxurl,\n data : data,\n success: function(data){\n $select_box.closest('.latepoint-timezone-selector-w').removeClass('os-loading');\n $booking_form_element.removeClass('step-content-loading');\n if(data.status === \"success\"){\n // reload datepicker if its the step\n if($select_box.closest('.latepoint-booking-form-element').hasClass('current-step-datepicker')){\n latepoint_reload_step($select_box.closest('.latepoint-booking-form-element'));\n }\n }else{\n\n }\n }\n });\n });\n\n if(!latepoint_helper.is_timezone_selected){\n const tzid = Intl.DateTimeFormat().resolvedOptions().timeZone;\n if(tzid){\n if(tzid != $booking_form_element.find('.latepoint-timezone-selector-w select').val()) $booking_form_element.find('.latepoint-timezone-selector-w select').val(tzid).change();\n }\n }\n\n\n\n $booking_form_element.on('click', '.lp-option', function(){\n jQuery(this).closest('.lp-options').find('.lp-option.selected').removeClass('selected');\n jQuery(this).addClass('selected');\n });\n\n\n\n\n // Next Step button Click\n $booking_form_element.find('.latepoint-next-btn').on('click', function(e){\n if(jQuery(this).hasClass('disabled') || jQuery(this).hasClass('os-loading')) return false;\n var $next_btn = jQuery(this);\n $next_btn.addClass('os-loading');\n var $booking_form = jQuery(this).closest('.latepoint-form');\n\n var current_step = $booking_form_element.find('.latepoint_current_step').val();\n\n $booking_form.find('.latepoint_step_direction').val('next');\n var callbacks_list = [];\n\n $booking_form_element.trigger('latepoint:nextStepClicked', [{current_step: current_step, callbacks_list: callbacks_list}]);\n latepoint_hide_prev_btn($booking_form_element);\n\n try{\n jQuery.when(...callbacks_list.map(callback => callback.action()))\n .done(() => {\n $booking_form.trigger('submit');\n })\n .fail((error) => {\n latepoint_show_error_and_stop_loading_booking_form(error, $booking_form_element);\n });\n }catch(error){\n latepoint_show_error_and_stop_loading_booking_form(error, $booking_form_element);\n }\n return false;\n });\n\n\n // Previous Step button Click\n $booking_form_element.find('.latepoint-prev-btn').on('click', function(e){\n if(jQuery(this).hasClass('disabled') || jQuery(this).hasClass('os-loading')) return false;\n var $booking_form = jQuery(this).closest('.latepoint-form');\n\n var current_step = $booking_form_element.find('.latepoint_current_step').val();\n var $current_step = $booking_form_element.find('.latepoint-step-content[data-step-name=\"'+current_step+'\"]');\n\n if(current_step == 'locations'){\n }\n if(current_step == 'agents'){\n }\n if(current_step == 'payment'){\n var $payment_step = $booking_form_element.find('.step-payment-w');\n if($payment_step.length){\n $payment_step.find('.lp-option.selected').removeClass('selected');\n var new_sub_step = latepoint_get_payment_sub_step($booking_form_element, $payment_step.attr('data-sub-step'), true);\n // hide all payment method content blocks\n if(new_sub_step != $payment_step.attr('data-sub-step')){\n $payment_step.find('.lp-payment-method-content').hide();\n $payment_step.attr('data-sub-step', new_sub_step);\n latepoint_hide_next_btn($booking_form_element);\n return false;\n }\n }\n }\n if(current_step == 'services'){\n var $services_step = $booking_form_element.find('.step-services-w');\n if($services_step.hasClass('selecting-service-duration')){\n $services_step.removeClass('selecting-service-duration');\n $services_step.find('.os-services > .os-item.selected').removeClass('selected');\n clear_sub_step_duration($booking_form_element);\n if(($booking_form_element.find('.latepoint-step-content').length <= 1) && !$services_step.hasClass('selecting-item-category')){\n latepoint_hide_prev_btn($booking_form_element)\n }\n latepoint_reload_summary($booking_form_element);\n return false;\n }\n if($services_step.hasClass('selecting-total-attendies')){\n $services_step.removeClass('selecting-total-attendies');\n if($services_step.find('.os-services > .os-item.selected').hasClass('has-multiple-durations')){\n // multiple durations\n $services_step.find('.os-services > .os-item.selected .os-service-durations .os-selectable-item.selected').removeClass('selected');\n $services_step.addClass('selecting-service-duration');\n latepoint_hide_next_btn($booking_form_element);\n }else{\n $services_step.find('.os-services > .os-item.selected').removeClass('selected');\n }\n clear_sub_step_attendies($booking_form_element);\n if(($booking_form_element.find('.latepoint-step-content').length <= 1) && !$services_step.hasClass('selecting-item-category')){\n latepoint_hide_prev_btn($booking_form_element);\n }\n latepoint_reload_summary($booking_form_element);\n return false;\n }\n }\n\n // handle categories\n if($current_step.hasClass('selecting-item-category')){\n if($current_step.find('.os-item-category-w .os-item-category-w.selected').length){\n $current_step.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');\n }else{\n $current_step.removeClass('selecting-item-category').find('.os-item-category-w.selected').removeClass('selected');\n $current_step.removeClass('selecting-item-category').find('.os-item-categories-holder.show-selected-only').removeClass('show-selected-only');\n }\n if(($booking_form_element.find('.latepoint-step-content').length <= 1) && !$current_step.hasClass('selecting-item-category')){\n latepoint_hide_prev_btn($booking_form_element);\n }\n latepoint_reload_summary($booking_form_element);\n return false;\n }\n\n var $current_active_step = $booking_form_element.find('.latepoint-step-content:last-child');\n if($current_active_step.data('clear-action')){\n window[$current_active_step.data('clear-action')]($booking_form_element);\n }\n\n var $back_btn = jQuery(this);\n $back_btn.addClass('os-loading');\n $booking_form_element.removeClass('step-content-loaded').addClass('step-content-loading');\n var $new_current_step = $booking_form_element.find('.latepoint-step-content.is-hidden').last();\n var new_current_step_name = $new_current_step.data('step-name');\n latepoint_change_step_desc($booking_form_element, new_current_step_name);\n setTimeout(function(){\n $new_current_step.removeClass('is-hidden');\n $current_active_step.remove();\n $booking_form_element.find('.latepoint_current_step').val(new_current_step_name);\n $booking_form_element.removeClass(function (index, className) { return (className.match (/(^|\\s)current-step-\\S+/g) || []).join(' '); }).addClass('current-step-' + new_current_step_name);\n $booking_form_element.find('.latepoint-next-btn span').text($booking_form_element.find('.latepoint-next-btn').data('label'));\n $booking_form_element.data('next-submit-is-last', 'no');\n latepoint_show_next_btn($booking_form_element);\n $back_btn.removeClass('os-loading');\n if($booking_form_element.find('.latepoint-step-content').length <= 1){\n if($new_current_step.hasClass('selecting-item-category')){\n\n }\n if(new_current_step_name == 'services'){\n var $services_step = $booking_form_element.find('.step-services-w');\n if($services_step.hasClass('selecting-service-duration') || $services_step.hasClass('selecting-total-attendies') || $services_step.hasClass('selecting-item-category')){\n if($services_step.find('.os-services > .os-item.selected').hasClass('is-preselected')){\n // if service is preselected check if there are both multiple durations and quantity selector and only then show prev button\n if($services_step.hasClass('selecting-total-attendies') && $services_step.find('.os-services > .os-item.selected').hasClass('has-multiple-durations')){\n // if selecting attendies and there are multiple durations - show prev button\n latepoint_show_prev_btn($booking_form_element);\n }else{\n latepoint_hide_prev_btn($booking_form_element);\n }\n }else{\n latepoint_show_prev_btn($booking_form_element);\n }\n }else{\n latepoint_hide_prev_btn($booking_form_element);\n }\n }else{\n if(!$new_current_step.hasClass('selecting-item-category')){\n latepoint_hide_prev_btn($booking_form_element);\n }\n }\n }\n $booking_form_element.removeClass('step-content-loading').addClass('step-content-mid-loading');\n setTimeout(function(){\n $booking_form_element.removeClass('step-content-mid-loading').addClass('step-content-loaded');\n latepoint_hide_message_inside_element($booking_form_element.find('.latepoint-body'));\n latepoint_reload_summary($booking_form_element);\n }, 150);\n }, 700);\n return false;\n });\n\n latepoint_init_agent_details_link($booking_form_element);\n}\n\nfunction latepoint_init_booking_form_by_trigger($trigger){\n var route = latepoint_helper.booking_button_route;\n var params = {};\n var restrictions = {};\n if($trigger.data('show-service-categories')) restrictions.show_service_categories = $trigger.data('show-service-categories');\n if($trigger.data('show-locations')) restrictions.show_locations = $trigger.data('show-locations');\n if($trigger.data('show-services')) restrictions.show_services = $trigger.data('show-services');\n if($trigger.data('show-agents')) restrictions.show_agents = $trigger.data('show-agents');\n if($trigger.data('selected-location')) restrictions.selected_location = $trigger.data('selected-location');\n if($trigger.data('selected-agent')) restrictions.selected_agent = $trigger.data('selected-agent');\n if($trigger.data('selected-service')) restrictions.selected_service = $trigger.data('selected-service');\n if($trigger.data('selected-duration')) restrictions.selected_duration = $trigger.data('selected-duration');\n if($trigger.data('selected-total-attendees')) restrictions.selected_total_attendies = $trigger.data('selected-total-attendees');\n if($trigger.data('selected-service-category')) restrictions.selected_service_category = $trigger.data('selected-service-category');\n if($trigger.data('selected-start-date')) restrictions.selected_start_date = $trigger.data('selected-start-date');\n if($trigger.data('selected-start-time')) restrictions.selected_start_time = $trigger.data('selected-start-time');\n if($trigger.data('calendar-start-date')) restrictions.calendar_start_date = $trigger.data('calendar-start-date');\n if($trigger.data('source-id')) restrictions.source_id = $trigger.data('source-id');\n\n if(jQuery.isEmptyObject(restrictions) == false) params.restrictions = restrictions;\n\n var data = { action: latepoint_helper.route_action, route_name: route, params: params, layout: 'none', return_format: 'json' }\n $trigger.addClass('os-loading');\n jQuery.ajax({\n type : \"post\",\n dataType : \"json\",\n url : latepoint_helper.ajaxurl,\n data : data,\n success: function(data){\n if(data.status === \"success\"){\n var lightbox_class = 'booking-form-in-lightbox';\n if($trigger.data('hide-summary') != 'yes') lightbox_class+= ' latepoint-with-summary';\n if($trigger.data('hide-side-panel') == 'yes') lightbox_class+= ' latepoint-hide-side-panel';\n latepoint_show_data_in_lightbox(data.message, lightbox_class);\n var $booking_form_element = jQuery('.latepoint-lightbox-w .latepoint-booking-form-element');\n latepoint_init_booking_form($booking_form_element);\n latepoint_init_step(data.step, $booking_form_element);\n jQuery('body').addClass('latepoint-lightbox-active');\n $trigger.removeClass('os-loading');\n\n }else{\n $trigger.removeClass('os-loading');\n // console.log(data.message);\n }\n }\n });\n }\n","/*\n * Copyright (c) 2023 LatePoint LLC. All rights reserved.\n */\n\nfunction latepoint_hide_reschedule_button() {\n jQuery('.reschedule-confirmation-button-wrapper').hide();\n}\n\nfunction latepoint_show_reschedule_button() {\n jQuery('.reschedule-confirmation-button-wrapper').show();\n}\n\nfunction latepoint_customer_cabinet_reload_booking_tile($booking_tile){\n $booking_tile.addClass('os-loading');\n let params = {\n booking_id: $booking_tile.data('id'),\n }\n let data = {\n action: latepoint_helper.route_action,\n route_name: $booking_tile.data('route-name'),\n params: params,\n layout: 'none',\n return_format: 'json'\n };\n jQuery.ajax({\n type: \"post\",\n dataType: \"json\",\n url: latepoint_helper.ajaxurl,\n data: data,\n success: function (data) {\n $booking_tile.removeClass('os-loading')\n if (data.status === \"success\") {\n $booking_tile.replaceWith(data.message);\n } else {\n alert(data.message);\n }\n }\n });\n}\n\n\nfunction latepoint_init_reschedule() {\n\n jQuery('.reschedule-calendar-wrapper').on('click', '.latepoint-request-reschedule-trigger', function () {\n let $trigger = jQuery(this)\n let $wrapper = $trigger.closest('.reschedule-calendar-wrapper')\n let booking_id = $wrapper.find('input[type=\"hidden\"].latepoint_booking_id').val()\n\n $trigger.addClass('os-loading')\n let params = {\n booking_id: booking_id,\n key: $wrapper.find('input[type=\"hidden\"].latepoint_manage_booking_key').val(),\n start_date: $wrapper.find('input[type=\"hidden\"].latepoint_start_date').val(),\n start_time: $wrapper.find('input[type=\"hidden\"].latepoint_start_time').val(),\n }\n let data = {\n action: latepoint_helper.route_action,\n route_name: $trigger.data('route-name'),\n params: params,\n layout: 'none',\n return_format: 'json'\n };\n jQuery.ajax({\n type: \"post\",\n dataType: \"json\",\n url: latepoint_helper.ajaxurl,\n data: data,\n success: function (data) {\n $trigger.removeClass('os-loading')\n if (data.status === \"success\") {\n jQuery('.latepoint-lightbox-content').html(data.message);\n jQuery('.latepoint-lightbox-footer, .latepoint-lightbox-heading').remove();\n if(jQuery('.customer-bookings-tiles').length){\n // called from customer cabinet\n latepoint_customer_cabinet_reload_booking_tile(jQuery('.customer-bookings-tiles .customer-booking[data-id=\"'+booking_id+'\"]'));\n }else{\n // called from manage by key\n latepoint_manage_by_key_reload_booking();\n }\n } else {\n latepoint_show_message_inside_element(data.message, jQuery('.latepoint-lightbox-content'), 'error');\n jQuery('.latepoint-lightbox-content').animate({ scrollTop: 0 }, 300);\n }\n }\n });\n return false;\n });\n\n jQuery('.reschedule-calendar-wrapper').on('click', '.dp-timepicker-trigger', function () {\n var $reschedule_form_element = jQuery(this).closest('.reschedule-calendar-wrapper');\n if (jQuery(this).hasClass('is-booked') || jQuery(this).hasClass('is-off')) {\n // Show error message that you cant select a booked period\n } else {\n if (jQuery(this).hasClass('selected')) {\n jQuery(this).removeClass('selected');\n jQuery(this).find('.dp-success-label').remove();\n $reschedule_form_element.find('.latepoint_start_time').val('');\n latepoint_hide_reschedule_button();\n } else {\n $reschedule_form_element.find('.dp-timepicker-trigger.selected').removeClass('selected').find('.dp-success-label').remove();\n var selected_timeslot_time = jQuery(this).find('.dp-label-time').html();\n jQuery(this).addClass('selected').find('.dp-label').prepend('<span class=\"dp-success-label\">' + $reschedule_form_element.find('.latepoint-form').data('selected-label') + '</span>');\n\n var minutes = parseInt(jQuery(this).data('minutes'));\n var timeshift_minutes = parseInt($reschedule_form_element.find('.latepoint_timeshift_minutes').val());\n // we substract timeshift minutes because its timeshift minutes that the business is running in, in opposite of what we do when we generate a calendar for a client\n if (timeshift_minutes) minutes = minutes - timeshift_minutes;\n var start_date = new Date($reschedule_form_element.find('.os-day.selected').data('date'));\n if (minutes < 0) {\n // business minutes are in previous day\n minutes = 24 * 60 + minutes;\n // move start date back 1 day\n start_date.setDate(start_date.getDate() - 1);\n } else if (minutes >= 24 * 60) {\n // business minutes are in next day\n minutes = minutes - 24 * 60;\n start_date.setDate(start_date.getDate() + 1);\n }\n $reschedule_form_element.find('.latepoint_start_date').val(start_date.toISOString().split('T')[0])\n $reschedule_form_element.find('.latepoint_start_time').val(minutes);\n latepoint_show_reschedule_button();\n }\n }\n return false;\n });\n\n\n jQuery('.reschedule-calendar-wrapper').on('click', '.os-month-next-btn', function () {\n var $reschedule_form_element = jQuery(this).closest('.reschedule-calendar-wrapper');\n var next_month_route_name = jQuery(this).data('route');\n if ($reschedule_form_element.find('.os-monthly-calendar-days-w.active + .os-monthly-calendar-days-w').length) {\n $reschedule_form_element.find('.os-monthly-calendar-days-w.active').removeClass('active').next('.os-monthly-calendar-days-w').addClass('active');\n latepoint_calendar_set_month_label($reschedule_form_element);\n } else {\n // TODO add condition to check maximum number months to call into the future\n if (true) {\n var $btn = jQuery(this);\n $btn.addClass('os-loading');\n var $calendar_element = $reschedule_form_element.find('.os-monthly-calendar-days-w').last();\n var calendar_year = $calendar_element.data('calendar-year');\n var calendar_month = $calendar_element.data('calendar-month');\n if (calendar_month == 12) {\n calendar_year = calendar_year + 1;\n calendar_month = 1;\n } else {\n calendar_month = calendar_month + 1;\n }\n var data = {\n action: latepoint_helper.route_action,\n route_name: next_month_route_name,\n params: {\n timezone_name: $reschedule_form_element.find('input[type=\"hidden\"].latepoint_timezone_name').val(),\n key: $reschedule_form_element.find('input[type=\"hidden\"].latepoint_manage_booking_key').val(),\n target_date_string: `${calendar_year}-${calendar_month}-1`,\n booking: {\n id: $reschedule_form_element.find('input[type=\"hidden\"].latepoint_booking_id').val()\n }\n },\n layout: 'none',\n return_format: 'json'\n }\n jQuery.ajax({\n type: \"post\",\n dataType: \"json\",\n url: latepoint_helper.ajaxurl,\n data: data,\n success: function (data) {\n $btn.removeClass('os-loading');\n if (data.status === \"success\") {\n $reschedule_form_element.find('.os-months').append(data.message);\n $reschedule_form_element.find('.os-monthly-calendar-days-w.active').removeClass('active').next('.os-monthly-calendar-days-w').addClass('active');\n latepoint_calendar_set_month_label($reschedule_form_element);\n } else {\n // console.log(data.message);\n }\n }\n });\n }\n }\n latepoint_calendar_show_or_hide_prev_next_buttons($reschedule_form_element);\n return false;\n });\n\n jQuery('.reschedule-calendar-wrapper').on('click', '.os-month-prev-btn', function () {\n var $reschedule_form_element = jQuery(this).closest('.reschedule-calendar-wrapper');\n if ($reschedule_form_element.find('.os-monthly-calendar-days-w.active').prev('.os-monthly-calendar-days-w').length) {\n $reschedule_form_element.find('.os-monthly-calendar-days-w.active').removeClass('active').prev('.os-monthly-calendar-days-w').addClass('active');\n latepoint_calendar_set_month_label($reschedule_form_element);\n }\n latepoint_calendar_show_or_hide_prev_next_buttons($reschedule_form_element);\n return false;\n });\n\n jQuery('.reschedule-calendar-wrapper .os-months').on('click', '.os-day', function () {\n if (jQuery(this).hasClass('os-day-passed')) return false;\n if (jQuery(this).hasClass('os-not-in-allowed-period')) return false;\n var $reschedule_form_element = jQuery(this).closest('.reschedule-calendar-wrapper');\n if (jQuery(this).closest('.os-monthly-calendar-days-w').hasClass('hide-if-single-slot')) {\n\n // HIDE TIMESLOT IF ONLY ONE TIMEPOINT\n if (jQuery(this).hasClass('os-not-available')) {\n // clicked on a day that has no available timeslots\n // do nothing\n } else {\n $reschedule_form_element.find('.os-day.selected').removeClass('selected');\n jQuery(this).addClass('selected');\n // set date\n $reschedule_form_element.find('.latepoint_start_date').val(jQuery(this).data('date'));\n if (jQuery(this).hasClass('os-one-slot-only')) {\n // clicked on a day that has only one slot available\n var bookable_minutes = jQuery(this).data('bookable-minutes').toString().split(':')[0];\n var selected_timeslot_time = latepoint_format_minutes_to_time(Number(bookable_minutes), Number(jQuery(this).data('service-duration')));\n $reschedule_form_element.find('.latepoint_start_time').val(jQuery(this).data('bookable-minutes'));\n $reschedule_form_element.find('.time-selector-w').slideUp(200);\n latepoint_show_reschedule_button()\n } else {\n // regular day with more than 1 timeslots available\n // build timeslots\n day_timeslots(jQuery(this), $reschedule_form_element, $reschedule_form_element.find('.latepoint-lightbox-content'));\n // initialize timeslots events\n // clear time and hide next btn\n $reschedule_form_element.find('.latepoint_start_time').val('');\n }\n }\n } else {\n\n // SHOW TIMESLOTS EVEN IF ONLY ONE TIMEPOINT\n $reschedule_form_element.find('.latepoint_start_date').val(jQuery(this).data('date'));\n latepoint_reload_summary($reschedule_form_element, 'date', jQuery(this).data('nice-date'));\n $reschedule_form_element.find('.os-day.selected').removeClass('selected');\n jQuery(this).addClass('selected');\n\n // build timeslots\n day_timeslots(jQuery(this), $reschedule_form_element, $reschedule_form_element.find('.latepoint-lightbox-content'));\n // initialize timeslots events\n // clear time and hide next btn\n latepoint_reload_summary($reschedule_form_element, 'time', '');\n $reschedule_form_element.find('.latepoint_start_time').val('');\n latepoint_hide_next_btn($reschedule_form_element);\n }\n\n return false;\n });\n}\n","/*\n * Copyright (c) 2024 LatePoint LLC. All rights reserved.\n */\n\nfunction latepoint_reload_day_schedule($day_view){\n $day_view.addClass('os-loading');\n let data = {\n action: latepoint_helper.route_action,\n route_name: $day_view.data('route-name'),\n params: $day_view.find(\"select, textarea, input\").serialize(),\n layout: 'none',\n return_format: 'json'\n }\n\n jQuery.ajax({\n type: \"post\",\n dataType: \"json\",\n url: latepoint_helper.ajaxurl,\n data: data,\n success: function (data) {\n if (data.status === \"success\") {\n $day_view.replaceWith(data.message);\n }\n }\n });\n}\n\nfunction latepoint_reload_events_calendar($events_calendar){\n $events_calendar.addClass('os-loading');\n let data = {\n action: latepoint_helper.route_action,\n route_name: $events_calendar.data('route-name'),\n params: $events_calendar.find(\"select, textarea, input\").serialize(),\n layout: 'none',\n return_format: 'json'\n }\n\n jQuery.ajax({\n type: \"post\",\n dataType: \"json\",\n url: latepoint_helper.ajaxurl,\n data: data,\n success: function (data) {\n if (data.status === \"success\") {\n $events_calendar.replaceWith(data.message);\n }\n }\n });\n\n}","/*\n * Copyright (c) 2022 LatePoint LLC. All rights reserved.\n */\n// @codekit-prepend \"bin/time.js\"\n// @codekit-prepend \"bin/shared.js\"\n// @codekit-prepend \"bin/notifications.js\";\n// @codekit-prepend \"bin/actions.js\"\n// @codekit-prepend \"bin/front/main.js\"\n// @codekit-prepend \"bin/front/_customer.js\"\n// @codekit-prepend \"bin/front/_events.js\"\n\n\n// DOCUMENT READY\njQuery(document).ready(function( $ ) {\n\n latepoint_init_customer_dashboard_login();\n latepoint_init_customer_dashboard();\n latepoint_init_manage_booking_by_key();\n\n\n jQuery('body').on('click', '.le-filter-trigger', function() {\n let $events_calendar = jQuery(this).closest('.latepoint-calendar-wrapper');\n if($events_calendar.hasClass('show-filters')){\n $events_calendar.removeClass('show-filters');\n $events_calendar.find('.latepoint-calendar-filters select').val('');\n latepoint_reload_events_calendar($events_calendar);\n }else{\n $events_calendar.addClass('show-filters');\n }\n return false;\n });\n\n jQuery('body').on('click', '.le-navigation-trigger', function() {\n let $trigger = jQuery(this);\n let $events_calendar = $trigger.closest('.latepoint-calendar-wrapper');\n $events_calendar.find('input[name=\"target_date_string\"]').val($trigger.data('target-date'));\n $trigger.addClass('os-loading');\n latepoint_reload_events_calendar($events_calendar);\n return false;\n });\n\n jQuery('body').on('change', '.le-day-filters select', function() {\n let $trigger = jQuery(this);\n let $day_view = $trigger.closest('.le-day-view-wrapper');\n latepoint_reload_day_schedule($day_view);\n return false;\n });\n\n jQuery('body').on('change', '.latepoint-calendar-filters select, .le-range-selector select', function() {\n let $trigger = jQuery(this);\n let $events_calendar = $trigger.closest('.latepoint-calendar-wrapper');\n $events_calendar.find('.le-filter').addClass('os-loading');\n latepoint_reload_events_calendar($events_calendar);\n return false;\n });\n\n jQuery('body').on('click', '.close-calendar-types', function() {\n jQuery(this).closest('.add-to-calendar-wrapper').removeClass('show-types');\n return false;\n });\n jQuery('body').on('click', '.open-calendar-types', function() {\n jQuery(this).closest('.add-to-calendar-wrapper').addClass('show-types');\n return false;\n });\n\n jQuery('body').on('latepoint:nextStepClicked', '.latepoint-booking-form-element', (e, data) => {\n\n latepoint_add_action(data.callbacks_list, () => {\n\n let deferred = jQuery.Deferred();\n let $booking_form = jQuery(e.currentTarget).find('.latepoint-form');\n let errors = latepoint_validate_form($booking_form);\n if(errors.length){\n let error_messages = errors.map(error => error.message ).join(', ');\n deferred.reject();\n throw new Error(error_messages);\n }else{\n deferred.resolve();\n }\n return deferred;\n }, 1);\n\n });\n\n if(latepoint_helper.start_from_booking_intent_key){\n\n var data = { \n action: latepoint_helper.route_action,\n route_name: latepoint_helper.start_from_booking_intent_route, \n params: { booking_intent_key: latepoint_helper.start_from_booking_intent_key }, \n layout: 'none', \n return_format: 'json' \n }\n\n $.ajax({\n type : \"post\",\n dataType : \"json\",\n url : latepoint_helper.ajaxurl,\n data : data,\n success: function(data){\n if(data.status === \"success\"){\n var lightbox_class = '';\n latepoint_show_data_in_lightbox(data.message, data.lightbox_class);\n var $booking_form_element = jQuery('.latepoint-lightbox-w .latepoint-booking-form-element');\n latepoint_init_booking_form($booking_form_element);\n $booking_form_element.find('.latepoint-step-content').addClass('is-hidden').last().removeClass('is-hidden');\n if($booking_form_element.find('.latepoint-step-content').length > 1) latepoint_show_prev_btn($booking_form_element);\n var $booking_form_element = jQuery('.latepoint-lightbox-w .latepoint-booking-form-element');\n $booking_form_element.find('.latepoint-step-content').each(function(){\n latepoint_init_step($(this).data('step-name'), $booking_form_element);\n });\n $('body').addClass('latepoint-lightbox-active');\n }else{\n // console.log(data.message);\n }\n }\n });\n }\n\n if(jQuery('.latepoint-booking-form-element').length){\n jQuery('.latepoint-booking-form-element').each(function(){\n latepoint_init_booking_form(jQuery(this));\n latepoint_init_step(jQuery(this).find('.latepoint_current_step').val(), jQuery(this));\n });\n }\n\n\n jQuery('body').on('click', '.latepoint-lightbox-close', function(){\n latepoint_lightbox_close();\n return false;\n });\n\n\n jQuery('body').on('click', '.os-step-tabs .os-step-tab', function(){\n jQuery(this).closest('.os-step-tabs').find('.os-step-tab').removeClass('active');\n jQuery(this).addClass('active');\n var target = jQuery(this).data('target');\n jQuery(this).closest('.os-step-tabs-w').find('.os-step-tab-content').hide();\n jQuery(target).show();\n });\n\n jQuery('body').on('keyup', '.os-form-group .os-form-control', function(){\n if(jQuery(this).val()){\n jQuery(this).closest('.os-form-group').addClass('has-value');\n }else{\n jQuery(this).closest('.os-form-group').removeClass('has-value');\n }\n });\n\n jQuery('.latepoint-tab-triggers').on('click', '.latepoint-tab-trigger', function(){\n var $tabs_wrapper = jQuery(this).closest('.latepoint-tabs-w')\n $tabs_wrapper.find('.latepoint-tab-trigger.active').removeClass('active');\n $tabs_wrapper.find('.latepoint-tab-content').removeClass('active');\n jQuery(this).addClass('active');\n $tabs_wrapper.find('.latepoint-tab-content' + jQuery(this).data('tab-target')).addClass('active');\n return false;\n });\n\n\n // Main Button to trigger lightbox opening\n jQuery('body').on('click', '.latepoint-book-button, .os_trigger_booking', function(){\n latepoint_init_booking_form_by_trigger(jQuery(this));\n return false;\n });\n\n});\n"]}