HEX
Server: nginx/1.18.0
System: Linux vps-9dcdb12e 5.15.0-176-generic #186-Ubuntu SMP Fri Mar 13 11:01:42 UTC 2026 x86_64
User: ubuntu (1000)
PHP: 8.1.2-1ubuntu2.24
Disabled: exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
Upload Files
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"]}