// source --> https://ordonna.com/wp-content/plugins/booknetic/app/Frontend/assets/js/booknetic.js?v=5.2.4&amp;ver=6.9.4 
var bookneticPaymentStatus;

(function($)
{
	"use strict";

	if( typeof window.bookneticInitBookingPage !== 'undefined' )
		return;

	window.bookneticHooks = {

		hooks: {},

		addFilter: function ( key, fn, fn_id )
		{
			key = key.toLowerCase();

			if ( ! this.hooks.hasOwnProperty( key ) )
			{
				this.hooks[ key ] = {};
			}

			if (fn === null && this.hooks[key].hasOwnProperty(fn_id)) {
				delete this.hooks[key][fn_id];
				return 0;
			}

			if (fn_id === undefined || fn_id === null) {
				while(true) {
					fn_id = Math.random().toString(36).substring(2, 15);
					if (!this.hooks[key].hasOwnProperty(fn_id))
						break;
				}
			}

			this.hooks[ key ][ fn_id ] = fn;
			return fn_id;
		},

		doFilter: function ( key, params, ...extra )
		{
			key = key.toLowerCase();

			if (!this.hooks.hasOwnProperty( key ) ) {
				return params;
			}

			for (let fn_id in this.hooks[key]) {
				let fn = this.hooks[key][fn_id];

				if ( typeof params === 'undefined' ) {
					params = fn( ...extra );
				} else {
					params = fn( params, ...extra );
				}
			}

			return params;
		},

		addAction: function ( key, fn, fn_id )
		{
			return this.addFilter( key, fn, fn_id );
		},

		doAction: function ( key, ...params )
		{
			this.doFilter( key, undefined, ...params );
		}
	};

	function __( key )
	{
		return key in BookneticData.localization ? BookneticData.localization[ key ] : key;
	}

	$.fn.handleScrollBooknetic = function()
	{
		if ( !this.hasClass('nice-scrollbar-primary') && ! window.matchMedia('(max-width: 1000px)').matches )
		{
			this.addClass( 'nice-scrollbar-primary' );
		}

		if( window.matchMedia('(max-width: 1000px)').matches && this.hasClass('nice-scrollbar-primary') )
		{
			booking_panel_js.find(".booknetic_appointment_container_body").removeClass('nice-scrollbar-primary')

			if ( $( '#country-listbox' ).length )
			{
				$( '#country-listbox' ).removeClass('nice-scrollbar-primary')
			}

			// return;
		}
	}

	let index = 0;
	window.bookneticInitBookingPage = function ( booking_panel_JS_element )
	{
		index++;
		let booking_panel_js = $(booking_panel_JS_element);

		if( booking_panel_js.data('booknetic_has_been_initiated') === true )
			return;

		booking_panel_js.data('booknetic_has_been_initiated', true);

		let booknetic = {

			google_recaptcha_token: null,
			google_recaptcha_action: 'booknetic_booking_panel_' + index,

			cartArr : [],
			cartHTMLBody : [],
			cartHTMLSideBar : [],
			cartCurrentIndex:0,
			cartErrors : {
				a:[],
				callbacks: [(arr)=>{
					if( arr.length > 0 )
					{
						let itemIds = [];

						arr.forEach((value)=>{
							if( itemIds.indexOf(value['cart_item']) === -1)
								itemIds.push(value['cart_item']);
						});


						booking_panel_js.find('.booknetic-cart-item-error .booknetic-cart-item-error-body').remove();
						booking_panel_js.find('.booknetic-cart-item-error').removeClass('show');

						arr.forEach((value)=>{
							if(value['cart_item']!==undefined)
							{
								booking_panel_js.find('div.booknetic-cart div[data-index='+ value['cart_item'] +'] .booknetic-cart-item-error').addClass('show');
								booking_panel_js.find('div.booknetic-cart div[data-index='+ value['cart_item'] +'] .booknetic-cart-item-error').append(`
										<div class="booknetic-cart-item-error-body">${value['message']}</div>
									`);
							}
						})


					}
					else
					{
						booking_panel_js.find('.booknetic-cart-item-error .booknetic-cart-item-error-body').remove();
						booking_panel_js.find('.booknetic-cart-item-error').removeClass('show');
					}
				}],
				get error()
				{
					return this.a;
				},
				set error(arr)
				{
					this.a = arr;
					for (let i = 0; i < this.callbacks.length; i++) {
						this.callbacks[i](arr );
					}
				}
			},
			__,

			panel_js : booking_panel_js,

			options: {
				'templates': {
					'loader': '<div class="booknetic_loading_layout"></div>'
				}
			},

			localization: {
				month_names: [ __('January'), __('February'), __('March'), __('April'), __('May'), __('June'), __('July'), __('August'), __('September'), __('October'), __('November'), __('December') ],
				day_of_week: [ __('Sun'), __('Mon'), __('Tue'), __('Wed'), __('Thu'), __('Fri'), __('Sat'), __('Sun') ] ,
			},

			calendarDateTimes: {},
			time_show_format: 1,
			calendarYear: null,
			calendarMonth: null,

			paymentWindow: null,
			paymentStatus: null,
			appointmentId: null, // doit: bu failed payment olan appointmenti silmek ucundu, bunu payment_id ederik
			ajaxResultConfirmStep: null,
			paymentId: null,
			dateBasedService: false,
			serviceData: null,

			globalDayOffs: {},
			globalTimesheet: {},


			loading: function ( onOff )
			{
				if( typeof onOff === 'undefined' || onOff )
				{
					booking_panel_js.find('#booknetic_progress').removeClass('booknetic_progress_done').show();
					$({property: 0}).animate({property: 100}, {
						duration: 1000,
						step: function()
						{
							var _percent = Math.round(this.property);
							if( !booking_panel_js.find('#booknetic_progress').hasClass('booknetic_progress_done') )
							{
								booking_panel_js.find('#booknetic_progress').css('width',  _percent+"%");
							}
						}
					});

					booking_panel_js.append( this.options.templates.loader );
				}
				else if( ! booking_panel_js.find('#booknetic_progress').hasClass('booknetic_progress_done') )
				{
					booking_panel_js.find('#booknetic_progress').addClass('booknetic_progress_done').css('width', 0);

					// IOS bug...
					setTimeout(function ()
					{
						booking_panel_js.find('.booknetic_loading_layout').remove();
					}, 0);
				}
			},

			htmlspecialchars_decode: function (string, quote_style)
			{
				var optTemp = 0,
					i = 0,
					noquotes = false;
				if(typeof quote_style==='undefined')
				{
					quote_style = 2;
				}
				string = string.toString().replace(/&lt;/g, '<').replace(/&gt;/g, '>');
				var OPTS = {
					'ENT_NOQUOTES': 0,
					'ENT_HTML_QUOTE_SINGLE': 1,
					'ENT_HTML_QUOTE_DOUBLE': 2,
					'ENT_COMPAT': 2,
					'ENT_QUOTES': 3,
					'ENT_IGNORE': 4
				};
				if(quote_style===0)
				{
					noquotes = true;
				}
				if(typeof quote_style !== 'number')
				{
					quote_style = [].concat(quote_style);
					for (i = 0; i < quote_style.length; i++){
						if(OPTS[quote_style[i]]===0){
							noquotes = true;
						} else if(OPTS[quote_style[i]]){
							optTemp = optTemp | OPTS[quote_style[i]];
						}
					}
					quote_style = optTemp;
				}
				if(quote_style & OPTS.ENT_HTML_QUOTE_SINGLE)
				{
					string = string.replace(/&#0*39;/g, "'");
				}
				if(!noquotes){
					string = string.replace(/&quot;/g, '"');
				}
				string = string.replace(/&amp;/g, '&');
				return string;
			},

			htmlspecialchars: function ( string, quote_style, charset, double_encode )
			{
				var optTemp = 0,
					i = 0,
					noquotes = false;
				if(typeof quote_style==='undefined' || quote_style===null)
				{
					quote_style = 2;
				}
				string = typeof string != 'string' ? '' : string;

				string = string.toString();
				if(double_encode !== false){
					string = string.replace(/&/g, '&amp;');
				}
				string = string.replace(/</g, '&lt;').replace(/>/g, '&gt;');
				var OPTS = {
					'ENT_NOQUOTES': 0,
					'ENT_HTML_QUOTE_SINGLE': 1,
					'ENT_HTML_QUOTE_DOUBLE': 2,
					'ENT_COMPAT': 2,
					'ENT_QUOTES': 3,
					'ENT_IGNORE': 4
				};
				if(quote_style===0)
				{
					noquotes = true;
				}
				if(typeof quote_style !== 'number')
				{
					quote_style = [].concat(quote_style);
					for (i = 0; i < quote_style.length; i++)
					{
						if(OPTS[quote_style[i]]===0)
						{
							noquotes = true;
						}
						else if(OPTS[quote_style[i]])
						{
							optTemp = optTemp | OPTS[quote_style[i]];
						}
					}
					quote_style = optTemp;
				}
				if(quote_style & OPTS.ENT_HTML_QUOTE_SINGLE)
				{
					string = string.replace(/'/g, '&#039;');
				}
				if(!noquotes)
				{
					string = string.replace(/"/g, '&quot;');
				}
				return string;
			},

			sanitizeHTML: function (node){
				node = node.replace(/<script\b[^>]*>([\s\S]*?)<\/script>/gi, '$1');
				node = node.replace(/&lt;script\b[^&gt;]*&gt;([\s\S]*?)&lt;\/script&gt;/gi, '$1');
				return node;
			},

			throttle: function(func, wait = 500) {
				let processing = false;

				return function (e) {
					if (processing) return;

					processing = true;

					func.call(this, e);

					setTimeout(() => {
						processing = false;
					}, wait);
				}
			},

			getCurrentCartItem: () => {
				return booknetic.cartArr[booknetic.cartCurrentIndex]
			},

			debounce: function(func, wait) {
				let timeout;

				return function(...args) {
					clearTimeout(timeout);
					timeout = setTimeout(() => func.apply(this, args), wait);
				};
			},

			formDataToObject: function ( formData )
			{
				var object = {};

				formData.forEach(function(value, key)
				{
					object[key] = value;
				});

				return object;
			},

			ajaxResultCheck: function ( res )
			{

				if( typeof res != 'object' )
				{
					try
					{
						res = JSON.parse(res);
					}
					catch(e)
					{
						this.toast( 'Error!' );
						return false;
					}
				}

				if( typeof res['status'] == 'undefined' )
				{
					this.toast( 'Error!' );
					return false;
				}

				if( res['status'] === 'error' )
				{
					if( typeof res['errors'] != 'undefined' && res['errors'].length > 0)
					{
						return false;
					}
					this.toast( typeof res['error_msg'] == 'undefined' ? 'Error!' : res['error_msg'] );
					return false;
				}

				if( res['status'] === 'ok' )
					return true;

				// else

				this.toast( 'Error!' );
				return false;
			},

			ajax: function ( action , params , func , loading, fnOnError, async_param )
			{
				// helper: best-effort JSON parse
				const tryParse = (x) => { try { return JSON.parse(x); } catch { return x; } };

				// backward-compatible defaults
				params      = typeof params      === 'undefined' ? {}            : params;
				func        = typeof func        === 'function'   ? func          : function(){};
				loading     = loading !== false;
				fnOnError   = typeof fnOnError   === 'function'   ? fnOnError     : function(){};
				async_param = typeof async_param === 'undefined' ? true          : async_param;

				const endLoader = () => { if ( loading ) booknetic.loading( 0 ); };

				/* -------------------------------------------------------------
				   Resolve backend / frontend identifiers
				------------------------------------------------------------- */
				const { backend, frontend } = ( action instanceof Object )
					? { backend: action[ 'backend_action' ], frontend: action[ 'frontend_action' ] }
					: { backend: action, frontend: action };

				/* -------------------------------------------------------------
				   Prepare payload
				------------------------------------------------------------- */
				const tenantId   = BookneticData.tenant_id || booking_panel_js.data( 'tenant_id' );
				const isFormData = params instanceof FormData;

				if ( isFormData )
				{
					params.append( 'action',    'bkntc_' + backend );
					params.append( 'tenant_id', tenantId );
				}
				else
				{
					params = { action: 'bkntc_' + backend, tenant_id: tenantId, ...params };
				}

				/* -------------------------------------------------------------
				   Hooks (before) and loader
				------------------------------------------------------------- */
				bookneticHooks.doAction( 'ajax_before_' + frontend, params, booknetic );
				params = bookneticHooks.doFilter( 'ajax', params, booknetic );
				params = bookneticHooks.doFilter( 'ajax_' + frontend, params, booknetic );

				if ( loading )
				{
					booknetic.loading( true );
				}

				/* -------------------------------------------------------------
				   Execute request
				------------------------------------------------------------- */
				$.ajax( {
					url:    BookneticData.ajax_url,
					method: 'POST',
					data:   params,
					async:  async_param,
					...( isFormData ? { processData: false, contentType: false } : {} )
				} ).done( function ( rawResult )
				{
					endLoader();

					const result = tryParse( rawResult );
					const ok     = booknetic.ajaxResultCheck( result, fnOnError );

					if ( ok )
					{
						func( result );
						bookneticHooks.doAction( 'ajax_after_' + frontend + '_success', booknetic, params, result );
					}
					else
					{
						fnOnError( result );
						bookneticHooks.doAction( 'ajax_after_' + frontend + '_error', booknetic, params, result );
					}
				} ).fail( function ( jqXHR )
				{
					endLoader();
					booknetic.toast( jqXHR.status + ' error!' );
					fnOnError();
					bookneticHooks.doAction( 'ajax_after_' + frontend + '_error', booknetic, params );
				} );
			},

			ajaxAsync: function ( action , params , loading, async_param )
			{
				return new Promise( function ( resolve, reject )
				{
					booknetic.ajax(
						action,
						params,
						function( result )
						{
							resolve( result );
						},
						loading,
						function ( error )
						{
							reject( error );
						},
						async_param
					);
				});
			},

			ajaxRest: (endpoint, method = "GET", data = {}, {noLoading = false} = {}) => {
				if (!noLoading) booknetic.loading(true);

				return $.ajax({
					url: restURL + endpoint,
					method,
					data,
					headers: {"X-Wp-Nonce": restNonce},
				})
					.always(() => {
						if (!noLoading) booknetic.loading(false);
					})
					.fail((jqXHR) => {
						booknetic.toast(jqXHR.status + " error!", "unsuccess");
					});
			},

			select2Ajax: function ( select, action, parameters )
			{
				var params = {};
				params['action'] = 'bkntc_' + action;
				params['tenant_id'] = BookneticData.tenant_id || booking_panel_js.data('tenant_id');

				select.select2({
					theme: 'bootstrap',
					placeholder: __('select'),
					language: {
						searching: function() {
							return __('searching');
						}
					},
					allowClear: true,
					ajax: {
						url: BookneticData.ajax_url,
						dataType: 'json',
						type: "POST",
						data: function ( q )
						{
							var sendParams = params;
							sendParams['q'] = q['term'];

							if( typeof parameters == 'function' )
							{
								var additionalParameters = parameters( $(this) );

								for (let key in additionalParameters)
								{
									sendParams[key] = additionalParameters[key];
								}
							}
							else if( typeof parameters == 'object' )
							{
								for (let key in parameters)
								{
									sendParams[key] = parameters[key];
								}
							}

							return sendParams;
						},
						processResults: function ( result )
						{
							if( booknetic.ajaxResultCheck( result ) )
							{
								try
								{
									result = JSON.parse(result);
								}
								catch(e)
								{

								}

								return result;
							}
						}
					}
				});
			},

			zeroPad: function(n, p)
			{
				p = p > 0 ? p : 2;

				n = String(n);
				while (n.length < p)
					n = '0' + n;

				return n;
			},

			toast: function( title )
			{
				if( title === false )
				{
					booking_panel_js.find('.booknetic_warning_message').fadeOut(200);
					return;
				}

				booking_panel_js.find('.booknetic_warning_message').text( booknetic.htmlspecialchars_decode( title, 'ENT_QUOTES' ) ).fadeIn(300);
				setTimeout(function ()
				{
					booking_panel_js.find('.booknetic_warning_message').fadeOut(200);
				}, 5000);
			},

			nonRecurringCalendar: function ( year , month, load_dates_from_backend, load_calendar )
			{
				load_calendar = !!load_calendar;

				const now = new Date();

				year  = year ?? now.getFullYear();
				month = month ?? now.getMonth();

				booknetic.loadDefaultDate( year, month, load_calendar );

				if ( load_dates_from_backend )
					booknetic.loadDateFromBackend( year, month, load_calendar );
			},

			loadDefaultDate: function( year, month, load )
			{
				booknetic.calendarYear = year;
				booknetic.calendarMonth = month;

				booknetic.displayCalendar( load );
				booknetic.displayBringPeopleSelect();
			},

			loadDateFromBackend: function( year, month, load )
			{
				booknetic.ajax( 'get_data', booknetic.ajaxParameters( {
					current_step: 'date_time',
					year:   year,
					month:  month + 1,
					info: booking_panel_js.data( 'info' )
				} ), function ( result )
				{
					booknetic.calendarDateTimes = result[ 'data' ];
					booknetic.time_show_format = result[ 'time_show_format' ];

					booknetic.calendarYear = result[ 'calendar_start_year' ];
					booknetic.calendarMonth = result[ 'calendar_start_month' ] - 1;

					booknetic.displayCalendar( load );
					booknetic.displayBringPeopleSelect();

					booknetic.addGroupAppointmentsCounterForBookneticCalendarDays();
				} , load );
			},

			displayBringPeopleSelect: function()
			{
				var select = booking_panel_js.find('.booknetic_number_of_brought_customers select');

				var options = '';

				for(var i = 1; i < booknetic.serviceMaxCapacity; i++ )
				{
					options += '<option value="' + i + '"> + ' + i + '</option>'
				}

				select.html( options );

			},

			displayCalendar: function( loader )
			{
				var _year = booknetic.calendarYear;
				var _month = booknetic.calendarMonth;

				var htmlContent		= "",
					febNumberOfDays	= "",
					counter			= 1,
					dateNow			= new Date(_year , _month ),
					month			= dateNow.getMonth()+1,
					year			= dateNow.getFullYear(),
					currentDate		= new Date();

				if (month == 2)
				{
					febNumberOfDays = ( (year%100!=0) && (year%4==0) || (year%400==0)) ? '29' : '28';
				}

				var monthNames	= booknetic.localization.month_names;
				var dayPerMonth	= [null, '31', febNumberOfDays ,'31','30','31','30','31','31','30','31','30','31']

				var nextDate	= new Date(month +'/01/'+year);
				var weekdays	= nextDate.getDay();

				let weekdays2;
				let week_start_n;
				let week_end_n;

				if( BookneticData.week_starts_on === 'monday' )
				{
					weekdays2	= weekdays == 0 ? 7 : weekdays;
					week_start_n = 1;
					week_end_n = 7;
				}
				else
				{
					weekdays2	= weekdays;
					week_start_n = 0;
					week_end_n = 6;
				}

				var numOfDays	= dayPerMonth[month];

				for( let w = week_start_n; w < weekdays2; w++ )
				{
					htmlContent += "<div class=\"booknetic_td booknetic_empty_day\"></div>";
				}

				while (counter <= numOfDays)
				{
					if (weekdays2 > week_end_n)
					{
						weekdays2 = week_start_n;
						htmlContent += "</div><div class=\"booknetic_calendar_rows\">";
					}
					var date_formatted = year + '-' + booknetic.zeroPad(month) + '-' + booknetic.zeroPad(counter);
					let date_format_view;

					if( BookneticData.date_format === 'Y-m-d' )
					{
						date_format_view = year + '-' + booknetic.zeroPad(month) + '-' + booknetic.zeroPad(counter);
					}
					else if( BookneticData.date_format === 'd-m-Y' )
					{
						date_format_view = booknetic.zeroPad(counter) + '-' + booknetic.zeroPad(month) + '-' + year;
					}
					else if( BookneticData.date_format === 'm/d/Y' )
					{
						date_format_view = booknetic.zeroPad(month) + '/' + booknetic.zeroPad(counter) + '/' + year;
					}
					else if( BookneticData.date_format === 'd/m/Y' )
					{
						date_format_view = booknetic.zeroPad(counter) + '/' + booknetic.zeroPad(month) + '/' + year;
					}
					else if( BookneticData.date_format === 'd.m.Y' )
					{
						date_format_view = booknetic.zeroPad(counter) + '.' + booknetic.zeroPad(month) + '.' + year;
					}

					var addClass = '';
					if( !(date_formatted in booknetic.calendarDateTimes['dates']) || booknetic.calendarDateTimes['dates'][ date_formatted ].length == 0 )
					{
						addClass = ' booknetic_calendar_empty_day';
					}

					var loadLine = booknetic.drawLoadLine( date_formatted );

					htmlContent +="<div class=\"booknetic_td booknetic_calendar_days"+addClass+"\" data-date=\"" + date_formatted + "\" data-date-format=\"" + date_format_view + "\"><div>"+counter+"<span>" + loadLine + "</span></div></div>";

					weekdays2++;
					counter++;
				}

				for( let w = weekdays2; w <= week_end_n; w++ )
				{
					htmlContent += "<div class=\"booknetic_td booknetic_empty_day\"></div>";
				}

				var calendarBody = "<div class=\"booknetic_calendar\">";

				calendarBody += "<div class=\"booknetic_calendar_rows booknetic_week_names\">";

				for( var w = 0; w < booknetic.localization.day_of_week.length; w++ )
				{
					if( w > week_end_n || w < week_start_n )
						continue;

					calendarBody += "<div class=\"booknetic_td\">" + booknetic.localization.day_of_week[ w ] + "</div>";
				}

				calendarBody += "</div>";

				calendarBody += "<div class=\"booknetic_calendar_rows\">";
				calendarBody += htmlContent;
				calendarBody += "</div></div>";

				booking_panel_js.find("#booknetic_calendar_area").html( calendarBody );

				booking_panel_js.find("#booknetic_calendar_area .days[data-count]:first").trigger('click');

				booking_panel_js.find(".booknetic_month_name").text( monthNames[ _month ] + ' ' + _year );
				booking_panel_js.find('.booknetic_times_list').empty();
				booking_panel_js.find('.booknetic_times_title').text(__('Select date'));

				if( !loader )
				{
					booking_panel_js.find(".booknetic_preloader_card3_box").hide();

					booking_panel_js.find('.booknetic_appointment_container_body [data-step-id="date_time"]').fadeIn(200, function()
					{
						booking_panel_js.find(".booknetic_appointment_container_body").scrollTop(0);
						booknetic.handleScroll();
					});
				}
			},

			drawLoadLine: function( date )
			{
				let zoom = function (input, outputSize) {
					if (input.length === outputSize) {
						return input;
					}
					const ratio = outputSize / input.length;

					const output = new Array(outputSize);

					for (let i = 0; i < outputSize; i++) {
						let value = false;

						const from = i / ratio;
						const inc = Math.max(1, 1 / ratio);

						for (let j = Math.floor(from); j < Math.floor(from + inc); j++) {
							value = value || input[j];
						}

						output[i] = value;
					}

					return output;
				};

				var fills = date in booknetic.calendarDateTimes['fills'] ? booknetic.calendarDateTimes['fills'][ date ] : [0];
				var data = date in booknetic.calendarDateTimes['dates'] ? booknetic.calendarDateTimes['dates'][ date ] : [];
				if (data.length === 1 && booknetic.dateBasedService && !( 'hide_available_slots' in booknetic.calendarDateTimes && booknetic.calendarDateTimes['hide_available_slots'] === 'on' )) {
					fills = [];
					for (let i = 0; i < data[0].max_capacity; i++) {
						fills.push(data[0].max_capacity - data[0].weight - i > 0 ? 1 : 0);
					}
				}

				var day_schedule = zoom(fills, 17);

				var line = '';
				for( var j = 0; j < day_schedule.length; j++ )
				{
					var isFree = day_schedule[j];
					line += '<i '+ (isFree?'a':'b') + '></i>';
				}

				return line;
			},

			timeToMin: function(str)
			{
				str = str.split(':');

				return parseInt(str[0]) * 60 + parseInt(str[1]);
			},

			timeZoneOffset: function()
			{
				if( BookneticData.client_time_zone === 'off' )
					return  '-';

				if ( window.Intl && typeof window.Intl === 'object' )
				{
					return Intl.DateTimeFormat().resolvedOptions().timeZone;
				}
				else
				{
					return new Date().getTimezoneOffset();
				}
			},

			datePickerFormat: function()
			{
				if( BookneticData.date_format === 'd-m-Y' )
				{
					return 'dd-mm-yyyy';
				}
				else if( BookneticData.date_format === 'm/d/Y' )
				{
					return 'mm/dd/yyyy';
				}
				else if( BookneticData.date_format === 'd/m/Y' )
				{
					return 'dd/mm/yyyy';
				}
				else if( BookneticData.date_format === 'd.m.Y' )
				{
					return 'dd.mm.yyyy';
				}

				return 'yyyy-mm-dd';
			},

			convertDate: function( date, from, to )
			{
				if( date == '' )
					return date;
				if( typeof to === 'undefined' )
				{
					to = booknetic.datePickerFormat();
				}

				to = to.replace('yyyy', 'Y').replace('dd', 'd').replace('mm', 'm');
				from = from.replace('yyyy', 'Y').replace('dd', 'd').replace('mm', 'm');

				var delimetr = from.indexOf('-') > -1 ? '-' : ( from.indexOf('.') > -1 ? '.' : '/' );
				var delimetr_to = to.indexOf('-') > -1 ? '-' : ( to.indexOf('.') > -1 ? '.' : '/' );
				var date_split = date.split(delimetr);
				var date_from_split = from.split(delimetr);
				var date_to_split = to.split(delimetr_to);

				var parts = {'m':0, 'd':0, 'Y':0};

				date_from_split.forEach(function( val, i )
				{
					parts[ val ] = i;
				});

				var new_date = '';
				date_to_split.forEach(function( val, j )
				{
					new_date += (new_date == '' ? '' : delimetr_to) + date_split[ parts[ val ] ];
				});

				return new_date;
			},

			getSelected: {

				location: function()
				{
					if( booking_panel_js.find('.booknetic_appointment_step_element[data-step-id="location"]').hasClass('booknetic_menu_hidden') )
					{
						var val = booking_panel_js.find('.booknetic_appointment_step_element[data-step-id="location"]').data('value');
					}
					else
					{
						val = booking_panel_js.find(".booknetic_appointment_container_body [data-step-id=\"location\"] .booknetic_card_selected").data('id');
					}

					return val ? val : '';
				},

				locationCategory: function()
				{
					return booking_panel_js.find('.booknetic_appointment_step_element[data-step-id="location"]').data('location-category');
				},

				staff: function()
				{
					if( booking_panel_js.find('.booknetic_appointment_step_element[data-step-id="staff"]').hasClass('booknetic_menu_hidden') )
					{
						var val = booking_panel_js.find('.booknetic_appointment_step_element[data-step-id="staff"]').data('value');
					}
					else
					{
						val = booking_panel_js.find(".booknetic_appointment_container_body [data-step-id=\"staff\"] .booknetic_card_selected").data('id');
					}

					return val ? val : '';
				},

				service: function()
				{
					const serviceId = booking_panel_js.find('.booknetic_appointment_step_element[data-step-id="service"]').data('value');

					if( serviceId )
					{
						var val = serviceId;
					}
					else
					{
						val = booking_panel_js.find(".booknetic_appointment_container_body [data-step-id=\"service\"] .booknetic_service_card_selected").data('id');
					}

					return val ? val : '';
				},

				serviceCategory: function()
				{
					return booking_panel_js.find('.booknetic_appointment_step_element[data-step-id="service"]').data('service-category');
				},

				serviceIsRecurring: function()
				{
					let val;

					if( booking_panel_js.find('.booknetic_appointment_step_element[data-step-id="service"]').hasClass('booknetic_menu_hidden') )
					{
						val = booking_panel_js.find( '.booknetic_appointment_step_element[data-step-id="service"]' ).data( 'is-recurring' );
					}
					else
					{
						val = booking_panel_js.find('.booknetic_appointment_container_body [data-step-id="service"] .booknetic_service_card_selected').data('is-recurring');
					}

					return val == '1';
				},

				serviceExtras: function()
				{
					var extras = [];

					booking_panel_js.find(".booknetic_appointment_container_body [data-step-id=\"service_extras\"]  .booknetic_service_extra_card_selected").each(function()
					{
						var extra_id	 = $(this).data('id'),
							quantity    = parseInt( $(this).find('.booknetic_service_extra_quantity_input').val() );

						if( quantity > 0  )
						{
							extras.push({
								extra: extra_id,
								quantity: quantity,
							});
						}
					});

					return extras;
				},

				date: function()
				{
					if( booknetic.getSelected.serviceIsRecurring() )
						return '';

					var val = booking_panel_js.find(".booknetic_selected_time").data('date-original');
					return val ? val : '';
				},

				date_in_customer_timezone: function()
				{
					if( booknetic.getSelected.serviceIsRecurring() )
						return '';

					var val = booking_panel_js.find(".booknetic_calendar_selected_day").data('date');
					return val ? val : '';
				},

				time: function()
				{
					if( booknetic.getSelected.serviceIsRecurring() )
						return booknetic.getSelected.recurringTime();

					var val = booking_panel_js.find(".booknetic_selected_time").data('time');
					return val ? val : '';
				},

				brought_people_count: function()
				{
					if( ! booking_panel_js.find('#booknetic_bring_someone_checkbox ').is(':checked') )
						return 0;

					let broughtPeopleInput = booking_panel_js.find('.booknetic_number_of_brought_customers_quantity_input');
					let val = Number( broughtPeopleInput.val() );
					let max = Number( broughtPeopleInput.data( 'max-quantity' ) );

					val = Number.isInteger( val ) ? val : 0;

					return val > max ? max : val;
				},

				dateTime: function()
				{
					if( booknetic.getSelected.serviceIsRecurring() )
						return booknetic.getSelected.recurringTime();

					var val = booking_panel_js.find(".booknetic_selected_time").data('full-date-time-start');
					return val ? val : '';
				},

				formData: function ()
				{
					var data = { data: {email: "", first_name: "", last_name: "", phone: ""} };

					booking_panel_js.find('input[name]#bkntc_input_name, input[name]#bkntc_input_surname, input[name]#bkntc_input_email, input[name]#bkntc_input_phone').each(function()
					{
						let name	= $(this).attr('name');
                        let value   = $(this).val();

                        if(name === 'phone'){
                            const itiInstance = booking_panel_js.find('#bkntc_input_phone').data('iti');
                            value = itiInstance.getNumber(bookneticIntlTelInput.utils.numberFormat.E164);
                        }

						if ( name === 'email' )
							value = value.trim()

						data['data'][name] = value;
					});

					return data;
				},

				customerId: function ()
				{
					let customerId = booking_panel_js.find('.bkntc_input_identifier_input').data('customer-id');

					return customerId || 0;
				},

				paymentMethod: function ()
				{
					if( booking_panel_js.find('.booknetic_appointment_step_element[data-step-id="confirm_details"]').hasClass('booknetic_menu_hidden') )
						return 'local';

					return booking_panel_js.find('.booknetic_payment_method.booknetic_payment_method_selected').attr('data-payment-type');
				},

				paymentDepositFullAmount: function ()
				{
					return booking_panel_js.find('input[name="input_deposit"][type="radio"]:checked').val() == '0' ? true : false;
				},

				recurringStartDate: function()
				{
					var val = booking_panel_js.find("#booknetic_recurring_start").val();

					if( val == '' || val == undefined )
						return '';

					return booknetic.convertDate( val, booknetic.datePickerFormat(), 'Y-m-d' );
				},

				recurringEndDate: function()
				{
					var val = booking_panel_js.find("#booknetic_recurring_end").val();

					if( val == '' || val == undefined )
						return '';

					return booknetic.convertDate( val, booknetic.datePickerFormat(), 'Y-m-d' );
				},

				recurringTimesArr: function()
				{
					if( !booknetic.serviceData )
						return JSON.stringify( {} );

					var repeatType		=	booknetic.serviceData['repeat_type'],
						recurringTimes	=	{};

					if( repeatType == 'weekly' )
					{
						booking_panel_js.find(".booknetic_times_days_of_week_area > .booknetic_active_day").each(function()
						{
							var dayNum = $(this).data('day');
							var time = $(this).find('.booknetic_wd_input_time').val();

							recurringTimes[ dayNum ] = time;
						});

						recurringTimes = JSON.stringify( recurringTimes );
					}
					else if( repeatType == 'daily' )
					{
						recurringTimes = booking_panel_js.find("#booknetic_daily_recurring_frequency").val();
					}
					else if( repeatType == 'monthly' )
					{
						recurringTimes = booking_panel_js.find("#booknetic_monthly_recurring_type").val();
						if( recurringTimes == 'specific_day' )
						{
							recurringTimes += ':' + ( booking_panel_js.find("#booknetic_monthly_recurring_day_of_month").val() == null ? '' : booking_panel_js.find("#booknetic_monthly_recurring_day_of_month").val().join(',') );
						}
						else
						{
							recurringTimes += ':' + booking_panel_js.find("#booknetic_monthly_recurring_day_of_week").val();
						}
					}

					return recurringTimes;
				},

				recurringTimesArrFinish: function()
				{
					var recurringDates = [];
					var hasTimeError = false;

					booking_panel_js.find("#booknetic_recurring_dates > tr").each(function()
					{
						var sDate = $(this).find('[data-date]').attr('data-date');
						var sTime = $(this).find('[data-time]').attr('data-time');
						if($(this).find('[data-service-type]').attr('data-service-type') === 'datebased')
						{
							sTime = '00:00';
						}
						// if tried to change the time
						if( $(this).find('.booknetic_time_select').length )
						{
							sTime = $(this).find('.booknetic_time_select').val();
							if( sTime == '' )
							{
								hasTimeError = true;
							}
						}
						else if( $(this).find('.booknetic_data_has_error').length > 0 )
						{
							hasTimeError = ! booknetic.dateBasedService;
						}

						recurringDates.push([ sDate, sTime ]);
					});

					if( hasTimeError )
					{
						return false;
					}

					return JSON.stringify( recurringDates );
				},

				recurringDateValidate: function()
				{
					let dateError = true;
					booking_panel_js.find("#booknetic_recurring_dates > tr").each(function()
					{
						if( $(this).find('td[data-date] span.booknetic_data_has_error').length > 0 )
						{
							dateError =  false;
						}
					});
					return dateError;
				},

				recurringTime: function ()
				{
					if( !booknetic.serviceData )
						return  '';

					var repeatType	=	booknetic.serviceData['repeat_type'],
						time		=	'';

					if( repeatType == 'daily' )
					{
						time = booking_panel_js.find("#booknetic_daily_time").val();
					}
					else if( repeatType == 'monthly' )
					{
						time = booking_panel_js.find("#booknetic_monthly_time").val();
					}

					return time;
				}

			},

			ajaxParameters: function ( defaultData = undefined , bool = true )
			{
				var data = new FormData();

				data.append( 'payment_method', booknetic.getSelected.paymentMethod() );
				data.append( 'deposit_full_amount', booknetic.getSelected.paymentDepositFullAmount() ? 1 : 0 );
				data.append( 'client_time_zone', booknetic.timeZoneOffset() );

				data.append( 'google_recaptcha_token', booknetic.google_recaptcha_token );
				data.append( 'google_recaptcha_action', booknetic.google_recaptcha_action );

				if( typeof defaultData != 'undefined' )
				{
					for ( var key in defaultData )
					{
						data.append( key, defaultData[key] );
					}
				}

				if ( bool )
				{
					this.stepManager.saveData();
				}

				data.append( 'cart', JSON.stringify(booknetic.cartArr) );
				data.append( 'current', booknetic.cartCurrentIndex );
				data.append( 'query_params', booknetic.getURLQueryParams() );

				return bookneticHooks.doFilter( 'appointment_ajax_data', data, booknetic );
			},

			getURLQueryParams: function()
			{
				const queryString = window.location.search;
				const searchParams = new URLSearchParams( queryString );

				let query_params = {};

				searchParams.forEach( ( value, key ) => {
					query_params[ key ] = value;
				} );

				return JSON.stringify( query_params );
			},

			calcRecurringTimes: function()
			{
				booknetic.serviceFixPeriodEndDate();

				var fullPeriod			=	booknetic.serviceData['full_period_value'];
				var repeatType			=	booknetic.serviceData['repeat_type'];
				var startDate			=	booknetic.getSelected.recurringStartDate();
				var endDate				=	booknetic.getSelected.recurringEndDate();

				if( startDate == '' || endDate == '' )
					return;

				endDate		= booknetic.getDateWithUTC( endDate );

				var cursor	= booknetic.getDateWithUTC( startDate ),
					numberOfAppointments = 0,
					frequency = ( repeatType === 'daily' ) ? booking_panel_js.find( '#booknetic_daily_recurring_frequency' ).val() : 1;

				if( !( frequency >= 1 ) )
				{
					frequency = 1;
					if( repeatType === 'daily' )
					{
						booking_panel_js.find('#booknetic_daily_recurring_frequency').val('1');
					}
				}

				var activeDays = {};
				if( repeatType === 'weekly' )
				{
					booking_panel_js.find(".booknetic_times_days_of_week_area > .booknetic_active_day").each(function()
					{
						activeDays[ $(this).data('day') ] = true;
					});

					if( $.isEmptyObject( activeDays ) )
					{
						return;
					}
				}
				else if( repeatType === 'monthly' )
				{
					var monthlyRecurringType = booking_panel_js.find("#booknetic_monthly_recurring_type").val();
					var monthlyDayOfWeek = booking_panel_js.find("#booknetic_monthly_recurring_day_of_week").val();

					var selectedDays = booking_panel_js.find("#booknetic_monthly_recurring_day_of_month").select2('val');

					if( selectedDays )
					{
						for( var i = 0; i < selectedDays.length; i++ )
						{
							activeDays[ selectedDays[i] ] = true;
						}
					}
				}

				while( cursor <= endDate )
				{
					var weekNum = cursor.getDay();
					//todo://why did we use parseInt here and on many other places? busy with other tasks rn
					// test it out in the future.
					var dayNumber = parseInt( cursor.getDate() );
					weekNum = weekNum > 0 ? weekNum : 7;
					var dateFormat = cursor.getFullYear() + '-' + booknetic.zeroPad( cursor.getMonth() + 1 ) + '-' + booknetic.zeroPad( cursor.getDate() );

					if( repeatType === 'monthly' )
					{
						if( ( monthlyRecurringType === 'specific_day' && typeof activeDays[ dayNumber ] != 'undefined' ) || booknetic.getMonthWeekInfo( cursor, monthlyRecurringType, monthlyDayOfWeek ) )
						{
							if(
								// if is not off day for staff or service
								!( typeof booknetic.globalTimesheet[ weekNum-1 ] != 'undefined' && booknetic.globalTimesheet[ weekNum-1 ]['day_off'] ) &&
								// if is not holiday for staff or service
								typeof booknetic.globalDayOffs[ dateFormat ] == 'undefined'
							)
							{
								numberOfAppointments++;
							}
						}
					}
					else if(
						// if weekly repeat type then only selected days of the week...
						( typeof activeDays[ weekNum ] != 'undefined' || repeatType === 'daily' ) &&
						// if is not off day for staff or service
						!( typeof booknetic.globalTimesheet[ weekNum-1 ] != 'undefined' && booknetic.globalTimesheet[ weekNum-1 ]['day_off'] ) &&
						// if is not holiday for staff or service
						typeof booknetic.globalDayOffs[ dateFormat ] == 'undefined'
					)
					{
						numberOfAppointments++;
					}

					cursor = new Date( cursor.getTime() + 1000 * 24 * 3600 * frequency );
				}

				booking_panel_js.find('#booknetic_recurring_times').val( numberOfAppointments );

			},

			initRecurringElements: function( )
			{
				booknetic.select2Ajax( booking_panel_js.find(".booknetic_wd_input_time, #booknetic_daily_time, #booknetic_monthly_time"), 'get_available_times_all', function( select )
				{
					var dayNumber = ( select.attr( 'id' ) === 'booknetic_daily_time' || select.attr( 'id' ) === 'booknetic_monthly_time' ) ? -1 : select.attr( 'id' ).replace( 'booknetic_time_wd_', '' );

					return booknetic.formDataToObject( booknetic.ajaxParameters({day_number: dayNumber}) );
				});

				booking_panel_js.find("#booknetic_monthly_recurring_day_of_month").select2({
					theme: 'bootstrap',
					placeholder: __('select'),
					allowClear: true,
					maximumSelectionLength: booknetic.serviceData[ 'repeat_frequency' ],
					closeOnSelect: false,
				}).on( 'select2:select', function( e )
				{
					// https://github.com/select2/select2/issues/3514

					if (
						$( this ).select2( "data" ).length >=
						$( this ).data( "select2" ).results.data.maximumSelectionLength
					)
					{
						$( this ).select2( "close" );
					}
				});

				booking_panel_js.find("#booknetic_monthly_recurring_type, #booknetic_monthly_recurring_day_of_week").select2({
					theme: 'bootstrap',
					placeholder: __('select'),
					minimumResultsForSearch: -1
				});

				booking_panel_js.find('#booknetic_monthly_recurring_type').trigger('change');

				booknetic.initDatepicker( booking_panel_js.find("#booknetic_recurring_start") );
				booknetic.initDatepicker( booking_panel_js.find("#booknetic_recurring_end") );

				booknetic.serviceFixPeriodEndDate();
				booknetic.serviceFixFrequency();
				booking_panel_js.find("#booknetic_recurring_start").trigger('change');
			},

			loadAvailableDate: function(instance ,data)
			{
				booknetic.ajax( 'get_recurring_available_dates', data, function ( result )
				{
					instance.set('enable',result['available_dates']);
				});
			},

			serviceFixPeriodEndDate: function()
			{
				let startDate, endDate;
				let serviceData = booknetic.serviceData;

				if( serviceData && serviceData['full_period_value'] > 0 )
				{
					booking_panel_js.find("#booknetic_recurring_end").attr('disabled', true);
					booking_panel_js.find("#booknetic_recurring_times").attr('disabled', true);

					startDate = booknetic.getSelected.recurringStartDate();

					if( serviceData[ 'full_period_type' ] === 'month' )
					{
						endDate = new Date( startDate + "T00:00:00" );
						endDate.setMonth( endDate.getMonth() + parseInt( serviceData['full_period_value'] ) );
						endDate.setDate( endDate.getDate() - 1 );

						booking_panel_js.find("#booknetic_recurring_end").val( booknetic.convertDate( endDate.getFullYear() + '-' + booknetic.zeroPad( endDate.getMonth() + 1 ) + '-' + booknetic.zeroPad( endDate.getDate() ), 'Y-m-d' ) );
					}
					else if( serviceData[ 'full_period_type' ] === 'week' )
					{

						endDate = new Date( startDate + "T00:00:00" );
						endDate.setDate( endDate.getDate() + parseInt( serviceData['full_period_value'] ) * 7 - 1 );

						booking_panel_js.find("#booknetic_recurring_end").val( booknetic.convertDate( endDate.getFullYear() + '-' + booknetic.zeroPad( endDate.getMonth() + 1 ) + '-' + booknetic.zeroPad( endDate.getDate() ), 'Y-m-d' ) );
					}
					else if( serviceData[ 'full_period_type' ] === 'day' )
					{
						endDate = new Date( startDate + "T00:00:00" );
						endDate.setDate( endDate.getDate() + parseInt( serviceData['full_period_value'] ) - 1 );

						booking_panel_js.find("#booknetic_recurring_end").val( booknetic.convertDate( endDate.getFullYear() + '-' + booknetic.zeroPad( endDate.getMonth() + 1 ) + '-' + booknetic.zeroPad( endDate.getDate() ), 'Y-m-d' ) );
					}
					else if( serviceData[ 'full_period_type' ] === 'time' )
					{
						if( booknetic.getSelected.recurringEndDate() == '' )
						{
							startDate = new Date( booknetic.getSelected.recurringStartDate() );
							endDate = new Date( startDate.setMonth( startDate.getMonth() + 1 ) );

							booking_panel_js.find("#booknetic_recurring_end").val( booknetic.convertDate( endDate.getFullYear() + '-' + booknetic.zeroPad( endDate.getMonth() + 1 ) + '-' + booknetic.zeroPad( endDate.getDate() ), 'Y-m-d' ) );
						}

						booking_panel_js.find("#booknetic_recurring_times").val( serviceData['full_period_value'] ).trigger('keyup');
					}
				}
				else
				{
					booking_panel_js.find("#booknetic_recurring_end").attr('disabled', false);
					booking_panel_js.find("#booknetic_recurring_times").attr('disabled', false);

					if( booknetic.getSelected.recurringEndDate() == '' )
					{
						startDate = new Date( booknetic.getSelected.recurringStartDate() );
						endDate = new Date( startDate.setMonth( startDate.getMonth() + 1 ) );

						booking_panel_js.find("#booknetic_recurring_end").val( booknetic.convertDate( endDate.getFullYear() + '-' + booknetic.zeroPad( endDate.getMonth() + 1 ) + '-' + booknetic.zeroPad( endDate.getDate() ), 'Y-m-d' ) );
					}
				}
			},

			serviceFixFrequency: function()
			{
				var serviceData = booknetic.serviceData;

				if( serviceData && serviceData[ 'repeat_frequency' ] > 0 && serviceData[ 'repeat_type' ] === 'daily' )
				{
					booking_panel_js.find("#booknetic_daily_recurring_frequency").val( serviceData['repeat_frequency'] ).attr('disabled', true);
				}
				else
				{
					booking_panel_js.find("#booknetic_daily_recurring_frequency").attr('disabled', false);
				}
			},

			getMonthWeekInfo: function( date, type, dayOfWeek )
			{
				var jsDate = new Date( date ),
					weekd = jsDate.getDay();
				weekd = weekd === 0 ? 7 : weekd;

				if( weekd != dayOfWeek )
				{
					return false;
				}

				const month = jsDate.getMonth() + 1,
					year = jsDate.getFullYear();

				if( type === 'last' )
				{
					var nextWeek = new Date(jsDate.getTime());
					nextWeek.setDate( nextWeek.getDate() + 7 );

					return nextWeek.getMonth() + 1 !== month;
				}

				const firstDayOfMonth = new Date(year + '-' + booknetic.zeroPad(month) + '-01'),
					firstWeekDay =  firstDayOfMonth.getDay() === 0 ? 7 : firstDayOfMonth.getDay();

				const dif = (dayOfWeek >= firstWeekDay ? dayOfWeek : parseInt(dayOfWeek) + 7) - firstWeekDay;
				const days = jsDate.getDate() - dif,
					dNumber = parseInt(days / 7) + 1;

				return type == dNumber;
			},

			confirmAppointment: async function ()
			{
				let result;

				try {
					result  = await booknetic.ajaxAsync( { backend_action: 'get_data', frontend_action: 'confirm' },
						booknetic.ajaxParameters( {
							current_step: 'confirm',
							previous_step: booking_panel_js.find(".booknetic_appointment_step_element.booknetic_active_step").data('step-id'),
							info: booking_panel_js.data( 'info' )
						}), true
					);
				} catch (e) {
					booknetic.refreshGoogleReCaptchaToken();
					if (typeof e['id'] == 'undefined')
						return;

					booknetic.ajaxResultConfirmStep = e;
					booknetic.appointmentId = e['id'];
					booknetic.paymentId = typeof e['payment_id'] != 'undefined' ? e['payment_id'] : null;
					return;
				}

				booknetic.refreshGoogleReCaptchaToken();

				booknetic.ajaxResultConfirmStep = result;
				booknetic.appointmentId = result['id'];
				booknetic.paymentId   = result['payment_id'];

				if ( booknetic.paymentWindow !== null && result["expires_at"] !== undefined && result["expires_at"] < 24*60*60 )
					setTimeout(() => booknetic.paymentWindow.close, result["expires_at"] * 1000 )

				if( booknetic.getSelected.paymentMethod() === 'local' )
				{
					booknetic.paymentFinished( true );
					booknetic.showFinishStep();
				} else {
					booknetic.startPolling(result.id)
				}

				booking_panel_js.find('#booknetic_add_to_google_calendar_btn').data('url', result['google_calendar_url'] );
				booking_panel_js.find('#booknetic_add_to_icalendar_btn').attr('href', encodeURI( result['icalendar_url'] ) );
			},

			waitPaymentFinish: function()
			{
				if( booknetic.paymentWindow.closed )
				{
					if ( booknetic.paymentStatusListener )
						clearInterval( booknetic.paymentStatusListener );

					booknetic.loading(0);

					booknetic.showFinishStep();

					return;
				}

				setTimeout( booknetic.waitPaymentFinish, 1000 );
			},

			paymentFinished: function ( status )
			{
				booknetic.paymentStatus = status;
				booking_panel_js.find(".booknetic_appointment_finished_code").text( booknetic.zeroPad( booknetic.appointmentId, 4 ) );

				if( booknetic.paymentWindow && !booknetic.paymentWindow.closed )
				{
					if ( booknetic.paymentStatusListener )
						clearInterval( booknetic.paymentStatusListener );

					booknetic.paymentWindow.close();
				}

				bookneticHooks.doAction( 'payment_completed_deprecated', booknetic );
				booknetic.stopPolling()
			},

			showFinishStep: function ()
			{
				if ( BookneticData.settings.redirect_users_on_confirm === true && booknetic.paymentStatus === true )
				{
					window.location.href = BookneticData.settings.redirect_users_on_confirm_url;
					return;
				}

				if( booknetic.paymentStatus === true )
				{
					booking_panel_js.find('.booknetic_appointment_container').fadeOut(95);

					if ( booking_panel_js.find('.booknetic_appointment_steps').css( 'display' ) === 'none' )
					{
						booking_panel_js.find('.booknetic_appointment_finished').fadeIn(100).css('display', 'flex');
					} else {
						booking_panel_js.find('.booknetic_appointment_steps').fadeOut(100, function ()
						{
							booking_panel_js.find('.booknetic_appointment_finished').fadeIn(100).css('display', 'flex');
						});
					}

					bookneticHooks.doAction( 'booking_finished_successfully', booknetic );
				}
				else
				{
					booking_panel_js.find('.booknetic_appointment_container_body [data-step-id="confirm_details"]').fadeOut( 150, function()
					{
						booking_panel_js.find('.booknetic_appointment_container_body > .booknetic_appointment_finished_with_error').removeClass('booknetic_hidden').hide().fadeIn( 150 );
					});

					booking_panel_js.find('.booknetic_next_step.booknetic_confirm_booking_btn').fadeOut( 150, function()
					{
						booking_panel_js.find('.booknetic_try_again_btn').removeClass('booknetic_hidden').hide().fadeIn( 150 );
					});

					booking_panel_js.find('.booknetic_appointment_container_header_cart').fadeOut( 150 );

					booking_panel_js.find('.booknetic_prev_step').css('opacity', '0').attr('disabled', true);

					bookneticHooks.doAction( 'payment_error', booknetic );
				}

				if ( booknetic.isMobileView() )
				{
					$('html,body').animate({scrollTop: parseInt(booking_panel_js.offset().top) - 100}, 1000);
				}
			},

			fadeInAnimate: function(el, fn)
			{
				let sec = 150;
				let delay = 50;
				let count = booking_panel_js.find(el).length;

				if( booking_panel_js.find(el).length === 0 )
					fn();

				booking_panel_js.find(el).hide().each(function (i)
				{
					(function( i, t, isLast, fn )
					{
						setTimeout( function ()
						{
							t.fadeIn( (i > 6 ? 6 : i) * sec, ( isLast ? fn : null ));
						}, (i > 6 ? 6 : i) * delay );
					})( i, $(this), (count-1===i), fn );
				});
			},

			fadeOutAnimate: function(el, sec, delay)
			{
				sec = sec > 0 ? sec : 150;
				delay = delay > 0 ? delay : 50;

				booking_panel_js.find(el).each(function (i)
				{
					(function( i, t )
					{
						setTimeout( function ()
						{
							t.fadeOut( (i > 6 ? 6 : i) * sec );
						}, (i > 6 ? 6 : i) * delay );
					})( i, $(this) );
				});
			},


			_bookneticScroll: false,
			handleScroll: function ()
			{
				if( !booknetic._bookneticScroll && !booknetic.isMobileView() )
				{
					booking_panel_js.find(".booknetic_appointment_container_body").addClass('nice-scrollbar-primary');

					booknetic._bookneticScroll = true;

					return;
				}

				if( booknetic.isMobileView() && booknetic._bookneticScroll )
				{
					booknetic._bookneticScroll = false;

					booking_panel_js.find(".booknetic_appointment_container_body").removeClass('nice-scrollbar-primary');

					if ( $( '#country-listbox' ).length )
					{
						$( '#country-listbox' ).removeClass('nice-scrollbar-primary');
					}
				}
			},

			getDateWithUTC: function ( date )//if the client timezone is negative
			{
				date = new Date( date );
				let offset  = date.getTimezoneOffset();

				if ( offset > 0 ) // if offset a positive number, client's timezone is negative
					date.setTime( date.getTime() + ( offset * 60 * 1000 ) ); //get UTC time

				return date;
			},

			initDatepicker: function ( el )
			{
				bookneticdatepicker( el[0], {
					formatter: function (input, date, instance)
					{
						var val = date.getFullYear() + '-' + booknetic.zeroPad( date.getMonth() + 1 ) + '-' + booknetic.zeroPad( date.getDate() );
						input.value = booknetic.convertDate( val, 'Y-m-d' );
					},
					startDay: BookneticData.week_starts_on == 'sunday' ? 0 : 1,
					customDays: [__('Sun'), __('Mon'), __('Tue'), __('Wed'), __('Thu'), __('Fri'), __('Sat')],
					customMonths: [__('January'), __('February'), __('March'), __('April'), __('May'), __('June'), __('July'), __('August'), __('September'), __('October'), __('November'), __('December')],
					onSelect: function( input )
					{
						$(input.el).trigger('change');
					},
					minDate: el[0].getAttribute( "data-apply-min" ) ? this.getDateWithUTC( booknetic.convertDate( el[0].value, booknetic.datePickerFormat(), 'Y-m-d' ) ) : undefined
				});
			},

			refreshGoogleReCaptchaToken: function ()
			{
				if( 'google_recaptcha_site_key' in BookneticData )
				{
					grecaptcha.execute( BookneticData['google_recaptcha_site_key'], { action: booknetic.google_recaptcha_action }).then(function (token)
					{
						booknetic.google_recaptcha_token = token;
					});
				}
			},

			isMobileView: function ()
			{
				return window.matchMedia('(max-width: 1000px)').matches;
			},

			stepManager: {

				stepValidation: function ( step )
				{
					let result = bookneticHooks.doFilter( `step_validation_${step}`, {
						status: true,
						errorMsg: ''
					}, booknetic );

					if( result.status )
						bookneticHooks.doAction(`step_end_${step}` , booknetic);

					return result;
				},

				loadStep: function( step )
				{
					if( ! bookneticHooks.doFilter( `load_step_${step}` , booknetic ) )
						return false;

					var current_step_el	= booking_panel_js.find('.booknetic_appointment_step_element.booknetic_active_step');
					var next_step_el	= booking_panel_js.find('.booknetic_appointment_step_element[data-step-id="'+step+'"]');

					while( next_step_el.hasClass('booknetic_menu_hidden') )
						next_step_el = next_step_el.next();

					booknetic.stepManager.disableAction();

					var next_step_id    = next_step_el.data('step-id');
					var current_step_id = '';

					if( current_step_el.length > 0 )
					{
						current_step_el.removeClass('booknetic_active_step');
						current_step_id	= current_step_el.data('step-id');
						booking_panel_js.find('.booknetic_appointment_container_body [data-step-id="' + current_step_id + '"]').hide();
					}

					next_step_el.addClass('booknetic_active_step');
					booking_panel_js.find(".booknetic_appointment_container_header_text").text( next_step_el.data('title') );

					booknetic.stepManager.updateGoNextBtn( next_step_el );

					bookneticHooks.doAction('before_step_loading', booknetic, next_step_id, current_step_id);

					booknetic.stepManager.saveData();

					booknetic.stepManager.updateBookingPanelFooter();

					return true;
				},

				loadStandartSteps: function ( next_step_id, current_step_id )
				{
					if( ! booknetic.stepManager.needToReloadCache( next_step_id ) )
					{
						booking_panel_js.find('.booknetic_appointment_container_body [data-step-id="' + next_step_id + '"]').show();

						booknetic.fadeInAnimate('.booknetic_appointment_container_body [data-step-id="' + next_step_id + '"] .booknetic_fade', function()
						{
							booking_panel_js.find(".booknetic_appointment_container_body").scrollTop(0);
							booknetic.handleScroll();
							booknetic.stepManager.enableActions();
						});
						bookneticHooks.doAction('loaded_cached_step', booknetic, next_step_id);
					}
					else
					{
						var next_step_el	= booking_panel_js.find('.booknetic_appointment_step_element[data-step-id="'+next_step_id+'"]');
						var loader  = booking_panel_js.find('.booknetic_preloader_' + next_step_el.data('loader') + '_box');

						booking_panel_js.find('.booknetic_appointment_container_body [data-step-id="' + next_step_id + '"]').empty();

						bookneticHooks.doAction('start_step_loading', booknetic, next_step_id, current_step_id);

						loader.removeClass('booknetic_hidden').show();
						let step
						const bookingPanelParams = {
							current_step: next_step_id,
							previous_step: booknetic.stepManager.getPrevStep().data( 'step-id' ),
							info: booking_panel_js.data( 'info' ),
						}
						if (next_step_id === "location" && (step = booking_panel_js.data('steps').find(s => s.id === "location"))?.options) {
							bookingPanelParams.location_filter = JSON.stringify(step.options);
						}

						booknetic.ajax( 'get_data', booknetic.ajaxParameters({...bookingPanelParams}), function ( result )
						{
							loader.hide();
							booking_panel_js.find('.booknetic_appointment_container_body [data-step-id="' + next_step_id + '"]').show().html( booknetic.htmlspecialchars_decode( booknetic.sanitizeHTML(result['html']) ) );

							booknetic.fadeInAnimate('.booknetic_appointment_container_body [data-step-id="' + next_step_id + '"] .booknetic_fade', function ()
							{
								booking_panel_js.find(".booknetic_appointment_container_body").scrollTop(0);
								booknetic.handleScroll();
							});

							booknetic.stepManager.enableActions();

							bookneticHooks.doAction( 'loaded_step', booknetic, next_step_id, current_step_id, result );
							bookneticHooks.doAction( `loaded_step_${next_step_id}`, booknetic, result );

						}, false , function ( result )
						{
							loader.hide();
							booknetic.stepManager.goBack();
							bookneticHooks.doAction('step_loaded_with_error', booknetic, next_step_id, current_step_id, result);
						});
					}
				},

				disableAction: function ()
				{
					booking_panel_js.find(".booknetic_next_step, .booknetic_prev_step").attr('disabled', true);
				},

				enableActions: function ()
				{
					booking_panel_js.find(".booknetic_next_step, .booknetic_prev_step").attr('disabled', false);
				},

				updateBookingPanelFooter: function ()
				{
					booknetic.stepManager.updateGoBackButton();
				},

				updateGoNextBtn: function ( step_el )
				{
					var next_step_el	= step_el.next('.booknetic_appointment_step_element');

					while( next_step_el.hasClass('booknetic_menu_hidden') )
						next_step_el = next_step_el.next();

					if ( next_step_el.length === 0 ) {
						booking_panel_js.find('.booknetic_confirm_booking_btn').show();
						booking_panel_js.find('.booknetic_next_step_btn').hide();
					}
					else
					{
						booking_panel_js.find('.booknetic_confirm_booking_btn').hide();
						booking_panel_js.find('.booknetic_next_step_btn').show();
					}
				},

				updateGoBackButton: function ()
				{
					const stepElement = '.booknetic_appointment_step_element';
					const activeElement = '.booknetic_active_step';
					const menuHidden = '.booknetic_menu_hidden';

					// hide the BACK button for the first step
					if (  booking_panel_js.find(stepElement ).not( menuHidden ).first().is( booking_panel_js.find( activeElement ) ) ) {
						booking_panel_js.find( '.booknetic_prev_step' ).css( 'opacity', 0 ).css( 'pointer-events', 'none' );
						return;
					}

					booking_panel_js.find( '.booknetic_prev_step' ).css( 'opacity', 1 ).css( 'pointer-events', 'auto' );
				},

				saveData: ()=>
				{
					let obj = {};

					if(booknetic.cartArr[ booknetic.cartCurrentIndex ] !== undefined)
					{
						obj = booknetic.cartArr[ booknetic.cartCurrentIndex ];
					}

					obj['location'] =  booknetic.getSelected.location();
					obj['location_category'] =  booknetic.getSelected.locationCategory();
					obj['staff'] =  booknetic.getSelected.staff();
					obj['service_category'] =  booknetic.getSelected.serviceCategory();
					obj['service'] =  booknetic.getSelected.service();
					obj['service_extras'] =  booknetic.getSelected.serviceExtras();

					obj['date'] =  booknetic.getSelected.date();
					obj['time'] =  booknetic.getSelected.time();
					obj['brought_people_count'] =  booknetic.getSelected.brought_people_count();

					obj['recurring_start_date'] =  booknetic.getSelected.recurringStartDate();
					obj['recurring_end_date'] =  booknetic.getSelected.recurringEndDate();
					obj['recurring_times'] =  booknetic.getSelected.recurringTimesArr();
					obj['appointments'] =  booknetic.getSelected.recurringTimesArrFinish();

					obj['customer_id'] = booknetic.getSelected.customerId();
					obj['customer_data'] = booknetic.getSelected.formData()['data'];

					booknetic.cartArr[ booknetic.cartCurrentIndex ] = bookneticHooks.doFilter('bkntc_cart' , obj , booknetic );
				},

				goForward: function ()
				{
					let current_step_el	= booking_panel_js.find(".booknetic_appointment_step_element.booknetic_active_step"),
						current_step_id = current_step_el.data('step-id'),
						next_step_el	= booknetic.stepManager.getNextStep(),
						next_step_id    = next_step_el.data('step-id'),
						validate_step   = booknetic.stepManager.stepValidation( current_step_id );

					if( validate_step.status == false )
					{
						booknetic.toast( validate_step.errorMsg );
						return;
					}

					if( next_step_el.length == 0 )
					{
						booknetic.confirmAppointment();
						return;
					}

					current_step_el.addClass('booknetic_selected_step');

					let oldData = JSON.stringify( booknetic.cartArr[ booknetic.cartCurrentIndex ] );
					booknetic.stepManager.saveData();
					let newData = JSON.stringify( booknetic.cartArr[ booknetic.cartCurrentIndex ] );

					if( oldData !== newData )
					{
						let startToEmpty = next_step_el;
						while( startToEmpty.length > 0 )
						{
							booking_panel_js.find('.booknetic_appointment_container_body [data-step-id="'+startToEmpty.data('step-id')+'"]').empty();
							startToEmpty = startToEmpty.next();
						}
					}

					booknetic.toast( false );

					if( booknetic.stepManager.loadStep( next_step_id ) && booknetic.isMobileView() )
					{
						const modalBody = booknetic.panel_js.closest('.bkntc_booking_modal').find('.content .body');

						if (modalBody.length > 0) {
							modalBody.animate({scrollTop: 0}, 500);
							return;
						}

						$('html,body').animate({scrollTop: parseInt(booknetic.panel_js.offset().top) - 100}, 1000);
					}
				},

				goBack: function ()
				{
					let current_step_el	= booking_panel_js.find(".booknetic_appointment_step_element.booknetic_active_step"),
						prev_step_el    = booknetic.stepManager.getPrevStep();

					if (current_step_el.data('step-id') === "date_time") {
						booknetic.current_month_is_empty = undefined
					}

					current_step_el.removeClass('booknetic_selected_step').nextAll('.booknetic_appointment_step_element').removeClass('booknetic_selected_step');

					if( prev_step_el.length > 0 )
					{
						if (prev_step_el.data( 'step-id' ) === 'service_extras' && BookneticData[ 'skip_extras_step_if_need' ] === 'on' && prev_step_el.css('display') === 'none')
						{
							prev_step_el.css('display', 'block');
							prev_step_el.removeClass('booknetic_selected_step');

							do{
								prev_step_el = prev_step_el.prev();
							}
							while(prev_step_el.hasClass('booknetic_menu_hidden'));
						}

						current_step_el.removeClass('booknetic_active_step');
						prev_step_el.addClass('booknetic_active_step');

						booknetic.stepManager.disableAction();
						booking_panel_js.find('.booknetic_appointment_container_body [data-step-id="' + current_step_el.data('step-id') + '"]').fadeOut(200, function()
						{
							booknetic.stepManager.enableActions();
							booking_panel_js.find('.booknetic_appointment_container_body [data-step-id="' + prev_step_el.data('step-id') + '"]').fadeIn(200, function ()
							{
								booknetic.handleScroll();
							});
						});

						booking_panel_js.find(".booknetic_appointment_container_header_text").text( prev_step_el.data('title') );
					}

					booking_panel_js.find('.booknetic_confirm_booking_btn').hide();
					booking_panel_js.find('.booknetic_next_step_btn').show();

					booknetic.stepManager.updateBookingPanelFooter();
				},

				getNextStep: function ()
				{
					let current_step_el	= booking_panel_js.find(".booknetic_appointment_step_element.booknetic_active_step"),
						next_step_el	= current_step_el.next('.booknetic_appointment_step_element');

					while( next_step_el.hasClass('booknetic_menu_hidden') )
						next_step_el = next_step_el.next();

					return next_step_el;
				},

				getPrevStep: function ()
				{
					if( booknetic.cartPrevStep != undefined)
					{
						let x = booknetic.cartPrevStep;
						booknetic.cartPrevStep = undefined;
						return booking_panel_js.find(".booknetic_appointment_steps_body div[data-step-id=" + x + "]");
					}
					let current_step_el	= booking_panel_js.find(".booknetic_appointment_step_element.booknetic_active_step"),
						prev_step_el    = current_step_el.prev('.booknetic_appointment_step_element');

					while( prev_step_el.hasClass('booknetic_menu_hidden') )
						prev_step_el = prev_step_el.prev();

					return prev_step_el;
				},

				getCurrentStep: function ()
				{
					return booking_panel_js.find(".booknetic_appointment_step_element.booknetic_active_step");
				},

				refreshStepNumbers: function ()
				{
					var index = 1;

					booking_panel_js.find('.booknetic_appointment_steps_body > .booknetic_appointment_step_element').each(function()
					{
						if( $(this).css('display') != 'none' )
						{
							$(this).find('.booknetic_badge').text( index );
							index++;
						}
					});
				},

				needToReloadCache: function( stepId )
				{
					if( stepId == 'confirm_details' || stepId=='cart' )
						return true;

					if( booking_panel_js.find('.booknetic_appointment_container_body [data-step-id="' + stepId + '"] > *').length > 0 )
					{
						return false;
					}

					return true;
				},

			},

			addGroupAppointmentsCounterForBookneticCalendarDays: function ()
			{
				const dates = booknetic.calendarDateTimes['dates'];

				for ( const date in dates )
				{
					if ( dates[ date ].length !== 1 )
					{
						continue;
					}

					let max_capacity = dates[ date ][ 0 ].max_capacity;
					let weight = dates[ date ][ 0 ].weight;

					if (
						weight == 0 ||
						'hide_available_slots' in booknetic.calendarDateTimes &&
						booknetic.calendarDateTimes['hide_available_slots'] == 'on'
					)
					{
						continue;
					}

					booking_panel_js.find( `.booknetic_calendar_days[data-date=${date}] > div` ).append( `<div class="booknetic_time_group_num booknetic_date_group_num">${weight} / ${max_capacity}</div>` );
				}
			},

			checkIfNoDatesAvailable: function ( backendResult )
			{
				return backendResult[ 'data' ][ 'dates' ].length === 0 || Object.values( backendResult[ 'data' ][ 'dates' ] ).every( d => d.length === 0 );
			},

			intervalId: 0,

            startPolling: (appointmentId) => {
                // Clear any existing polling
                if (booknetic.intervalId) clearInterval(booknetic.intervalId);

                const intervalId = setInterval(() => {
                    booknetic.ajaxAsync('isPaymentDone', { id: appointmentId }, false)
                        .then(result => {
                            if (!result.isDone) return;
                            clearInterval(intervalId);
                            booknetic.paymentFinished(true);
                        })
                        .catch(_ => clearInterval(intervalId));
                }, 3000);

                setTimeout(() => clearInterval(intervalId), 1000 * 60 * 10);

                booknetic.intervalId = intervalId;
            },


            stopPolling: () => booknetic.intervalId && clearInterval(this.intervalId),
		};

		// steplerle bagli basic eventler
		booking_panel_js.on('click', '.booknetic_next_step', function()
		{
			booknetic.stepManager.goForward();
		}).on('click', '.booknetic_prev_step', function()
		{
			booknetic.stepManager.goBack();
		});

		booking_panel_js.on('click', '#booknetic_finish_btn', function ()
		{
			let page = window.location;

			// check if iframe
			if ( window.location !== window.parent.location )
			{
				page = window.parent.location;
			}

			if( ! $(this).data('redirect-url') )
			{
				page.reload();
			}
			else
			{
				page.href = $(this).data('redirect-url');
			}
		}).on('click' ,'.bkntc_again_booking' , function ()
		{
			let currentBody = booking_panel_js.find('.booknetic_need_copy');
			booknetic.cartHTMLBody[booknetic.cartCurrentIndex] = currentBody.clone(true,true).get(0);

			booking_panel_js.find('.booknetic_appointment_steps_body .booknetic_appointment_step_element.need_copy').each(function()
			{
				let id = $(this).attr('data-step-id');
				if(booknetic.cartHTMLSideBar[booknetic.cartCurrentIndex] == undefined)
				{
					booknetic.cartHTMLSideBar[booknetic.cartCurrentIndex] = {};
				}
				booknetic.cartHTMLSideBar[booknetic.cartCurrentIndex][id] = $(this).clone(true,true).get(0);
			});

			booknetic.cartCurrentIndex = booknetic.cartArr.length;
			booknetic.cartArr[booknetic.cartCurrentIndex] = {};

			booking_panel_js.find("#booknetic_start_new_booking_btn").trigger('click' , true);

		}).on('click', '#booknetic_start_new_booking_btn', function ( e , param )
		{
			if( param === undefined )
			{
				booking_panel_js.find('.booknetic_appointment_container_header_cart').fadeOut();

				booknetic.cartHTMLBody 	   = [];
				booknetic.cartHTMLSideBar  = [];
				booknetic.cartArr 		   = [];
				booknetic.cartCurrentIndex = 0;
			}
			booking_panel_js.find('.booknetic_appointment_finished').fadeOut(100, function()
			{
				const appointment_step_style = booking_panel_js.find('.booknetic_appointment_steps').attr( 'style' );

				// in case if booking_panel_js.find('.booknetic_appointment_steps').fadeOut() called
				if ( appointment_step_style && appointment_step_style.search( 'display: none;' ) !== -1 )
					booking_panel_js.find('.booknetic_appointment_steps').fadeIn(100);

				booking_panel_js.find('.booknetic_appointment_container').fadeIn(100);
			});

			booking_panel_js.find(".booknetic_selected_step").removeClass('booknetic_selected_step');
			booking_panel_js.find(".booknetic_active_step").removeClass('booknetic_active_step');

			booknetic.current_month_is_empty 	= undefined
			booknetic.calendarDateTimes			= {};
			booknetic.time_show_format			= 1;
			booknetic.calendarYear				= null;
			booknetic.calendarMonth				= null;
			booknetic.paymentWindow				= null;
			booknetic.paymentStatus				= null;
			booknetic.appointmentId				= null;
			booknetic.paymentId			    	= null;

			var start_step = booking_panel_js.find(".booknetic_appointment_step_element:not(.booknetic_menu_hidden):eq(0)");
			start_step.addClass('booknetic_active_step');
			booking_panel_js.find('.booknetic_appointment_container_body  [data-step-id] ').empty();
			booknetic.stepManager.loadStep( start_step.data('step-id') );

			booking_panel_js.find('.booknetic_appointment_container_body  [data-step-id]').hide();
			booking_panel_js.find('.booknetic_appointment_container_body  [data-step-id="' + start_step.data('step-id') + '"]').show();

			booking_panel_js.find('.booknetic_card_selected').removeClass('booknetic_card_selected');
			booking_panel_js.find('.booknetic_service_card_selected').removeClass('booknetic_service_card_selected');
			booking_panel_js.find('.booknetic_service_card_selected').removeClass('booknetic_service_card_selected');

			booking_panel_js.find(".booknetic_calendar_selected_day").data('date', null);
			booking_panel_js.find(".booknetic_selected_time").data('time', null);

			booknetic.handleScroll();

		}).on('click', '#booknetic_add_to_google_calendar_btn', function ()
		{
			window.open( $(this).data('url') );
		}).on('click', '.booknetic_try_again_btn', function ()
		{
            if (booknetic.intervalId) {
                clearInterval(booknetic.intervalId);
                booknetic.intervalId = null;
            }
			booknetic.ajax('delete_unpaid_appointment', booknetic.ajaxParameters({ payment_id: booknetic.paymentId }), function ()
			{
				booknetic.paymentId   = null;

				booking_panel_js.find('.booknetic_appointment_finished_with_error').fadeOut(150, function ()
				{
					booking_panel_js.find('.booknetic_appointment_container_body  [data-step-id="confirm_details"]').fadeIn(150, function ()
					{
						booknetic.handleScroll();
					});
				});

				booking_panel_js.find('.booknetic_try_again_btn').fadeOut(150, function ()
				{
					booking_panel_js.find('.booknetic_next_step.booknetic_confirm_booking_btn').fadeIn(150);
					booking_panel_js.find('.booknetic_prev_step').css('opacity', '1').attr('disabled', false);
				});

				if( ! booking_panel_js.find('.booknetic_appointment_step_element[data-step-id="cart"]').hasClass('booknetic_menu_hidden') )
				{
					booking_panel_js.find('.booknetic_appointment_container_header_cart').fadeIn( 150 );
				}

			});
		});

		//doit staff stepi (locationdan ayirmag)

		$( window ).resize(function ()
		{
			booknetic.handleScroll();
		});

		let bookneticStepsArray = booking_panel_js.data('steps');
		for( let step of bookneticStepsArray )
		{
			let classAttr = 'booknetic_appointment_step_element';
			if( step.id === 'cart' || step.id === 'confirm_details' )
				classAttr += ' need_copy';

			if( step.hidden )
				classAttr += ' booknetic_menu_hidden';

			let attrs = step.attrs ?? '';

			attrs += ` data-step-id="${step.id}"`;
			attrs += ` data-loader="${step.loader}"`;
			attrs += ` data-title="${step.head_title}"`;

			if( step.value != "" )
				attrs += ` data-value="${step.value}"`;

			booking_panel_js.find('.booknetic_appointment_steps_body').append(`
					<div class="${classAttr}" ${attrs}>
	                    <span class="booknetic_badge"></span>
	                    <span class="booknetic_step_title"> ${step.title}</span>
	                </div>
				`);
		}

		var first_step_id = booking_panel_js.find('.booknetic_appointment_steps_body > .booknetic_appointment_step_element:not(.booknetic_menu_hidden)').eq(0).data('step-id');
		booknetic.stepManager.loadStep( first_step_id );

		booknetic.handleScroll();

		booknetic.fadeInAnimate('.booknetic_appointment_step_element:not(.booknetic_menu_hidden)', function ()
		{
			booknetic.stepManager.refreshStepNumbers();
		});

		booking_panel_js.find(".booknetic_appointment_steps_footer").fadeIn(200);

		if( 'google_recaptcha_site_key' in BookneticData )
		{
			grecaptcha.ready(function ()
			{
				booknetic.refreshGoogleReCaptchaToken();
			});
		}

		bookneticHooks.doAction('booking_panel_loaded', booknetic);

		return booknetic;
	};

	$(document).ready( function()
	{
		if ( $( 'html' ).attr( 'dir' ) === 'rtl' )
		{
			$( 'body' ).addClass( 'rtl' );// doit bu nedi bele arashdirmag lazimdi... .rtl classi chox tehlukelidi. booknetic_rtl etmek olar meselen ve ya bashga n qeder metod var, bu neye lazimdi umumiyyetle bele?
		}

		/**
		 * doit bu duzelmelidi. hem alqoritmde xeta var, meselen Cart stepi load olanda headerda icon show olur. geri qayidib nese deyishiklik eledik meselen Servisi deyishdik.
		 * data deyishir deye cart iconu sifirlanmalidi. chunki butun stepleri tamamlamalidi, date&time sechmelidi, formu tezeden doldurmalidi, chunki service deyishende form inputlarda deyishe biler.
		 * Amma bu stepleri doldurmadan hemen show olmush icona clickledikde birbasha tulluyur cart stepine. Ordanda next bassan error verir ki, meselen formu doldur ve ya date&time sech ve s.
		 * Elave olarag $('.*') kimi select yolverilmezdir. booknetic.panel_js.find('.*') || booking_panel_js.find('.*') istifade olunmalidir.
		 * Cunki 1 pagede eyni anda bir neche booking panel load ola biler. biri digerinin iconlariynan oynamasin deye bu metod hokmen her yerde istifade edilmelidi.
		 */
		$("body").click(function(e)
		{
			if( $(e.target).parent().hasClass('booknetic-cart-item-more') )
			{
				let a = $(e.target).parents('.booknetic-cart-item-header').find('.booknetic-cart-item-btns').first();
				let b = a.hasClass('show');
				$(".booknetic-cart-item-btns").removeClass("show");
				if(!b)
				{
					a.addClass('show')
				}
				else
				{
					a.removeClass('show');
				}
			}
			else
			{

				$(".booknetic-cart-item-btns").removeClass("show");

			}
		});
	});

})(jQuery);

// local payment gateway
(function($)
{
	"use strict";

	$(document).ready(function()
	{
		let paymentData;

		bookneticHooks.addAction( 'before_processing_payment', function ( payment_method, data )
		{
			if( payment_method !== 'local' )
				return;

			paymentData = data;
		});

		bookneticHooks.addAction( 'after_processing_payment', function( payment_method, process_status, data )
		{
			if( payment_method !== 'local' )
				return;

			if( ! process_status )
			{
				return;
			}

			bookneticHooks.doAction('payment_completed', true, paymentData);
		});
	});

})(jQuery);
// source --> https://ordonna.com/wp-content/plugins/booknetic/app/Backend/Base/assets/js/select2.min.js?v=5.2.4&amp;ver=6.9.4 
/*! Select2 4.0.8 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(n){"function"==typeof define&&define.amd?define(["jquery"],n):"object"==typeof module&&module.exports?module.exports=function(e,t){return void 0===t&&(t="undefined"!=typeof window?require("jquery"):require("jquery")(e)),n(t),t}:n(jQuery)}(function(u){var e=function(){if(u&&u.fn&&u.fn.select2&&u.fn.select2.amd)var e=u.fn.select2.amd;var t,n,r,h,o,s,f,g,m,v,y,_,i,a,w;function b(e,t){return i.call(e,t)}function l(e,t){var n,r,i,o,s,a,l,c,u,d,p,h=t&&t.split("/"),f=y.map,g=f&&f["*"]||{};if(e){for(s=(e=e.split("/")).length-1,y.nodeIdCompat&&w.test(e[s])&&(e[s]=e[s].replace(w,"")),"."===e[0].charAt(0)&&h&&(e=h.slice(0,h.length-1).concat(e)),u=0;u<e.length;u++)if("."===(p=e[u]))e.splice(u,1),u-=1;else if(".."===p){if(0===u||1===u&&".."===e[2]||".."===e[u-1])continue;0<u&&(e.splice(u-1,2),u-=2)}e=e.join("/")}if((h||g)&&f){for(u=(n=e.split("/")).length;0<u;u-=1){if(r=n.slice(0,u).join("/"),h)for(d=h.length;0<d;d-=1)if(i=(i=f[h.slice(0,d).join("/")])&&i[r]){o=i,a=u;break}if(o)break;!l&&g&&g[r]&&(l=g[r],c=u)}!o&&l&&(o=l,a=c),o&&(n.splice(0,a,o),e=n.join("/"))}return e}function A(t,n){return function(){var e=a.call(arguments,0);return"string"!=typeof e[0]&&1===e.length&&e.push(null),s.apply(h,e.concat([t,n]))}}function x(t){return function(e){m[t]=e}}function D(e){if(b(v,e)){var t=v[e];delete v[e],_[e]=!0,o.apply(h,t)}if(!b(m,e)&&!b(_,e))throw new Error("No "+e);return m[e]}function c(e){var t,n=e?e.indexOf("!"):-1;return-1<n&&(t=e.substring(0,n),e=e.substring(n+1,e.length)),[t,e]}function S(e){return e?c(e):[]}return e&&e.requirejs||(e?n=e:e={},m={},v={},y={},_={},i=Object.prototype.hasOwnProperty,a=[].slice,w=/\.js$/,f=function(e,t){var n,r=c(e),i=r[0],o=t[1];return e=r[1],i&&(n=D(i=l(i,o))),i?e=n&&n.normalize?n.normalize(e,function(t){return function(e){return l(e,t)}}(o)):l(e,o):(i=(r=c(e=l(e,o)))[0],e=r[1],i&&(n=D(i))),{f:i?i+"!"+e:e,n:e,pr:i,p:n}},g={require:function(e){return A(e)},exports:function(e){var t=m[e];return void 0!==t?t:m[e]={}},module:function(e){return{id:e,uri:"",exports:m[e],config:function(e){return function(){return y&&y.config&&y.config[e]||{}}}(e)}}},o=function(e,t,n,r){var i,o,s,a,l,c,u,d=[],p=typeof n;if(c=S(r=r||e),"undefined"==p||"function"==p){for(t=!t.length&&n.length?["require","exports","module"]:t,l=0;l<t.length;l+=1)if("require"===(o=(a=f(t[l],c)).f))d[l]=g.require(e);else if("exports"===o)d[l]=g.exports(e),u=!0;else if("module"===o)i=d[l]=g.module(e);else if(b(m,o)||b(v,o)||b(_,o))d[l]=D(o);else{if(!a.p)throw new Error(e+" missing "+o);a.p.load(a.n,A(r,!0),x(o),{}),d[l]=m[o]}s=n?n.apply(m[e],d):void 0,e&&(i&&i.exports!==h&&i.exports!==m[e]?m[e]=i.exports:s===h&&u||(m[e]=s))}else e&&(m[e]=n)},t=n=s=function(e,t,n,r,i){if("string"==typeof e)return g[e]?g[e](t):D(f(e,S(t)).f);if(!e.splice){if((y=e).deps&&s(y.deps,y.callback),!t)return;t.splice?(e=t,t=n,n=null):e=h}return t=t||function(){},"function"==typeof n&&(n=r,r=i),r?o(h,e,t,n):setTimeout(function(){o(h,e,t,n)},4),s},s.config=function(e){return s(e)},t._defined=m,(r=function(e,t,n){if("string"!=typeof e)throw new Error("See almond README: incorrect module build, no module name");t.splice||(n=t,t=[]),b(m,e)||b(v,e)||(v[e]=[e,t,n])}).amd={jQuery:!0},e.requirejs=t,e.require=n,e.define=r),e.define("almond",function(){}),e.define("jquery",[],function(){var e=u||$;return null==e&&console&&console.error&&console.error("Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page."),e}),e.define("select2/utils",["jquery"],function(o){var i={};function u(e){var t=e.prototype,n=[];for(var r in t){"function"==typeof t[r]&&"constructor"!==r&&n.push(r)}return n}i.Extend=function(e,t){var n={}.hasOwnProperty;function r(){this.constructor=e}for(var i in t)n.call(t,i)&&(e[i]=t[i]);return r.prototype=t.prototype,e.prototype=new r,e.__super__=t.prototype,e},i.Decorate=function(r,i){var e=u(i),t=u(r);function o(){var e=Array.prototype.unshift,t=i.prototype.constructor.length,n=r.prototype.constructor;0<t&&(e.call(arguments,r.prototype.constructor),n=i.prototype.constructor),n.apply(this,arguments)}i.displayName=r.displayName,o.prototype=new function(){this.constructor=o};for(var n=0;n<t.length;n++){var s=t[n];o.prototype[s]=r.prototype[s]}function a(e){var t=function(){};e in o.prototype&&(t=o.prototype[e]);var n=i.prototype[e];return function(){return Array.prototype.unshift.call(arguments,t),n.apply(this,arguments)}}for(var l=0;l<e.length;l++){var c=e[l];o.prototype[c]=a(c)}return o};function e(){this.listeners={}}e.prototype.on=function(e,t){this.listeners=this.listeners||{},e in this.listeners?this.listeners[e].push(t):this.listeners[e]=[t]},e.prototype.trigger=function(e){var t=Array.prototype.slice,n=t.call(arguments,1);this.listeners=this.listeners||{},null==n&&(n=[]),0===n.length&&n.push({}),(n[0]._type=e)in this.listeners&&this.invoke(this.listeners[e],t.call(arguments,1)),"*"in this.listeners&&this.invoke(this.listeners["*"],arguments)},e.prototype.invoke=function(e,t){for(var n=0,r=e.length;n<r;n++)e[n].apply(this,t)},i.Observable=e,i.generateChars=function(e){for(var t="",n=0;n<e;n++){t+=Math.floor(36*Math.random()).toString(36)}return t},i.bind=function(e,t){return function(){e.apply(t,arguments)}},i._convertData=function(e){for(var t in e){var n=t.split("-"),r=e;if(1!==n.length){for(var i=0;i<n.length;i++){var o=n[i];(o=o.substring(0,1).toLowerCase()+o.substring(1))in r||(r[o]={}),i==n.length-1&&(r[o]=e[t]),r=r[o]}delete e[t]}}return e},i.hasScroll=function(e,t){var n=o(t),r=t.style.overflowX,i=t.style.overflowY;return(r!==i||"hidden"!==i&&"visible"!==i)&&("scroll"===r||"scroll"===i||(n.innerHeight()<t.scrollHeight||n.innerWidth()<t.scrollWidth))},i.escapeMarkup=function(e){var t={"\\":"&#92;","&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#47;"};return"string"!=typeof e?e:String(e).replace(/[&<>"'\/\\]/g,function(e){return t[e]})},i.appendMany=function(e,t){if("1.7"===o.fn.jquery.substr(0,3)){var n=o();o.map(t,function(e){n=n.add(e)}),t=n}e.append(t)},i.__cache={};var n=0;return i.GetUniqueElementId=function(e){var t=e.getAttribute("data-select2-id");return null==t&&(e.id?(t=e.id,e.setAttribute("data-select2-id",t)):(e.setAttribute("data-select2-id",++n),t=n.toString())),t},i.StoreData=function(e,t,n){var r=i.GetUniqueElementId(e);i.__cache[r]||(i.__cache[r]={}),i.__cache[r][t]=n},i.GetData=function(e,t){var n=i.GetUniqueElementId(e);return t?i.__cache[n]&&null!=i.__cache[n][t]?i.__cache[n][t]:o(e).data(t):i.__cache[n]},i.RemoveData=function(e){var t=i.GetUniqueElementId(e);null!=i.__cache[t]&&delete i.__cache[t]},i}),e.define("select2/results",["jquery","./utils"],function(h,f){function r(e,t,n){this.$element=e,this.data=n,this.options=t,r.__super__.constructor.call(this)}return f.Extend(r,f.Observable),r.prototype.render=function(){var e=h('<ul class="select2-results__options" role="tree"></ul>');return this.options.get("multiple")&&e.attr("aria-multiselectable","true"),this.$results=e},r.prototype.clear=function(){this.$results.empty()},r.prototype.displayMessage=function(e){var t=this.options.get("escapeMarkup");this.clear(),this.hideLoading();var n=h('<li role="treeitem" aria-live="assertive" class="select2-results__option"></li>'),r=this.options.get("translations").get(e.message);n.append(t(r(e.args))),n[0].className+=" select2-results__message",this.$results.append(n)},r.prototype.hideMessages=function(){this.$results.find(".select2-results__message").remove()},r.prototype.append=function(e){this.hideLoading();var t=[];if(null!=e.results&&0!==e.results.length){e.results=this.sort(e.results);for(var n=0;n<e.results.length;n++){var r=e.results[n],i=this.option(r);t.push(i)}this.$results.append(t)}else 0===this.$results.children().length&&this.trigger("results:message",{message:"noResults"})},r.prototype.position=function(e,t){t.find(".select2-results").append(e)},r.prototype.sort=function(e){return this.options.get("sorter")(e)},r.prototype.highlightFirstItem=function(){var e=this.$results.find(".select2-results__option[aria-selected]"),t=e.filter("[aria-selected=true]");0<t.length?t.first().trigger("mouseenter"):e.first().trigger("mouseenter"),this.ensureHighlightVisible()},r.prototype.setClasses=function(){var t=this;this.data.current(function(e){var r=h.map(e,function(e){return e.id.toString()});t.$results.find(".select2-results__option[aria-selected]").each(function(){var e=h(this),t=f.GetData(this,"data"),n=""+t.id;null!=t.element&&t.element.selected||null==t.element&&-1<h.inArray(n,r)?e.attr("aria-selected","true"):e.attr("aria-selected","false")})})},r.prototype.showLoading=function(e){this.hideLoading();var t={disabled:!0,loading:!0,text:this.options.get("translations").get("searching")(e)},n=this.option(t);n.className+=" loading-results",this.$results.prepend(n)},r.prototype.hideLoading=function(){this.$results.find(".loading-results").remove()},r.prototype.option=function(e){var t=document.createElement("li");t.className="select2-results__option";var n={role:"treeitem","aria-selected":"false"},r=window.Element.prototype.matches||window.Element.prototype.msMatchesSelector||window.Element.prototype.webkitMatchesSelector;for(var i in(null!=e.element&&r.call(e.element,":disabled")||null==e.element&&e.disabled)&&(delete n["aria-selected"],n["aria-disabled"]="true"),null==e.id&&delete n["aria-selected"],null!=e._resultId&&(t.id=e._resultId),e.title&&(t.title=e.title),e.children&&(n.role="group",n["aria-label"]=e.text,delete n["aria-selected"]),n){var o=n[i];t.setAttribute(i,o)}if(e.children){var s=h(t),a=document.createElement("strong");a.className="select2-results__group";h(a);this.template(e,a);for(var l=[],c=0;c<e.children.length;c++){var u=e.children[c],d=this.option(u);l.push(d)}var p=h("<ul></ul>",{class:"select2-results__options select2-results__options--nested"});p.append(l),s.append(a),s.append(p)}else this.template(e,t);return f.StoreData(t,"data",e),t},r.prototype.bind=function(t,e){var l=this,n=t.id+"-results";this.$results.attr("id",n),t.on("results:all",function(e){l.clear(),l.append(e.data),t.isOpen()&&(l.setClasses(),l.highlightFirstItem())}),t.on("results:append",function(e){l.append(e.data),t.isOpen()&&l.setClasses()}),t.on("query",function(e){l.hideMessages(),l.showLoading(e)}),t.on("select",function(){t.isOpen()&&(l.setClasses(),l.options.get("scrollAfterSelect")&&l.highlightFirstItem())}),t.on("unselect",function(){t.isOpen()&&(l.setClasses(),l.options.get("scrollAfterSelect")&&l.highlightFirstItem())}),t.on("open",function(){l.$results.attr("aria-expanded","true"),l.$results.attr("aria-hidden","false"),l.setClasses(),l.ensureHighlightVisible()}),t.on("close",function(){l.$results.attr("aria-expanded","false"),l.$results.attr("aria-hidden","true"),l.$results.removeAttr("aria-activedescendant")}),t.on("results:toggle",function(){var e=l.getHighlightedResults();0!==e.length&&e.trigger("mouseup")}),t.on("results:select",function(){var e=l.getHighlightedResults();if(0!==e.length){var t=f.GetData(e[0],"data");"true"==e.attr("aria-selected")?l.trigger("close",{}):l.trigger("select",{data:t})}}),t.on("results:previous",function(){var e=l.getHighlightedResults(),t=l.$results.find("[aria-selected]"),n=t.index(e);if(!(n<=0)){var r=n-1;0===e.length&&(r=0);var i=t.eq(r);i.trigger("mouseenter");var o=l.$results.offset().top,s=i.offset().top,a=l.$results.scrollTop()+(s-o);0===r?l.$results.scrollTop(0):s-o<0&&l.$results.scrollTop(a)}}),t.on("results:next",function(){var e=l.getHighlightedResults(),t=l.$results.find("[aria-selected]"),n=t.index(e)+1;if(!(n>=t.length)){var r=t.eq(n);r.trigger("mouseenter");var i=l.$results.offset().top+l.$results.outerHeight(!1),o=r.offset().top+r.outerHeight(!1),s=l.$results.scrollTop()+o-i;0===n?l.$results.scrollTop(0):i<o&&l.$results.scrollTop(s)}}),t.on("results:focus",function(e){e.element.addClass("select2-results__option--highlighted")}),t.on("results:message",function(e){l.displayMessage(e)}),h.fn.mousewheel&&this.$results.on("mousewheel",function(e){var t=l.$results.scrollTop(),n=l.$results.get(0).scrollHeight-t+e.deltaY,r=0<e.deltaY&&t-e.deltaY<=0,i=e.deltaY<0&&n<=l.$results.height();r?(l.$results.scrollTop(0),e.preventDefault(),e.stopPropagation()):i&&(l.$results.scrollTop(l.$results.get(0).scrollHeight-l.$results.height()),e.preventDefault(),e.stopPropagation())}),this.$results.on("mouseup",".select2-results__option[aria-selected]",function(e){var t=h(this),n=f.GetData(this,"data");"true"!==t.attr("aria-selected")?l.trigger("select",{originalEvent:e,data:n}):l.options.get("multiple")?l.trigger("unselect",{originalEvent:e,data:n}):l.trigger("close",{})}),this.$results.on("mouseenter",".select2-results__option[aria-selected]",function(e){var t=f.GetData(this,"data");l.getHighlightedResults().removeClass("select2-results__option--highlighted"),l.trigger("results:focus",{data:t,element:h(this)})})},r.prototype.getHighlightedResults=function(){return this.$results.find(".select2-results__option--highlighted")},r.prototype.destroy=function(){this.$results.remove()},r.prototype.ensureHighlightVisible=function(){var e=this.getHighlightedResults();if(0!==e.length){var t=this.$results.find("[aria-selected]").index(e),n=this.$results.offset().top,r=e.offset().top,i=this.$results.scrollTop()+(r-n),o=r-n;i-=2*e.outerHeight(!1),t<=2?this.$results.scrollTop(0):(o>this.$results.outerHeight()||o<0)&&this.$results.scrollTop(i)}},r.prototype.template=function(e,t){var n=this.options.get("templateResult"),r=this.options.get("escapeMarkup"),i=n(e,t);null==i?t.style.display="none":"string"==typeof i?t.innerHTML=r(i):h(t).append(i)},r}),e.define("select2/keys",[],function(){return{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46}}),e.define("select2/selection/base",["jquery","../utils","../keys"],function(n,r,i){function o(e,t){this.$element=e,this.options=t,o.__super__.constructor.call(this)}return r.Extend(o,r.Observable),o.prototype.render=function(){var e=n('<span class="select2-selection" role="combobox"  aria-haspopup="true" aria-expanded="false"></span>');return this._tabindex=0,null!=r.GetData(this.$element[0],"old-tabindex")?this._tabindex=r.GetData(this.$element[0],"old-tabindex"):null!=this.$element.attr("tabindex")&&(this._tabindex=this.$element.attr("tabindex")),e.attr("title",this.$element.attr("title")),e.attr("tabindex",this._tabindex),this.$selection=e},o.prototype.bind=function(e,t){var n=this,r=(e.id,e.id+"-results");this.container=e,this.$selection.on("focus",function(e){n.trigger("focus",e)}),this.$selection.on("blur",function(e){n._handleBlur(e)}),this.$selection.on("keydown",function(e){n.trigger("keypress",e),e.which===i.SPACE&&e.preventDefault()}),e.on("results:focus",function(e){n.$selection.attr("aria-activedescendant",e.data._resultId)}),e.on("selection:update",function(e){n.update(e.data)}),e.on("open",function(){n.$selection.attr("aria-expanded","true"),n.$selection.attr("aria-owns",r),n._attachCloseHandler(e)}),e.on("close",function(){n.$selection.attr("aria-expanded","false"),n.$selection.removeAttr("aria-activedescendant"),n.$selection.removeAttr("aria-owns"),n.$selection.trigger("focus"),n._detachCloseHandler(e)}),e.on("enable",function(){n.$selection.attr("tabindex",n._tabindex)}),e.on("disable",function(){n.$selection.attr("tabindex","-1")})},o.prototype._handleBlur=function(e){var t=this;window.setTimeout(function(){document.activeElement==t.$selection[0]||n.contains(t.$selection[0],document.activeElement)||t.trigger("blur",e)},1)},o.prototype._attachCloseHandler=function(e){n(document.body).on("mousedown.select2."+e.id,function(e){var t=n(e.target).closest(".select2");n(".select2.select2-container--open").each(function(){n(this);this!=t[0]&&r.GetData(this,"element").select2("close")})})},o.prototype._detachCloseHandler=function(e){n(document.body).off("mousedown.select2."+e.id)},o.prototype.position=function(e,t){t.find(".selection").append(e)},o.prototype.destroy=function(){this._detachCloseHandler(this.container)},o.prototype.update=function(e){throw new Error("The `update` method must be defined in child classes.")},o}),e.define("select2/selection/single",["jquery","./base","../utils","../keys"],function(e,t,n,r){function i(){i.__super__.constructor.apply(this,arguments)}return n.Extend(i,t),i.prototype.render=function(){var e=i.__super__.render.call(this);return e.addClass("select2-selection--single"),e.html('<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>'),e},i.prototype.bind=function(t,e){var n=this;i.__super__.bind.apply(this,arguments);var r=t.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",r).attr("role","textbox").attr("aria-readonly","true"),this.$selection.attr("aria-labelledby",r),this.$selection.on("mousedown",function(e){1===e.which&&n.trigger("toggle",{originalEvent:e})}),this.$selection.on("focus",function(e){}),this.$selection.on("blur",function(e){}),t.on("focus",function(e){t.isOpen()||n.$selection.trigger("focus")})},i.prototype.clear=function(){var e=this.$selection.find(".select2-selection__rendered");e.empty(),e.removeAttr("title")},i.prototype.display=function(e,t){var n=this.options.get("templateSelection");return this.options.get("escapeMarkup")(n(e,t))},i.prototype.selectionContainer=function(){return e("<span></span>")},i.prototype.update=function(e){if(0!==e.length){var t=e[0],n=this.$selection.find(".select2-selection__rendered"),r=this.display(t,n);n.empty().append(r),n.attr("title",t.title||t.text)}else this.clear()},i}),e.define("select2/selection/multiple",["jquery","./base","../utils"],function(i,e,a){function n(e,t){n.__super__.constructor.apply(this,arguments)}return a.Extend(n,e),n.prototype.render=function(){var e=n.__super__.render.call(this);return e.addClass("select2-selection--multiple"),e.html('<ul class="select2-selection__rendered"></ul>'),e},n.prototype.bind=function(e,t){var r=this;n.__super__.bind.apply(this,arguments),this.$selection.on("click",function(e){r.trigger("toggle",{originalEvent:e})}),this.$selection.on("click",".select2-selection__choice__remove",function(e){if(!r.options.get("disabled")){var t=i(this).parent(),n=a.GetData(t[0],"data");r.trigger("unselect",{originalEvent:e,data:n})}})},n.prototype.clear=function(){var e=this.$selection.find(".select2-selection__rendered");e.empty(),e.removeAttr("title")},n.prototype.display=function(e,t){var n=this.options.get("templateSelection");return this.options.get("escapeMarkup")(n(e,t))},n.prototype.selectionContainer=function(){return i('<li class="select2-selection__choice"><span class="select2-selection__choice__remove" role="presentation">&times;</span></li>')},n.prototype.update=function(e){if(this.clear(),0!==e.length){for(var t=[],n=0;n<e.length;n++){var r=e[n],i=this.selectionContainer(),o=this.display(r,i);i.append(o),i.attr("title",r.title||r.text),a.StoreData(i[0],"data",r),t.push(i)}var s=this.$selection.find(".select2-selection__rendered");a.appendMany(s,t)}},n}),e.define("select2/selection/placeholder",["../utils"],function(e){function t(e,t,n){this.placeholder=this.normalizePlaceholder(n.get("placeholder")),e.call(this,t,n)}return t.prototype.normalizePlaceholder=function(e,t){return"string"==typeof t&&(t={id:"",text:t}),t},t.prototype.createPlaceholder=function(e,t){var n=this.selectionContainer();return n.html(this.display(t)),n.addClass("select2-selection__placeholder").removeClass("select2-selection__choice"),n},t.prototype.update=function(e,t){var n=1==t.length&&t[0].id!=this.placeholder.id;if(1<t.length||n)return e.call(this,t);this.clear();var r=this.createPlaceholder(this.placeholder);this.$selection.find(".select2-selection__rendered").append(r)},t}),e.define("select2/selection/allowClear",["jquery","../keys","../utils"],function(i,r,a){function e(){}return e.prototype.bind=function(e,t,n){var r=this;e.call(this,t,n),null==this.placeholder&&this.options.get("debug")&&window.console&&console.error&&console.error("Select2: The `allowClear` option should be used in combination with the `placeholder` option."),this.$selection.on("mousedown",".select2-selection__clear",function(e){r._handleClear(e)}),t.on("keypress",function(e){r._handleKeyboardClear(e,t)})},e.prototype._handleClear=function(e,t){if(!this.options.get("disabled")){var n=this.$selection.find(".select2-selection__clear");if(0!==n.length){t.stopPropagation();var r=a.GetData(n[0],"data"),i=this.$element.val();this.$element.val(this.placeholder.id);var o={data:r};if(this.trigger("clear",o),o.prevented)this.$element.val(i);else{for(var s=0;s<r.length;s++)if(o={data:r[s]},this.trigger("unselect",o),o.prevented)return void this.$element.val(i);this.$element.trigger("change"),this.trigger("toggle",{})}}}},e.prototype._handleKeyboardClear=function(e,t,n){n.isOpen()||t.which!=r.DELETE&&t.which!=r.BACKSPACE||this._handleClear(t)},e.prototype.update=function(e,t){if(e.call(this,t),!(0<this.$selection.find(".select2-selection__placeholder").length||0===t.length)){var n=this.options.get("translations").get("removeAllItems"),r=i('<span class="select2-selection__clear" title="'+n()+'">&times;</span>');a.StoreData(r[0],"data",t),this.$selection.find(".select2-selection__rendered").prepend(r)}},e}),e.define("select2/selection/search",["jquery","../utils","../keys"],function(r,s,a){function e(e,t,n){e.call(this,t,n)}return e.prototype.render=function(e){var t=r('<li class="select2-search select2-search--inline"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="textbox" aria-autocomplete="list" /></li>');this.$searchContainer=t,this.$search=t.find("input");var n=e.call(this);return this._transferTabIndex(),n},e.prototype.bind=function(e,t,n){var r=this;e.call(this,t,n),t.on("open",function(){r.$search.trigger("focus")}),t.on("close",function(){r.$search.val(""),r.$search.removeAttr("aria-activedescendant"),r.$search.trigger("focus")}),t.on("enable",function(){r.$search.prop("disabled",!1),r._transferTabIndex()}),t.on("disable",function(){r.$search.prop("disabled",!0)}),t.on("focus",function(e){r.$search.trigger("focus")}),t.on("results:focus",function(e){r.$search.attr("aria-activedescendant",e.id)}),this.$selection.on("focusin",".select2-search--inline",function(e){r.trigger("focus",e)}),this.$selection.on("focusout",".select2-search--inline",function(e){r._handleBlur(e)}),this.$selection.on("keydown",".select2-search--inline",function(e){if(e.stopPropagation(),r.trigger("keypress",e),r._keyUpPrevented=e.isDefaultPrevented(),e.which===a.BACKSPACE&&""===r.$search.val()){var t=r.$searchContainer.prev(".select2-selection__choice");if(0<t.length){var n=s.GetData(t[0],"data");r.searchRemoveChoice(n),e.preventDefault()}}});var i=document.documentMode,o=i&&i<=11;this.$selection.on("input.searchcheck",".select2-search--inline",function(e){o?r.$selection.off("input.search input.searchcheck"):r.$selection.off("keyup.search")}),this.$selection.on("keyup.search input.search",".select2-search--inline",function(e){if(o&&"input"===e.type)r.$selection.off("input.search input.searchcheck");else{var t=e.which;t!=a.SHIFT&&t!=a.CTRL&&t!=a.ALT&&t!=a.TAB&&r.handleSearch(e)}})},e.prototype._transferTabIndex=function(e){this.$search.attr("tabindex",this.$selection.attr("tabindex")),this.$selection.attr("tabindex","-1")},e.prototype.createPlaceholder=function(e,t){this.$search.attr("placeholder",t.text)},e.prototype.update=function(e,t){var n=this.$search[0]==document.activeElement;this.$search.attr("placeholder",""),e.call(this,t),this.$selection.find(".select2-selection__rendered").append(this.$searchContainer),this.resizeSearch(),n&&this.$search.trigger("focus")},e.prototype.handleSearch=function(){if(this.resizeSearch(),!this._keyUpPrevented){var e=this.$search.val();this.trigger("query",{term:e})}this._keyUpPrevented=!1},e.prototype.searchRemoveChoice=function(e,t){this.trigger("unselect",{data:t}),this.$search.val(t.text),this.handleSearch()},e.prototype.resizeSearch=function(){this.$search.css("width","25px");var e="";""!==this.$search.attr("placeholder")?e=this.$selection.find(".select2-selection__rendered").innerWidth():e=.75*(this.$search.val().length+1)+"em";this.$search.css("width",e)},e}),e.define("select2/selection/eventRelay",["jquery"],function(s){function e(){}return e.prototype.bind=function(e,t,n){var r=this,i=["open","opening","close","closing","select","selecting","unselect","unselecting","clear","clearing"],o=["opening","closing","selecting","unselecting","clearing"];e.call(this,t,n),t.on("*",function(e,t){if(-1!==s.inArray(e,i)){t=t||{};var n=s.Event("select2:"+e,{params:t});r.$element.trigger(n),-1!==s.inArray(e,o)&&(t.prevented=n.isDefaultPrevented())}})},e}),e.define("select2/translation",["jquery","require"],function(t,n){function r(e){this.dict=e||{}}return r.prototype.all=function(){return this.dict},r.prototype.get=function(e){return this.dict[e]},r.prototype.extend=function(e){this.dict=t.extend({},e.all(),this.dict)},r._cache={},r.loadPath=function(e){if(!(e in r._cache)){var t=n(e);r._cache[e]=t}return new r(r._cache[e])},r}),e.define("select2/diacritics",[],function(){return{"Ⓐ":"A","Ａ":"A","À":"A","Á":"A","Â":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ā":"A","Ă":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ǡ":"A","Ä":"A","Ǟ":"A","Ả":"A","Å":"A","Ǻ":"A","Ǎ":"A","Ȁ":"A","Ȃ":"A","Ạ":"A","Ậ":"A","Ặ":"A","Ḁ":"A","Ą":"A","Ⱥ":"A","Ɐ":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ⓑ":"B","Ｂ":"B","Ḃ":"B","Ḅ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ɓ":"B","Ⓒ":"C","Ｃ":"C","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","Ç":"C","Ḉ":"C","Ƈ":"C","Ȼ":"C","Ꜿ":"C","Ⓓ":"D","Ｄ":"D","Ḋ":"D","Ď":"D","Ḍ":"D","Ḑ":"D","Ḓ":"D","Ḏ":"D","Đ":"D","Ƌ":"D","Ɗ":"D","Ɖ":"D","Ꝺ":"D","Ǳ":"DZ","Ǆ":"DZ","ǲ":"Dz","ǅ":"Dz","Ⓔ":"E","Ｅ":"E","È":"E","É":"E","Ê":"E","Ề":"E","Ế":"E","Ễ":"E","Ể":"E","Ẽ":"E","Ē":"E","Ḕ":"E","Ḗ":"E","Ĕ":"E","Ė":"E","Ë":"E","Ẻ":"E","Ě":"E","Ȅ":"E","Ȇ":"E","Ẹ":"E","Ệ":"E","Ȩ":"E","Ḝ":"E","Ę":"E","Ḙ":"E","Ḛ":"E","Ɛ":"E","Ǝ":"E","Ⓕ":"F","Ｆ":"F","Ḟ":"F","Ƒ":"F","Ꝼ":"F","Ⓖ":"G","Ｇ":"G","Ǵ":"G","Ĝ":"G","Ḡ":"G","Ğ":"G","Ġ":"G","Ǧ":"G","Ģ":"G","Ǥ":"G","Ɠ":"G","Ꞡ":"G","Ᵹ":"G","Ꝿ":"G","Ⓗ":"H","Ｈ":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","Ȟ":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","Ⱨ":"H","Ⱶ":"H","Ɥ":"H","Ⓘ":"I","Ｉ":"I","Ì":"I","Í":"I","Î":"I","Ĩ":"I","Ī":"I","Ĭ":"I","İ":"I","Ï":"I","Ḯ":"I","Ỉ":"I","Ǐ":"I","Ȉ":"I","Ȋ":"I","Ị":"I","Į":"I","Ḭ":"I","Ɨ":"I","Ⓙ":"J","Ｊ":"J","Ĵ":"J","Ɉ":"J","Ⓚ":"K","Ｋ":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Ƙ":"K","Ⱪ":"K","Ꝁ":"K","Ꝃ":"K","Ꝅ":"K","Ꞣ":"K","Ⓛ":"L","Ｌ":"L","Ŀ":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ļ":"L","Ḽ":"L","Ḻ":"L","Ł":"L","Ƚ":"L","Ɫ":"L","Ⱡ":"L","Ꝉ":"L","Ꝇ":"L","Ꞁ":"L","Ǉ":"LJ","ǈ":"Lj","Ⓜ":"M","Ｍ":"M","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ɯ":"M","Ⓝ":"N","Ｎ":"N","Ǹ":"N","Ń":"N","Ñ":"N","Ṅ":"N","Ň":"N","Ṇ":"N","Ņ":"N","Ṋ":"N","Ṉ":"N","Ƞ":"N","Ɲ":"N","Ꞑ":"N","Ꞥ":"N","Ǌ":"NJ","ǋ":"Nj","Ⓞ":"O","Ｏ":"O","Ò":"O","Ó":"O","Ô":"O","Ồ":"O","Ố":"O","Ỗ":"O","Ổ":"O","Õ":"O","Ṍ":"O","Ȭ":"O","Ṏ":"O","Ō":"O","Ṑ":"O","Ṓ":"O","Ŏ":"O","Ȯ":"O","Ȱ":"O","Ö":"O","Ȫ":"O","Ỏ":"O","Ő":"O","Ǒ":"O","Ȍ":"O","Ȏ":"O","Ơ":"O","Ờ":"O","Ớ":"O","Ỡ":"O","Ở":"O","Ợ":"O","Ọ":"O","Ộ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Ɔ":"O","Ɵ":"O","Ꝋ":"O","Ꝍ":"O","Œ":"OE","Ƣ":"OI","Ꝏ":"OO","Ȣ":"OU","Ⓟ":"P","Ｐ":"P","Ṕ":"P","Ṗ":"P","Ƥ":"P","Ᵽ":"P","Ꝑ":"P","Ꝓ":"P","Ꝕ":"P","Ⓠ":"Q","Ｑ":"Q","Ꝗ":"Q","Ꝙ":"Q","Ɋ":"Q","Ⓡ":"R","Ｒ":"R","Ŕ":"R","Ṙ":"R","Ř":"R","Ȑ":"R","Ȓ":"R","Ṛ":"R","Ṝ":"R","Ŗ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꝛ":"R","Ꞧ":"R","Ꞃ":"R","Ⓢ":"S","Ｓ":"S","ẞ":"S","Ś":"S","Ṥ":"S","Ŝ":"S","Ṡ":"S","Š":"S","Ṧ":"S","Ṣ":"S","Ṩ":"S","Ș":"S","Ş":"S","Ȿ":"S","Ꞩ":"S","Ꞅ":"S","Ⓣ":"T","Ｔ":"T","Ṫ":"T","Ť":"T","Ṭ":"T","Ț":"T","Ţ":"T","Ṱ":"T","Ṯ":"T","Ŧ":"T","Ƭ":"T","Ʈ":"T","Ⱦ":"T","Ꞇ":"T","Ꜩ":"TZ","Ⓤ":"U","Ｕ":"U","Ù":"U","Ú":"U","Û":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ü":"U","Ǜ":"U","Ǘ":"U","Ǖ":"U","Ǚ":"U","Ủ":"U","Ů":"U","Ű":"U","Ǔ":"U","Ȕ":"U","Ȗ":"U","Ư":"U","Ừ":"U","Ứ":"U","Ữ":"U","Ử":"U","Ự":"U","Ụ":"U","Ṳ":"U","Ų":"U","Ṷ":"U","Ṵ":"U","Ʉ":"U","Ⓥ":"V","Ｖ":"V","Ṽ":"V","Ṿ":"V","Ʋ":"V","Ꝟ":"V","Ʌ":"V","Ꝡ":"VY","Ⓦ":"W","Ｗ":"W","Ẁ":"W","Ẃ":"W","Ŵ":"W","Ẇ":"W","Ẅ":"W","Ẉ":"W","Ⱳ":"W","Ⓧ":"X","Ｘ":"X","Ẋ":"X","Ẍ":"X","Ⓨ":"Y","Ｙ":"Y","Ỳ":"Y","Ý":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","Ẏ":"Y","Ÿ":"Y","Ỷ":"Y","Ỵ":"Y","Ƴ":"Y","Ɏ":"Y","Ỿ":"Y","Ⓩ":"Z","Ｚ":"Z","Ź":"Z","Ẑ":"Z","Ż":"Z","Ž":"Z","Ẓ":"Z","Ẕ":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","Ꝣ":"Z","ⓐ":"a","ａ":"a","ẚ":"a","à":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","ā":"a","ă":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","ǡ":"a","ä":"a","ǟ":"a","ả":"a","å":"a","ǻ":"a","ǎ":"a","ȁ":"a","ȃ":"a","ạ":"a","ậ":"a","ặ":"a","ḁ":"a","ą":"a","ⱥ":"a","ɐ":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ⓑ":"b","ｂ":"b","ḃ":"b","ḅ":"b","ḇ":"b","ƀ":"b","ƃ":"b","ɓ":"b","ⓒ":"c","ｃ":"c","ć":"c","ĉ":"c","ċ":"c","č":"c","ç":"c","ḉ":"c","ƈ":"c","ȼ":"c","ꜿ":"c","ↄ":"c","ⓓ":"d","ｄ":"d","ḋ":"d","ď":"d","ḍ":"d","ḑ":"d","ḓ":"d","ḏ":"d","đ":"d","ƌ":"d","ɖ":"d","ɗ":"d","ꝺ":"d","ǳ":"dz","ǆ":"dz","ⓔ":"e","ｅ":"e","è":"e","é":"e","ê":"e","ề":"e","ế":"e","ễ":"e","ể":"e","ẽ":"e","ē":"e","ḕ":"e","ḗ":"e","ĕ":"e","ė":"e","ë":"e","ẻ":"e","ě":"e","ȅ":"e","ȇ":"e","ẹ":"e","ệ":"e","ȩ":"e","ḝ":"e","ę":"e","ḙ":"e","ḛ":"e","ɇ":"e","ɛ":"e","ǝ":"e","ⓕ":"f","ｆ":"f","ḟ":"f","ƒ":"f","ꝼ":"f","ⓖ":"g","ｇ":"g","ǵ":"g","ĝ":"g","ḡ":"g","ğ":"g","ġ":"g","ǧ":"g","ģ":"g","ǥ":"g","ɠ":"g","ꞡ":"g","ᵹ":"g","ꝿ":"g","ⓗ":"h","ｈ":"h","ĥ":"h","ḣ":"h","ḧ":"h","ȟ":"h","ḥ":"h","ḩ":"h","ḫ":"h","ẖ":"h","ħ":"h","ⱨ":"h","ⱶ":"h","ɥ":"h","ƕ":"hv","ⓘ":"i","ｉ":"i","ì":"i","í":"i","î":"i","ĩ":"i","ī":"i","ĭ":"i","ï":"i","ḯ":"i","ỉ":"i","ǐ":"i","ȉ":"i","ȋ":"i","ị":"i","į":"i","ḭ":"i","ɨ":"i","ı":"i","ⓙ":"j","ｊ":"j","ĵ":"j","ǰ":"j","ɉ":"j","ⓚ":"k","ｋ":"k","ḱ":"k","ǩ":"k","ḳ":"k","ķ":"k","ḵ":"k","ƙ":"k","ⱪ":"k","ꝁ":"k","ꝃ":"k","ꝅ":"k","ꞣ":"k","ⓛ":"l","ｌ":"l","ŀ":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","ſ":"l","ł":"l","ƚ":"l","ɫ":"l","ⱡ":"l","ꝉ":"l","ꞁ":"l","ꝇ":"l","ǉ":"lj","ⓜ":"m","ｍ":"m","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ɯ":"m","ⓝ":"n","ｎ":"n","ǹ":"n","ń":"n","ñ":"n","ṅ":"n","ň":"n","ṇ":"n","ņ":"n","ṋ":"n","ṉ":"n","ƞ":"n","ɲ":"n","ŉ":"n","ꞑ":"n","ꞥ":"n","ǌ":"nj","ⓞ":"o","ｏ":"o","ò":"o","ó":"o","ô":"o","ồ":"o","ố":"o","ỗ":"o","ổ":"o","õ":"o","ṍ":"o","ȭ":"o","ṏ":"o","ō":"o","ṑ":"o","ṓ":"o","ŏ":"o","ȯ":"o","ȱ":"o","ö":"o","ȫ":"o","ỏ":"o","ő":"o","ǒ":"o","ȍ":"o","ȏ":"o","ơ":"o","ờ":"o","ớ":"o","ỡ":"o","ở":"o","ợ":"o","ọ":"o","ộ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","ɔ":"o","ꝋ":"o","ꝍ":"o","ɵ":"o","œ":"oe","ƣ":"oi","ȣ":"ou","ꝏ":"oo","ⓟ":"p","ｐ":"p","ṕ":"p","ṗ":"p","ƥ":"p","ᵽ":"p","ꝑ":"p","ꝓ":"p","ꝕ":"p","ⓠ":"q","ｑ":"q","ɋ":"q","ꝗ":"q","ꝙ":"q","ⓡ":"r","ｒ":"r","ŕ":"r","ṙ":"r","ř":"r","ȑ":"r","ȓ":"r","ṛ":"r","ṝ":"r","ŗ":"r","ṟ":"r","ɍ":"r","ɽ":"r","ꝛ":"r","ꞧ":"r","ꞃ":"r","ⓢ":"s","ｓ":"s","ß":"s","ś":"s","ṥ":"s","ŝ":"s","ṡ":"s","š":"s","ṧ":"s","ṣ":"s","ṩ":"s","ș":"s","ş":"s","ȿ":"s","ꞩ":"s","ꞅ":"s","ẛ":"s","ⓣ":"t","ｔ":"t","ṫ":"t","ẗ":"t","ť":"t","ṭ":"t","ț":"t","ţ":"t","ṱ":"t","ṯ":"t","ŧ":"t","ƭ":"t","ʈ":"t","ⱦ":"t","ꞇ":"t","ꜩ":"tz","ⓤ":"u","ｕ":"u","ù":"u","ú":"u","û":"u","ũ":"u","ṹ":"u","ū":"u","ṻ":"u","ŭ":"u","ü":"u","ǜ":"u","ǘ":"u","ǖ":"u","ǚ":"u","ủ":"u","ů":"u","ű":"u","ǔ":"u","ȕ":"u","ȗ":"u","ư":"u","ừ":"u","ứ":"u","ữ":"u","ử":"u","ự":"u","ụ":"u","ṳ":"u","ų":"u","ṷ":"u","ṵ":"u","ʉ":"u","ⓥ":"v","ｖ":"v","ṽ":"v","ṿ":"v","ʋ":"v","ꝟ":"v","ʌ":"v","ꝡ":"vy","ⓦ":"w","ｗ":"w","ẁ":"w","ẃ":"w","ŵ":"w","ẇ":"w","ẅ":"w","ẘ":"w","ẉ":"w","ⱳ":"w","ⓧ":"x","ｘ":"x","ẋ":"x","ẍ":"x","ⓨ":"y","ｙ":"y","ỳ":"y","ý":"y","ŷ":"y","ỹ":"y","ȳ":"y","ẏ":"y","ÿ":"y","ỷ":"y","ẙ":"y","ỵ":"y","ƴ":"y","ɏ":"y","ỿ":"y","ⓩ":"z","ｚ":"z","ź":"z","ẑ":"z","ż":"z","ž":"z","ẓ":"z","ẕ":"z","ƶ":"z","ȥ":"z","ɀ":"z","ⱬ":"z","ꝣ":"z","Ά":"Α","Έ":"Ε","Ή":"Η","Ί":"Ι","Ϊ":"Ι","Ό":"Ο","Ύ":"Υ","Ϋ":"Υ","Ώ":"Ω","ά":"α","έ":"ε","ή":"η","ί":"ι","ϊ":"ι","ΐ":"ι","ό":"ο","ύ":"υ","ϋ":"υ","ΰ":"υ","ώ":"ω","ς":"σ","’":"'"}}),e.define("select2/data/base",["../utils"],function(r){function n(e,t){n.__super__.constructor.call(this)}return r.Extend(n,r.Observable),n.prototype.current=function(e){throw new Error("The `current` method must be defined in child classes.")},n.prototype.query=function(e,t){throw new Error("The `query` method must be defined in child classes.")},n.prototype.bind=function(e,t){},n.prototype.destroy=function(){},n.prototype.generateResultId=function(e,t){var n=e.id+"-result-";return n+=r.generateChars(4),null!=t.id?n+="-"+t.id.toString():n+="-"+r.generateChars(4),n},n}),e.define("select2/data/select",["./base","../utils","jquery"],function(e,a,l){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return a.Extend(n,e),n.prototype.current=function(e){var n=[],r=this;this.$element.find(":selected").each(function(){var e=l(this),t=r.item(e);n.push(t)}),e(n)},n.prototype.select=function(i){var o=this;if(i.selected=!0,l(i.element).is("option"))return i.element.selected=!0,void this.$element.trigger("change");if(this.$element.prop("multiple"))this.current(function(e){var t=[];(i=[i]).push.apply(i,e);for(var n=0;n<i.length;n++){var r=i[n].id;-1===l.inArray(r,t)&&t.push(r)}o.$element.val(t),o.$element.trigger("change")});else{var e=i.id;this.$element.val(e),this.$element.trigger("change")}},n.prototype.unselect=function(i){var o=this;if(this.$element.prop("multiple")){if(i.selected=!1,l(i.element).is("option"))return i.element.selected=!1,void this.$element.trigger("change");this.current(function(e){for(var t=[],n=0;n<e.length;n++){var r=e[n].id;r!==i.id&&-1===l.inArray(r,t)&&t.push(r)}o.$element.val(t),o.$element.trigger("change")})}},n.prototype.bind=function(e,t){var n=this;(this.container=e).on("select",function(e){n.select(e.data)}),e.on("unselect",function(e){n.unselect(e.data)})},n.prototype.destroy=function(){this.$element.find("*").each(function(){a.RemoveData(this)})},n.prototype.query=function(r,e){var i=[],o=this;this.$element.children().each(function(){var e=l(this);if(e.is("option")||e.is("optgroup")){var t=o.item(e),n=o.matches(r,t);null!==n&&i.push(n)}}),e({results:i})},n.prototype.addOptions=function(e){a.appendMany(this.$element,e)},n.prototype.option=function(e){var t;e.children?(t=document.createElement("optgroup")).label=e.text:void 0!==(t=document.createElement("option")).textContent?t.textContent=e.text:t.innerText=e.text,void 0!==e.id&&(t.value=e.id),e.disabled&&(t.disabled=!0),e.selected&&(t.selected=!0),e.title&&(t.title=e.title);var n=l(t),r=this._normalizeItem(e);return r.element=t,a.StoreData(t,"data",r),n},n.prototype.item=function(e){var t={};if(null!=(t=a.GetData(e[0],"data")))return t;if(e.is("option"))t={id:e.val(),text:e.text(),disabled:e.prop("disabled"),selected:e.prop("selected"),title:e.prop("title")};else if(e.is("optgroup")){t={text:e.prop("label"),children:[],title:e.prop("title")};for(var n=e.children("option"),r=[],i=0;i<n.length;i++){var o=l(n[i]),s=this.item(o);r.push(s)}t.children=r}return(t=this._normalizeItem(t)).element=e[0],a.StoreData(e[0],"data",t),t},n.prototype._normalizeItem=function(e){e!==Object(e)&&(e={id:e,text:e});return null!=(e=l.extend({},{text:""},e)).id&&(e.id=e.id.toString()),null!=e.text&&(e.text=e.text.toString()),null==e._resultId&&e.id&&null!=this.container&&(e._resultId=this.generateResultId(this.container,e)),l.extend({},{selected:!1,disabled:!1},e)},n.prototype.matches=function(e,t){return this.options.get("matcher")(e,t)},n}),e.define("select2/data/array",["./select","../utils","jquery"],function(e,f,g){function r(e,t){var n=t.get("data")||[];r.__super__.constructor.call(this,e,t),this.addOptions(this.convertToOptions(n))}return f.Extend(r,e),r.prototype.select=function(n){var e=this.$element.find("option").filter(function(e,t){return t.value==n.id.toString()});0===e.length&&(e=this.option(n),this.addOptions(e)),r.__super__.select.call(this,n)},r.prototype.convertToOptions=function(e){var t=this,n=this.$element.find("option"),r=n.map(function(){return t.item(g(this)).id}).get(),i=[];function o(e){return function(){return g(this).val()==e.id}}for(var s=0;s<e.length;s++){var a=this._normalizeItem(e[s]);if(0<=g.inArray(a.id,r)){var l=n.filter(o(a)),c=this.item(l),u=g.extend(!0,{},a,c),d=this.option(u);l.replaceWith(d)}else{var p=this.option(a);if(a.children){var h=this.convertToOptions(a.children);f.appendMany(p,h)}i.push(p)}}return i},r}),e.define("select2/data/ajax",["./array","../utils","jquery"],function(e,t,o){function n(e,t){this.ajaxOptions=this._applyDefaults(t.get("ajax")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),n.__super__.constructor.call(this,e,t)}return t.Extend(n,e),n.prototype._applyDefaults=function(e){var t={data:function(e){return o.extend({},e,{q:e.term})},transport:function(e,t,n){var r=o.ajax(e);return r.then(t),r.fail(n),r}};return o.extend({},t,e,!0)},n.prototype.processResults=function(e){return e},n.prototype.query=function(n,r){var i=this;null!=this._request&&(o.isFunction(this._request.abort)&&this._request.abort(),this._request=null);var t=o.extend({type:"GET"},this.ajaxOptions);function e(){var e=t.transport(t,function(e){var t=i.processResults(e,n);i.options.get("debug")&&window.console&&console.error&&(t&&t.results&&o.isArray(t.results)||console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")),r(t)},function(){"status"in e&&(0===e.status||"0"===e.status)||i.trigger("results:message",{message:"errorLoading"})});i._request=e}"function"==typeof t.url&&(t.url=t.url.call(this.$element,n)),"function"==typeof t.data&&(t.data=t.data.call(this.$element,n)),this.ajaxOptions.delay&&null!=n.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(e,this.ajaxOptions.delay)):e()},n}),e.define("select2/data/tags",["jquery"],function(u){function e(e,t,n){var r=n.get("tags"),i=n.get("createTag");void 0!==i&&(this.createTag=i);var o=n.get("insertTag");if(void 0!==o&&(this.insertTag=o),e.call(this,t,n),u.isArray(r))for(var s=0;s<r.length;s++){var a=r[s],l=this._normalizeItem(a),c=this.option(l);this.$element.append(c)}}return e.prototype.query=function(e,c,u){var d=this;this._removeOldTags(),null!=c.term&&null==c.page?e.call(this,c,function e(t,n){for(var r=t.results,i=0;i<r.length;i++){var o=r[i],s=null!=o.children&&!e({results:o.children},!0);if((o.text||"").toUpperCase()===(c.term||"").toUpperCase()||s)return!n&&(t.data=r,void u(t))}if(n)return!0;var a=d.createTag(c);if(null!=a){var l=d.option(a);l.attr("data-select2-tag",!0),d.addOptions([l]),d.insertTag(r,a)}t.results=r,u(t)}):e.call(this,c,u)},e.prototype.createTag=function(e,t){var n=u.trim(t.term);return""===n?null:{id:n,text:n}},e.prototype.insertTag=function(e,t,n){t.unshift(n)},e.prototype._removeOldTags=function(e){this._lastTag;this.$element.find("option[data-select2-tag]").each(function(){this.selected||u(this).remove()})},e}),e.define("select2/data/tokenizer",["jquery"],function(d){function e(e,t,n){var r=n.get("tokenizer");void 0!==r&&(this.tokenizer=r),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){e.call(this,t,n),this.$search=t.dropdown.$search||t.selection.$search||n.find(".select2-search__field")},e.prototype.query=function(e,t,n){var r=this;t.term=t.term||"";var i=this.tokenizer(t,this.options,function(e){var t=r._normalizeItem(e);if(!r.$element.find("option").filter(function(){return d(this).val()===t.id}).length){var n=r.option(t);n.attr("data-select2-tag",!0),r._removeOldTags(),r.addOptions([n])}!function(e){r.trigger("select",{data:e})}(t)});i.term!==t.term&&(this.$search.length&&(this.$search.val(i.term),this.$search.trigger("focus")),t.term=i.term),e.call(this,t,n)},e.prototype.tokenizer=function(e,t,n,r){for(var i=n.get("tokenSeparators")||[],o=t.term,s=0,a=this.createTag||function(e){return{id:e.term,text:e.term}};s<o.length;){var l=o[s];if(-1!==d.inArray(l,i)){var c=o.substr(0,s),u=a(d.extend({},t,{term:c}));null!=u?(r(u),o=o.substr(s+1)||"",s=0):s++}else s++}return{term:o}},e}),e.define("select2/data/minimumInputLength",[],function(){function e(e,t,n){this.minimumInputLength=n.get("minimumInputLength"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.term=t.term||"",t.term.length<this.minimumInputLength?this.trigger("results:message",{message:"inputTooShort",args:{minimum:this.minimumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),e.define("select2/data/maximumInputLength",[],function(){function e(e,t,n){this.maximumInputLength=n.get("maximumInputLength"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.term=t.term||"",0<this.maximumInputLength&&t.term.length>this.maximumInputLength?this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),e.define("select2/data/maximumSelectionLength",[],function(){function e(e,t,n){this.maximumSelectionLength=n.get("maximumSelectionLength"),e.call(this,t,n)}return e.prototype.query=function(n,r,i){var o=this;this.current(function(e){var t=null!=e?e.length:0;0<o.maximumSelectionLength&&t>=o.maximumSelectionLength?o.trigger("results:message",{message:"maximumSelected",args:{maximum:o.maximumSelectionLength}}):n.call(o,r,i)})},e}),e.define("select2/dropdown",["jquery","./utils"],function(t,e){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return e.Extend(n,e.Observable),n.prototype.render=function(){var e=t('<span class="select2-dropdown"><span class="select2-results"></span></span>');return e.attr("dir",this.options.get("dir")),this.$dropdown=e},n.prototype.bind=function(){},n.prototype.position=function(e,t){},n.prototype.destroy=function(){this.$dropdown.remove()},n}),e.define("select2/dropdown/search",["jquery","../utils"],function(i,e){function t(){}return t.prototype.render=function(e){var t=e.call(this),n=i('<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="textbox" /></span>');return this.$searchContainer=n,this.$search=n.find("input"),t.prepend(n),t},t.prototype.bind=function(e,t,n){var r=this;e.call(this,t,n),this.$search.on("keydown",function(e){r.trigger("keypress",e),r._keyUpPrevented=e.isDefaultPrevented()}),this.$search.on("input",function(e){i(this).off("keyup")}),this.$search.on("keyup input",function(e){r.handleSearch(e)}),t.on("open",function(){r.$search.attr("tabindex",0),r.$search.trigger("focus"),window.setTimeout(function(){r.$search.trigger("focus")},0)}),t.on("close",function(){r.$search.attr("tabindex",-1),r.$search.val(""),r.$search.trigger("blur")}),t.on("focus",function(){t.isOpen()||r.$search.trigger("focus")}),t.on("results:all",function(e){null!=e.query.term&&""!==e.query.term||(r.showSearch(e)?r.$searchContainer.removeClass("select2-search--hide"):r.$searchContainer.addClass("select2-search--hide"))})},t.prototype.handleSearch=function(e){if(!this._keyUpPrevented){var t=this.$search.val();this.trigger("query",{term:t})}this._keyUpPrevented=!1},t.prototype.showSearch=function(e,t){return!0},t}),e.define("select2/dropdown/hidePlaceholder",[],function(){function e(e,t,n,r){this.placeholder=this.normalizePlaceholder(n.get("placeholder")),e.call(this,t,n,r)}return e.prototype.append=function(e,t){t.results=this.removePlaceholder(t.results),e.call(this,t)},e.prototype.normalizePlaceholder=function(e,t){return"string"==typeof t&&(t={id:"",text:t}),t},e.prototype.removePlaceholder=function(e,t){for(var n=t.slice(0),r=t.length-1;0<=r;r--){var i=t[r];this.placeholder.id===i.id&&n.splice(r,1)}return n},e}),e.define("select2/dropdown/infiniteScroll",["jquery"],function(n){function e(e,t,n,r){this.lastParams={},e.call(this,t,n,r),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return e.prototype.append=function(e,t){this.$loadingMore.remove(),this.loading=!1,e.call(this,t),this.showLoadingMore(t)&&(this.$results.append(this.$loadingMore),this.loadMoreIfNeeded())},e.prototype.bind=function(e,t,n){var r=this;e.call(this,t,n),t.on("query",function(e){r.lastParams=e,r.loading=!0}),t.on("query:append",function(e){r.lastParams=e,r.loading=!0}),this.$results.on("scroll",this.loadMoreIfNeeded.bind(this))},e.prototype.loadMoreIfNeeded=function(){var e=n.contains(document.documentElement,this.$loadingMore[0]);if(!this.loading&&e){var t=this.$results.offset().top+this.$results.outerHeight(!1);this.$loadingMore.offset().top+this.$loadingMore.outerHeight(!1)<=t+50&&this.loadMore()}},e.prototype.loadMore=function(){this.loading=!0;var e=n.extend({},{page:1},this.lastParams);e.page++,this.trigger("query:append",e)},e.prototype.showLoadingMore=function(e,t){return t.pagination&&t.pagination.more},e.prototype.createLoadingMore=function(){var e=n('<li class="select2-results__option select2-results__option--load-more"role="treeitem" aria-disabled="true"></li>'),t=this.options.get("translations").get("loadingMore");return e.html(t(this.lastParams)),e},e}),e.define("select2/dropdown/attachBody",["jquery","../utils"],function(f,a){function e(e,t,n){this.$dropdownParent=n.get("dropdownParent")||f(document.body),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){var r=this,i=!1;e.call(this,t,n),t.on("open",function(){r._showDropdown(),r._attachPositioningHandler(t),i||(i=!0,t.on("results:all",function(){r._positionDropdown(),r._resizeDropdown()}),t.on("results:append",function(){r._positionDropdown(),r._resizeDropdown()}))}),t.on("close",function(){r._hideDropdown(),r._detachPositioningHandler(t)}),this.$dropdownContainer.on("mousedown",function(e){e.stopPropagation()})},e.prototype.destroy=function(e){e.call(this),this.$dropdownContainer.remove()},e.prototype.position=function(e,t,n){t.attr("class",n.attr("class")),t.removeClass("select2"),t.addClass("select2-container--open"),t.css({position:"absolute",top:-999999}),this.$container=n},e.prototype.render=function(e){var t=f("<span></span>"),n=e.call(this);return t.append(n),this.$dropdownContainer=t},e.prototype._hideDropdown=function(e){this.$dropdownContainer.detach()},e.prototype._attachPositioningHandler=function(e,t){var n=this,r="scroll.select2."+t.id,i="resize.select2."+t.id,o="orientationchange.select2."+t.id,s=this.$container.parents().filter(a.hasScroll);s.each(function(){a.StoreData(this,"select2-scroll-position",{x:f(this).scrollLeft(),y:f(this).scrollTop()})}),s.on(r,function(e){var t=a.GetData(this,"select2-scroll-position");f(this).scrollTop(t.y)}),f(window).on(r+" "+i+" "+o,function(e){n._positionDropdown(),n._resizeDropdown()})},e.prototype._detachPositioningHandler=function(e,t){var n="scroll.select2."+t.id,r="resize.select2."+t.id,i="orientationchange.select2."+t.id;this.$container.parents().filter(a.hasScroll).off(n),f(window).off(n+" "+r+" "+i)},e.prototype._positionDropdown=function(){var e=f(window),t=this.$dropdown.hasClass("select2-dropdown--above"),n=this.$dropdown.hasClass("select2-dropdown--below"),r=null,i=this.$container.offset();i.bottom=i.top+this.$container.outerHeight(!1);var o={height:this.$container.outerHeight(!1)};o.top=i.top,o.bottom=i.top+o.height;var s=this.$dropdown.outerHeight(!1),a=e.scrollTop(),l=e.scrollTop()+e.height(),c=a<i.top-s,u=l>i.bottom+s,d={left:i.left,top:o.bottom},p=this.$dropdownParent;"static"===p.css("position")&&(p=p.offsetParent());var h=p.offset();d.top-=h.top,d.left-=h.left,t||n||(r="below"),u||!c||t?!c&&u&&t&&(r="below"):r="above",("above"==r||t&&"below"!==r)&&(d.top=o.top-h.top-s),null!=r&&(this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--"+r),this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--"+r)),this.$dropdownContainer.css(d)},e.prototype._resizeDropdown=function(){var e={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(e.minWidth=e.width,e.position="relative",e.width="auto"),this.$dropdown.css(e)},e.prototype._showDropdown=function(e){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},e}),e.define("select2/dropdown/minimumResultsForSearch",[],function(){function e(e,t,n,r){this.minimumResultsForSearch=n.get("minimumResultsForSearch"),this.minimumResultsForSearch<0&&(this.minimumResultsForSearch=1/0),e.call(this,t,n,r)}return e.prototype.showSearch=function(e,t){return!(function e(t){for(var n=0,r=0;r<t.length;r++){var i=t[r];i.children?n+=e(i.children):n++}return n}(t.data.results)<this.minimumResultsForSearch)&&e.call(this,t)},e}),e.define("select2/dropdown/selectOnClose",["../utils"],function(o){function e(){}return e.prototype.bind=function(e,t,n){var r=this;e.call(this,t,n),t.on("close",function(e){r._handleSelectOnClose(e)})},e.prototype._handleSelectOnClose=function(e,t){if(t&&null!=t.originalSelect2Event){var n=t.originalSelect2Event;if("select"===n._type||"unselect"===n._type)return}var r=this.getHighlightedResults();if(!(r.length<1)){var i=o.GetData(r[0],"data");null!=i.element&&i.element.selected||null==i.element&&i.selected||this.trigger("select",{data:i})}},e}),e.define("select2/dropdown/closeOnSelect",[],function(){function e(){}return e.prototype.bind=function(e,t,n){var r=this;e.call(this,t,n),t.on("select",function(e){r._selectTriggered(e)}),t.on("unselect",function(e){r._selectTriggered(e)})},e.prototype._selectTriggered=function(e,t){var n=t.originalEvent;n&&(n.ctrlKey||n.metaKey)||this.trigger("close",{originalEvent:n,originalSelect2Event:t})},e}),e.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Please delete "+t+" character";return 1!=t&&(n+="s"),n},inputTooShort:function(e){return"Please enter "+(e.minimum-e.input.length)+" or more characters"},loadingMore:function(){return"Loading more results…"},maximumSelected:function(e){var t="You can only select "+e.maximum+" item";return 1!=e.maximum&&(t+="s"),t},noResults:function(){return"No results found"},searching:function(){return"Searching…"},removeAllItems:function(){return"Remove all items"}}}),e.define("select2/defaults",["jquery","require","./results","./selection/single","./selection/multiple","./selection/placeholder","./selection/allowClear","./selection/search","./selection/eventRelay","./utils","./translation","./diacritics","./data/select","./data/array","./data/ajax","./data/tags","./data/tokenizer","./data/minimumInputLength","./data/maximumInputLength","./data/maximumSelectionLength","./dropdown","./dropdown/search","./dropdown/hidePlaceholder","./dropdown/infiniteScroll","./dropdown/attachBody","./dropdown/minimumResultsForSearch","./dropdown/selectOnClose","./dropdown/closeOnSelect","./i18n/en"],function(f,g,m,v,y,_,$,w,b,A,x,t,D,S,E,C,O,T,q,L,j,I,P,k,R,U,M,z,e){function n(){this.reset()}return n.prototype.apply=function(t){if(null==(t=f.extend(!0,{},this.defaults,t)).dataAdapter){if(null!=t.ajax?t.dataAdapter=E:null!=t.data?t.dataAdapter=S:t.dataAdapter=D,0<t.minimumInputLength&&(t.dataAdapter=A.Decorate(t.dataAdapter,T)),0<t.maximumInputLength&&(t.dataAdapter=A.Decorate(t.dataAdapter,q)),0<t.maximumSelectionLength&&(t.dataAdapter=A.Decorate(t.dataAdapter,L)),t.tags&&(t.dataAdapter=A.Decorate(t.dataAdapter,C)),null==t.tokenSeparators&&null==t.tokenizer||(t.dataAdapter=A.Decorate(t.dataAdapter,O)),null!=t.query){var e=g(t.amdBase+"compat/query");t.dataAdapter=A.Decorate(t.dataAdapter,e)}if(null!=t.initSelection){var n=g(t.amdBase+"compat/initSelection");t.dataAdapter=A.Decorate(t.dataAdapter,n)}}if(null==t.resultsAdapter&&(t.resultsAdapter=m,null!=t.ajax&&(t.resultsAdapter=A.Decorate(t.resultsAdapter,k)),null!=t.placeholder&&(t.resultsAdapter=A.Decorate(t.resultsAdapter,P)),t.selectOnClose&&(t.resultsAdapter=A.Decorate(t.resultsAdapter,M))),null==t.dropdownAdapter){if(t.multiple)t.dropdownAdapter=j;else{var r=A.Decorate(j,I);t.dropdownAdapter=r}if(0!==t.minimumResultsForSearch&&(t.dropdownAdapter=A.Decorate(t.dropdownAdapter,U)),t.closeOnSelect&&(t.dropdownAdapter=A.Decorate(t.dropdownAdapter,z)),null!=t.dropdownCssClass||null!=t.dropdownCss||null!=t.adaptDropdownCssClass){var i=g(t.amdBase+"compat/dropdownCss");t.dropdownAdapter=A.Decorate(t.dropdownAdapter,i)}t.dropdownAdapter=A.Decorate(t.dropdownAdapter,R)}if(null==t.selectionAdapter){if(t.multiple?t.selectionAdapter=y:t.selectionAdapter=v,null!=t.placeholder&&(t.selectionAdapter=A.Decorate(t.selectionAdapter,_)),t.allowClear&&(t.selectionAdapter=A.Decorate(t.selectionAdapter,$)),t.multiple&&(t.selectionAdapter=A.Decorate(t.selectionAdapter,w)),null!=t.containerCssClass||null!=t.containerCss||null!=t.adaptContainerCssClass){var o=g(t.amdBase+"compat/containerCss");t.selectionAdapter=A.Decorate(t.selectionAdapter,o)}t.selectionAdapter=A.Decorate(t.selectionAdapter,b)}if("string"==typeof t.language)if(0<t.language.indexOf("-")){var s=t.language.split("-")[0];t.language=[t.language,s]}else t.language=[t.language];if(f.isArray(t.language)){var a=new x;t.language.push("en");for(var l=t.language,c=0;c<l.length;c++){var u=l[c],d={};try{d=x.loadPath(u)}catch(e){try{u=this.defaults.amdLanguageBase+u,d=x.loadPath(u)}catch(e){t.debug&&window.console&&console.warn&&console.warn('Select2: The language file for "'+u+'" could not be automatically loaded. A fallback will be used instead.');continue}}a.extend(d)}t.translations=a}else{var p=x.loadPath(this.defaults.amdLanguageBase+"en"),h=new x(t.language);h.extend(p),t.translations=h}return t},n.prototype.reset=function(){function a(e){return e.replace(/[^\u0000-\u007E]/g,function(e){return t[e]||e})}this.defaults={amdBase:"./",amdLanguageBase:"./i18n/",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:A.escapeMarkup,language:e,matcher:function e(t,n){if(""===f.trim(t.term))return n;if(n.children&&0<n.children.length){for(var r=f.extend(!0,{},n),i=n.children.length-1;0<=i;i--)null==e(t,n.children[i])&&r.children.splice(i,1);return 0<r.children.length?r:e(t,r)}var o=a(n.text).toUpperCase(),s=a(t.term).toUpperCase();return-1<o.indexOf(s)?n:null},minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,scrollAfterSelect:!1,sorter:function(e){return e},templateResult:function(e){return e.text},templateSelection:function(e){return e.text},theme:"default",width:"resolve"}},n.prototype.set=function(e,t){var n={};n[f.camelCase(e)]=t;var r=A._convertData(n);f.extend(!0,this.defaults,r)},new n}),e.define("select2/options",["require","jquery","./defaults","./utils"],function(r,d,i,p){function e(e,t){if(this.options=e,null!=t&&this.fromElement(t),this.options=i.apply(this.options),t&&t.is("input")){var n=r(this.get("amdBase")+"compat/inputData");this.options.dataAdapter=p.Decorate(this.options.dataAdapter,n)}}return e.prototype.fromElement=function(e){var t=["select2"];null==this.options.multiple&&(this.options.multiple=e.prop("multiple")),null==this.options.disabled&&(this.options.disabled=e.prop("disabled")),null==this.options.language&&(e.prop("lang")?this.options.language=e.prop("lang").toLowerCase():e.closest("[lang]").prop("lang")&&(this.options.language=e.closest("[lang]").prop("lang"))),null==this.options.dir&&(e.prop("dir")?this.options.dir=e.prop("dir"):e.closest("[dir]").prop("dir")?this.options.dir=e.closest("[dir]").prop("dir"):this.options.dir="ltr"),e.prop("disabled",this.options.disabled),e.prop("multiple",this.options.multiple),p.GetData(e[0],"select2Tags")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'),p.StoreData(e[0],"data",p.GetData(e[0],"select2Tags")),p.StoreData(e[0],"tags",!0)),p.GetData(e[0],"ajaxUrl")&&(this.options.debug&&window.console&&console.warn&&console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."),e.attr("ajax--url",p.GetData(e[0],"ajaxUrl")),p.StoreData(e[0],"ajax-Url",p.GetData(e[0],"ajaxUrl")));var n={};function r(e,t){return t.toUpperCase()}for(var i=0;i<e[0].attributes.length;i++){var o=e[0].attributes[i].name,s="data-";if(o.substr(0,s.length)==s){var a=o.substring(s.length),l=p.GetData(e[0],a);n[a.replace(/-([a-z])/g,r)]=l}}d.fn.jquery&&"1."==d.fn.jquery.substr(0,2)&&e[0].dataset&&(n=d.extend(!0,{},e[0].dataset,n));var c=d.extend(!0,{},p.GetData(e[0]),n);for(var u in c=p._convertData(c))-1<d.inArray(u,t)||(d.isPlainObject(this.options[u])?d.extend(this.options[u],c[u]):this.options[u]=c[u]);return this},e.prototype.get=function(e){return this.options[e]},e.prototype.set=function(e,t){this.options[e]=t},e}),e.define("select2/core",["jquery","./options","./utils","./keys"],function(i,c,u,r){var d=function(e,t){null!=u.GetData(e[0],"select2")&&u.GetData(e[0],"select2").destroy(),this.$element=e,this.id=this._generateId(e),t=t||{},this.options=new c(t,e),d.__super__.constructor.call(this);var n=e.attr("tabindex")||0;u.StoreData(e[0],"old-tabindex",n),e.attr("tabindex","-1");var r=this.options.get("dataAdapter");this.dataAdapter=new r(e,this.options);var i=this.render();this._placeContainer(i);var o=this.options.get("selectionAdapter");this.selection=new o(e,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,i);var s=this.options.get("dropdownAdapter");this.dropdown=new s(e,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,i);var a=this.options.get("resultsAdapter");this.results=new a(e,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var l=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(e){l.trigger("selection:update",{data:e})}),e.addClass("select2-hidden-accessible"),e.attr("aria-hidden","true"),this._syncAttributes(),u.StoreData(e[0],"select2",this),e.data("select2",this)};return u.Extend(d,u.Observable),d.prototype._generateId=function(e){return"select2-"+(null!=e.attr("id")?e.attr("id"):null!=e.attr("name")?e.attr("name")+"-"+u.generateChars(2):u.generateChars(4)).replace(/(:|\.|\[|\]|,)/g,"")},d.prototype._placeContainer=function(e){e.insertAfter(this.$element);var t=this._resolveWidth(this.$element,this.options.get("width"));null!=t&&e.css("width",t)},d.prototype._resolveWidth=function(e,t){var n=/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if("resolve"==t){var r=this._resolveWidth(e,"style");return null!=r?r:this._resolveWidth(e,"element")}if("element"==t){var i=e.outerWidth(!1);return i<=0?"auto":i+"px"}if("style"!=t)return"computedstyle"!=t?t:window.getComputedStyle(e[0]).width;var o=e.attr("style");if("string"!=typeof o)return null;for(var s=o.split(";"),a=0,l=s.length;a<l;a+=1){var c=s[a].replace(/\s/g,"").match(n);if(null!==c&&1<=c.length)return c[1]}return null},d.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},d.prototype._registerDomEvents=function(){var t=this;this.$element.on("change.select2",function(){t.dataAdapter.current(function(e){t.trigger("selection:update",{data:e})})}),this.$element.on("focus.select2",function(e){t.trigger("focus",e)}),this._syncA=u.bind(this._syncAttributes,this),this._syncS=u.bind(this._syncSubtree,this),this.$element[0].attachEvent&&this.$element[0].attachEvent("onpropertychange",this._syncA);var e=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=e?(this._observer=new e(function(e){i.each(e,t._syncA),i.each(e,t._syncS)}),this._observer.observe(this.$element[0],{attributes:!0,childList:!0,subtree:!1})):this.$element[0].addEventListener&&(this.$element[0].addEventListener("DOMAttrModified",t._syncA,!1),this.$element[0].addEventListener("DOMNodeInserted",t._syncS,!1),this.$element[0].addEventListener("DOMNodeRemoved",t._syncS,!1))},d.prototype._registerDataEvents=function(){var n=this;this.dataAdapter.on("*",function(e,t){n.trigger(e,t)})},d.prototype._registerSelectionEvents=function(){var n=this,r=["toggle","focus"];this.selection.on("toggle",function(){n.toggleDropdown()}),this.selection.on("focus",function(e){n.focus(e)}),this.selection.on("*",function(e,t){-1===i.inArray(e,r)&&n.trigger(e,t)})},d.prototype._registerDropdownEvents=function(){var n=this;this.dropdown.on("*",function(e,t){n.trigger(e,t)})},d.prototype._registerResultsEvents=function(){var n=this;this.results.on("*",function(e,t){n.trigger(e,t)})},d.prototype._registerEvents=function(){var n=this;this.on("open",function(){n.$container.addClass("select2-container--open")}),this.on("close",function(){n.$container.removeClass("select2-container--open")}),this.on("enable",function(){n.$container.removeClass("select2-container--disabled")}),this.on("disable",function(){n.$container.addClass("select2-container--disabled")}),this.on("blur",function(){n.$container.removeClass("select2-container--focus")}),this.on("query",function(t){n.isOpen()||n.trigger("open",{}),this.dataAdapter.query(t,function(e){n.trigger("results:all",{data:e,query:t})})}),this.on("query:append",function(t){this.dataAdapter.query(t,function(e){n.trigger("results:append",{data:e,query:t})})}),this.on("keypress",function(e){var t=e.which;n.isOpen()?t===r.ESC||t===r.TAB||t===r.UP&&e.altKey?(n.close(),e.preventDefault()):t===r.ENTER?(n.trigger("results:select",{}),e.preventDefault()):t===r.SPACE&&e.ctrlKey?(n.trigger("results:toggle",{}),e.preventDefault()):t===r.UP?(n.trigger("results:previous",{}),e.preventDefault()):t===r.DOWN&&(n.trigger("results:next",{}),e.preventDefault()):(t===r.ENTER||t===r.SPACE||t===r.DOWN&&e.altKey)&&(n.open(),e.preventDefault())})},d.prototype._syncAttributes=function(){this.options.set("disabled",this.$element.prop("disabled")),this.options.get("disabled")?(this.isOpen()&&this.close(),this.trigger("disable",{})):this.trigger("enable",{})},d.prototype._syncSubtree=function(e,t){var n=!1,r=this;if(!e||!e.target||"OPTION"===e.target.nodeName||"OPTGROUP"===e.target.nodeName){if(t)if(t.addedNodes&&0<t.addedNodes.length)for(var i=0;i<t.addedNodes.length;i++){t.addedNodes[i].selected&&(n=!0)}else t.removedNodes&&0<t.removedNodes.length&&(n=!0);else n=!0;n&&this.dataAdapter.current(function(e){r.trigger("selection:update",{data:e})})}},d.prototype.trigger=function(e,t){var n=d.__super__.trigger,r={open:"opening",close:"closing",select:"selecting",unselect:"unselecting",clear:"clearing"};if(void 0===t&&(t={}),e in r){var i=r[e],o={prevented:!1,name:e,args:t};if(n.call(this,i,o),o.prevented)return void(t.prevented=!0)}n.call(this,e,t)},d.prototype.toggleDropdown=function(){this.options.get("disabled")||(this.isOpen()?this.close():this.open())},d.prototype.open=function(){this.isOpen()||this.trigger("query",{})},d.prototype.close=function(){this.isOpen()&&this.trigger("close",{})},d.prototype.isOpen=function(){return this.$container.hasClass("select2-container--open")},d.prototype.hasFocus=function(){return this.$container.hasClass("select2-container--focus")},d.prototype.focus=function(e){this.hasFocus()||(this.$container.addClass("select2-container--focus"),this.trigger("focus",{}))},d.prototype.enable=function(e){this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'),null!=e&&0!==e.length||(e=[!0]);var t=!e[0];this.$element.prop("disabled",t)},d.prototype.data=function(){this.options.get("debug")&&0<arguments.length&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');var t=[];return this.dataAdapter.current(function(e){t=e}),t},d.prototype.val=function(e){if(this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==e||0===e.length)return this.$element.val();var t=e[0];i.isArray(t)&&(t=i.map(t,function(e){return e.toString()})),this.$element.val(t).trigger("change")},d.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent("onpropertychange",this._syncA),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&(this.$element[0].removeEventListener("DOMAttrModified",this._syncA,!1),this.$element[0].removeEventListener("DOMNodeInserted",this._syncS,!1),this.$element[0].removeEventListener("DOMNodeRemoved",this._syncS,!1)),this._syncA=null,this._syncS=null,this.$element.off(".select2"),this.$element.attr("tabindex",u.GetData(this.$element[0],"old-tabindex")),this.$element.removeClass("select2-hidden-accessible"),this.$element.attr("aria-hidden","false"),u.RemoveData(this.$element[0]),this.$element.removeData("select2"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},d.prototype.render=function(){var e=i('<span class="select2 select2-container"><span class="selection"></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>');return e.attr("dir",this.options.get("dir")),this.$container=e,this.$container.addClass("select2-container--"+this.options.get("theme")),u.StoreData(e[0],"element",this.$element),e},d}),e.define("jquery-mousewheel",["jquery"],function(e){return e}),e.define("jquery.select2",["jquery","jquery-mousewheel","./select2/core","./select2/defaults","./select2/utils"],function(i,e,o,t,s){if(null==i.fn.select2){var a=["open","close","destroy"];i.fn.select2=function(t){if ("object" == typeof (t = t || {})) { t['dir'] = [...document.body.classList].includes('rtl') ? 'rtl' : 'ltr';}if("object"==typeof(t=t||{}))return this.each(function(){var e=i.extend(!0,{},t);new o(i(this),e)}),this;if("string"!=typeof t)throw new Error("Invalid arguments for Select2: "+t);var n,r=Array.prototype.slice.call(arguments,1);return this.each(function(){var e=s.GetData(this,"select2");null==e&&window.console&&console.error&&console.error("The select2('"+t+"') method was called on an element that is not using Select2."),n=e[t].apply(e,r)}),-1<i.inArray(t,a)?this:n}}return null==i.fn.select2.defaults&&(i.fn.select2.defaults=t),o}),{define:e.define,require:e.require}}(),t=e.require("jquery.select2");return u.fn.select2.amd=e,t});
// source --> https://ordonna.com/wp-content/plugins/booknetic/app/Frontend/assets/js/datepicker.min.js?v=5.2.4&amp;ver=6.9.4 
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.bookneticdatepicker=t():e.bookneticdatepicker=t()}(window,(function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(r,a,function(t){return e[t]}.bind(null,a));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){"use strict";n.r(t);n(1);var r=[],a=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],o=["January","February","March","April","May","June","July","August","September","October","November","December"],i={t:"top",r:"right",b:"bottom",l:"left",c:"centered"};function s(){}var l=["click","focusin","keydown","input"];function c(e){l.forEach((function(t){e.addEventListener(t,e===document?Y:j)}))}function d(e){return Array.isArray(e)?e.map(d):"[object Object]"===x(e)?Object.keys(e).reduce((function(t,n){return t[n]=d(e[n]),t}),{}):e}function u(e,t){var n=e.calendar.querySelector(".booknetic-dp-overlay"),r=n&&!n.classList.contains("booknetic-dp-hidden");t=t||new Date(e.currentYear,e.currentMonth),e.calendar.innerHTML=[h(t,e,r),f(t,e,r),v(e,r)].join(""),r&&window.requestAnimationFrame((function(){M(!0,e)}))}function h(e,t,n){return['<div class="booknetic-dp-controls'+(n?" booknetic-dp-blur":"")+'">','<div class="booknetic-dp-arrow booknetic-dp-left"></div>','<div class="booknetic-dp-month-year">','<span class="booknetic-dp-month">'+t.months[e.getMonth()]+"</span>",'<span class="booknetic-dp-year">'+e.getFullYear()+"</span>","</div>",'<div class="booknetic-dp-arrow booknetic-dp-right"></div>',"</div>"].join("")}function f(e,t,n){var r=t.currentMonth,a=t.currentYear,o=t.dateSelected,i=t.maxDate,s=t.minDate,l=t.showAllDates,c=t.days,d=t.disabledDates,u=t.startDay,h=(t.weekendIndices,t.events),f=t.getRange?t.getRange():{},v=+f.start,m=+f.end,y=g(new Date(e).setDate(1)),p=y.getDay()-u,D=p<0?7:0;y.setMonth(y.getMonth()+1),y.setDate(0);var b=y.getDate(),w=[],q=D+7*((p+b)/7|0);q+=(p+b)%7?7:0;for(var S=1;S<=q;S++){var M=(S-1)%7,E=c[M],x=S-(p>=0?p:7+p),C=new Date(a,r,x),Y=h[+C],j=x<1||x>b,L=j?x<1?-1:1:0,P=j&&!l,k=P?"":C.getDate(),O=0===M||6===M,N=v!==m,_="booknetic-dp-square "+E;Y&&!P&&(_+=" booknetic-dp-event"),j&&(_+=" booknetic-dp-outside-current-month"),!l&&j||(_+=" booknetic-dp-num"),+C==+o&&(_+=" booknetic-dp-active"),(d[+C]||t.disabler(C)||O&&t.noWeekends||s&&+C<+s||i&&+C>+i)&&!P&&(_+=" booknetic-dp-disabled"),+g(new Date)==+C&&(_+=" booknetic-dp-current"),+C===v&&m&&N&&(_+=" booknetic-dp-range-start"),+C>v&&+C<m&&(_+=" booknetic-dp-range-middle"),+C===m&&v&&N&&(_+=" booknetic-dp-range-end"),P&&(_+=" booknetic-dp-empty",k=""),w.push('<div class="'+_+'" data-direction="'+L+'">'+k+"</div>")}var I=c.map((function(e){return'<div class="booknetic-dp-square booknetic-dp-day">'+e+"</div>"})).concat(w);return I.unshift('<div class="booknetic-dp-squares'+(n?" booknetic-dp-blur":"")+'">'),I.push("</div>"),I.join("")}function v(e,t){var n=e.overlayPlaceholder,r=e.overlayButton;return['<div class="booknetic-dp-overlay'+(t?"":" booknetic-dp-hidden")+'">',"<div>",'<input class="booknetic-dp-overlay-year" placeholder="'+n+'" />','<div class="booknetic-dp-close">&#10005;</div>',"</div>",'<div class="booknetic-dp-overlay-month-container">'+e.overlayMonths.map((function(e,t){return'<div class="booknetic-dp-overlay-month" data-month-num="'+t+'">'+e+"</div>"})).join("")+"</div>",'<div class="booknetic-dp-submit booknetic-dp-disabled">'+r+"</div>","</div>"].join("")}function m(e,t,n){var r=t.el,a=t.calendar.querySelector(".booknetic-dp-active"),o=e.textContent,i=t.sibling;(r.disabled||r.readOnly)&&t.respectDisabledReadOnly||(t.dateSelected=n?void 0:new Date(t.currentYear,t.currentMonth,o),a&&a.classList.remove("booknetic-dp-active"),n||e.classList.add("booknetic-dp-active"),p(r,t,n),n||q(t),i&&(y({instance:t,deselect:n}),t.first&&!i.dateSelected&&(i.currentYear=t.currentYear,i.currentMonth=t.currentMonth,i.currentMonthName=t.currentMonthName),u(t),u(i)),t.onSelect(t,n?void 0:new Date(t.dateSelected)))}function y(e){var t=e.instance.first?e.instance:e.instance.sibling,n=t.sibling;t===e.instance?e.deselect?(t.minDate=t.originalMinDate,n.minDate=n.originalMinDate):n.minDate=t.dateSelected:e.deselect?(n.maxDate=n.originalMaxDate,t.maxDate=t.originalMaxDate):t.maxDate=n.dateSelected}function p(e,t,n){if(!t.nonInput)return n?e.value="":t.formatter!==s?t.formatter(e,t.dateSelected,t):void(e.value=t.dateSelected.toDateString())}function D(e,t,n,r){n||r?(n&&(t.currentYear=+n),r&&(t.currentMonth=+r)):(t.currentMonth+=e.contains("booknetic-dp-right")?1:-1,12===t.currentMonth?(t.currentMonth=0,t.currentYear++):-1===t.currentMonth&&(t.currentMonth=11,t.currentYear--)),t.currentMonthName=t.months[t.currentMonth],u(t),t.onMonthChange(t)}function b(e){if(!e.noPosition){var t=e.position.top,n=e.position.right;if(e.position.centered)return e.calendarContainer.classList.add("booknetic-dp-centered");var r=e.positionedEl.getBoundingClientRect(),a=e.el.getBoundingClientRect(),o=e.calendarContainer.getBoundingClientRect(),i=a.top-r.top+(t?-1*o.height:a.height)+"px",s=a.left-r.left+(n?a.width-o.width:0)+"px";e.calendarContainer.style.setProperty("top",i),e.calendarContainer.style.setProperty("left",s)}}function w(e){return"[object Date]"===x(e)&&"Invalid Date"!==e.toString()}function g(e){if(w(e)||"number"==typeof e&&!isNaN(e)){var t=new Date(+e);return new Date(t.getFullYear(),t.getMonth(),t.getDate())}}function q(e){e.disabled||!e.calendarContainer.classList.contains("booknetic-dp-hidden")&&!e.alwaysShow&&(M(!0,e),e.calendarContainer.classList.add("booknetic-dp-hidden"),e.onHide(e))}function S(e){e.disabled||(e.calendarContainer.classList.remove("booknetic-dp-hidden"),b(e),e.onShow(e))}function M(e,t){var n=t.calendar,r=n.querySelector(".booknetic-dp-overlay"),a=r.querySelector(".booknetic-dp-overlay-year"),o=n.querySelector(".booknetic-dp-controls"),i=n.querySelector(".booknetic-dp-squares");e?(r.classList.add("booknetic-dp-hidden"),o.classList.remove("booknetic-dp-blur"),i.classList.remove("booknetic-dp-blur"),a.value=""):(r.classList.remove("booknetic-dp-hidden"),o.classList.add("booknetic-dp-blur"),i.classList.add("booknetic-dp-blur"),a.focus())}function E(e,t,n,r){var a=isNaN(+(new Date).setFullYear(t.value||void 0)),o=a?null:t.value;if(13===e.which||13===e.keyCode||"click"===e.type)r?D(null,n,o,r):a||t.classList.contains("booknetic-dp-disabled")||D(null,n,o);else if(n.calendar.contains(t)){n.calendar.querySelector(".booknetic-dp-submit").classList[a?"add":"remove"]("booknetic-dp-disabled")}}function x(e){return{}.toString.call(e)}function C(e){r.forEach((function(t){t!==e&&q(t)}))}function Y(e){if(!e.__qs_shadow_dom){var t=e.which||e.keyCode,n=e.type,a=e.target,i=a.classList,s=r.filter((function(e){return e.calendar.contains(a)||e.el===a}))[0],l=s&&s.calendar.contains(a);if(!(s&&s.isMobile&&s.disableMobile))if("click"===n){if(!s)return r.forEach(q);if(s.disabled)return;var c=s.calendar,d=s.calendarContainer,h=s.disableYearOverlay,f=s.nonInput,v=c.querySelector(".booknetic-dp-overlay-year"),y=!!c.querySelector(".booknetic-dp-hidden"),p=c.querySelector(".booknetic-dp-month-year").contains(a),b=a.dataset.monthNum;if(s.noPosition&&!l)(d.classList.contains("booknetic-dp-hidden")?S:q)(s);else if(i.contains("booknetic-dp-arrow"))D(i,s);else if(p||i.contains("booknetic-dp-close"))h||M(!y,s);else if(b)E(e,v,s,b);else{if(i.contains("booknetic-dp-disabled"))return;if(i.contains("booknetic-dp-num")){var w=a.textContent,g=+a.dataset.direction,x=new Date(s.currentYear,s.currentMonth+g,w);if(g){s.currentYear=x.getFullYear(),s.currentMonth=x.getMonth(),s.currentMonthName=o[s.currentMonth],u(s);for(var Y,j=s.calendar.querySelectorAll('[data-direction="0"]'),L=0;!Y;){var P=j[L];P.textContent===w&&(Y=P),L++}a=Y}return void(+x==+s.dateSelected?m(a,s,!0):a.classList.contains("booknetic-dp-disabled")||m(a,s))}i.contains("booknetic-dp-submit")?E(e,v,s):f&&a===s.el&&(S(s),C(s))}}else if("focusin"===n&&s)S(s),C(s);else if("keydown"===n&&9===t&&s)q(s);else if("keydown"===n&&s&&!s.disabled){var k=!s.calendar.querySelector(".booknetic-dp-overlay").classList.contains("booknetic-dp-hidden");13===t&&k&&l?E(e,a,s):27===t&&k&&l&&M(!0,s)}else if("input"===n){if(!s||!s.calendar.contains(a))return;var O=s.calendar.querySelector(".booknetic-dp-submit"),N=a.value.split("").reduce((function(e,t){return e||"0"!==t?e+(t.match(/[0-9]/)?t:""):""}),"").slice(0,4);a.value=N,O.classList[4===N.length?"remove":"add"]("booknetic-dp-disabled")}}}function j(e){Y(e),e.__qs_shadow_dom=!0}function L(e,t){l.forEach((function(n){e.removeEventListener(n,t)}))}function P(){S(this)}function k(){q(this)}function O(e,t){var n=g(e),r=this.currentYear,a=this.currentMonth,o=this.sibling;if(null==e)return this.dateSelected=void 0,p(this.el,this,!0),o&&(y({instance:this,deselect:!0}),u(o)),u(this),this;if(!w(e))throw new Error("`setDate` needs a JavaScript Date object.");if(this.disabledDates[+n]||n<this.minDate||n>this.maxDate)throw new Error("You can't manually set a date that's disabled.");this.dateSelected=n,t&&(this.currentYear=n.getFullYear(),this.currentMonth=n.getMonth(),this.currentMonthName=this.months[n.getMonth()]),p(this.el,this),o&&(y({instance:this}),u(o));var i=r===n.getFullYear()&&a===n.getMonth();return i||t?u(this,n):i||u(this,new Date(r,a,1)),this}function N(e){return I(this,e,!0)}function _(e){return I(this,e)}function I(e,t,n){var r=e.dateSelected,a=e.first,o=e.sibling,i=e.minDate,s=e.maxDate,l=g(t),c=n?"Min":"Max";function d(){return"original"+c+"Date"}function h(){return c.toLowerCase()+"Date"}function f(){return"set"+c}function v(){throw new Error("Out-of-range date passed to "+f())}if(null==t)e[d()]=void 0,o?(o[d()]=void 0,n?(a&&!r||!a&&!o.dateSelected)&&(e.minDate=void 0,o.minDate=void 0):(a&&!o.dateSelected||!a&&!r)&&(e.maxDate=void 0,o.maxDate=void 0)):e[h()]=void 0;else{if(!w(t))throw new Error("Invalid date passed to "+f());o?((a&&n&&l>(r||s)||a&&!n&&l<(o.dateSelected||i)||!a&&n&&l>(o.dateSelected||s)||!a&&!n&&l<(r||i))&&v(),e[d()]=l,o[d()]=l,(n&&(a&&!r||!a&&!o.dateSelected)||!n&&(a&&!o.dateSelected||!a&&!r))&&(e[h()]=l,o[h()]=l)):((n&&l>(r||s)||!n&&l<(r||i))&&v(),e[h()]=l)}return o&&u(o),u(e),e}function R(){var e=this.first?this:this.sibling,t=e.sibling;return{start:e.dateSelected,end:t.dateSelected}}function A(){var e=this.shadowDom,t=this.positionedEl,n=this.calendarContainer,a=this.sibling,o=this;this.inlinePosition&&(r.some((function(e){return e!==o&&e.positionedEl===t}))||t.style.setProperty("position",null));n.remove(),r=r.filter((function(e){return e!==o})),a&&delete a.sibling,r.length||L(document,Y);var i=r.some((function(t){return t.shadowDom===e}));for(var s in e&&!i&&L(e,j),this)delete this[s];r.length||l.forEach((function(e){document.removeEventListener(e,Y)}))}function F(e,t){var n=new Date(e);if(!w(n))throw new Error("`navigate` needs a JavaScript Date object.");this.currentYear=n.getFullYear(),this.currentMonth=n.getMonth(),u(this),t&&this.onMonthChange(this)}t.default=function(e,t){var n=function(e,t){var n,l,c=function(e){var t=d(e);t.events&&(t.events=t.events.reduce((function(e,t){if(!w(t))throw new Error('"options.events" must only contain valid JavaScript Date objects.');return e[+g(t)]=!0,e}),{}));["startDate","dateSelected","minDate","maxDate"].forEach((function(e){var n=t[e];if(n&&!w(n))throw new Error('"options.'+e+'" needs to be a valid JavaScript Date object.');t[e]=g(n)}));var n=t.position,o=t.maxDate,l=t.minDate,c=t.dateSelected,u=t.overlayPlaceholder,h=t.overlayButton,f=t.startDay,v=t.id;if(t.startDate=g(t.startDate||c||new Date),t.disabledDates=(t.disabledDates||[]).reduce((function(e,t){var n=+g(t);if(!w(t))throw new Error('You supplied an invalid date to "options.disabledDates".');if(n===+g(c))throw new Error('"disabledDates" cannot contain the same date as "dateSelected".');return e[n]=1,e}),{}),t.hasOwnProperty("id")&&null==v)throw new Error("Id cannot be `null` or `undefined`");if(null!=v){var m=r.filter((function(e){return e.id===v}));if(m.length>1)throw new Error("Only two datepickers can share an id.");m.length?(t.second=!0,t.sibling=m[0]):t.first=!0}var y=["tr","tl","br","bl","c"].some((function(e){return n===e}));if(n&&!y)throw new Error('"options.position" must be one of the following: tl, tr, bl, br, or c.');function p(e){throw new Error('"dateSelected" in options is '+(e?"less":"greater")+' than "'+(e||"max")+'Date".')}if(t.position=function(e){var t=e[0],n=e[1],r={};r[i[t]]=1,n&&(r[i[n]]=1);return r}(n||"bl"),o<l)throw new Error('"maxDate" in options is less than "minDate".');c&&(l>c&&p("min"),o<c&&p());if(["onSelect","onShow","onHide","onMonthChange","formatter","disabler"].forEach((function(e){"function"!=typeof t[e]&&(t[e]=s)})),["customDays","customMonths","customOverlayMonths"].forEach((function(e,n){var r=t[e],a=n?12:7;if(r){if(!Array.isArray(r)||r.length!==a||r.some((function(e){return"string"!=typeof e})))throw new Error('"'+e+'" must be an array with ${num} strings.');t[n?n<2?"months":"overlayMonths":"days"]=r}})),f&&f>0&&f<7){var D=(t.customDays||a).slice(),b=D.splice(0,f);t.customDays=D.concat(b),t.startDay=+f,t.weekendIndices=[D.length-1,D.length]}else t.startDay=0,t.weekendIndices=[6,0];"string"!=typeof u&&delete t.overlayPlaceholder;"string"!=typeof h&&delete t.overlayButton;return t}(t||{startDate:g(new Date),position:"bl"}),u=e;if("string"==typeof u)u="#"===u[0]?document.getElementById(u.slice(1)):document.querySelector(u);else{if("[object ShadowRoot]"===x(u))throw new Error("Using a shadow DOM as your selector is not supported.");for(var h,f=("getRootNode"in window.Node.prototype),v=u.parentNode;!h;){var m=x(v);if("[object HTMLDocument]"===m)h=!0;else if("[object ShadowRoot]"===m){if(h=!0,!f)throw new Error("The shadow DOM is not supported in your browser.");n=v,l=v.host}else v=v.parentNode}}if(!u)throw new Error("No selector / element found.");if(r.some((function(e){return e.el===u})))throw new Error("A datepicker already exists on that element.");var y=u===document.body,D=document.body,b=n?u.parentElement||l:D,q=document.createElement("div"),M=document.createElement("div");q.className="booknetic-dp-datepicker-container booknetic-dp-hidden",M.className="booknetic-dp-datepicker";var E={shadowDom:n,customElement:l,positionedEl:b,el:u,parent:D,nonInput:"INPUT"!==u.nodeName,noPosition:y,position:!y&&c.position,startDate:c.startDate,dateSelected:c.dateSelected,disabledDates:c.disabledDates,minDate:c.minDate,maxDate:c.maxDate,noWeekends:!!c.noWeekends,weekendIndices:c.weekendIndices,calendarContainer:q,calendar:M,currentMonth:(c.startDate||c.dateSelected).getMonth(),currentMonthName:(c.months||o)[(c.startDate||c.dateSelected).getMonth()],currentYear:(c.startDate||c.dateSelected).getFullYear(),events:c.events||{},setDate:O,remove:A,setMin:N,setMax:_,show:P,hide:k,navigate:F,onSelect:c.onSelect,onShow:c.onShow,onHide:c.onHide,onMonthChange:c.onMonthChange,formatter:c.formatter,disabler:c.disabler,months:c.months||o,days:c.customDays||a,startDay:c.startDay,overlayMonths:c.overlayMonths||(c.months||o).map((function(e){return e.slice(0,3)})),overlayPlaceholder:c.overlayPlaceholder||((new Date()).getFullYear()),overlayButton:c.overlayButton||"OK",disableYearOverlay:!!c.disableYearOverlay,disableMobile:!!c.disableMobile,isMobile:"ontouchstart"in window,alwaysShow:!!c.alwaysShow,id:c.id,showAllDates:!!c.showAllDates,respectDisabledReadOnly:!!c.respectDisabledReadOnly,first:c.first,second:c.second};if(c.sibling){var C=c.sibling,Y=E,j=C.minDate||Y.minDate,L=C.maxDate||Y.maxDate;Y.sibling=C,C.sibling=Y,C.minDate=j,C.maxDate=L,Y.minDate=j,Y.maxDate=L,C.originalMinDate=j,C.originalMaxDate=L,Y.originalMinDate=j,Y.originalMaxDate=L,C.getRange=R,Y.getRange=R}c.dateSelected&&p(u,E);var I=getComputedStyle(b).position;y||I&&"static"!==I||(E.inlinePosition=!0,b.style.setProperty("position","relative"));var B=r.filter((function(e){return e.positionedEl===E.positionedEl}));B.some((function(e){return e.inlinePosition}))&&(E.inlinePosition=!0,B.forEach((function(e){e.inlinePosition=!0})));q.appendChild(M),D.appendChild(q),E.alwaysShow&&S(E);return E}(e,t);if(r.length||c(document),n.shadowDom&&(r.some((function(e){return e.shadowDom===n.shadowDom}))||c(n.shadowDom)),r.push(n),n.second){var l=n.sibling;y({instance:n,deselect:!n.dateSelected}),y({instance:l,deselect:!l.dateSelected}),u(l)}return u(n,n.startDate||n.dateSelected),n.alwaysShow&&b(n),n}},function(e,t,n){}]).default}));
// source --> https://ordonna.com/wp-content/plugins/booknetic/app/Frontend/assets/js/intlTelInput.min.js?v=5.2.4&amp;ver=24.8.2 
/*
 * International Telephone Input v24.8.2
 * https://github.com/jackocnr/intl-tel-input.git
 * Licensed under the MIT license
 */

// UMD
(function(factory) {
    if (typeof module === 'object' && module.exports) {
        module.exports = factory();
    } else {
        window.bookneticIntlTelInput = factory();
    }
}(() => {

    var factoryOutput=(()=>{var L=Object.defineProperty;var O=Object.getOwnPropertyDescriptor;var H=Object.getOwnPropertyNames;var R=Object.prototype.hasOwnProperty;var F=(a,t)=>{for(var e in t)L(a,e,{get:t[e],enumerable:!0})},U=(a,t,e,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of H(t))!R.call(a,n)&&n!==e&&L(a,n,{get:()=>t[n],enumerable:!(i=O(t,n))||i.enumerable});return a};var B=a=>U(L({},"__esModule",{value:!0}),a);var Y={};F(Y,{Iti:()=>w,default:()=>q});var D=[["af","93"],["ax","358",1,["18"]],["al","355"],["dz","213"],["as","1",5,["684"]],["ad","376"],["ao","244"],["ai","1",6,["264"]],["ag","1",7,["268"]],["ar","54"],["am","374"],["aw","297"],["ac","247"],["au","61",0],["at","43"],["az","994"],["bs","1",8,["242"]],["bh","973"],["bd","880"],["bb","1",9,["246"]],["by","375"],["be","32"],["bz","501"],["bj","229"],["bm","1",10,["441"]],["bt","975"],["bo","591"],["ba","387"],["bw","267"],["br","55"],["io","246"],["vg","1",11,["284"]],["bn","673"],["bg","359"],["bf","226"],["bi","257"],["kh","855"],["cm","237"],["ca","1",1,["204","226","236","249","250","263","289","306","343","354","365","367","368","382","387","403","416","418","428","431","437","438","450","584","468","474","506","514","519","548","579","581","584","587","604","613","639","647","672","683","705","709","742","753","778","780","782","807","819","825","867","873","879","902","905"]],["cv","238"],["bq","599",1,["3","4","7"]],["ky","1",12,["345"]],["cf","236"],["td","235"],["cl","56"],["cn","86"],["cx","61",2,["89164"]],["cc","61",1,["89162"]],["co","57"],["km","269"],["cg","242"],["cd","243"],["ck","682"],["cr","506"],["ci","225"],["hr","385"],["cu","53"],["cw","599",0],["cy","357"],["cz","420"],["dk","45"],["dj","253"],["dm","1",13,["767"]],["do","1",2,["809","829","849"]],["ec","593"],["eg","20"],["sv","503"],["gq","240"],["er","291"],["ee","372"],["sz","268"],["et","251"],["fk","500"],["fo","298"],["fj","679"],["fi","358",0],["fr","33"],["gf","594"],["pf","689"],["ga","241"],["gm","220"],["ge","995"],["de","49"],["gh","233"],["gi","350"],["gr","30"],["gl","299"],["gd","1",14,["473"]],["gp","590",0],["gu","1",15,["671"]],["gt","502"],["gg","44",1,["1481","7781","7839","7911"]],["gn","224"],["gw","245"],["gy","592"],["ht","509"],["hn","504"],["hk","852"],["hu","36"],["is","354"],["in","91"],["id","62"],["ir","98"],["iq","964"],["ie","353"],["im","44",2,["1624","74576","7524","7924","7624"]],["il","972"],["it","39",0],["jm","1",4,["876","658"]],["jp","81"],["je","44",3,["1534","7509","7700","7797","7829","7937"]],["jo","962"],["kz","7",1,["33","7"]],["ke","254"],["ki","686"],["xk","383"],["kw","965"],["kg","996"],["la","856"],["lv","371"],["lb","961"],["ls","266"],["lr","231"],["ly","218"],["li","423"],["lt","370"],["lu","352"],["mo","853"],["mg","261"],["mw","265"],["my","60"],["mv","960"],["ml","223"],["mt","356"],["mh","692"],["mq","596"],["mr","222"],["mu","230"],["yt","262",1,["269","639"]],["mx","52"],["fm","691"],["md","373"],["mc","377"],["mn","976"],["me","382"],["ms","1",16,["664"]],["ma","212",0],["mz","258"],["mm","95"],["na","264"],["nr","674"],["np","977"],["nl","31"],["nc","687"],["nz","64"],["ni","505"],["ne","227"],["ng","234"],["nu","683"],["nf","672"],["kp","850"],["mk","389"],["mp","1",17,["670"]],["no","47",0],["om","968"],["pk","92"],["pw","680"],["ps","970"],["pa","507"],["pg","675"],["py","595"],["pe","51"],["ph","63"],["pl","48"],["pt","351"],["pr","1",3,["787","939"]],["qa","974"],["re","262",0],["ro","40"],["ru","7",0],["rw","250"],["ws","685"],["sm","378"],["st","239"],["sa","966"],["sn","221"],["rs","381"],["sc","248"],["sl","232"],["sg","65"],["sx","1",21,["721"]],["sk","421"],["si","386"],["sb","677"],["so","252"],["za","27"],["kr","82"],["ss","211"],["es","34"],["lk","94"],["bl","590",1],["sh","290"],["kn","1",18,["869"]],["lc","1",19,["758"]],["mf","590",2],["pm","508"],["vc","1",20,["784"]],["sd","249"],["sr","597"],["sj","47",1,["79"]],["se","46"],["ch","41"],["sy","963"],["tw","886"],["tj","992"],["tz","255"],["th","66"],["tl","670"],["tg","228"],["tk","690"],["to","676"],["tt","1",22,["868"]],["tn","216"],["tr","90"],["tm","993"],["tc","1",23,["649"]],["tv","688"],["ug","256"],["ua","380"],["ae","971"],["gb","44",0],["us","1",0],["uy","598"],["vi","1",24,["340"]],["uz","998"],["vu","678"],["va","39",1,["06698"]],["ve","58"],["vn","84"],["wf","681"],["eh","212",1,["5288","5289"]],["ye","967"],["zm","260"],["zw","263"]],N=[];for(let a=0;a<D.length;a++){let t=D[a];N[a]={name:"",iso2:t[0],dialCode:t[1],priority:t[2]||0,areaCodes:t[3]||null,nodeById:{}}}var f=N;var j={ad:"Andorra",ae:"United Arab Emirates",af:"Afghanistan",ag:"Antigua & Barbuda",ai:"Anguilla",al:"Albania",am:"Armenia",ao:"Angola",ar:"Argentina",as:"American Samoa",at:"Austria",au:"Australia",aw:"Aruba",ax:"\xC5land Islands",az:"Azerbaijan",ba:"Bosnia & Herzegovina",bb:"Barbados",bd:"Bangladesh",be:"Belgium",bf:"Burkina Faso",bg:"Bulgaria",bh:"Bahrain",bi:"Burundi",bj:"Benin",bl:"St. Barth\xE9lemy",bm:"Bermuda",bn:"Brunei",bo:"Bolivia",bq:"Caribbean Netherlands",br:"Brazil",bs:"Bahamas",bt:"Bhutan",bw:"Botswana",by:"Belarus",bz:"Belize",ca:"Canada",cc:"Cocos (Keeling) Islands",cd:"Congo - Kinshasa",cf:"Central African Republic",cg:"Congo - Brazzaville",ch:"Switzerland",ci:"C\xF4te d\u2019Ivoire",ck:"Cook Islands",cl:"Chile",cm:"Cameroon",cn:"China",co:"Colombia",cr:"Costa Rica",cu:"Cuba",cv:"Cape Verde",cw:"Cura\xE7ao",cx:"Christmas Island",cy:"Cyprus",cz:"Czechia",de:"Germany",dj:"Djibouti",dk:"Denmark",dm:"Dominica",do:"Dominican Republic",dz:"Algeria",ec:"Ecuador",ee:"Estonia",eg:"Egypt",eh:"Western Sahara",er:"Eritrea",es:"Spain",et:"Ethiopia",fi:"Finland",fj:"Fiji",fk:"Falkland Islands",fm:"Micronesia",fo:"Faroe Islands",fr:"France",ga:"Gabon",gb:"United Kingdom",gd:"Grenada",ge:"Georgia",gf:"French Guiana",gg:"Guernsey",gh:"Ghana",gi:"Gibraltar",gl:"Greenland",gm:"Gambia",gn:"Guinea",gp:"Guadeloupe",gq:"Equatorial Guinea",gr:"Greece",gt:"Guatemala",gu:"Guam",gw:"Guinea-Bissau",gy:"Guyana",hk:"Hong Kong SAR China",hn:"Honduras",hr:"Croatia",ht:"Haiti",hu:"Hungary",id:"Indonesia",ie:"Ireland",il:"Israel",im:"Isle of Man",in:"India",io:"British Indian Ocean Territory",iq:"Iraq",ir:"Iran",is:"Iceland",it:"Italy",je:"Jersey",jm:"Jamaica",jo:"Jordan",jp:"Japan",ke:"Kenya",kg:"Kyrgyzstan",kh:"Cambodia",ki:"Kiribati",km:"Comoros",kn:"St. Kitts & Nevis",kp:"North Korea",kr:"South Korea",kw:"Kuwait",ky:"Cayman Islands",kz:"Kazakhstan",la:"Laos",lb:"Lebanon",lc:"St. Lucia",li:"Liechtenstein",lk:"Sri Lanka",lr:"Liberia",ls:"Lesotho",lt:"Lithuania",lu:"Luxembourg",lv:"Latvia",ly:"Libya",ma:"Morocco",mc:"Monaco",md:"Moldova",me:"Montenegro",mf:"St. Martin",mg:"Madagascar",mh:"Marshall Islands",mk:"North Macedonia",ml:"Mali",mm:"Myanmar (Burma)",mn:"Mongolia",mo:"Macao SAR China",mp:"Northern Mariana Islands",mq:"Martinique",mr:"Mauritania",ms:"Montserrat",mt:"Malta",mu:"Mauritius",mv:"Maldives",mw:"Malawi",mx:"Mexico",my:"Malaysia",mz:"Mozambique",na:"Namibia",nc:"New Caledonia",ne:"Niger",nf:"Norfolk Island",ng:"Nigeria",ni:"Nicaragua",nl:"Netherlands",no:"Norway",np:"Nepal",nr:"Nauru",nu:"Niue",nz:"New Zealand",om:"Oman",pa:"Panama",pe:"Peru",pf:"French Polynesia",pg:"Papua New Guinea",ph:"Philippines",pk:"Pakistan",pl:"Poland",pm:"St. Pierre & Miquelon",pr:"Puerto Rico",ps:"Palestinian Territories",pt:"Portugal",pw:"Palau",py:"Paraguay",qa:"Qatar",re:"R\xE9union",ro:"Romania",rs:"Serbia",ru:"Russia",rw:"Rwanda",sa:"Saudi Arabia",sb:"Solomon Islands",sc:"Seychelles",sd:"Sudan",se:"Sweden",sg:"Singapore",sh:"St. Helena",si:"Slovenia",sj:"Svalbard & Jan Mayen",sk:"Slovakia",sl:"Sierra Leone",sm:"San Marino",sn:"Senegal",so:"Somalia",sr:"Suriname",ss:"South Sudan",st:"S\xE3o Tom\xE9 & Pr\xEDncipe",sv:"El Salvador",sx:"Sint Maarten",sy:"Syria",sz:"Eswatini",tc:"Turks & Caicos Islands",td:"Chad",tg:"Togo",th:"Thailand",tj:"Tajikistan",tk:"Tokelau",tl:"Timor-Leste",tm:"Turkmenistan",tn:"Tunisia",to:"Tonga",tr:"Turkey",tt:"Trinidad & Tobago",tv:"Tuvalu",tw:"Taiwan",tz:"Tanzania",ua:"Ukraine",ug:"Uganda",us:"United States",uy:"Uruguay",uz:"Uzbekistan",va:"Vatican City",vc:"St. Vincent & Grenadines",ve:"Venezuela",vg:"British Virgin Islands",vi:"U.S. Virgin Islands",vn:"Vietnam",vu:"Vanuatu",wf:"Wallis & Futuna",ws:"Samoa",ye:"Yemen",yt:"Mayotte",za:"South Africa",zm:"Zambia",zw:"Zimbabwe"},A=j;var z={selectedCountryAriaLabel:"Selected country",noCountrySelected:"No country selected",countryListAriaLabel:"List of countries",searchPlaceholder:"Search",zeroSearchResults:"No results found",oneSearchResult:"1 result found",multipleSearchResults:"${count} results found",ac:"Ascension Island",xk:"Kosovo"},S=z;var K={...A,...S},T=K;for(let a=0;a<f.length;a++)f[a].name=T[f[a].iso2];var $=0,P={allowDropdown:!0,autoPlaceholder:"polite",containerClass:"",countryOrder:null,countrySearch:!0,customPlaceholder:null,dropdownContainer:null,excludeCountries:[],fixDropdownWidth:!0,formatAsYouType:!0,formatOnDisplay:!0,geoIpLookup:null,hiddenInput:null,i18n:{},initialCountry:"",loadUtilsOnInit:"",nationalMode:!0,onlyCountries:[],placeholderNumberType:"MOBILE",showFlags:!0,separateDialCode:!1,strictMode:!1,useFullscreenPopup:typeof navigator<"u"&&typeof window<"u"?/Android.+Mobile|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<=500:!1,utilsScript:"",validationNumberType:"MOBILE"},V=["800","822","833","844","855","866","877","880","881","882","883","884","885","886","887","888","889"],I=a=>a.replace(/\D/g,""),k=(a="")=>a.normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase(),M=a=>{let t=I(a);if(t.charAt(0)==="1"){let e=t.substr(1,3);return V.indexOf(e)!==-1}return!1},W=(a,t,e,i)=>{if(e===0&&!i)return 0;let n=0;for(let s=0;s<t.length;s++){if(/[+0-9]/.test(t[s])&&n++,n===a&&!i)return s+1;if(i&&n===a+1)return s}return t.length},c=(a,t,e)=>{let i=document.createElement(a);return t&&Object.entries(t).forEach(([n,s])=>i.setAttribute(n,s)),e&&e.appendChild(i),i},b=(a,...t)=>{let{instances:e}=r;Object.values(e).forEach(i=>i[a](...t))},w=class{constructor(t,e={}){this.id=$++,this.a=t,this.c=null,this.d=Object.assign({},P,e),this.e=!!t.getAttribute("placeholder")}_init(){this.d.useFullscreenPopup&&(this.d.fixDropdownWidth=!1),this.d.onlyCountries.length===1&&(this.d.initialCountry=this.d.onlyCountries[0]),this.d.separateDialCode&&(this.d.nationalMode=!1),this.d.allowDropdown&&!this.d.showFlags&&!this.d.separateDialCode&&(this.d.nationalMode=!1),this.d.useFullscreenPopup&&!this.d.dropdownContainer&&(this.d.dropdownContainer=document.body),this.isAndroid=typeof navigator<"u"?/Android/i.test(navigator.userAgent):!1,this.isRTL=!!this.a.closest("[dir=rtl]");let t=this.d.allowDropdown||this.d.separateDialCode;this.showSelectedCountryOnLeft=this.isRTL?!t:t,this.d.separateDialCode&&(this.isRTL?this.originalPaddingRight=this.a.style.paddingRight:this.originalPaddingLeft=this.a.style.paddingLeft),this.d.i18n={...T,...this.d.i18n};let e=new Promise((n,s)=>{this.h=n,this.i=s}),i=new Promise((n,s)=>{this.i0=n,this.i1=s});this.promise=Promise.all([e,i]),this.s={},this._b(),this._f(),this._h(),this._i(),this._i3()}_b(){this._d(),this._d2(),this._d0(),this._sortCountries()}_sortCountries(){this.d.countryOrder&&(this.d.countryOrder=this.d.countryOrder.map(t=>t.toLowerCase())),this.p.sort((t,e)=>{let{countryOrder:i}=this.d;if(i){let n=i.indexOf(t.iso2),s=i.indexOf(e.iso2),o=n>-1,u=s>-1;if(o||u)return o&&u?n-s:o?-1:1}return t.name.localeCompare(e.name)})}_c(t,e,i){e.length>this.dialCodeMaxLen&&(this.dialCodeMaxLen=e.length),this.q.hasOwnProperty(e)||(this.q[e]=[]);for(let s=0;s<this.q[e].length;s++)if(this.q[e][s]===t)return;let n=i!==void 0?i:this.q[e].length;this.q[e][n]=t}_d(){let{onlyCountries:t,excludeCountries:e}=this.d;if(t.length){let i=t.map(n=>n.toLowerCase());this.p=f.filter(n=>i.indexOf(n.iso2)>-1)}else if(e.length){let i=e.map(n=>n.toLowerCase());this.p=f.filter(n=>i.indexOf(n.iso2)===-1)}else this.p=f}_d0(){for(let t=0;t<this.p.length;t++){let e=this.p[t].iso2.toLowerCase();this.d.i18n.hasOwnProperty(e)&&(this.p[t].name=this.d.i18n[e])}}_d2(){this.dialCodes={},this.dialCodeMaxLen=0,this.q={};for(let t=0;t<this.p.length;t++){let e=this.p[t];this.dialCodes[e.dialCode]||(this.dialCodes[e.dialCode]=!0),this._c(e.iso2,e.dialCode,e.priority)}for(let t=0;t<this.p.length;t++){let e=this.p[t];if(e.areaCodes){let i=this.q[e.dialCode][0];for(let n=0;n<e.areaCodes.length;n++){let s=e.areaCodes[n];for(let o=1;o<s.length;o++){let u=e.dialCode+s.substr(0,o);this._c(i,u),this._c(e.iso2,u)}this._c(e.iso2,e.dialCode+s)}}}}_f(){this.a.classList.add("iti__tel-input"),!this.a.hasAttribute("autocomplete")&&!(this.a.form&&this.a.form.hasAttribute("autocomplete"))&&this.a.setAttribute("autocomplete","off");let{allowDropdown:t,separateDialCode:e,showFlags:i,containerClass:n,hiddenInput:s,dropdownContainer:o,fixDropdownWidth:u,useFullscreenPopup:l,countrySearch:p,i18n:h}=this.d,d="iti";t&&(d+=" iti--allow-dropdown"),i&&(d+=" iti--show-flags"),n&&(d+=` ${n}`),l||(d+=" iti--inline-dropdown");let m=c("div",{class:d});if(this.a.parentNode?.insertBefore(m,this.a),t||i||e){this.k=c("div",{class:"iti__country-container"},m),this.showSelectedCountryOnLeft?this.k.style.left="0px":this.k.style.right="0px",t?(this.selectedCountry=c("button",{type:"button",class:"iti__selected-country","aria-expanded":"false","aria-label":this.d.i18n.selectedCountryAriaLabel,"aria-haspopup":"true","aria-controls":`iti-${this.id}__dropdown-content`,role:"combobox"},this.k),this.a.disabled&&this.selectedCountry.setAttribute("disabled","true")):this.selectedCountry=c("div",{class:"iti__selected-country"},this.k);let C=c("div",{class:"iti__selected-country-primary"},this.selectedCountry);if(this.l=c("div",{class:"iti__flag"},C),this.selectedCountryA11yText=c("span",{class:"iti__a11y-text"},this.l),t&&(this.u=c("div",{class:"iti__arrow","aria-hidden":"true"},C)),e&&(this.t=c("div",{class:"iti__selected-dial-code"},this.selectedCountry)),t){let g=u?"":"iti--flexible-dropdown-width";if(this.dropdownContent=c("div",{id:`iti-${this.id}__dropdown-content`,class:`iti__dropdown-content iti__hide ${g}`}),p&&(this.searchInput=c("input",{type:"text",class:"iti__search-input",placeholder:h.searchPlaceholder,role:"combobox","aria-expanded":"true","aria-label":h.searchPlaceholder,"aria-controls":`iti-${this.id}__country-listbox`,"aria-autocomplete":"list",autocomplete:"off"},this.dropdownContent),this.searchResultsA11yText=c("span",{class:"iti__a11y-text"},this.dropdownContent)),this.countryList=c("ul",{class:"iti__country-list",id:`iti-${this.id}__country-listbox`,role:"listbox","aria-label":h.countryListAriaLabel},this.dropdownContent),this._g(),p&&this._p4(),o){let y="iti iti--container";l?y+=" iti--fullscreen-popup":y+=" iti--inline-dropdown",this.dropdown=c("div",{class:y}),this.dropdown.appendChild(this.dropdownContent)}else this.k.appendChild(this.dropdownContent)}}if(m.appendChild(this.a),this._updateInputPadding(),s){let C=this.a.getAttribute("name")||"",g=s(C);g.phone&&(this.hiddenInput=c("input",{type:"hidden",name:g.phone}),m.appendChild(this.hiddenInput)),g.country&&(this.hiddenInputCountry=c("input",{type:"hidden",name:g.country}),m.appendChild(this.hiddenInputCountry))}}_g(){for(let t=0;t<this.p.length;t++){let e=this.p[t],i=t===0?"iti__highlight":"",n=c("li",{id:`iti-${this.id}__item-${e.iso2}`,class:`iti__country ${i}`,tabindex:"-1",role:"option","data-dial-code":e.dialCode,"data-country-code":e.iso2,"aria-selected":"false"},this.countryList);e.nodeById[this.id]=n;let s="";this.d.showFlags&&(s+=`<div class='iti__flag iti__${e.iso2}'></div>`),s+=`<span class='iti__country-name'>${e.name}</span>`,s+=`<span class='iti__dial-code'>+${e.dialCode}</span>`,n.insertAdjacentHTML("beforeend",s)}}_h(t=!1){let e=this.a.getAttribute("value"),i=this.a.value,s=e&&e.charAt(0)==="+"&&(!i||i.charAt(0)!=="+")?e:i,o=this._5(s),u=M(s),{initialCountry:l,geoIpLookup:p}=this.d,h=l==="auto"&&p;if(o&&!u)this._v(s);else if(!h||t){let d=l?l.toLowerCase():"";d&&this._y(d,!0)?this._z(d):o&&u?this._z("us"):this._z()}s&&this._u(s)}_i(){this._j(),this.d.allowDropdown&&this._i2(),(this.hiddenInput||this.hiddenInputCountry)&&this.a.form&&this._i0()}_i0(){this._a14=()=>{this.hiddenInput&&(this.hiddenInput.value=this.getNumber()),this.hiddenInputCountry&&(this.hiddenInputCountry.value=this.getSelectedCountryData().iso2||"")},this.a.form?.addEventListener("submit",this._a14)}_i2(){this._a9=e=>{this.dropdownContent.classList.contains("iti__hide")?this.a.focus():e.preventDefault()};let t=this.a.closest("label");t&&t.addEventListener("click",this._a9),this._a10=()=>{this.dropdownContent.classList.contains("iti__hide")&&!this.a.disabled&&!this.a.readOnly&&this._n()},this.selectedCountry.addEventListener("click",this._a10),this._a11=e=>{this.dropdownContent.classList.contains("iti__hide")&&["ArrowUp","ArrowDown"," ","Enter"].includes(e.key)&&(e.preventDefault(),e.stopPropagation(),this._n()),e.key==="Tab"&&this._2()},this.k.addEventListener("keydown",this._a11)}_i3(){let{loadUtilsOnInit:t,utilsScript:e,initialCountry:i,geoIpLookup:n}=this.d;!t&&e&&(console.warn("intl-tel-input: The `utilsScript` option is deprecated and will be removed in a future release! Please use the `loadUtilsOnInit` option instead."),t=e),t&&!r.utils?(this._handlePageLoad=()=>{window.removeEventListener("load",this._handlePageLoad),r.loadUtils(t)?.catch(()=>{})},r.documentReady()?this._handlePageLoad():window.addEventListener("load",this._handlePageLoad)):this.i0(),i==="auto"&&n&&!this.s.iso2?this._i4():this.h()}_i4(){r.autoCountry?this.handleAutoCountry():r.startedLoadingAutoCountry||(r.startedLoadingAutoCountry=!0,typeof this.d.geoIpLookup=="function"&&this.d.geoIpLookup((t="")=>{let e=t.toLowerCase();e&&this._y(e,!0)?(r.autoCountry=e,setTimeout(()=>b("handleAutoCountry"))):(this._h(!0),b("rejectAutoCountryPromise"))},()=>{this._h(!0),b("rejectAutoCountryPromise")}))}_nWithPlus(){this._n(),this.searchInput.value="+",this._p3("",!0)}_j(){let{strictMode:t,formatAsYouType:e,separateDialCode:i,formatOnDisplay:n,allowDropdown:s,countrySearch:o}=this.d,u=!1;/\p{L}/u.test(this.a.value)&&(u=!0),this._a12=l=>{if(this.isAndroid&&l?.data==="+"&&i&&s&&o){let m=this.a.selectionStart||0,C=this.a.value.substring(0,m-1),g=this.a.value.substring(m);this.a.value=C+g,this._nWithPlus();return}this._v(this.a.value)&&this._8();let p=l?.data&&/[^+0-9]/.test(l.data),h=l?.inputType==="insertFromPaste"&&this.a.value;p||h&&!t?u=!0:/[^+0-9]/.test(this.a.value)||(u=!1);let d=l?.detail&&l.detail.isSetNumber&&!n;if(e&&!u&&!d){let m=this.a.selectionStart||0,g=this.a.value.substring(0,m).replace(/[^+0-9]/g,"").length,y=l?.inputType==="deleteContentForward",v=this._9(),_=W(g,v,m,y);this.a.value=v,this.a.setSelectionRange(_,_)}},this.a.addEventListener("input",this._a12),(t||i)&&(this._handleKeydownEvent=l=>{if(l.key&&l.key.length===1&&!l.altKey&&!l.ctrlKey&&!l.metaKey){if(i&&s&&o&&l.key==="+"){l.preventDefault(),this._nWithPlus();return}if(t){let p=this.a.value,h=p.charAt(0)==="+",d=!h&&this.a.selectionStart===0&&l.key==="+",m=/^[0-9]$/.test(l.key),C=i?m:d||m,g=p.slice(0,this.a.selectionStart)+l.key+p.slice(this.a.selectionEnd),y=this._6(g),v=r.utils.getCoreNumber(y,this.s.iso2),_=this.maxCoreNumberLength&&v.length>this.maxCoreNumberLength,E=!1;if(h){let x=this.s.iso2;E=this._getCountryFromNumber(y)!==x}(!C||_&&!E&&!d)&&l.preventDefault()}}},this.a.addEventListener("keydown",this._handleKeydownEvent))}_j2(t){let e=parseInt(this.a.getAttribute("maxlength")||"",10);return e&&t.length>e?t.substr(0,e):t}_trigger(t,e={}){let i=new CustomEvent(t,{bubbles:!0,cancelable:!0,detail:e});this.a.dispatchEvent(i)}_n(){let{fixDropdownWidth:t,countrySearch:e}=this.d;if(t&&(this.dropdownContent.style.width=`${this.a.offsetWidth}px`),this.dropdownContent.classList.remove("iti__hide"),this.selectedCountry.setAttribute("aria-expanded","true"),this._o(),e){let i=this.countryList.firstElementChild;i&&(this._x(i,!1),this.countryList.scrollTop=0),this.searchInput.focus()}this._p(),this.u.classList.add("iti__arrow--up"),this._trigger("open:countrydropdown")}_o(){if(this.d.dropdownContainer&&this.d.dropdownContainer.appendChild(this.dropdown),!this.d.useFullscreenPopup){let t=this.a.getBoundingClientRect(),e=this.a.offsetHeight;this.d.dropdownContainer&&(this.dropdown.style.top=`${t.top+e}px`,this.dropdown.style.left=`${t.left}px`,this._a4=()=>this._2(),window.addEventListener("scroll",this._a4))}}_p(){this._a0=n=>{let s=n.target?.closest(".iti__country");s&&this._x(s,!1)},this.countryList.addEventListener("mouseover",this._a0),this._a1=n=>{let s=n.target?.closest(".iti__country");s&&this._1(s)},this.countryList.addEventListener("click",this._a1);let t=!0;this._a2=()=>{t||this._2(),t=!1},document.documentElement.addEventListener("click",this._a2);let e="",i=null;if(this._a3=n=>{["ArrowUp","ArrowDown","Enter","Escape"].includes(n.key)&&(n.preventDefault(),n.stopPropagation(),n.key==="ArrowUp"||n.key==="ArrowDown"?this._q(n.key):n.key==="Enter"?this._r():n.key==="Escape"&&this._2()),!this.d.countrySearch&&/^[a-zA-ZÀ-ÿа-яА-Я ]$/.test(n.key)&&(n.stopPropagation(),i&&clearTimeout(i),e+=n.key.toLowerCase(),this._searchForCountry(e),i=setTimeout(()=>{e=""},1e3))},document.addEventListener("keydown",this._a3),this.d.countrySearch){let n=()=>{let o=this.searchInput.value.trim();o?this._p3(o):this._p3("",!0)},s=null;this._a7=()=>{s&&clearTimeout(s),s=setTimeout(()=>{n(),s=null},100)},this.searchInput.addEventListener("input",this._a7),this.searchInput.addEventListener("click",o=>o.stopPropagation())}}_searchForCountry(t){for(let e=0;e<this.p.length;e++){let i=this.p[e];if(i.name.substr(0,t.length).toLowerCase()===t){let s=i.nodeById[this.id];this._x(s,!1),this._3(s);break}}}_p3(t,e=!1){let i=!0;this.countryList.innerHTML="";let n=k(t);for(let s=0;s<this.p.length;s++){let o=this.p[s],u=k(o.name),l=o.name.split(/[^a-zA-ZÀ-ÿа-яА-Я]/).map(h=>h[0]).join("").toLowerCase(),p=`+${o.dialCode}`;if(e||u.includes(n)||p.includes(n)||o.iso2.includes(n)||l.includes(n)){let h=o.nodeById[this.id];h&&this.countryList.appendChild(h),i&&(this._x(h,!1),i=!1)}}i&&this._x(null,!1),this.countryList.scrollTop=0,this._p4()}_p4(){let{i18n:t}=this.d,e=this.countryList.childElementCount,i;e===0?i=t.zeroSearchResults:e===1?i=t.oneSearchResult:i=t.multipleSearchResults.replace("${count}",e.toString()),this.searchResultsA11yText.textContent=i}_q(t){let e=t==="ArrowUp"?this.c?.previousElementSibling:this.c?.nextElementSibling;!e&&this.countryList.childElementCount>1&&(e=t==="ArrowUp"?this.countryList.lastElementChild:this.countryList.firstElementChild),e&&(this._3(e),this._x(e,!1))}_r(){this.c&&this._1(this.c)}_u(t){let e=t;if(this.d.formatOnDisplay&&r.utils&&this.s){let i=this.d.nationalMode||e.charAt(0)!=="+"&&!this.d.separateDialCode,{NATIONAL:n,INTERNATIONAL:s}=r.utils.numberFormat,o=i?n:s;e=r.utils.formatNumber(e,this.s.iso2,o)}e=this._7(e),this.a.value=e}_v(t){let e=this._getCountryFromNumber(t);return e!==null?this._z(e):!1}_getCountryFromNumber(t){let e=t.indexOf("+"),i=e?t.substring(e):t,n=this.s.dialCode;i&&n==="1"&&i.charAt(0)!=="+"&&(i.charAt(0)!=="1"&&(i=`1${i}`),i=`+${i}`),this.d.separateDialCode&&n&&i.charAt(0)!=="+"&&(i=`+${n}${i}`);let o=this._5(i,!0),u=I(i);if(o){let l=this.q[I(o)],p=l.indexOf(this.s.iso2)!==-1&&u.length<=o.length-1;if(!(n==="1"&&M(u))&&!p){for(let d=0;d<l.length;d++)if(l[d])return l[d]}}else{if(i.charAt(0)==="+"&&u.length)return"";if((!i||i==="+")&&!this.s.iso2)return this.j}return null}_x(t,e){let i=this.c;if(i&&(i.classList.remove("iti__highlight"),i.setAttribute("aria-selected","false")),this.c=t,this.c){this.c.classList.add("iti__highlight"),this.c.setAttribute("aria-selected","true");let n=this.c.getAttribute("id")||"";this.selectedCountry.setAttribute("aria-activedescendant",n),this.d.countrySearch&&this.searchInput.setAttribute("aria-activedescendant",n)}e&&this.c.focus()}_y(t,e){for(let i=0;i<this.p.length;i++)if(this.p[i].iso2===t)return this.p[i];if(e)return null;throw new Error(`No country data for '${t}'`)}_z(t){let{separateDialCode:e,showFlags:i,i18n:n}=this.d,s=this.s.iso2?this.s:{};if(this.s=t?this._y(t,!1)||{}:{},this.s.iso2&&(this.j=this.s.iso2),this.l){let o="",u="";t&&i?(o=`iti__flag iti__${t}`,u=`${this.s.name} +${this.s.dialCode}`):(o="iti__flag iti__globe",u=n.noCountrySelected),this.l.className=o,this.selectedCountryA11yText.textContent=u}if(this._z3(t,e),e){let o=this.s.dialCode?`+${this.s.dialCode}`:"";this.t.innerHTML=o,this._updateInputPadding()}return this._0(),this._updateMaxLength(),s.iso2!==t}_updateInputPadding(){if(this.selectedCountry){let e=(this.selectedCountry.offsetWidth||this._z2())+6;this.showSelectedCountryOnLeft?this.a.style.paddingLeft=`${e}px`:this.a.style.paddingRight=`${e}px`}}_updateMaxLength(){let{strictMode:t,placeholderNumberType:e,validationNumberType:i}=this.d,{iso2:n}=this.s;if(t&&r.utils)if(n){let s=r.utils.numberType[e],o=r.utils.getExampleNumber(n,!1,s,!0),u=o;for(;r.utils.isPossibleNumber(o,n,i);)u=o,o+="0";let l=r.utils.getCoreNumber(u,n);this.maxCoreNumberLength=l.length,n==="by"&&(this.maxCoreNumberLength=l.length+1)}else this.maxCoreNumberLength=null}_z3(t=null,e){if(!this.selectedCountry)return;let i;t&&!e?i=`${this.s.name}: +${this.s.dialCode}`:t?i=this.s.name:i="Unknown",this.selectedCountry.setAttribute("title",i)}_z2(){if(this.a.parentNode){let t=this.a.parentNode.cloneNode(!1);t.style.visibility="hidden",document.body.appendChild(t);let e=this.k.cloneNode();t.appendChild(e);let i=this.selectedCountry.cloneNode(!0);e.appendChild(i);let n=i.offsetWidth;return document.body.removeChild(t),n}return 0}_0(){let{autoPlaceholder:t,placeholderNumberType:e,nationalMode:i,customPlaceholder:n}=this.d,s=t==="aggressive"||!this.e&&t==="polite";if(r.utils&&s){let o=r.utils.numberType[e],u=this.s.iso2?r.utils.getExampleNumber(this.s.iso2,i,o):"";u=this._7(u),typeof n=="function"&&(u=n(u,this.s)),this.a.setAttribute("placeholder",u)}}_1(t){let e=this._z(t.getAttribute("data-country-code"));this._2(),this._4(t.getAttribute("data-dial-code")),this.a.focus(),e&&this._8()}_2(){this.dropdownContent.classList.add("iti__hide"),this.selectedCountry.setAttribute("aria-expanded","false"),this.selectedCountry.removeAttribute("aria-activedescendant"),this.c&&this.c.setAttribute("aria-selected","false"),this.d.countrySearch&&this.searchInput.removeAttribute("aria-activedescendant"),this.u.classList.remove("iti__arrow--up"),document.removeEventListener("keydown",this._a3),this.d.countrySearch&&this.searchInput.removeEventListener("input",this._a7),document.documentElement.removeEventListener("click",this._a2),this.countryList.removeEventListener("mouseover",this._a0),this.countryList.removeEventListener("click",this._a1),this.d.dropdownContainer&&(this.d.useFullscreenPopup||window.removeEventListener("scroll",this._a4),this.dropdown.parentNode&&this.dropdown.parentNode.removeChild(this.dropdown)),this._handlePageLoad&&window.removeEventListener("load",this._handlePageLoad),this._trigger("close:countrydropdown")}_3(t){let e=this.countryList,i=document.documentElement.scrollTop,n=e.offsetHeight,s=e.getBoundingClientRect().top+i,o=s+n,u=t.offsetHeight,l=t.getBoundingClientRect().top+i,p=l+u,h=l-s+e.scrollTop;if(l<s)e.scrollTop=h;else if(p>o){let d=n-u;e.scrollTop=h-d}}_4(t){let e=this.a.value,i=`+${t}`,n;if(e.charAt(0)==="+"){let s=this._5(e);s?n=e.replace(s,i):n=i,this.a.value=n}}_5(t,e){let i="";if(t.charAt(0)==="+"){let n="";for(let s=0;s<t.length;s++){let o=t.charAt(s);if(!isNaN(parseInt(o,10))){if(n+=o,e)this.q[n]&&(i=t.substr(0,s+1));else if(this.dialCodes[n]){i=t.substr(0,s+1);break}if(n.length===this.dialCodeMaxLen)break}}}return i}_6(t){let e=t||this.a.value.trim(),{dialCode:i}=this.s,n,s=I(e);return this.d.separateDialCode&&e.charAt(0)!=="+"&&i&&s?n=`+${i}`:n="",n+e}_7(t){let e=t;if(this.d.separateDialCode){let i=this._5(e);if(i){i=`+${this.s.dialCode}`;let n=e[i.length]===" "||e[i.length]==="-"?i.length+1:i.length;e=e.substr(n)}}return this._j2(e)}_8(){this._trigger("countrychange")}_9(){let t=this._6(),e=r.utils?r.utils.formatNumberAsYouType(t,this.s.iso2):t,{dialCode:i}=this.s;return this.d.separateDialCode&&this.a.value.charAt(0)!=="+"&&e.includes(`+${i}`)?(e.split(`+${i}`)[1]||"").trim():e}handleAutoCountry(){this.d.initialCountry==="auto"&&r.autoCountry&&(this.j=r.autoCountry,this.s.iso2||this.l.classList.contains("iti__globe")||this.setCountry(this.j),this.h())}handleUtils(){r.utils&&(this.a.value&&this._u(this.a.value),this.s.iso2&&(this._0(),this._updateMaxLength())),this.i0()}destroy(){let{allowDropdown:t,separateDialCode:e}=this.d;if(t){this._2(),this.selectedCountry.removeEventListener("click",this._a10),this.k.removeEventListener("keydown",this._a11);let s=this.a.closest("label");s&&s.removeEventListener("click",this._a9)}let{form:i}=this.a;this._a14&&i&&i.removeEventListener("submit",this._a14),this.a.removeEventListener("input",this._a12),this._handleKeydownEvent&&this.a.removeEventListener("keydown",this._handleKeydownEvent),this.a.removeAttribute("data-intl-tel-input-id"),e&&(this.isRTL?this.a.style.paddingRight=this.originalPaddingRight:this.a.style.paddingLeft=this.originalPaddingLeft);let n=this.a.parentNode;n?.parentNode?.insertBefore(this.a,n),n?.parentNode?.removeChild(n),delete r.instances[this.id]}getExtension(){return r.utils?r.utils.getExtension(this._6(),this.s.iso2):""}getNumber(t){if(r.utils){let{iso2:e}=this.s;return r.utils.formatNumber(this._6(),e,t)}return""}getNumberType(){return r.utils?r.utils.getNumberType(this._6(),this.s.iso2):-99}getSelectedCountryData(){return this.s}getValidationError(){if(r.utils){let{iso2:t}=this.s;return r.utils.getValidationError(this._6(),t)}return-99}isValidNumber(){if(!this.s.iso2)return!1;let t=this._6(),e=t.search(/\p{L}/u);if(e>-1){let i=t.substring(0,e),n=this._utilsIsPossibleNumber(i),s=this._utilsIsPossibleNumber(t);return n&&s}return this._utilsIsPossibleNumber(t)}_utilsIsPossibleNumber(t){return r.utils?r.utils.isPossibleNumber(t,this.s.iso2,this.d.validationNumberType):null}isValidNumberPrecise(){if(!this.s.iso2)return!1;let t=this._6(),e=t.search(/\p{L}/u);if(e>-1){let i=t.substring(0,e),n=this._utilsIsValidNumber(i),s=this._utilsIsValidNumber(t);return n&&s}return this._utilsIsValidNumber(t)}_utilsIsValidNumber(t){return r.utils?r.utils.isValidNumber(t,this.s.iso2):null}setCountry(t){let e=t?.toLowerCase(),i=this.s.iso2;(t&&e!==i||!t&&i)&&(this._z(e),this._4(this.s.dialCode),this._8())}setNumber(t){let e=this._v(t);this._u(t),e&&this._8(),this._trigger("input",{isSetNumber:!0})}setPlaceholderNumberType(t){this.d.placeholderNumberType=t,this._0()}setDisabled(t){this.a.disabled=t,t?this.selectedCountry.setAttribute("disabled","true"):this.selectedCountry.removeAttribute("disabled")}},G=a=>{if(!r.utils&&!r.startedLoadingUtilsScript){let t;if(typeof a=="string")t=import(/* webpackIgnore: true */ a);else if(typeof a=="function")try{t=Promise.resolve(a())}catch(e){return Promise.reject(e)}else return Promise.reject(new TypeError(`The argument passed to loadUtils must be a URL string or a function that returns a promise for the utilities module, not ${typeof a}`));return r.startedLoadingUtilsScript=!0,t.then(e=>{let i=e?.default;if(!i||typeof i!="object")throw typeof a=="string"?new TypeError(`The module loaded from ${a} did not set utils as its default export.`):new TypeError("The loader function passed to loadUtils did not resolve to a module object with utils as its default export.");return r.utils=i,b("handleUtils"),!0}).catch(e=>{throw b("rejectUtilsScriptPromise",e),e})}return null},r=Object.assign((a,t)=>{let e=new w(a,t);return e._init(),a.setAttribute("data-intl-tel-input-id",e.id.toString()),r.instances[e.id]=e,e},{defaults:P,documentReady:()=>document.readyState==="complete",getCountryData:()=>f,getInstance:a=>{let t=a.getAttribute("data-intl-tel-input-id");return t?r.instances[t]:null},instances:{},loadUtils:G,startedLoadingUtilsScript:!1,startedLoadingAutoCountry:!1,version:"24.8.2"}),q=r;return B(Y);})();

// UMD
    return factoryOutput.default;
}));
// source --> https://ordonna.com/wp-content/plugins/booknetic/app/Frontend/assets/js/jquery.nicescroll.min.js?v=5.2.4&amp;ver=6.9.4 
/* jquery.nicescroll v3.7.6 InuYaksa - MIT - https://nicescroll.areaaperta.com */
!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof exports?module.exports=e(require("jquery")):e(jQuery)}(function(e){"use strict";var o=!1,t=!1,r=0,i=2e3,s=0,n=e,l=document,a=window,c=n(a),d=[],u=a.requestAnimationFrame||a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||!1,h=a.cancelAnimationFrame||a.webkitCancelAnimationFrame||a.mozCancelAnimationFrame||!1;if(u)a.cancelAnimationFrame||(h=function(e){});else{var p=0;u=function(e,o){var t=(new Date).getTime(),r=Math.max(0,16-(t-p)),i=a.setTimeout(function(){e(t+r)},r);return p=t+r,i},h=function(e){a.clearTimeout(e)}}var m=a.MutationObserver||a.WebKitMutationObserver||!1,f=Date.now||function(){return(new Date).getTime()},g={zindex:"auto",cursoropacitymin:0,cursoropacitymax:1,cursorcolor:"#424242",cursorwidth:"6px",cursorborder:"1px solid #fff",cursorborderradius:"5px",scrollspeed:40,mousescrollstep:27,touchbehavior:!1,emulatetouch:!1,hwacceleration:!0,usetransition:!0,boxzoom:!1,dblclickzoom:!0,gesturezoom:!0,grabcursorenabled:!0,autohidemode:!0,background:"",iframeautoresize:!0,cursorminheight:32,preservenativescrolling:!0,railoffset:!1,railhoffset:!1,bouncescroll:!0,spacebarenabled:!0,railpadding:{top:0,right:0,left:0,bottom:0},disableoutline:!0,horizrailenabled:!0,railalign:"right",railvalign:"bottom",enabletranslate3d:!0,enablemousewheel:!0,enablekeyboard:!0,smoothscroll:!0,sensitiverail:!0,enablemouselockapi:!0,cursorfixedheight:!1,directionlockdeadzone:6,hidecursordelay:400,nativeparentscrolling:!0,enablescrollonselection:!0,overflowx:!0,overflowy:!0,cursordragspeed:.3,rtlmode:"auto",cursordragontouch:!1,oneaxismousemode:"auto",scriptpath:function(){var e=l.currentScript||function(){var e=l.getElementsByTagName("script");return!!e.length&&e[e.length-1]}(),o=e?e.src.split("?")[0]:"";return o.split("/").length>0?o.split("/").slice(0,-1).join("/")+"/":""}(),preventmultitouchscrolling:!0,disablemutationobserver:!1,enableobserver:!0,scrollbarid:!1},v=!1,w=function(){if(v)return v;var e=l.createElement("DIV"),o=e.style,t=navigator.userAgent,r=navigator.platform,i={};return i.haspointerlock="pointerLockElement"in l||"webkitPointerLockElement"in l||"mozPointerLockElement"in l,i.isopera="opera"in a,i.isopera12=i.isopera&&"getUserMedia"in navigator,i.isoperamini="[object OperaMini]"===Object.prototype.toString.call(a.operamini),i.isie="all"in l&&"attachEvent"in e&&!i.isopera,i.isieold=i.isie&&!("msInterpolationMode"in o),i.isie7=i.isie&&!i.isieold&&(!("documentMode"in l)||7===l.documentMode),i.isie8=i.isie&&"documentMode"in l&&8===l.documentMode,i.isie9=i.isie&&"performance"in a&&9===l.documentMode,i.isie10=i.isie&&"performance"in a&&10===l.documentMode,i.isie11="msRequestFullscreen"in e&&l.documentMode>=11,i.ismsedge="msCredentials"in a,i.ismozilla="MozAppearance"in o,i.iswebkit=!i.ismsedge&&"WebkitAppearance"in o,i.ischrome=i.iswebkit&&"chrome"in a,i.ischrome38=i.ischrome&&"touchAction"in o,i.ischrome22=!i.ischrome38&&i.ischrome&&i.haspointerlock,i.ischrome26=!i.ischrome38&&i.ischrome&&"transition"in o,i.cantouch="ontouchstart"in l.documentElement||"ontouchstart"in a,i.hasw3ctouch=(a.PointerEvent||!1)&&(navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0),i.hasmstouch=!i.hasw3ctouch&&(a.MSPointerEvent||!1),i.ismac=/^mac$/i.test(r),i.isios=i.cantouch&&/iphone|ipad|ipod/i.test(r),i.isios4=i.isios&&!("seal"in Object),i.isios7=i.isios&&"webkitHidden"in l,i.isios8=i.isios&&"hidden"in l,i.isios10=i.isios&&a.Proxy,i.isandroid=/android/i.test(t),i.haseventlistener="addEventListener"in e,i.trstyle=!1,i.hastransform=!1,i.hastranslate3d=!1,i.transitionstyle=!1,i.hastransition=!1,i.transitionend=!1,i.trstyle="transform",i.hastransform="transform"in o||function(){for(var e=["msTransform","webkitTransform","MozTransform","OTransform"],t=0,r=e.length;t<r;t++)if(void 0!==o[e[t]]){i.trstyle=e[t];break}i.hastransform=!!i.trstyle}(),i.hastransform&&(o[i.trstyle]="translate3d(1px,2px,3px)",i.hastranslate3d=/translate3d/.test(o[i.trstyle])),i.transitionstyle="transition",i.prefixstyle="",i.transitionend="transitionend",i.hastransition="transition"in o||function(){i.transitionend=!1;for(var e=["webkitTransition","msTransition","MozTransition","OTransition","OTransition","KhtmlTransition"],t=["-webkit-","-ms-","-moz-","-o-","-o","-khtml-"],r=["webkitTransitionEnd","msTransitionEnd","transitionend","otransitionend","oTransitionEnd","KhtmlTransitionEnd"],s=0,n=e.length;s<n;s++)if(e[s]in o){i.transitionstyle=e[s],i.prefixstyle=t[s],i.transitionend=r[s];break}i.ischrome26&&(i.prefixstyle=t[1]),i.hastransition=i.transitionstyle}(),i.cursorgrabvalue=function(){var e=["grab","-webkit-grab","-moz-grab"];(i.ischrome&&!i.ischrome38||i.isie)&&(e=[]);for(var t=0,r=e.length;t<r;t++){var s=e[t];if(o.cursor=s,o.cursor==s)return s}return"url(https://cdnjs.cloudflare.com/ajax/libs/slider-pro/1.3.0/css/images/openhand.cur),n-resize"}(),i.hasmousecapture="setCapture"in e,i.hasMutationObserver=!1!==m,e=null,v=i,i},b=function(e,p){function v(){var e=T.doc.css(P.trstyle);return!(!e||"matrix"!=e.substr(0,6))&&e.replace(/^.*\((.*)\)$/g,"$1").replace(/px/g,"").split(/, +/)}function b(){var e=T.win;if("zIndex"in e)return e.zIndex();for(;e.length>0;){if(9==e[0].nodeType)return!1;var o=e.css("zIndex");if(!isNaN(o)&&0!==o)return parseInt(o);e=e.parent()}return!1}function x(e,o,t){var r=e.css(o),i=parseFloat(r);if(isNaN(i)){var s=3==(i=I[r]||0)?t?T.win.outerHeight()-T.win.innerHeight():T.win.outerWidth()-T.win.innerWidth():1;return T.isie8&&i&&(i+=1),s?i:0}return i}function S(e,o,t,r){T._bind(e,o,function(r){var i={original:r=r||a.event,target:r.target||r.srcElement,type:"wheel",deltaMode:"MozMousePixelScroll"==r.type?0:1,deltaX:0,deltaZ:0,preventDefault:function(){return r.preventDefault?r.preventDefault():r.returnValue=!1,!1},stopImmediatePropagation:function(){r.stopImmediatePropagation?r.stopImmediatePropagation():r.cancelBubble=!0}};return"mousewheel"==o?(r.wheelDeltaX&&(i.deltaX=-.025*r.wheelDeltaX),r.wheelDeltaY&&(i.deltaY=-.025*r.wheelDeltaY),!i.deltaY&&!i.deltaX&&(i.deltaY=-.025*r.wheelDelta)):i.deltaY=r.detail,t.call(e,i)},r)}function z(e,o,t,r){T.scrollrunning||(T.newscrolly=T.getScrollTop(),T.newscrollx=T.getScrollLeft(),D=f());var i=f()-D;if(D=f(),i>350?A=1:A+=(2-A)/10,e=e*A|0,o=o*A|0,e){if(r)if(e<0){if(T.getScrollLeft()>=T.page.maxw)return!0}else if(T.getScrollLeft()<=0)return!0;var s=e>0?1:-1;X!==s&&(T.scrollmom&&T.scrollmom.stop(),T.newscrollx=T.getScrollLeft(),X=s),T.lastdeltax-=e}if(o){if(function(){var e=T.getScrollTop();if(o<0){if(e>=T.page.maxh)return!0}else if(e<=0)return!0}()){if(M.nativeparentscrolling&&t&&!T.ispage&&!T.zoomactive)return!0;var n=T.view.h>>1;T.newscrolly<-n?(T.newscrolly=-n,o=-1):T.newscrolly>T.page.maxh+n?(T.newscrolly=T.page.maxh+n,o=1):o=0}var l=o>0?1:-1;B!==l&&(T.scrollmom&&T.scrollmom.stop(),T.newscrolly=T.getScrollTop(),B=l),T.lastdeltay-=o}(o||e)&&T.synched("relativexy",function(){var e=T.lastdeltay+T.newscrolly;T.lastdeltay=0;var o=T.lastdeltax+T.newscrollx;T.lastdeltax=0,T.rail.drag||T.doScrollPos(o,e)})}function k(e,o,t){var r,i;return!(t||!q)||(0===e.deltaMode?(r=-e.deltaX*(M.mousescrollstep/54)|0,i=-e.deltaY*(M.mousescrollstep/54)|0):1===e.deltaMode&&(r=-e.deltaX*M.mousescrollstep*50/80|0,i=-e.deltaY*M.mousescrollstep*50/80|0),o&&M.oneaxismousemode&&0===r&&i&&(r=i,i=0,t&&(r<0?T.getScrollLeft()>=T.page.maxw:T.getScrollLeft()<=0)&&(i=r,r=0)),T.isrtlmode&&(r=-r),z(r,i,t,!0)?void(t&&(q=!0)):(q=!1,e.stopImmediatePropagation(),e.preventDefault()))}var T=this;this.version="3.7.6",this.name="nicescroll",this.me=p;var E=n("body"),M=this.opt={doc:E,win:!1};if(n.extend(M,g),M.snapbackspeed=80,e)for(var L in M)void 0!==e[L]&&(M[L]=e[L]);if(M.disablemutationobserver&&(m=!1),this.doc=M.doc,this.iddoc=this.doc&&this.doc[0]?this.doc[0].id||"":"",this.ispage=/^BODY|HTML/.test(M.win?M.win[0].nodeName:this.doc[0].nodeName),this.haswrapper=!1!==M.win,this.win=M.win||(this.ispage?c:this.doc),this.docscroll=this.ispage&&!this.haswrapper?c:this.win,this.body=E,this.viewport=!1,this.isfixed=!1,this.iframe=!1,this.isiframe="IFRAME"==this.doc[0].nodeName&&"IFRAME"==this.win[0].nodeName,this.istextarea="TEXTAREA"==this.win[0].nodeName,this.forcescreen=!1,this.canshowonmouseevent="scroll"!=M.autohidemode,this.onmousedown=!1,this.onmouseup=!1,this.onmousemove=!1,this.onmousewheel=!1,this.onkeypress=!1,this.ongesturezoom=!1,this.onclick=!1,this.onscrollstart=!1,this.onscrollend=!1,this.onscrollcancel=!1,this.onzoomin=!1,this.onzoomout=!1,this.view=!1,this.page=!1,this.scroll={x:0,y:0},this.scrollratio={x:0,y:0},this.cursorheight=20,this.scrollvaluemax=0,"auto"==M.rtlmode){var C=this.win[0]==a?this.body:this.win,N=C.css("writing-mode")||C.css("-webkit-writing-mode")||C.css("-ms-writing-mode")||C.css("-moz-writing-mode");"horizontal-tb"==N||"lr-tb"==N||""===N?(this.isrtlmode="rtl"==C.css("direction"),this.isvertical=!1):(this.isrtlmode="vertical-rl"==N||"tb"==N||"tb-rl"==N||"rl-tb"==N,this.isvertical="vertical-rl"==N||"tb"==N||"tb-rl"==N)}else this.isrtlmode=!0===M.rtlmode,this.isvertical=!1;if(this.scrollrunning=!1,this.scrollmom=!1,this.observer=!1,this.observerremover=!1,this.observerbody=!1,!1!==M.scrollbarid)this.id=M.scrollbarid;else do{this.id="ascrail"+i++}while(l.getElementById(this.id));this.rail=!1,this.cursor=!1,this.cursorfreezed=!1,this.selectiondrag=!1,this.zoom=!1,this.zoomactive=!1,this.hasfocus=!1,this.hasmousefocus=!1,this.railslocked=!1,this.locked=!1,this.hidden=!1,this.cursoractive=!0,this.wheelprevented=!1,this.overflowx=M.overflowx,this.overflowy=M.overflowy,this.nativescrollingarea=!1,this.checkarea=0,this.events=[],this.saved={},this.delaylist={},this.synclist={},this.lastdeltax=0,this.lastdeltay=0,this.detected=w();var P=n.extend({},this.detected);this.canhwscroll=P.hastransform&&M.hwacceleration,this.ishwscroll=this.canhwscroll&&T.haswrapper,this.isrtlmode?this.isvertical?this.hasreversehr=!(P.iswebkit||P.isie||P.isie11):this.hasreversehr=!(P.iswebkit||P.isie&&!P.isie10&&!P.isie11):this.hasreversehr=!1,this.istouchcapable=!1,P.cantouch||!P.hasw3ctouch&&!P.hasmstouch?!P.cantouch||P.isios||P.isandroid||!P.iswebkit&&!P.ismozilla||(this.istouchcapable=!0):this.istouchcapable=!0,M.enablemouselockapi||(P.hasmousecapture=!1,P.haspointerlock=!1),this.debounced=function(e,o,t){T&&(T.delaylist[e]||!1||(T.delaylist[e]={h:u(function(){T.delaylist[e].fn.call(T),T.delaylist[e]=!1},t)},o.call(T)),T.delaylist[e].fn=o)},this.synched=function(e,o){T.synclist[e]?T.synclist[e]=o:(T.synclist[e]=o,u(function(){T&&(T.synclist[e]&&T.synclist[e].call(T),T.synclist[e]=null)}))},this.unsynched=function(e){T.synclist[e]&&(T.synclist[e]=!1)},this.css=function(e,o){for(var t in o)T.saved.css.push([e,t,e.css(t)]),e.css(t,o[t])},this.scrollTop=function(e){return void 0===e?T.getScrollTop():T.setScrollTop(e)},this.scrollLeft=function(e){return void 0===e?T.getScrollLeft():T.setScrollLeft(e)};var R=function(e,o,t,r,i,s,n){this.st=e,this.ed=o,this.spd=t,this.p1=r||0,this.p2=i||1,this.p3=s||0,this.p4=n||1,this.ts=f(),this.df=o-e};if(R.prototype={B2:function(e){return 3*(1-e)*(1-e)*e},B3:function(e){return 3*(1-e)*e*e},B4:function(e){return e*e*e},getPos:function(){return(f()-this.ts)/this.spd},getNow:function(){var e=(f()-this.ts)/this.spd,o=this.B2(e)+this.B3(e)+this.B4(e);return e>=1?this.ed:this.st+this.df*o|0},update:function(e,o){return this.st=this.getNow(),this.ed=e,this.spd=o,this.ts=f(),this.df=this.ed-this.st,this}},this.ishwscroll){this.doc.translate={x:0,y:0,tx:"0px",ty:"0px"},P.hastranslate3d&&P.isios&&this.doc.css("-webkit-backface-visibility","hidden"),this.getScrollTop=function(e){if(!e){var o=v();if(o)return 16==o.length?-o[13]:-o[5];if(T.timerscroll&&T.timerscroll.bz)return T.timerscroll.bz.getNow()}return T.doc.translate.y},this.getScrollLeft=function(e){if(!e){var o=v();if(o)return 16==o.length?-o[12]:-o[4];if(T.timerscroll&&T.timerscroll.bh)return T.timerscroll.bh.getNow()}return T.doc.translate.x},this.notifyScrollEvent=function(e){var o=l.createEvent("UIEvents");o.initUIEvent("scroll",!1,!1,a,1),o.niceevent=!0,e.dispatchEvent(o)};var _=this.isrtlmode?1:-1;P.hastranslate3d&&M.enabletranslate3d?(this.setScrollTop=function(e,o){T.doc.translate.y=e,T.doc.translate.ty=-1*e+"px",T.doc.css(P.trstyle,"translate3d("+T.doc.translate.tx+","+T.doc.translate.ty+",0)"),o||T.notifyScrollEvent(T.win[0])},this.setScrollLeft=function(e,o){T.doc.translate.x=e,T.doc.translate.tx=e*_+"px",T.doc.css(P.trstyle,"translate3d("+T.doc.translate.tx+","+T.doc.translate.ty+",0)"),o||T.notifyScrollEvent(T.win[0])}):(this.setScrollTop=function(e,o){T.doc.translate.y=e,T.doc.translate.ty=-1*e+"px",T.doc.css(P.trstyle,"translate("+T.doc.translate.tx+","+T.doc.translate.ty+")"),o||T.notifyScrollEvent(T.win[0])},this.setScrollLeft=function(e,o){T.doc.translate.x=e,T.doc.translate.tx=e*_+"px",T.doc.css(P.trstyle,"translate("+T.doc.translate.tx+","+T.doc.translate.ty+")"),o||T.notifyScrollEvent(T.win[0])})}else this.getScrollTop=function(){return T.docscroll.scrollTop()},this.setScrollTop=function(e){T.docscroll.scrollTop(e)},this.getScrollLeft=function(){return T.hasreversehr?T.detected.ismozilla?T.page.maxw-Math.abs(T.docscroll.scrollLeft()):T.page.maxw-T.docscroll.scrollLeft():T.docscroll.scrollLeft()},this.setScrollLeft=function(e){return setTimeout(function(){if(T)return T.hasreversehr&&(e=T.detected.ismozilla?-(T.page.maxw-e):T.page.maxw-e),T.docscroll.scrollLeft(e)},1)};this.getTarget=function(e){return!!e&&(e.target?e.target:!!e.srcElement&&e.srcElement)},this.hasParent=function(e,o){if(!e)return!1;for(var t=e.target||e.srcElement||e||!1;t&&t.id!=o;)t=t.parentNode||!1;return!1!==t};var I={thin:1,medium:3,thick:5};this.getDocumentScrollOffset=function(){return{top:a.pageYOffset||l.documentElement.scrollTop,left:a.pageXOffset||l.documentElement.scrollLeft}},this.getOffset=function(){if(T.isfixed){var e=T.win.offset(),o=T.getDocumentScrollOffset();return e.top-=o.top,e.left-=o.left,e}var t=T.win.offset();if(!T.viewport)return t;var r=T.viewport.offset();return{top:t.top-r.top,left:t.left-r.left}},this.updateScrollBar=function(e){var o,t;if(T.ishwscroll)T.rail.css({height:T.win.innerHeight()-(M.railpadding.top+M.railpadding.bottom)}),T.railh&&T.railh.css({width:T.win.innerWidth()-(M.railpadding.left+M.railpadding.right)});else{var r=T.getOffset();if(o={top:r.top,left:r.left-(M.railpadding.left+M.railpadding.right)},o.top+=x(T.win,"border-top-width",!0),o.left+=T.rail.align?T.win.outerWidth()-x(T.win,"border-right-width")-T.rail.width:x(T.win,"border-left-width"),(t=M.railoffset)&&(t.top&&(o.top+=t.top),t.left&&(o.left+=t.left)),T.railslocked||T.rail.css({top:o.top,left:o.left,height:(e?e.h:T.win.innerHeight())-(M.railpadding.top+M.railpadding.bottom)}),T.zoom&&T.zoom.css({top:o.top+1,left:1==T.rail.align?o.left-20:o.left+T.rail.width+4}),T.railh&&!T.railslocked){o={top:r.top,left:r.left},(t=M.railhoffset)&&(t.top&&(o.top+=t.top),t.left&&(o.left+=t.left));var i=T.railh.align?o.top+x(T.win,"border-top-width",!0)+T.win.innerHeight()-T.railh.height:o.top+x(T.win,"border-top-width",!0),s=o.left+x(T.win,"border-left-width");T.railh.css({top:i-(M.railpadding.top+M.railpadding.bottom),left:s,width:T.railh.width})}}},this.doRailClick=function(e,o,t){var r,i,s,n;T.railslocked||(T.cancelEvent(e),"pageY"in e||(e.pageX=e.clientX+l.documentElement.scrollLeft,e.pageY=e.clientY+l.documentElement.scrollTop),o?(r=t?T.doScrollLeft:T.doScrollTop,s=t?(e.pageX-T.railh.offset().left-T.cursorwidth/2)*T.scrollratio.x:(e.pageY-T.rail.offset().top-T.cursorheight/2)*T.scrollratio.y,T.unsynched("relativexy"),r(0|s)):(r=t?T.doScrollLeftBy:T.doScrollBy,s=t?T.scroll.x:T.scroll.y,n=t?e.pageX-T.railh.offset().left:e.pageY-T.rail.offset().top,i=t?T.view.w:T.view.h,r(s>=n?i:-i)))},T.newscrolly=T.newscrollx=0,T.hasanimationframe="requestAnimationFrame"in a,T.hascancelanimationframe="cancelAnimationFrame"in a,T.hasborderbox=!1,this.init=function(){if(T.saved.css=[],P.isoperamini)return!0;if(P.isandroid&&!("hidden"in l))return!0;M.emulatetouch=M.emulatetouch||M.touchbehavior,T.hasborderbox=a.getComputedStyle&&"border-box"===a.getComputedStyle(l.body)["box-sizing"];var e={"overflow-y":"hidden"};if((P.isie11||P.isie10)&&(e["-ms-overflow-style"]="none"),T.ishwscroll&&(this.doc.css(P.transitionstyle,P.prefixstyle+"transform 0ms ease-out"),P.transitionend&&T.bind(T.doc,P.transitionend,T.onScrollTransitionEnd,!1)),T.zindex="auto",T.ispage||"auto"!=M.zindex?T.zindex=M.zindex:T.zindex=b()||"auto",!T.ispage&&"auto"!=T.zindex&&T.zindex>s&&(s=T.zindex),T.isie&&0===T.zindex&&"auto"==M.zindex&&(T.zindex="auto"),!T.ispage||!P.isieold){var i=T.docscroll;T.ispage&&(i=T.haswrapper?T.win:T.doc),T.css(i,e),T.ispage&&(P.isie11||P.isie)&&T.css(n("html"),e),!P.isios||T.ispage||T.haswrapper||T.css(E,{"-webkit-overflow-scrolling":"touch"});var d=n(l.createElement("div"));d.css({position:"relative",top:0,float:"right",width:M.cursorwidth,height:0,"background-color":M.cursorcolor,border:M.cursorborder,"background-clip":"padding-box","-webkit-border-radius":M.cursorborderradius,"-moz-border-radius":M.cursorborderradius,"border-radius":M.cursorborderradius}),d.addClass("nicescroll-cursors"),T.cursor=d;var u=n(l.createElement("div"));u.attr("id",T.id),u.addClass("nicescroll-rails nicescroll-rails-vr");var h,p,f=["left","right","top","bottom"];for(var g in f)p=f[g],(h=M.railpadding[p]||0)&&u.css("padding-"+p,h+"px");u.append(d),u.width=Math.max(parseFloat(M.cursorwidth),d.outerWidth()),u.css({width:u.width+"px",zIndex:T.zindex,background:M.background,cursor:"default"}),u.visibility=!0,u.scrollable=!0,u.align="left"==M.railalign?0:1,T.rail=u,T.rail.drag=!1;var v=!1;!M.boxzoom||T.ispage||P.isieold||(v=l.createElement("div"),T.bind(v,"click",T.doZoom),T.bind(v,"mouseenter",function(){T.zoom.css("opacity",M.cursoropacitymax)}),T.bind(v,"mouseleave",function(){T.zoom.css("opacity",M.cursoropacitymin)}),T.zoom=n(v),T.zoom.css({cursor:"pointer",zIndex:T.zindex,backgroundImage:"url("+M.scriptpath+"zoomico.png)",height:18,width:18,backgroundPosition:"0 0"}),M.dblclickzoom&&T.bind(T.win,"dblclick",T.doZoom),P.cantouch&&M.gesturezoom&&(T.ongesturezoom=function(e){return e.scale>1.5&&T.doZoomIn(e),e.scale<.8&&T.doZoomOut(e),T.cancelEvent(e)},T.bind(T.win,"gestureend",T.ongesturezoom))),T.railh=!1;var w;if(M.horizrailenabled&&(T.css(i,{overflowX:"hidden"}),(d=n(l.createElement("div"))).css({position:"absolute",top:0,height:M.cursorwidth,width:0,backgroundColor:M.cursorcolor,border:M.cursorborder,backgroundClip:"padding-box","-webkit-border-radius":M.cursorborderradius,"-moz-border-radius":M.cursorborderradius,"border-radius":M.cursorborderradius}),P.isieold&&d.css("overflow","hidden"),d.addClass("nicescroll-cursors"),T.cursorh=d,(w=n(l.createElement("div"))).attr("id",T.id+"-hr"),w.addClass("nicescroll-rails nicescroll-rails-hr"),w.height=Math.max(parseFloat(M.cursorwidth),d.outerHeight()),w.css({height:w.height+"px",zIndex:T.zindex,background:M.background}),w.append(d),w.visibility=!0,w.scrollable=!0,w.align="top"==M.railvalign?0:1,T.railh=w,T.railh.drag=!1),T.ispage)u.css({position:"fixed",top:0,height:"100%"}),u.css(u.align?{right:0}:{left:0}),T.body.append(u),T.railh&&(w.css({position:"fixed",left:0,width:"100%"}),w.css(w.align?{bottom:0}:{top:0}),T.body.append(w));else{if(T.ishwscroll){"static"==T.win.css("position")&&T.css(T.win,{position:"relative"});var x="HTML"==T.win[0].nodeName?T.body:T.win;n(x).scrollTop(0).scrollLeft(0),T.zoom&&(T.zoom.css({position:"absolute",top:1,right:0,"margin-right":u.width+4}),x.append(T.zoom)),u.css({position:"absolute",top:0}),u.css(u.align?{right:0}:{left:0}),x.append(u),w&&(w.css({position:"absolute",left:0,bottom:0}),w.css(w.align?{bottom:0}:{top:0}),x.append(w))}else{T.isfixed="fixed"==T.win.css("position");var S=T.isfixed?"fixed":"absolute";T.isfixed||(T.viewport=T.getViewport(T.win[0])),T.viewport&&(T.body=T.viewport,/fixed|absolute/.test(T.viewport.css("position"))||T.css(T.viewport,{position:"relative"})),u.css({position:S}),T.zoom&&T.zoom.css({position:S}),T.updateScrollBar(),T.body.append(u),T.zoom&&T.body.append(T.zoom),T.railh&&(w.css({position:S}),T.body.append(w))}P.isios&&T.css(T.win,{"-webkit-tap-highlight-color":"rgba(0,0,0,0)","-webkit-touch-callout":"none"}),M.disableoutline&&(P.isie&&T.win.attr("hideFocus","true"),P.iswebkit&&T.win.css("outline","none"))}if(!1===M.autohidemode?(T.autohidedom=!1,T.rail.css({opacity:M.cursoropacitymax}),T.railh&&T.railh.css({opacity:M.cursoropacitymax})):!0===M.autohidemode||"leave"===M.autohidemode?(T.autohidedom=n().add(T.rail),P.isie8&&(T.autohidedom=T.autohidedom.add(T.cursor)),T.railh&&(T.autohidedom=T.autohidedom.add(T.railh)),T.railh&&P.isie8&&(T.autohidedom=T.autohidedom.add(T.cursorh))):"scroll"==M.autohidemode?(T.autohidedom=n().add(T.rail),T.railh&&(T.autohidedom=T.autohidedom.add(T.railh))):"cursor"==M.autohidemode?(T.autohidedom=n().add(T.cursor),T.railh&&(T.autohidedom=T.autohidedom.add(T.cursorh))):"hidden"==M.autohidemode&&(T.autohidedom=!1,T.hide(),T.railslocked=!1),P.cantouch||T.istouchcapable||M.emulatetouch||P.hasmstouch){T.scrollmom=new y(T);T.ontouchstart=function(e){if(T.locked)return!1;if(e.pointerType&&("mouse"===e.pointerType||e.pointerType===e.MSPOINTER_TYPE_MOUSE))return!1;if(T.hasmoving=!1,T.scrollmom.timer&&(T.triggerScrollEnd(),T.scrollmom.stop()),!T.railslocked){var o=T.getTarget(e);if(o&&/INPUT/i.test(o.nodeName)&&/range/i.test(o.type))return T.stopPropagation(e);var t="mousedown"===e.type;if(!("clientX"in e)&&"changedTouches"in e&&(e.clientX=e.changedTouches[0].clientX,e.clientY=e.changedTouches[0].clientY),T.forcescreen){var r=e;(e={original:e.original?e.original:e}).clientX=r.screenX,e.clientY=r.screenY}if(T.rail.drag={x:e.clientX,y:e.clientY,sx:T.scroll.x,sy:T.scroll.y,st:T.getScrollTop(),sl:T.getScrollLeft(),pt:2,dl:!1,tg:o},T.ispage||!M.directionlockdeadzone)T.rail.drag.dl="f";else{var i={w:c.width(),h:c.height()},s=T.getContentSize(),l=s.h-i.h,a=s.w-i.w;T.rail.scrollable&&!T.railh.scrollable?T.rail.drag.ck=l>0&&"v":!T.rail.scrollable&&T.railh.scrollable?T.rail.drag.ck=a>0&&"h":T.rail.drag.ck=!1}if(M.emulatetouch&&T.isiframe&&P.isie){var d=T.win.position();T.rail.drag.x+=d.left,T.rail.drag.y+=d.top}if(T.hasmoving=!1,T.lastmouseup=!1,T.scrollmom.reset(e.clientX,e.clientY),o&&t){if(!/INPUT|SELECT|BUTTON|TEXTAREA/i.test(o.nodeName))return P.hasmousecapture&&o.setCapture(),M.emulatetouch?(o.onclick&&!o._onclick&&(o._onclick=o.onclick,o.onclick=function(e){if(T.hasmoving)return!1;o._onclick.call(this,e)}),T.cancelEvent(e)):T.stopPropagation(e);/SUBMIT|CANCEL|BUTTON/i.test(n(o).attr("type"))&&(T.preventclick={tg:o,click:!1})}}},T.ontouchend=function(e){if(!T.rail.drag)return!0;if(2==T.rail.drag.pt){if(e.pointerType&&("mouse"===e.pointerType||e.pointerType===e.MSPOINTER_TYPE_MOUSE))return!1;T.rail.drag=!1;var o="mouseup"===e.type;if(T.hasmoving&&(T.scrollmom.doMomentum(),T.lastmouseup=!0,T.hideCursor(),P.hasmousecapture&&l.releaseCapture(),o))return T.cancelEvent(e)}else if(1==T.rail.drag.pt)return T.onmouseup(e)};var z=M.emulatetouch&&T.isiframe&&!P.hasmousecapture,k=.3*M.directionlockdeadzone|0;T.ontouchmove=function(e,o){if(!T.rail.drag)return!0;if(e.targetTouches&&M.preventmultitouchscrolling&&e.targetTouches.length>1)return!0;if(e.pointerType&&("mouse"===e.pointerType||e.pointerType===e.MSPOINTER_TYPE_MOUSE))return!0;if(2==T.rail.drag.pt){"changedTouches"in e&&(e.clientX=e.changedTouches[0].clientX,e.clientY=e.changedTouches[0].clientY);var t,r;if(r=t=0,z&&!o){var i=T.win.position();r=-i.left,t=-i.top}var s=e.clientY+t,n=s-T.rail.drag.y,a=e.clientX+r,c=a-T.rail.drag.x,d=T.rail.drag.st-n;if(T.ishwscroll&&M.bouncescroll)d<0?d=Math.round(d/2):d>T.page.maxh&&(d=T.page.maxh+Math.round((d-T.page.maxh)/2));else if(d<0?(d=0,s=0):d>T.page.maxh&&(d=T.page.maxh,s=0),0===s&&!T.hasmoving)return T.ispage||(T.rail.drag=!1),!0;var u=T.getScrollLeft();if(T.railh&&T.railh.scrollable&&(u=T.isrtlmode?c-T.rail.drag.sl:T.rail.drag.sl-c,T.ishwscroll&&M.bouncescroll?u<0?u=Math.round(u/2):u>T.page.maxw&&(u=T.page.maxw+Math.round((u-T.page.maxw)/2)):(u<0&&(u=0,a=0),u>T.page.maxw&&(u=T.page.maxw,a=0))),!T.hasmoving){if(T.rail.drag.y===e.clientY&&T.rail.drag.x===e.clientX)return T.cancelEvent(e);var h=Math.abs(n),p=Math.abs(c),m=M.directionlockdeadzone;if(T.rail.drag.ck?"v"==T.rail.drag.ck?p>m&&h<=k?T.rail.drag=!1:h>m&&(T.rail.drag.dl="v"):"h"==T.rail.drag.ck&&(h>m&&p<=k?T.rail.drag=!1:p>m&&(T.rail.drag.dl="h")):h>m&&p>m?T.rail.drag.dl="f":h>m?T.rail.drag.dl=p>k?"f":"v":p>m&&(T.rail.drag.dl=h>k?"f":"h"),!T.rail.drag.dl)return T.cancelEvent(e);T.triggerScrollStart(e.clientX,e.clientY,0,0,0),T.hasmoving=!0}return T.preventclick&&!T.preventclick.click&&(T.preventclick.click=T.preventclick.tg.onclick||!1,T.preventclick.tg.onclick=T.onpreventclick),T.rail.drag.dl&&("v"==T.rail.drag.dl?u=T.rail.drag.sl:"h"==T.rail.drag.dl&&(d=T.rail.drag.st)),T.synched("touchmove",function(){T.rail.drag&&2==T.rail.drag.pt&&(T.prepareTransition&&T.resetTransition(),T.rail.scrollable&&T.setScrollTop(d),T.scrollmom.update(a,s),T.railh&&T.railh.scrollable?(T.setScrollLeft(u),T.showCursor(d,u)):T.showCursor(d),P.isie10&&l.selection.clear())}),T.cancelEvent(e)}return 1==T.rail.drag.pt?T.onmousemove(e):void 0},T.ontouchstartCursor=function(e,o){if(!T.rail.drag||3==T.rail.drag.pt){if(T.locked)return T.cancelEvent(e);T.cancelScroll(),T.rail.drag={x:e.touches[0].clientX,y:e.touches[0].clientY,sx:T.scroll.x,sy:T.scroll.y,pt:3,hr:!!o};var t=T.getTarget(e);return!T.ispage&&P.hasmousecapture&&t.setCapture(),T.isiframe&&!P.hasmousecapture&&(T.saved.csspointerevents=T.doc.css("pointer-events"),T.css(T.doc,{"pointer-events":"none"})),T.cancelEvent(e)}},T.ontouchendCursor=function(e){if(T.rail.drag){if(P.hasmousecapture&&l.releaseCapture(),T.isiframe&&!P.hasmousecapture&&T.doc.css("pointer-events",T.saved.csspointerevents),3!=T.rail.drag.pt)return;return T.rail.drag=!1,T.cancelEvent(e)}},T.ontouchmoveCursor=function(e){if(T.rail.drag){if(3!=T.rail.drag.pt)return;if(T.cursorfreezed=!0,T.rail.drag.hr){T.scroll.x=T.rail.drag.sx+(e.touches[0].clientX-T.rail.drag.x),T.scroll.x<0&&(T.scroll.x=0);var o=T.scrollvaluemaxw;T.scroll.x>o&&(T.scroll.x=o)}else{T.scroll.y=T.rail.drag.sy+(e.touches[0].clientY-T.rail.drag.y),T.scroll.y<0&&(T.scroll.y=0);var t=T.scrollvaluemax;T.scroll.y>t&&(T.scroll.y=t)}return T.synched("touchmove",function(){T.rail.drag&&3==T.rail.drag.pt&&(T.showCursor(),T.rail.drag.hr?T.doScrollLeft(Math.round(T.scroll.x*T.scrollratio.x),M.cursordragspeed):T.doScrollTop(Math.round(T.scroll.y*T.scrollratio.y),M.cursordragspeed))}),T.cancelEvent(e)}}}if(T.onmousedown=function(e,o){if(!T.rail.drag||1==T.rail.drag.pt){if(T.railslocked)return T.cancelEvent(e);T.cancelScroll(),T.rail.drag={x:e.clientX,y:e.clientY,sx:T.scroll.x,sy:T.scroll.y,pt:1,hr:o||!1};var t=T.getTarget(e);return P.hasmousecapture&&t.setCapture(),T.isiframe&&!P.hasmousecapture&&(T.saved.csspointerevents=T.doc.css("pointer-events"),T.css(T.doc,{"pointer-events":"none"})),T.hasmoving=!1,T.cancelEvent(e)}},T.onmouseup=function(e){if(T.rail.drag)return 1!=T.rail.drag.pt||(P.hasmousecapture&&l.releaseCapture(),T.isiframe&&!P.hasmousecapture&&T.doc.css("pointer-events",T.saved.csspointerevents),T.rail.drag=!1,T.cursorfreezed=!1,T.hasmoving&&T.triggerScrollEnd(),T.cancelEvent(e))},T.onmousemove=function(e){if(T.rail.drag){if(1!==T.rail.drag.pt)return;if(P.ischrome&&0===e.which)return T.onmouseup(e);if(T.cursorfreezed=!0,T.hasmoving||T.triggerScrollStart(e.clientX,e.clientY,0,0,0),T.hasmoving=!0,T.rail.drag.hr){T.scroll.x=T.rail.drag.sx+(e.clientX-T.rail.drag.x),T.scroll.x<0&&(T.scroll.x=0);var o=T.scrollvaluemaxw;T.scroll.x>o&&(T.scroll.x=o)}else{T.scroll.y=T.rail.drag.sy+(e.clientY-T.rail.drag.y),T.scroll.y<0&&(T.scroll.y=0);var t=T.scrollvaluemax;T.scroll.y>t&&(T.scroll.y=t)}return T.synched("mousemove",function(){T.cursorfreezed&&(T.showCursor(),T.rail.drag.hr?T.scrollLeft(Math.round(T.scroll.x*T.scrollratio.x)):T.scrollTop(Math.round(T.scroll.y*T.scrollratio.y)))}),T.cancelEvent(e)}T.checkarea=0},P.cantouch||M.emulatetouch)T.onpreventclick=function(e){if(T.preventclick)return T.preventclick.tg.onclick=T.preventclick.click,T.preventclick=!1,T.cancelEvent(e)},T.onclick=!P.isios&&function(e){return!T.lastmouseup||(T.lastmouseup=!1,T.cancelEvent(e))},M.grabcursorenabled&&P.cursorgrabvalue&&(T.css(T.ispage?T.doc:T.win,{cursor:P.cursorgrabvalue}),T.css(T.rail,{cursor:P.cursorgrabvalue}));else{var L=function(e){if(T.selectiondrag){if(e){var o=T.win.outerHeight(),t=e.pageY-T.selectiondrag.top;t>0&&t<o&&(t=0),t>=o&&(t-=o),T.selectiondrag.df=t}if(0!==T.selectiondrag.df){var r=-2*T.selectiondrag.df/6|0;T.doScrollBy(r),T.debounced("doselectionscroll",function(){L()},50)}}};T.hasTextSelected="getSelection"in l?function(){return l.getSelection().rangeCount>0}:"selection"in l?function(){return"None"!=l.selection.type}:function(){return!1},T.onselectionstart=function(e){T.ispage||(T.selectiondrag=T.win.offset())},T.onselectionend=function(e){T.selectiondrag=!1},T.onselectiondrag=function(e){T.selectiondrag&&T.hasTextSelected()&&T.debounced("selectionscroll",function(){L(e)},250)}}if(P.hasw3ctouch?(T.css(T.ispage?n("html"):T.win,{"touch-action":"none"}),T.css(T.rail,{"touch-action":"none"}),T.css(T.cursor,{"touch-action":"none"}),T.bind(T.win,"pointerdown",T.ontouchstart),T.bind(l,"pointerup",T.ontouchend),T.delegate(l,"pointermove",T.ontouchmove)):P.hasmstouch?(T.css(T.ispage?n("html"):T.win,{"-ms-touch-action":"none"}),T.css(T.rail,{"-ms-touch-action":"none"}),T.css(T.cursor,{"-ms-touch-action":"none"}),T.bind(T.win,"MSPointerDown",T.ontouchstart),T.bind(l,"MSPointerUp",T.ontouchend),T.delegate(l,"MSPointerMove",T.ontouchmove),T.bind(T.cursor,"MSGestureHold",function(e){e.preventDefault()}),T.bind(T.cursor,"contextmenu",function(e){e.preventDefault()})):P.cantouch&&(T.bind(T.win,"touchstart",T.ontouchstart,!1,!0),T.bind(l,"touchend",T.ontouchend,!1,!0),T.bind(l,"touchcancel",T.ontouchend,!1,!0),T.delegate(l,"touchmove",T.ontouchmove,!1,!0)),M.emulatetouch&&(T.bind(T.win,"mousedown",T.ontouchstart,!1,!0),T.bind(l,"mouseup",T.ontouchend,!1,!0),T.bind(l,"mousemove",T.ontouchmove,!1,!0)),(M.cursordragontouch||!P.cantouch&&!M.emulatetouch)&&(T.rail.css({cursor:"default"}),T.railh&&T.railh.css({cursor:"default"}),T.jqbind(T.rail,"mouseenter",function(){if(!T.ispage&&!T.win.is(":visible"))return!1;T.canshowonmouseevent&&T.showCursor(),T.rail.active=!0}),T.jqbind(T.rail,"mouseleave",function(){T.rail.active=!1,T.rail.drag||T.hideCursor()}),M.sensitiverail&&(T.bind(T.rail,"click",function(e){T.doRailClick(e,!1,!1)}),T.bind(T.rail,"dblclick",function(e){T.doRailClick(e,!0,!1)}),T.bind(T.cursor,"click",function(e){T.cancelEvent(e)}),T.bind(T.cursor,"dblclick",function(e){T.cancelEvent(e)})),T.railh&&(T.jqbind(T.railh,"mouseenter",function(){if(!T.ispage&&!T.win.is(":visible"))return!1;T.canshowonmouseevent&&T.showCursor(),T.rail.active=!0}),T.jqbind(T.railh,"mouseleave",function(){T.rail.active=!1,T.rail.drag||T.hideCursor()}),M.sensitiverail&&(T.bind(T.railh,"click",function(e){T.doRailClick(e,!1,!0)}),T.bind(T.railh,"dblclick",function(e){T.doRailClick(e,!0,!0)}),T.bind(T.cursorh,"click",function(e){T.cancelEvent(e)}),T.bind(T.cursorh,"dblclick",function(e){T.cancelEvent(e)})))),M.cursordragontouch&&(this.istouchcapable||P.cantouch)&&(T.bind(T.cursor,"touchstart",T.ontouchstartCursor),T.bind(T.cursor,"touchmove",T.ontouchmoveCursor),T.bind(T.cursor,"touchend",T.ontouchendCursor),T.cursorh&&T.bind(T.cursorh,"touchstart",function(e){T.ontouchstartCursor(e,!0)}),T.cursorh&&T.bind(T.cursorh,"touchmove",T.ontouchmoveCursor),T.cursorh&&T.bind(T.cursorh,"touchend",T.ontouchendCursor)),M.emulatetouch||P.isandroid||P.isios?(T.bind(P.hasmousecapture?T.win:l,"mouseup",T.ontouchend),T.onclick&&T.bind(l,"click",T.onclick),M.cursordragontouch?(T.bind(T.cursor,"mousedown",T.onmousedown),T.bind(T.cursor,"mouseup",T.onmouseup),T.cursorh&&T.bind(T.cursorh,"mousedown",function(e){T.onmousedown(e,!0)}),T.cursorh&&T.bind(T.cursorh,"mouseup",T.onmouseup)):(T.bind(T.rail,"mousedown",function(e){e.preventDefault()}),T.railh&&T.bind(T.railh,"mousedown",function(e){e.preventDefault()}))):(T.bind(P.hasmousecapture?T.win:l,"mouseup",T.onmouseup),T.bind(l,"mousemove",T.onmousemove),T.onclick&&T.bind(l,"click",T.onclick),T.bind(T.cursor,"mousedown",T.onmousedown),T.bind(T.cursor,"mouseup",T.onmouseup),T.railh&&(T.bind(T.cursorh,"mousedown",function(e){T.onmousedown(e,!0)}),T.bind(T.cursorh,"mouseup",T.onmouseup)),!T.ispage&&M.enablescrollonselection&&(T.bind(T.win[0],"mousedown",T.onselectionstart),T.bind(l,"mouseup",T.onselectionend),T.bind(T.cursor,"mouseup",T.onselectionend),T.cursorh&&T.bind(T.cursorh,"mouseup",T.onselectionend),T.bind(l,"mousemove",T.onselectiondrag)),T.zoom&&(T.jqbind(T.zoom,"mouseenter",function(){T.canshowonmouseevent&&T.showCursor(),T.rail.active=!0}),T.jqbind(T.zoom,"mouseleave",function(){T.rail.active=!1,T.rail.drag||T.hideCursor()}))),M.enablemousewheel&&(T.isiframe||T.mousewheel(P.isie&&T.ispage?l:T.win,T.onmousewheel),T.mousewheel(T.rail,T.onmousewheel),T.railh&&T.mousewheel(T.railh,T.onmousewheelhr)),T.ispage||P.cantouch||/HTML|^BODY/.test(T.win[0].nodeName)||(T.win.attr("tabindex")||T.win.attr({tabindex:++r}),T.bind(T.win,"focus",function(e){o=T.getTarget(e).id||T.getTarget(e)||!1,T.hasfocus=!0,T.canshowonmouseevent&&T.noticeCursor()}),T.bind(T.win,"blur",function(e){o=!1,T.hasfocus=!1}),T.bind(T.win,"mouseenter",function(e){t=T.getTarget(e).id||T.getTarget(e)||!1,T.hasmousefocus=!0,T.canshowonmouseevent&&T.noticeCursor()}),T.bind(T.win,"mouseleave",function(e){t=!1,T.hasmousefocus=!1,T.rail.drag||T.hideCursor()})),T.onkeypress=function(e){if(T.railslocked&&0===T.page.maxh)return!0;e=e||a.event;var r=T.getTarget(e);if(r&&/INPUT|TEXTAREA|SELECT|OPTION/.test(r.nodeName)&&(!(r.getAttribute("type")||r.type||!1)||!/submit|button|cancel/i.tp))return!0;if(n(r).attr("contenteditable"))return!0;if(T.hasfocus||T.hasmousefocus&&!o||T.ispage&&!o&&!t){var i=e.keyCode;if(T.railslocked&&27!=i)return T.cancelEvent(e);var s=e.ctrlKey||!1,l=e.shiftKey||!1,c=!1;switch(i){case 38:case 63233:T.doScrollBy(72),c=!0;break;case 40:case 63235:T.doScrollBy(-72),c=!0;break;case 37:case 63232:T.railh&&(s?T.doScrollLeft(0):T.doScrollLeftBy(72),c=!0);break;case 39:case 63234:T.railh&&(s?T.doScrollLeft(T.page.maxw):T.doScrollLeftBy(-72),c=!0);break;case 33:case 63276:T.doScrollBy(T.view.h),c=!0;break;case 34:case 63277:T.doScrollBy(-T.view.h),c=!0;break;case 36:case 63273:T.railh&&s?T.doScrollPos(0,0):T.doScrollTo(0),c=!0;break;case 35:case 63275:T.railh&&s?T.doScrollPos(T.page.maxw,T.page.maxh):T.doScrollTo(T.page.maxh),c=!0;break;case 32:M.spacebarenabled&&(l?T.doScrollBy(T.view.h):T.doScrollBy(-T.view.h),c=!0);break;case 27:T.zoomactive&&(T.doZoom(),c=!0)}if(c)return T.cancelEvent(e)}},M.enablekeyboard&&T.bind(l,P.isopera&&!P.isopera12?"keypress":"keydown",T.onkeypress),T.bind(l,"keydown",function(e){(e.ctrlKey||!1)&&(T.wheelprevented=!0)}),T.bind(l,"keyup",function(e){e.ctrlKey||!1||(T.wheelprevented=!1)}),T.bind(a,"blur",function(e){T.wheelprevented=!1}),T.bind(a,"resize",T.onscreenresize),T.bind(a,"orientationchange",T.onscreenresize),T.bind(a,"load",T.lazyResize),P.ischrome&&!T.ispage&&!T.haswrapper){var C=T.win.attr("style"),N=parseFloat(T.win.css("width"))+1;T.win.css("width",N),T.synched("chromefix",function(){T.win.attr("style",C)})}if(T.onAttributeChange=function(e){T.lazyResize(T.isieold?250:30)},M.enableobserver&&(T.isie11||!1===m||(T.observerbody=new m(function(e){if(e.forEach(function(e){if("attributes"==e.type)return E.hasClass("modal-open")&&E.hasClass("modal-dialog")&&!n.contains(n(".modal-dialog")[0],T.doc[0])?T.hide():T.show()}),T.me.clientWidth!=T.page.width||T.me.clientHeight!=T.page.height)return T.lazyResize(30)}),T.observerbody.observe(l.body,{childList:!0,subtree:!0,characterData:!1,attributes:!0,attributeFilter:["class"]})),!T.ispage&&!T.haswrapper)){var R=T.win[0];!1!==m?(T.observer=new m(function(e){e.forEach(T.onAttributeChange)}),T.observer.observe(R,{childList:!0,characterData:!1,attributes:!0,subtree:!1}),T.observerremover=new m(function(e){e.forEach(function(e){if(e.removedNodes.length>0)for(var o in e.removedNodes)if(T&&e.removedNodes[o]===R)return T.remove()})}),T.observerremover.observe(R.parentNode,{childList:!0,characterData:!1,attributes:!1,subtree:!1})):(T.bind(R,P.isie&&!P.isie9?"propertychange":"DOMAttrModified",T.onAttributeChange),P.isie9&&R.attachEvent("onpropertychange",T.onAttributeChange),T.bind(R,"DOMNodeRemoved",function(e){e.target===R&&T.remove()}))}!T.ispage&&M.boxzoom&&T.bind(a,"resize",T.resizeZoom),T.istextarea&&(T.bind(T.win,"keydown",T.lazyResize),T.bind(T.win,"mouseup",T.lazyResize)),T.lazyResize(30)}if("IFRAME"==this.doc[0].nodeName){var _=function(){T.iframexd=!1;var o;try{(o="contentDocument"in this?this.contentDocument:this.contentWindow._doc).domain}catch(e){T.iframexd=!0,o=!1}if(T.iframexd)return"console"in a&&console.log("NiceScroll error: policy restriced iframe"),!0;if(T.forcescreen=!0,T.isiframe&&(T.iframe={doc:n(o),html:T.doc.contents().find("html")[0],body:T.doc.contents().find("body")[0]},T.getContentSize=function(){return{w:Math.max(T.iframe.html.scrollWidth,T.iframe.body.scrollWidth),h:Math.max(T.iframe.html.scrollHeight,T.iframe.body.scrollHeight)}},T.docscroll=n(T.iframe.body)),!P.isios&&M.iframeautoresize&&!T.isiframe){T.win.scrollTop(0),T.doc.height("");var t=Math.max(o.getElementsByTagName("html")[0].scrollHeight,o.body.scrollHeight);T.doc.height(t)}T.lazyResize(30),T.css(n(T.iframe.body),e),P.isios&&T.haswrapper&&T.css(n(o.body),{"-webkit-transform":"translate3d(0,0,0)"}),"contentWindow"in this?T.bind(this.contentWindow,"scroll",T.onscroll):T.bind(o,"scroll",T.onscroll),M.enablemousewheel&&T.mousewheel(o,T.onmousewheel),M.enablekeyboard&&T.bind(o,P.isopera?"keypress":"keydown",T.onkeypress),P.cantouch?(T.bind(o,"touchstart",T.ontouchstart),T.bind(o,"touchmove",T.ontouchmove)):M.emulatetouch&&(T.bind(o,"mousedown",T.ontouchstart),T.bind(o,"mousemove",function(e){return T.ontouchmove(e,!0)}),M.grabcursorenabled&&P.cursorgrabvalue&&T.css(n(o.body),{cursor:P.cursorgrabvalue})),T.bind(o,"mouseup",T.ontouchend),T.zoom&&(M.dblclickzoom&&T.bind(o,"dblclick",T.doZoom),T.ongesturezoom&&T.bind(o,"gestureend",T.ongesturezoom))};this.doc[0].readyState&&"complete"===this.doc[0].readyState&&setTimeout(function(){_.call(T.doc[0],!1)},500),T.bind(this.doc,"load",_)}},this.showCursor=function(e,o){if(T.cursortimeout&&(clearTimeout(T.cursortimeout),T.cursortimeout=0),T.rail){if(T.autohidedom&&(T.autohidedom.stop().css({opacity:M.cursoropacitymax}),T.cursoractive=!0),T.rail.drag&&1==T.rail.drag.pt||(void 0!==e&&!1!==e&&(T.scroll.y=e/T.scrollratio.y|0),void 0!==o&&(T.scroll.x=o/T.scrollratio.x|0)),T.cursor.css({height:T.cursorheight,top:T.scroll.y}),T.cursorh){var t=T.hasreversehr?T.scrollvaluemaxw-T.scroll.x:T.scroll.x;T.cursorh.css({width:T.cursorwidth,left:!T.rail.align&&T.rail.visibility?t+T.rail.width:t}),T.cursoractive=!0}T.zoom&&T.zoom.stop().css({opacity:M.cursoropacitymax})}},this.hideCursor=function(e){T.cursortimeout||T.rail&&T.autohidedom&&(T.hasmousefocus&&"leave"===M.autohidemode||(T.cursortimeout=setTimeout(function(){T.rail.active&&T.showonmouseevent||(T.autohidedom.stop().animate({opacity:M.cursoropacitymin}),T.zoom&&T.zoom.stop().animate({opacity:M.cursoropacitymin}),T.cursoractive=!1),T.cursortimeout=0},e||M.hidecursordelay)))},this.noticeCursor=function(e,o,t){T.showCursor(o,t),T.rail.active||T.hideCursor(e)},this.getContentSize=T.ispage?function(){return{w:Math.max(l.body.scrollWidth,l.documentElement.scrollWidth),h:Math.max(l.body.scrollHeight,l.documentElement.scrollHeight)}}:T.haswrapper?function(){return{w:T.doc[0].offsetWidth,h:T.doc[0].offsetHeight}}:function(){return{w:T.docscroll[0].scrollWidth,h:T.docscroll[0].scrollHeight}},this.onResize=function(e,o){if(!T||!T.win)return!1;var t=T.page.maxh,r=T.page.maxw,i=T.view.h,s=T.view.w;if(T.view={w:T.ispage?T.win.width():T.win[0].clientWidth,h:T.ispage?T.win.height():T.win[0].clientHeight},T.page=o||T.getContentSize(),T.page.maxh=Math.max(0,T.page.h-T.view.h),T.page.maxw=Math.max(0,T.page.w-T.view.w),T.page.maxh==t&&T.page.maxw==r&&T.view.w==s&&T.view.h==i){if(T.ispage)return T;var n=T.win.offset();if(T.lastposition){var l=T.lastposition;if(l.top==n.top&&l.left==n.left)return T}T.lastposition=n}return 0===T.page.maxh?(T.hideRail(),T.scrollvaluemax=0,T.scroll.y=0,T.scrollratio.y=0,T.cursorheight=0,T.setScrollTop(0),T.rail&&(T.rail.scrollable=!1)):(T.page.maxh-=M.railpadding.top+M.railpadding.bottom,T.rail.scrollable=!0),0===T.page.maxw?(T.hideRailHr(),T.scrollvaluemaxw=0,T.scroll.x=0,T.scrollratio.x=0,T.cursorwidth=0,T.setScrollLeft(0),T.railh&&(T.railh.scrollable=!1)):(T.page.maxw-=M.railpadding.left+M.railpadding.right,T.railh&&(T.railh.scrollable=M.horizrailenabled)),T.railslocked=T.locked||0===T.page.maxh&&0===T.page.maxw,T.railslocked?(T.ispage||T.updateScrollBar(T.view),!1):(T.hidden||(T.rail.visibility||T.showRail(),T.railh&&!T.railh.visibility&&T.showRailHr()),T.istextarea&&T.win.css("resize")&&"none"!=T.win.css("resize")&&(T.view.h-=20),T.cursorheight=Math.min(T.view.h,Math.round(T.view.h*(T.view.h/T.page.h))),T.cursorheight=M.cursorfixedheight?M.cursorfixedheight:Math.max(M.cursorminheight,T.cursorheight),T.cursorwidth=Math.min(T.view.w,Math.round(T.view.w*(T.view.w/T.page.w))),T.cursorwidth=M.cursorfixedheight?M.cursorfixedheight:Math.max(M.cursorminheight,T.cursorwidth),T.scrollvaluemax=T.view.h-T.cursorheight-(M.railpadding.top+M.railpadding.bottom),T.hasborderbox||(T.scrollvaluemax-=T.cursor[0].offsetHeight-T.cursor[0].clientHeight),T.railh&&(T.railh.width=T.page.maxh>0?T.view.w-T.rail.width:T.view.w,T.scrollvaluemaxw=T.railh.width-T.cursorwidth-(M.railpadding.left+M.railpadding.right)),T.ispage||T.updateScrollBar(T.view),T.scrollratio={x:T.page.maxw/T.scrollvaluemaxw,y:T.page.maxh/T.scrollvaluemax},T.getScrollTop()>T.page.maxh?T.doScrollTop(T.page.maxh):(T.scroll.y=T.getScrollTop()/T.scrollratio.y|0,T.scroll.x=T.getScrollLeft()/T.scrollratio.x|0,T.cursoractive&&T.noticeCursor()),T.scroll.y&&0===T.getScrollTop()&&T.doScrollTo(T.scroll.y*T.scrollratio.y|0),T)},this.resize=T.onResize;var O=0;this.onscreenresize=function(e){clearTimeout(O);var o=!T.ispage&&!T.haswrapper;o&&T.hideRails(),O=setTimeout(function(){T&&(o&&T.showRails(),T.resize()),O=0},120)},this.lazyResize=function(e){return clearTimeout(O),e=isNaN(e)?240:e,O=setTimeout(function(){T&&T.resize(),O=0},e),T},this.jqbind=function(e,o,t){T.events.push({e:e,n:o,f:t,q:!0}),n(e).on(o,t)},this.mousewheel=function(e,o,t){var r="jquery"in e?e[0]:e;if("onwheel"in l.createElement("div"))T._bind(r,"wheel",o,t||!1);else{var i=void 0!==l.onmousewheel?"mousewheel":"DOMMouseScroll";S(r,i,o,t||!1),"DOMMouseScroll"==i&&S(r,"MozMousePixelScroll",o,t||!1)}};var Y=!1;if(P.haseventlistener){try{var H=Object.defineProperty({},"passive",{get:function(){Y=!0}});a.addEventListener("test",null,H)}catch(e){}this.stopPropagation=function(e){return!!e&&((e=e.original?e.original:e).stopPropagation(),!1)},this.cancelEvent=function(e){return e.cancelable&&e.preventDefault(),e.stopImmediatePropagation(),e.preventManipulation&&e.preventManipulation(),!1}}else Event.prototype.preventDefault=function(){this.returnValue=!1},Event.prototype.stopPropagation=function(){this.cancelBubble=!0},a.constructor.prototype.addEventListener=l.constructor.prototype.addEventListener=Element.prototype.addEventListener=function(e,o,t){this.attachEvent("on"+e,o)},a.constructor.prototype.removeEventListener=l.constructor.prototype.removeEventListener=Element.prototype.removeEventListener=function(e,o,t){this.detachEvent("on"+e,o)},this.cancelEvent=function(e){return(e=e||a.event)&&(e.cancelBubble=!0,e.cancel=!0,e.returnValue=!1),!1},this.stopPropagation=function(e){return(e=e||a.event)&&(e.cancelBubble=!0),!1};this.delegate=function(e,o,t,r,i){var s=d[o]||!1;s||(s={a:[],l:[],f:function(e){for(var o=s.l,t=!1,r=o.length-1;r>=0;r--)if(!1===(t=o[r].call(e.target,e)))return!1;return t}},T.bind(e,o,s.f,r,i),d[o]=s),T.ispage?(s.a=[T.id].concat(s.a),s.l=[t].concat(s.l)):(s.a.push(T.id),s.l.push(t))},this.undelegate=function(e,o,t,r,i){var s=d[o]||!1;if(s&&s.l)for(var n=0,l=s.l.length;n<l;n++)s.a[n]===T.id&&(s.a.splice(n),s.l.splice(n),0===s.a.length&&(T._unbind(e,o,s.l.f),d[o]=null))},this.bind=function(e,o,t,r,i){var s="jquery"in e?e[0]:e;T._bind(s,o,t,r||!1,i||!1)},this._bind=function(e,o,t,r,i){T.events.push({e:e,n:o,f:t,b:r,q:!1}),Y&&i?e.addEventListener(o,t,{passive:!1,capture:r}):e.addEventListener(o,t,r||!1)},this._unbind=function(e,o,t,r){d[o]?T.undelegate(e,o,t,r):e.removeEventListener(o,t,r)},this.unbindAll=function(){for(var e=0;e<T.events.length;e++){var o=T.events[e];o.q?o.e.unbind(o.n,o.f):T._unbind(o.e,o.n,o.f,o.b)}},this.showRails=function(){return T.showRail().showRailHr()},this.showRail=function(){return 0===T.page.maxh||!T.ispage&&"none"==T.win.css("display")||(T.rail.visibility=!0,T.rail.css("display","block")),T},this.showRailHr=function(){return T.railh&&(0===T.page.maxw||!T.ispage&&"none"==T.win.css("display")||(T.railh.visibility=!0,T.railh.css("display","block"))),T},this.hideRails=function(){return T.hideRail().hideRailHr()},this.hideRail=function(){return T.rail.visibility=!1,T.rail.css("display","none"),T},this.hideRailHr=function(){return T.railh&&(T.railh.visibility=!1,T.railh.css("display","none")),T},this.show=function(){return T.hidden=!1,T.railslocked=!1,T.showRails()},this.hide=function(){return T.hidden=!0,T.railslocked=!0,T.hideRails()},this.toggle=function(){return T.hidden?T.show():T.hide()},this.remove=function(){T.stop(),T.cursortimeout&&clearTimeout(T.cursortimeout);for(var e in T.delaylist)T.delaylist[e]&&h(T.delaylist[e].h);T.doZoomOut(),T.unbindAll(),P.isie9&&T.win[0].detachEvent("onpropertychange",T.onAttributeChange),!1!==T.observer&&T.observer.disconnect(),!1!==T.observerremover&&T.observerremover.disconnect(),!1!==T.observerbody&&T.observerbody.disconnect(),T.events=null,T.cursor&&T.cursor.remove(),T.cursorh&&T.cursorh.remove(),T.rail&&T.rail.remove(),T.railh&&T.railh.remove(),T.zoom&&T.zoom.remove();for(var o=0;o<T.saved.css.length;o++){var t=T.saved.css[o];t[0].css(t[1],void 0===t[2]?"":t[2])}T.saved=!1,T.me.data("__nicescroll","");var r=n.nicescroll;r.each(function(e){if(this&&this.id===T.id){delete r[e];for(var o=++e;o<r.length;o++,e++)r[e]=r[o];--r.length&&delete r[r.length]}});for(var i in T)T[i]=null,delete T[i];T=null},this.scrollstart=function(e){return this.onscrollstart=e,T},this.scrollend=function(e){return this.onscrollend=e,T},this.scrollcancel=function(e){return this.onscrollcancel=e,T},this.zoomin=function(e){return this.onzoomin=e,T},this.zoomout=function(e){return this.onzoomout=e,T},this.isScrollable=function(e){var o=e.target?e.target:e;if("OPTION"==o.nodeName)return!0;for(;o&&1==o.nodeType&&o!==this.me[0]&&!/^BODY|HTML/.test(o.nodeName);){var t=n(o),r=t.css("overflowY")||t.css("overflowX")||t.css("overflow")||"";if(/scroll|auto/.test(r))return o.clientHeight!=o.scrollHeight;o=!!o.parentNode&&o.parentNode}return!1},this.getViewport=function(e){for(var o=!(!e||!e.parentNode)&&e.parentNode;o&&1==o.nodeType&&!/^BODY|HTML/.test(o.nodeName);){var t=n(o);if(/fixed|absolute/.test(t.css("position")))return t;var r=t.css("overflowY")||t.css("overflowX")||t.css("overflow")||"";if(/scroll|auto/.test(r)&&o.clientHeight!=o.scrollHeight)return t;if(t.getNiceScroll().length>0)return t;o=!!o.parentNode&&o.parentNode}return!1},this.triggerScrollStart=function(e,o,t,r,i){if(T.onscrollstart){var s={type:"scrollstart",current:{x:e,y:o},request:{x:t,y:r},end:{x:T.newscrollx,y:T.newscrolly},speed:i};T.onscrollstart.call(T,s)}},this.triggerScrollEnd=function(){if(T.onscrollend){var e=T.getScrollLeft(),o=T.getScrollTop(),t={type:"scrollend",current:{x:e,y:o},end:{x:e,y:o}};T.onscrollend.call(T,t)}};var B=0,X=0,D=0,A=1,q=!1;if(this.onmousewheel=function(e){if(T.wheelprevented||T.locked)return!1;if(T.railslocked)return T.debounced("checkunlock",T.resize,250),!1;if(T.rail.drag)return T.cancelEvent(e);if("auto"===M.oneaxismousemode&&0!==e.deltaX&&(M.oneaxismousemode=!1),M.oneaxismousemode&&0===e.deltaX&&!T.rail.scrollable)return!T.railh||!T.railh.scrollable||T.onmousewheelhr(e);var o=f(),t=!1;if(M.preservenativescrolling&&T.checkarea+600<o&&(T.nativescrollingarea=T.isScrollable(e),t=!0),T.checkarea=o,T.nativescrollingarea)return!0;var r=k(e,!1,t);return r&&(T.checkarea=0),r},this.onmousewheelhr=function(e){if(!T.wheelprevented){if(T.railslocked||!T.railh.scrollable)return!0;if(T.rail.drag)return T.cancelEvent(e);var o=f(),t=!1;return M.preservenativescrolling&&T.checkarea+600<o&&(T.nativescrollingarea=T.isScrollable(e),t=!0),T.checkarea=o,!!T.nativescrollingarea||(T.railslocked?T.cancelEvent(e):k(e,!0,t))}},this.stop=function(){return T.cancelScroll(),T.scrollmon&&T.scrollmon.stop(),T.cursorfreezed=!1,T.scroll.y=Math.round(T.getScrollTop()*(1/T.scrollratio.y)),T.noticeCursor(),T},this.getTransitionSpeed=function(e){return 80+e/72*M.scrollspeed|0},M.smoothscroll)if(T.ishwscroll&&P.hastransition&&M.usetransition&&M.smoothscroll){var j="";this.resetTransition=function(){j="",T.doc.css(P.prefixstyle+"transition-duration","0ms")},this.prepareTransition=function(e,o){var t=o?e:T.getTransitionSpeed(e),r=t+"ms";return j!==r&&(j=r,T.doc.css(P.prefixstyle+"transition-duration",r)),t},this.doScrollLeft=function(e,o){var t=T.scrollrunning?T.newscrolly:T.getScrollTop();T.doScrollPos(e,t,o)},this.doScrollTop=function(e,o){var t=T.scrollrunning?T.newscrollx:T.getScrollLeft();T.doScrollPos(t,e,o)},this.cursorupdate={running:!1,start:function(){var e=this;if(!e.running){e.running=!0;var o=function(){e.running&&u(o),T.showCursor(T.getScrollTop(),T.getScrollLeft()),T.notifyScrollEvent(T.win[0])};u(o)}},stop:function(){this.running=!1}},this.doScrollPos=function(e,o,t){var r=T.getScrollTop(),i=T.getScrollLeft();if(((T.newscrolly-r)*(o-r)<0||(T.newscrollx-i)*(e-i)<0)&&T.cancelScroll(),M.bouncescroll?(o<0?o=o/2|0:o>T.page.maxh&&(o=T.page.maxh+(o-T.page.maxh)/2|0),e<0?e=e/2|0:e>T.page.maxw&&(e=T.page.maxw+(e-T.page.maxw)/2|0)):(o<0?o=0:o>T.page.maxh&&(o=T.page.maxh),e<0?e=0:e>T.page.maxw&&(e=T.page.maxw)),T.scrollrunning&&e==T.newscrollx&&o==T.newscrolly)return!1;T.newscrolly=o,T.newscrollx=e;var s=T.getScrollTop(),n=T.getScrollLeft(),l={};l.x=e-n,l.y=o-s;var a=0|Math.sqrt(l.x*l.x+l.y*l.y),c=T.prepareTransition(a);T.scrollrunning||(T.scrollrunning=!0,T.triggerScrollStart(n,s,e,o,c),T.cursorupdate.start()),T.scrollendtrapped=!0,P.transitionend||(T.scrollendtrapped&&clearTimeout(T.scrollendtrapped),T.scrollendtrapped=setTimeout(T.onScrollTransitionEnd,c)),T.setScrollTop(T.newscrolly),T.setScrollLeft(T.newscrollx)},this.cancelScroll=function(){if(!T.scrollendtrapped)return!0;var e=T.getScrollTop(),o=T.getScrollLeft();return T.scrollrunning=!1,P.transitionend||clearTimeout(P.transitionend),T.scrollendtrapped=!1,T.resetTransition(),T.setScrollTop(e),T.railh&&T.setScrollLeft(o),T.timerscroll&&T.timerscroll.tm&&clearInterval(T.timerscroll.tm),T.timerscroll=!1,T.cursorfreezed=!1,T.cursorupdate.stop(),T.showCursor(e,o),T},this.onScrollTransitionEnd=function(){if(T.scrollendtrapped){var e=T.getScrollTop(),o=T.getScrollLeft();if(e<0?e=0:e>T.page.maxh&&(e=T.page.maxh),o<0?o=0:o>T.page.maxw&&(o=T.page.maxw),e!=T.newscrolly||o!=T.newscrollx)return T.doScrollPos(o,e,M.snapbackspeed);T.scrollrunning&&T.triggerScrollEnd(),T.scrollrunning=!1,T.scrollendtrapped=!1,T.resetTransition(),T.timerscroll=!1,T.setScrollTop(e),T.railh&&T.setScrollLeft(o),T.cursorupdate.stop(),T.noticeCursor(!1,e,o),T.cursorfreezed=!1}}}else this.doScrollLeft=function(e,o){var t=T.scrollrunning?T.newscrolly:T.getScrollTop();T.doScrollPos(e,t,o)},this.doScrollTop=function(e,o){var t=T.scrollrunning?T.newscrollx:T.getScrollLeft();T.doScrollPos(t,e,o)},this.doScrollPos=function(e,o,t){var r=T.getScrollTop(),i=T.getScrollLeft();((T.newscrolly-r)*(o-r)<0||(T.newscrollx-i)*(e-i)<0)&&T.cancelScroll();var s=!1;if(T.bouncescroll&&T.rail.visibility||(o<0?(o=0,s=!0):o>T.page.maxh&&(o=T.page.maxh,s=!0)),T.bouncescroll&&T.railh.visibility||(e<0?(e=0,s=!0):e>T.page.maxw&&(e=T.page.maxw,s=!0)),T.scrollrunning&&T.newscrolly===o&&T.newscrollx===e)return!0;T.newscrolly=o,T.newscrollx=e,T.dst={},T.dst.x=e-i,T.dst.y=o-r,T.dst.px=i,T.dst.py=r;var n=0|Math.sqrt(T.dst.x*T.dst.x+T.dst.y*T.dst.y),l=T.getTransitionSpeed(n);T.bzscroll={};var a=s?1:.58;T.bzscroll.x=new R(i,T.newscrollx,l,0,0,a,1),T.bzscroll.y=new R(r,T.newscrolly,l,0,0,a,1);f();var c=function(){if(T.scrollrunning){var e=T.bzscroll.y.getPos();T.setScrollLeft(T.bzscroll.x.getNow()),T.setScrollTop(T.bzscroll.y.getNow()),e<=1?T.timer=u(c):(T.scrollrunning=!1,T.timer=0,T.triggerScrollEnd())}};T.scrollrunning||(T.triggerScrollStart(i,r,e,o,l),T.scrollrunning=!0,T.timer=u(c))},this.cancelScroll=function(){return T.timer&&h(T.timer),T.timer=0,T.bzscroll=!1,T.scrollrunning=!1,T};else this.doScrollLeft=function(e,o){var t=T.getScrollTop();T.doScrollPos(e,t,o)},this.doScrollTop=function(e,o){var t=T.getScrollLeft();T.doScrollPos(t,e,o)},this.doScrollPos=function(e,o,t){var r=e>T.page.maxw?T.page.maxw:e;r<0&&(r=0);var i=o>T.page.maxh?T.page.maxh:o;i<0&&(i=0),T.synched("scroll",function(){T.setScrollTop(i),T.setScrollLeft(r)})},this.cancelScroll=function(){};this.doScrollBy=function(e,o){z(0,e)},this.doScrollLeftBy=function(e,o){z(e,0)},this.doScrollTo=function(e,o){var t=o?Math.round(e*T.scrollratio.y):e;t<0?t=0:t>T.page.maxh&&(t=T.page.maxh),T.cursorfreezed=!1,T.doScrollTop(e)},this.checkContentSize=function(){var e=T.getContentSize();e.h==T.page.h&&e.w==T.page.w||T.resize(!1,e)},T.onscroll=function(e){T.rail.drag||T.cursorfreezed||T.synched("scroll",function(){T.scroll.y=Math.round(T.getScrollTop()/T.scrollratio.y),T.railh&&(T.scroll.x=Math.round(T.getScrollLeft()/T.scrollratio.x)),T.noticeCursor()})},T.bind(T.docscroll,"scroll",T.onscroll),this.doZoomIn=function(e){if(!T.zoomactive){T.zoomactive=!0,T.zoomrestore={style:{}};var o=["position","top","left","zIndex","backgroundColor","marginTop","marginBottom","marginLeft","marginRight"],t=T.win[0].style;for(var r in o){var i=o[r];T.zoomrestore.style[i]=void 0!==t[i]?t[i]:""}T.zoomrestore.style.width=T.win.css("width"),T.zoomrestore.style.height=T.win.css("height"),T.zoomrestore.padding={w:T.win.outerWidth()-T.win.width(),h:T.win.outerHeight()-T.win.height()},P.isios4&&(T.zoomrestore.scrollTop=c.scrollTop(),c.scrollTop(0)),T.win.css({position:P.isios4?"absolute":"fixed",top:0,left:0,zIndex:s+100,margin:0});var n=T.win.css("backgroundColor");return(""===n||/transparent|rgba\(0, 0, 0, 0\)|rgba\(0,0,0,0\)/.test(n))&&T.win.css("backgroundColor","#fff"),T.rail.css({zIndex:s+101}),T.zoom.css({zIndex:s+102}),T.zoom.css("backgroundPosition","0 -18px"),T.resizeZoom(),T.onzoomin&&T.onzoomin.call(T),T.cancelEvent(e)}},this.doZoomOut=function(e){if(T.zoomactive)return T.zoomactive=!1,T.win.css("margin",""),T.win.css(T.zoomrestore.style),P.isios4&&c.scrollTop(T.zoomrestore.scrollTop),T.rail.css({"z-index":T.zindex}),T.zoom.css({"z-index":T.zindex}),T.zoomrestore=!1,T.zoom.css("backgroundPosition","0 0"),T.onResize(),T.onzoomout&&T.onzoomout.call(T),T.cancelEvent(e)},this.doZoom=function(e){return T.zoomactive?T.doZoomOut(e):T.doZoomIn(e)},this.resizeZoom=function(){if(T.zoomactive){var e=T.getScrollTop();T.win.css({width:c.width()-T.zoomrestore.padding.w+"px",height:c.height()-T.zoomrestore.padding.h+"px"}),T.onResize(),T.setScrollTop(Math.min(T.page.maxh,e))}},this.init(),n.nicescroll.push(this)},y=function(e){var o=this;this.nc=e,this.lastx=0,this.lasty=0,this.speedx=0,this.speedy=0,this.lasttime=0,this.steptime=0,this.snapx=!1,this.snapy=!1,this.demulx=0,this.demuly=0,this.lastscrollx=-1,this.lastscrolly=-1,this.chkx=0,this.chky=0,this.timer=0,this.reset=function(e,t){o.stop(),o.steptime=0,o.lasttime=f(),o.speedx=0,o.speedy=0,o.lastx=e,o.lasty=t,o.lastscrollx=-1,o.lastscrolly=-1},this.update=function(e,t){var r=f();o.steptime=r-o.lasttime,o.lasttime=r;var i=t-o.lasty,s=e-o.lastx,n=o.nc.getScrollTop()+i,l=o.nc.getScrollLeft()+s;o.snapx=l<0||l>o.nc.page.maxw,o.snapy=n<0||n>o.nc.page.maxh,o.speedx=s,o.speedy=i,o.lastx=e,o.lasty=t},this.stop=function(){o.nc.unsynched("domomentum2d"),o.timer&&clearTimeout(o.timer),o.timer=0,o.lastscrollx=-1,o.lastscrolly=-1},this.doSnapy=function(e,t){var r=!1;t<0?(t=0,r=!0):t>o.nc.page.maxh&&(t=o.nc.page.maxh,r=!0),e<0?(e=0,r=!0):e>o.nc.page.maxw&&(e=o.nc.page.maxw,r=!0),r?o.nc.doScrollPos(e,t,o.nc.opt.snapbackspeed):o.nc.triggerScrollEnd()},this.doMomentum=function(e){var t=f(),r=e?t+e:o.lasttime,i=o.nc.getScrollLeft(),s=o.nc.getScrollTop(),n=o.nc.page.maxh,l=o.nc.page.maxw;o.speedx=l>0?Math.min(60,o.speedx):0,o.speedy=n>0?Math.min(60,o.speedy):0;var a=r&&t-r<=60;(s<0||s>n||i<0||i>l)&&(a=!1);var c=!(!o.speedy||!a)&&o.speedy,d=!(!o.speedx||!a)&&o.speedx;if(c||d){var u=Math.max(16,o.steptime);if(u>50){var h=u/50;o.speedx*=h,o.speedy*=h,u=50}o.demulxy=0,o.lastscrollx=o.nc.getScrollLeft(),o.chkx=o.lastscrollx,o.lastscrolly=o.nc.getScrollTop(),o.chky=o.lastscrolly;var p=o.lastscrollx,m=o.lastscrolly,g=function(){var e=f()-t>600?.04:.02;o.speedx&&(p=Math.floor(o.lastscrollx-o.speedx*(1-o.demulxy)),o.lastscrollx=p,(p<0||p>l)&&(e=.1)),o.speedy&&(m=Math.floor(o.lastscrolly-o.speedy*(1-o.demulxy)),o.lastscrolly=m,(m<0||m>n)&&(e=.1)),o.demulxy=Math.min(1,o.demulxy+e),o.nc.synched("domomentum2d",function(){if(o.speedx){o.nc.getScrollLeft();o.chkx=p,o.nc.setScrollLeft(p)}if(o.speedy){o.nc.getScrollTop();o.chky=m,o.nc.setScrollTop(m)}o.timer||(o.nc.hideCursor(),o.doSnapy(p,m))}),o.demulxy<1?o.timer=setTimeout(g,u):(o.stop(),o.nc.hideCursor(),o.doSnapy(p,m))};g()}else o.doSnapy(o.nc.getScrollLeft(),o.nc.getScrollTop())}},x=e.fn.scrollTop;e.cssHooks.pageYOffset={get:function(e,o,t){var r=n.data(e,"__nicescroll")||!1;return r&&r.ishwscroll?r.getScrollTop():x.call(e)},set:function(e,o){var t=n.data(e,"__nicescroll")||!1;return t&&t.ishwscroll?t.setScrollTop(parseInt(o)):x.call(e,o),this}},e.fn.scrollTop=function(e){if(void 0===e){var o=!!this[0]&&(n.data(this[0],"__nicescroll")||!1);return o&&o.ishwscroll?o.getScrollTop():x.call(this)}return this.each(function(){var o=n.data(this,"__nicescroll")||!1;o&&o.ishwscroll?o.setScrollTop(parseInt(e)):x.call(n(this),e)})};var S=e.fn.scrollLeft;n.cssHooks.pageXOffset={get:function(e,o,t){var r=n.data(e,"__nicescroll")||!1;return r&&r.ishwscroll?r.getScrollLeft():S.call(e)},set:function(e,o){var t=n.data(e,"__nicescroll")||!1;return t&&t.ishwscroll?t.setScrollLeft(parseInt(o)):S.call(e,o),this}},e.fn.scrollLeft=function(e){if(void 0===e){var o=!!this[0]&&(n.data(this[0],"__nicescroll")||!1);return o&&o.ishwscroll?o.getScrollLeft():S.call(this)}return this.each(function(){var o=n.data(this,"__nicescroll")||!1;o&&o.ishwscroll?o.setScrollLeft(parseInt(e)):S.call(n(this),e)})};var z=function(e){var o=this;if(this.length=0,this.name="nicescrollarray",this.each=function(e){return n.each(o,e),o},this.push=function(e){o[o.length]=e,o.length++},this.eq=function(e){return o[e]},e)for(var t=0;t<e.length;t++){var r=n.data(e[t],"__nicescroll")||!1;r&&(this[this.length]=r,this.length++)}return this};!function(e,o,t){for(var r=0,i=o.length;r<i;r++)t(e,o[r])}(z.prototype,["show","hide","toggle","onResize","resize","remove","stop","doScrollPos"],function(e,o){e[o]=function(){var e=arguments;return this.each(function(){this[o].apply(this,e)})}}),e.fn.getNiceScroll=function(e){return void 0===e?new z(this):this[e]&&n.data(this[e],"__nicescroll")||!1},(e.expr.pseudos||e.expr[":"]).nicescroll=function(e){return void 0!==n.data(e,"__nicescroll")},n.fn.niceScroll=function(e,o){void 0!==o||"object"!=typeof e||"jquery"in e||(o=e,e=!1);var t=new z;return this.each(function(){var r=n(this),i=n.extend({},o);if(e){var s=n(e);i.doc=s.length>1?n(e,r):s,i.win=r}!("doc"in i)||"win"in i||(i.win=r);var l=r.data("__nicescroll")||!1;l||(i.doc=i.doc||r,l=new b(i,r),r.data("__nicescroll",l)),t.push(l)}),1===t.length?t[0]:t},a.NiceScroll={getjQuery:function(){return e}},n.nicescroll||(n.nicescroll=new z,n.nicescroll.options=g)});
// source --> https://ordonna.com/wp-content/plugins/booknetic/app/Frontend/assets/js/recurring_appointments.init.js?v=5.2.4&amp;ver=6.9.4 
(function($)
{

    bookneticHooks.addAction('loaded_step', function( booknetic, new_step_id, old_step_id, ajaxData )
    {
        let booking_panel_js = booknetic.panel_js;

        if( booknetic.getSelected.serviceIsRecurring() )
        {
            booking_panel_js.find('.booknetic_appointment_step_element[data-step-id="recurring_info"].booknetic_menu_hidden').slideDown(300, function ()
            {
                $(this).removeClass('booknetic_menu_hidden');
                booknetic.stepManager.refreshStepNumbers();
            });
        }
        else
        {
            booking_panel_js.find('.booknetic_appointment_step_element[data-step-id="recurring_info"]:not(.booknetic_menu_hidden)').slideUp(300, function ()
            {
                $(this).addClass('booknetic_menu_hidden');
                booknetic.stepManager.refreshStepNumbers();
            });
        }
    });

})(jQuery);
// source --> https://ordonna.com/wp-content/plugins/booknetic/app/Frontend/assets/js/steps/step_confirm_details.js?v=5.2.4&amp;ver=6.9.4 
(function($)
{

    bookneticHooks.addAction('booking_panel_loaded', function ( booknetic )
    {
        let booking_panel_js = booknetic.panel_js;

        booking_panel_js.on('click', '.booknetic_payment_method', function ()
        {
            booking_panel_js.find(".booknetic_payment_method_selected").removeClass('booknetic_payment_method_selected');
            $(this).addClass('booknetic_payment_method_selected');

            if( $(this).data('payment-type') == 'local' )
            {
                // deposit payment deyishende Ajax atib price sectionu update edir. Local sechilende ise deposit payment disabled nezere alinir deye, burda onu sondurmek uchun click edir.
                booking_panel_js.find('input[name="input_deposit"][value="1"]').click();

                booking_panel_js.find(".booknetic_hide_on_local").removeClass('booknetic_hidden').fadeOut(100);
            }
            else
            {
                booking_panel_js.find(".booknetic_hide_on_local").removeClass('booknetic_hidden').fadeIn(100);
                const isDepositDisabled = booking_panel_js.find( 'input[name="input_deposit"]:checked' ).val() == 0;

                if(isDepositDisabled){
                    $( '.booknetic_deposit_price.booknetic_hide_on_local' ).hide();
                    $( '.booknetic_payment_methods_footer' ).css( 'background-color', 'white' );
                }
            }
        }).on( 'change', '.booknetic_deposit_radios', function()
        {
            var selectedButton = $( this ).find( 'input[name="input_deposit"]:checked' ).val();

            if ( selectedButton == 1 )
            {
                $('.booknetic_deposit_price.booknetic_hide_on_local' ).show();
                $('.booknetic_payment_methods_footer' ).css( 'background-color', '#F8D7DF' );
            }
            else
            {
                $( '.booknetic_deposit_price.booknetic_hide_on_local' ).hide();
                $( '.booknetic_payment_methods_footer' ).css( 'background-color', 'white' );
            }

            booknetic.ajax('update_prices', booknetic.ajaxParameters( { current_step: 'confirm_details' } ), function ( result )
            {
                booking_panel_js.find('.booknetic_prices_box').html(result['prices_html']);
                booking_panel_js.find('.booknetic_sum_price').text(result['sum_price_txt']);
                booking_panel_js.find('.booknetic_deposit_amount_txt').text(result['deposit_txt']);
            });
        });

    });

    bookneticHooks.addAction('before_step_loading', function( booknetic, new_step_id, old_step_id )
    {
        if( new_step_id !== 'confirm_details' )
            return;

        booknetic.stepManager.loadStandartSteps( new_step_id, old_step_id );
    });

    bookneticHooks.addAction('loaded_step', function( booknetic, new_step_id, old_step_id, ajaxData )
    {
        if( new_step_id !== 'confirm_details' )
            return;

        let booking_panel_js = booknetic.panel_js;

        if ( ! booknetic.isMobileView() )
        {
            booking_panel_js.find( '.booknetic_portlet_content' ).handleScrollBooknetic();
        }
    });

})(jQuery);
// source --> https://ordonna.com/wp-content/plugins/booknetic/app/Frontend/assets/js/steps/step_date_time.js?v=5.2.4&amp;ver=6.9.4 
(function($)
{

    bookneticHooks.addAction('booking_panel_loaded', function ( booknetic )
    {
        let booking_panel_js = booknetic.panel_js;

        booking_panel_js.on('click', '.booknetic_calendar_days:not(.booknetic_calendar_empty_day)[data-date]', function()
        {
            var date = $(this).data('date');

            booking_panel_js.find(".booknetic_times_list").empty();

            var times = date in booknetic.calendarDateTimes['dates'] ? booknetic.calendarDateTimes['dates'][ date ] : [];
            var time_show_format = booknetic.time_show_format == 2 ? 2 : 1;

            for( var i = 0; i < times.length; i++ )
            {
                var time_badge = '';
                if( times[i]['weight'] > 0 && !( 'hide_available_slots' in booknetic.calendarDateTimes && booknetic.calendarDateTimes['hide_available_slots'] == 'on' ) )
                {
                    time_badge = '<div class="booknetic_time_group_num">' + times[i]['weight'] + ' / ' + times[i]['max_capacity'] + '</div>';
                }

                let html = '<div class="booknetic_time_element" data-time="' + times[i]['start_time'] + '" data-endtime="' + times[i]['end_time'] + '" data-date-original="' + times[i]['date'] + '"><div>' + times[i]['start_time_format'] + '</div>' + (time_show_format == 1 ? '<div>' + times[i]['end_time_format'] + '</div>' : '') + time_badge + '</div>';
                var res = bookneticHooks.doFilter('bkntc_date_time_load' , html ,times[i] ,booknetic);

                booking_panel_js.find(".booknetic_times_list").append(res);
            }

            booking_panel_js.find(".booknetic_times_list").scrollTop(0);
            // booking_panel_js.find(".booknetic_times_list").getNiceScroll().resize();

            booking_panel_js.find(".booknetic_calendar_selected_day").removeClass('booknetic_calendar_selected_day');

            $(this).addClass('booknetic_calendar_selected_day');

            booking_panel_js.find(".booknetic_times_title").text( $(this).data('date-format') );

            if( booknetic.dateBasedService )
            {
                booking_panel_js.find(".booknetic_times_list > [data-time]:eq(0)").trigger('click');
            }
            else if( booknetic.isMobileView() )
            {
                const modalBody = booknetic.panel_js.closest('.bkntc_booking_modal').find('.content .body');

                if (modalBody.length > 0) {
                    modalBody.animate({scrollTop: parseInt(booking_panel_js.find('.booknetic_time_div').offset().top) - 100}, 500);
                    return
                }

                $('html,body').animate({scrollTop: parseInt(booking_panel_js.find('.booknetic_time_div').offset().top) - 100}, 1000);
            }
        }).on('click', '.booknetic_prev_month', function ()
        {
            var month = booknetic.calendarMonth - 1;
            var year = booknetic.calendarYear;

            if( month < 0 )
            {
                month = 11;
                year--;
            }

            booknetic.nonRecurringCalendar( year, month, true, true );
        }).on('click', '.booknetic_next_month', function ()
        {
            var month = booknetic.calendarMonth + 1;
            var year = booknetic.calendarYear;

            if( month > 11 )
            {
                month = 0;
                year++;
            }

            booknetic.nonRecurringCalendar( year, month, true, true );
        }).on('click', '.booknetic_times_list > div', function ()
        {
            booking_panel_js.find('.booknetic_selected_time').removeClass('booknetic_selected_time');
            $(this).addClass('booknetic_selected_time');
            const $nextStep = booknetic.stepManager.getNextStep();

            if ($nextStep.length === 0) {
                return
            }

            if( booking_panel_js.find('#booknetic_bring_someone_section').length == 0 )
            {
                booknetic.stepManager.goForward();
            }
        }).on('change', '#booknetic_bring_someone_checkbox', function(event)
        {
            if( $(this).is(':checked') )
            {
                booking_panel_js.find('.booknetic_number_of_brought_customers').removeClass('d-none');
            }
            else
            {
                booking_panel_js.find('.booknetic_number_of_brought_customers').addClass('d-none');
            }

            booknetic.handleScroll();
        });

    });

    bookneticHooks.addFilter('step_validation_date_time' , function ( result , booknetic )
    {
        let booking_panel_js = booknetic.panel_js;

        if( booknetic.getSelected.serviceIsRecurring() )
        {
            var service_repeat_type = booknetic.serviceData['repeat_type'];

            if( service_repeat_type == 'weekly' )
            {
                if( booking_panel_js.find('.booknetic_times_days_of_week_area > .booknetic_active_day').length == 0 )
                {
                    return {
                        status: false,
                        errorMsg: booknetic.__('select_week_days')
                    };
                }
                else
                {
                    var timeNotSelected = false;
                    booking_panel_js.find('.booknetic_times_days_of_week_area > .booknetic_active_day').each(function ()
                    {
                        if( $(this).find('.booknetic_wd_input_time').val() == null )
                        {
                            timeNotSelected = true;
                            return;
                        }
                    });

                    if( timeNotSelected )
                    {
                        return {
                            status: false,
                            errorMsg: booknetic.__('date_time_is_wrong')
                        };
                    }
                }
            }
            else if( service_repeat_type == 'monthly' )
            {

            }

            if( booknetic.getSelected.recurringStartDate() == '' )
            {
                return {
                    status: false,
                    errorMsg: booknetic.__('select_start_date')
                };
            }

            if( booknetic.getSelected.recurringEndDate() == '' )
            {
                return {
                    status: false,
                    errorMsg: booknetic.__('select_end_date')
                };
            }

        }
        else
        {
            if( booknetic.getSelected.date_in_customer_timezone() == '')
            {
                return {
                    status: false,
                    errorMsg: booknetic.__('select_date')
                };
            }

            if( booknetic.getSelected.time() == '')
            {
                return {
                    status: false,
                    errorMsg: booknetic.__('select_time')
                };
            }
        }

        return result
    });

    bookneticHooks.addAction('before_step_loading', function( booknetic, new_step_id, old_step_id )
    {
        if( new_step_id !== 'date_time' )
            return;

        booknetic.stepManager.loadStandartSteps( new_step_id, old_step_id );
    });

    bookneticHooks.addAction('loaded_step', function( booknetic, new_step_id, old_step_id, ajaxData )
    {
        if( new_step_id !== 'date_time' )
            return;

        let booking_panel_js = booknetic.panel_js;

        booknetic.serviceData = null;
        booknetic.dateBasedService   = ajaxData['service_info']['date_based'];
        booknetic.serviceMaxCapacity = ajaxData['service_info']['max_capacity'];

        if( ajaxData['service_type'] === 'non_recurring' )
        {
            booknetic.calendarDateTimes = ajaxData['data'];
            booknetic.time_show_format = ajaxData['time_show_format'];

            let calendarStartYear = ajaxData['calendar_start_year'];
            let calendarStartMonth = (typeof ajaxData['calendar_start_month'] === 'undefined' ? undefined : ajaxData['calendar_start_month'] -1 );

            if ( booknetic.checkIfNoDatesAvailable( ajaxData ) )
            {
                let date = new Date( calendarStartYear, calendarStartMonth + 1 );

                booknetic.nonRecurringCalendar(date.getFullYear(), date.getMonth(), true, true );
            }
            else
            {
                booknetic.nonRecurringCalendar(calendarStartYear, calendarStartMonth, false );
            }

            booknetic.addGroupAppointmentsCounterForBookneticCalendarDays();
        }
        else
        {
            booknetic.serviceData = ajaxData['service_info'];
            booknetic.initRecurringElements();
        }
    });

})(jQuery);
// source --> https://ordonna.com/wp-content/plugins/booknetic/app/Frontend/assets/js/steps/step_information.js?v=5.2.4&amp;ver=6.9.4 
let activeCustomerCheckingRequestsCount = 0;
(function($)
{

    let customerIdentifierInputListener = null;

    const checkIfCustomerExist = function ( booknetic )
    {
        let booking_panel_js = booknetic.panel_js;
        booking_panel_js.find('.bkntc_input_identifier_loading').show();
        activeCustomerCheckingRequestsCount++;

        let saveIdentifierInputValueBeforeAjax = booking_panel_js.find('.bkntc_input_identifier_input').val();

        booknetic.ajax('check_customer_exist', booknetic.ajaxParameters(), function( result )
        {
            activeCustomerCheckingRequestsCount--;

            if( ! activeCustomerCheckingRequestsCount )
                booking_panel_js.find('.bkntc_input_identifier_loading').hide();

            let customerIdAlreadySet = booking_panel_js.find('.bkntc_input_identifier_input').data('customer-id');

            if( ! customerIdAlreadySet )
            {
                if( result.customer_id )
                {
                    booking_panel_js.find('[data-bkntc-customer-info="true"]').hide();

                    booking_panel_js.find('.bkntc_input_identifier_input').closest('[data-bkntc-customer-info="true"]').show();
                    booking_panel_js.find('.bkntc_input_identifier_input').attr('disabled', true);
                    booking_panel_js.find('.bkntc_input_identifier_input').data('customer-id', result.customer_id);
                    booking_panel_js.find('.bkntc_input_identifier_clear').show();
                    booking_panel_js.find('.bkntc_input_identifier_input').val( saveIdentifierInputValueBeforeAjax );

                    booking_panel_js.find('[data-bkntc-customer-id="true"]').show();
                }
                else
                {
                    booking_panel_js.find('[data-bkntc-customer-info="true"]:not(.bkntc_hidden_lastname)').show();
                    booking_panel_js.find('[data-bkntc-customer-id="true"]').hide();
                    booking_panel_js.find('.bkntc_input_identifier_input').attr('disabled', false);
                    booking_panel_js.find('.bkntc_input_identifier_input').data('customer-id', '');
                }
            }

        }, false, function()
        {
            activeCustomerCheckingRequestsCount--;

            if( ! activeCustomerCheckingRequestsCount )
                booking_panel_js.find('.bkntc_input_identifier_loading').hide();
        });
    }

    bookneticHooks.addAction('booking_panel_loaded', function ( booknetic )
    {
        let booking_panel_js = booknetic.panel_js;
        let identifierInput = booking_panel_js.find('.bkntc_input_identifier_clear').parent().find('input');

        booking_panel_js.on('keyup change', '#bkntc_input_name, #bkntc_input_surname, #bkntc_input_email, #bkntc_input_email_confirm, #bkntc_input_phone', function ()
        {
            $(this).removeClass('booknetic_input_error');
        }).on('click', '.booknetic_social_login_facebook, .booknetic_social_login_google', function ()
        {
            let login_window = window.open($(this).data('href'), 'booknetic_social_login', 'width=1000,height=700');

            let while_fn = function ()
            {
                var dataType = 'undefined';

                try {
                    dataType = typeof login_window.booknetic_user_data;
                }
                catch (err){}

                if( dataType != 'undefined' )
                {
                    if( booking_panel_js.find('#bkntc_input_surname').parent('div').hasClass('booknetic_hidden') )
                    {
                        booking_panel_js.find('#bkntc_input_name').val( login_window.booknetic_user_data['first_name'] + ' ' + login_window.booknetic_user_data['last_name'] );
                    }
                    else
                    {
                        booking_panel_js.find('#bkntc_input_name').val( login_window.booknetic_user_data['first_name'] );
                        booking_panel_js.find('#bkntc_input_surname').val( login_window.booknetic_user_data['last_name'] );
                    }

                    booking_panel_js.find('#bkntc_input_email').val( login_window.booknetic_user_data['email'] );
                    let confirmEmailInput = booking_panel_js.find('#bkntc_input_email_confirm');
                    if( confirmEmailInput.length )
                    {
                        confirmEmailInput.val( login_window.booknetic_user_data['email'] );
                    }
                    login_window.close();
                    return;
                }

                if( !login_window.closed )
                {
                    setTimeout( while_fn, 1000 );
                }
            }

            while_fn();
        }).on('focusout blur keyup keypress change input', '.bkntc_input_identifier_input', function ( event )
        {
            let isFocusOutEvent = (event.type == 'blur' || event.type == 'focusout');

            if( $(this).data('last_val') === $(this).val() )
                return;

            $(this).data('last_val', $(this).val());

            if( customerIdentifierInputListener !== null )
            {
                clearTimeout( customerIdentifierInputListener );
                customerIdentifierInputListener = null
            }

            if( $(this).val() != '' )
            {
                customerIdentifierInputListener = setTimeout( function ()
                {
                    checkIfCustomerExist( booknetic );
                }, isFocusOutEvent ? 100 : 500 );
            }
        }).on('click', '.bkntc_input_identifier_clear', function ()
        {
            $(this).hide();

            booking_panel_js.find('[data-bkntc-customer-info="true"]:not(.bkntc_hidden_lastname)').show();
            booking_panel_js.find('[data-bkntc-customer-id="true"]').hide();
            booking_panel_js.find('.bkntc_input_identifier_input').attr('disabled', false);
            booking_panel_js.find('.bkntc_input_identifier_input').data('customer-id', '');

            booking_panel_js.find('.bkntc_input_identifier_input').data('last_val', '');

            booking_panel_js.find('#bkntc_input_email').val("");
            booking_panel_js.find('#bkntc_input_email').prop('disabled', false);
            booking_panel_js.find('#bkntc_input_email_confirm').val("");
            booking_panel_js.find('#bkntc_input_email_confirm').prop('disabled', false);

            booking_panel_js.find('#bkntc_input_phone').val("");
            booking_panel_js.find('#bkntc_input_phone').prop('disabled', false);

            booking_panel_js.find('#bkntc_input_name').val("");
            booking_panel_js.find('#bkntc_input_name').prop('disabled', false);

            booking_panel_js.find('#bkntc_input_surname').val("");
            booking_panel_js.find('#bkntc_input_surname').prop('disabled', false);


        });
    });

    bookneticHooks.addFilter('step_validation_information' , function ( result , booknetic )
    {
        let booking_panel_js = booknetic.panel_js;
        var hasError = false;

        booking_panel_js.find( 'label[for="bkntc_input_name"], label[for="bkntc_input_surname"], label[for="bkntc_input_email"], label[for="bkntc_input_phone"]' ).each( function ()
        {
            var el = $( this ).next();
            var required = $( this ).is( '[data-required="true"]' );

            // doit bunu axi hechvaxt yoxlamayacag?
            if ( el.is( '.booknetic_number_of_brought_customers_quantity' ) )
            {
                el = el.find( 'input' );
                if ( el.data( 'max-quantity' ) < el.val() )
                {
                    if( booking_panel_js.find("#booknetic_bring_someone_checkbox").is(":checked") )
                    {
                        el.addClass( 'booknetic_input_error' );
                        hasError =  booknetic.__( 'You have exceed the maximum value for number of people' );
                    }
                }
            }
            if( el.is('.bkntc_input_phone-container') )
            {
                el = el.find('#bkntc_input_phone');
            }

            if( ! ( booknetic.getSelected.customerId() > 0 ) )
            {
                if( el.is('#bkntc_input_name , #bkntc_input_surname , #bkntc_input_email, #bkntc_input_phone') )
                {
                    var value = el.val();

                    if( required && (value.trim() == '' || value == null) )
                    {
                        if( el.is('select') )
                        {
                            el.next().find('.select2-selection').addClass('booknetic_input_error');
                        }
                        else if( el.is('input[type="file"]') )
                        {
                            el.next().addClass('booknetic_input_error');
                        }
                        else
                        {
                            el.addClass('booknetic_input_error');
                        }
                        hasError = booknetic.__('fill_all_required');
                    }
                    else if( el.attr('name') === 'email' )
                    {
                        var email_regexp = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
                        var checkEmail = email_regexp.test(String(value.trim()).toLowerCase());

                        if( !( (value == '' && !required) || checkEmail ) )
                        {
                            el.addClass('booknetic_input_error');
                            hasError = booknetic.__('email_is_not_valid');
                        }
                    }
                    else if (el.attr('name') === 'phone') {
                        const itiInstance = booking_panel_js.find('#bkntc_input_phone').data('iti');
                        const isValid = itiInstance ? itiInstance.isValidNumber() : false;
                        const isEmpty = el.val().trim() === '';

                        const needsValidation = required || !isEmpty;

                        if (needsValidation && !isValid) {
                            el.addClass('booknetic_input_error');
                            hasError = booknetic.__('phone_is_not_valid');
                        }
                    }
                }
            }
        });

        if( hasError === false && BookneticData.require_email_confirmation )
        {
            let emailInput = booking_panel_js.find('#bkntc_input_email');
            let confirmEmailInput = booking_panel_js.find('#bkntc_input_email_confirm');
            let confirmVisible = confirmEmailInput.length && confirmEmailInput.is(':visible') && !confirmEmailInput.prop('disabled');

            if( confirmVisible )
            {
                let emailValue = ( emailInput.val() || '' ).trim();
                let confirmValue = ( confirmEmailInput.val() || '' ).trim();

                if( emailValue !== '' || confirmValue !== '' )
                {
                    if( emailValue === '' || confirmValue === '' )
                    {
                        emailInput.addClass('booknetic_input_error');
                        confirmEmailInput.addClass('booknetic_input_error');
                        hasError = booknetic.__('fill_all_required');
                    }
                    else if( emailValue.toLowerCase() !== confirmValue.toLowerCase() )
                    {
                        emailInput.addClass('booknetic_input_error');
                        confirmEmailInput.addClass('booknetic_input_error');
                        hasError = booknetic.__('email_does_not_match');
                    }
                }
            }
        }

        if( hasError !== false )
        {
            return {
                status: false,
                errorMsg: hasError
            };
        }

        return result
    });

    bookneticHooks.addAction('before_step_loading', function( booknetic, new_step_id, old_step_id )
    {
        if( new_step_id !== 'information' )
            return;

        booknetic.stepManager.loadStandartSteps( new_step_id, old_step_id );
    });

    bookneticHooks.addAction('loaded_step', function( booknetic, new_step_id )
    {
        if( new_step_id !== 'information' )
            return;

        let booking_panel_js = booknetic.panel_js;

        var phone_input = booking_panel_js.find('#bkntc_input_phone');

        phone_input.data('iti', window.bookneticIntlTelInput(phone_input[0], {
            loadUtilsOnInit: BookneticData.assets_url + "js/utilsIntlTelInput.js?ver=24.8.2",
            initialCountry: phone_input.data('country-code'),
            separateDialCode: true,
        }));
    });

})(jQuery);
// source --> https://ordonna.com/wp-content/plugins/booknetic/app/Frontend/assets/js/steps/step_locations.js?v=5.2.4&amp;ver=6.9.4 
(function($)
{

    bookneticHooks.addAction('booking_panel_loaded', function ( booknetic )
    {
        let booking_panel_js = booknetic.panel_js;

        booking_panel_js.on('click', '.booknetic_card', function()
        {
            $(this).closest('.booknetic_card_container').find('.booknetic_card_selected').removeClass('booknetic_card_selected');
            $(this).addClass('booknetic_card_selected');

            booknetic.stepManager.goForward();
        });
    });

    bookneticHooks.addAction('before_step_loading', function( booknetic, new_step_id, old_step_id )
    {
        if( new_step_id !== 'location' )
            return;

        booknetic.stepManager.loadStandartSteps( new_step_id, old_step_id );
    });

    bookneticHooks.addAction('loaded_step', function( booknetic, new_step_id )
    {
        if( new_step_id !== 'location' )
            return;

        booknetic.panel_js.find(".booknetic_card_container .booknetic_category_accordion[data-accordion='on']").each(function() {
            $(this).find('>div').not(':first-child').addClass('booknetic_category_accordion_hidden');
            $(this).attr('data-accordion', 'off');
        });
    });

    bookneticHooks.addFilter('step_validation_location' , function ( result , booknetic )
    {
        if( !( booknetic.getSelected.location() > 0 ) )
        {
            return {
                status: false,
                errorMsg: booknetic.__('select_location')
            };
        }

        return result
    });

})(jQuery);
// source --> https://ordonna.com/wp-content/plugins/booknetic/app/Frontend/assets/js/steps/step_recurring_info.js?v=5.2.4&amp;ver=6.9.4 
(function($)
{

    bookneticHooks.addAction('booking_panel_loaded', function ( booknetic )
    {
        let booking_panel_js = booknetic.panel_js;

        booking_panel_js.on('change', '.booknetic_day_of_week_checkbox', function ()
        {
            var activeFirstDay = booking_panel_js.find(".booknetic_times_days_of_week_area .booknetic_active_day").attr('data-day');

            var dayNum	= $(this).attr('id').replace('booknetic_day_of_week_checkbox_', ''),
                dayDIv	= booking_panel_js.find(".booknetic_times_days_of_week_area > [data-day='" + dayNum + "']");

            if( $(this).is(':checked') )
            {
                dayDIv.removeClass('booknetic_hidden').hide().slideDown(200, function ()
                {
                    booknetic.handleScroll();
                }).addClass('booknetic_active_day');

                if( booknetic.dateBasedService )
                {
                    dayDIv.find('.booknetic_wd_input_time').append('<option>00:00</option>').val('00:00');
                }
            }
            else
            {
                dayDIv.slideUp(200, function ()
                {
                    booknetic.handleScroll();
                }).removeClass('booknetic_active_day');
            }

            booking_panel_js.find(".booknetic_times_days_of_week_area .booknetic_active_day .booknetic_copy_time_to_all").fadeOut( activeFirstDay > dayNum ? 100 : 0 );
            booking_panel_js.find(".booknetic_times_days_of_week_area .booknetic_active_day .booknetic_copy_time_to_all:first").fadeIn( activeFirstDay > dayNum ? 100 : 0 );

            if( booking_panel_js.find('.booknetic_day_of_week_checkbox:checked').length > 0 && !booknetic.dateBasedService )
            {
                booking_panel_js.find('.booknetic_times_days_of_week_area').slideDown(200);
            }
            else
            {
                booking_panel_js.find('.booknetic_times_days_of_week_area').slideUp(200);
            }

            booknetic.calcRecurringTimes();
        }).on('click', '.booknetic_date_edit_btn', function()
        {
            if( $(this).attr('data-type') === '1')
            {
                let date_format = $(this).attr('data-date-format');
                let date = $(this).attr('data-date');
                let _this = $(this);
                let textElement = $(this).closest('tr').find('td:eq(1) span.date_text');
                let input = $(this).closest('tr').find('td:eq(1) .booknetic_recurring_info_edit_date');
                textElement.hide();
                let recurringStartDate 	= booknetic.convertDate(booknetic.cartArr[booknetic.cartCurrentIndex]['recurring_start_date'],'Y-m-d',date_format)
                let recurringEndDate 	= booknetic.convertDate(booknetic.cartArr[booknetic.cartCurrentIndex]['recurring_end_date'],'Y-m-d',date_format)

                input.flatpickr(
                    {
                        altInput: true,
                        altFormat: date_format,
                        dateFormat: date_format,
                        monthSelectorType: 'static',
                        locale: {
                            firstDayOfWeek: BookneticData.week_starts_on === 'sunday' ? 0 : 1
                        },
                        minDate: recurringStartDate,
                        maxDate: recurringEndDate,
                        defaultDate: date,
                        onMonthChange :  (selectedDates, dateStr, instance)=>{
                            booknetic.loadAvailableDate(instance , booknetic.ajaxParameters() );
                        },
                        onOpen : (selectedDates, dateStr, instance)=>{
                            booknetic.loadAvailableDate(instance , booknetic.ajaxParameters() );
                        },
                        onChange: function(selectedDates, dateStr, instance) {
                            _this.closest('tr').find('td:eq(1)').attr('data-date',booknetic.convertDate(
                                dateStr,date_format,'Y-m-d'
                            ));
                            textElement.text(dateStr);
                            textElement.show();
                            _this.parent().find('.booknetic_recurring_info_edit_date').hide();
                            _this.prev('.booknetic_data_has_error').remove();
                            booknetic.stepManager.saveData();
                        },
                    } );
                return ;
            }
            var tr		= $(this).closest('tr'),
                timeTd	= tr.children('td[data-time]'),
                time	= timeTd.data('time'),
                date1	= tr.children('td[data-date]').data('date');

            timeTd.children('.booknetic_time_span').html('<select class="form-control booknetic_time_select"></select>').css({'float': 'right', 'margin-right': '25px', 'width': '120px'}).parent('td').css({'padding-top': '7px', 'padding-bottom': '14px'});

            booknetic.select2Ajax( timeTd.find('.booknetic_time_select'), 'get_available_times', function()
            {
                return booknetic.formDataToObject( booknetic.ajaxParameters({date: date1}) );
            });

            $(this).parent().prev().children('.booknetic_data_has_error').remove();
            $(this).remove();

            booknetic.handleScroll();

        }).on('click', '.booknetic_copy_time_to_all', function ()
        {
            var time = $(this).closest('.booknetic_active_day').find('.booknetic_wd_input_time').select2('data')[0];

            if( time )
            {
                var	timeId		= time['id'],
                    timeText	= time['text'];

                booking_panel_js.find(".booknetic_active_day:not(:first)").each(function ()
                {
                    $(this).find(".booknetic_wd_input_time").append( $('<option></option>').val( timeId ).text( timeText ) ).val( timeId ).trigger('change');
                });
            }

        }).on('keyup', '#booknetic_recurring_times', function()
        {
            var serviceData = booknetic.serviceData;

            if( !serviceData )
                return;

            var repeatType	=	serviceData['repeat_type'],
                start		=	booknetic.getSelected.recurringStartDate(),
                times		=	$(this).val();

            if( start == '' || times == '' || times <= 0 )
                return;

            var frequency = (repeatType == 'daily') ? booking_panel_js.find('#booknetic_daily_recurring_frequency').val() : 1;

            if( !( frequency >= 1 ) )
            {
                frequency = 1;
                if( repeatType == 'daily' )
                {
                    booking_panel_js.find('#booknetic_daily_recurring_frequency').val('1');
                }
            }

            var activeDays = {};
            if( repeatType == 'weekly' )
            {
                booking_panel_js.find(".booknetic_times_days_of_week_area > .booknetic_active_day").each(function()
                {
                    activeDays[ $(this).data('day') ] = true;
                });

                if( $.isEmptyObject( activeDays ) )
                {
                    return;
                }
            }
            else if( repeatType == 'monthly' )
            {
                var monthlyRecurringType = booking_panel_js.find("#booknetic_monthly_recurring_type").val();
                var monthlyDayOfWeek = booking_panel_js.find("#booknetic_monthly_recurring_day_of_week").val();

                var selectedDays = booking_panel_js.find("#booknetic_monthly_recurring_day_of_month").select2('val');

                if( monthlyRecurringType == 'specific_day'){
                    monthlyDayOfWeek = '';
                }else {
                    selectedDays = [];
                }

                if( selectedDays )
                {
                    for( var i = 0; i < selectedDays.length; i++ )
                    {
                        activeDays[ selectedDays[i] ] = true;
                    }
                }

                if( monthlyDayOfWeek.length > 0)
                {
                    activeDays[ monthlyDayOfWeek ] = monthlyDayOfWeek;
                }
            }

            var c_times = 0;
            var cursor = booknetic.getDateWithUTC( start );

            while( (!$.isEmptyObject( activeDays ) || repeatType == 'daily') && c_times < times )
            {
                var weekNum = cursor.getDay();
                var dayNumber = parseInt( cursor.getDate() );
                weekNum = weekNum > 0 ? weekNum : 7;
                var dateFormat = cursor.getFullYear() + '-' + booknetic.zeroPad( cursor.getMonth() + 1 ) + '-' + booknetic.zeroPad( cursor.getDate() );

                if( repeatType == 'monthly' )
                {
                    if( ( monthlyRecurringType == 'specific_day' && typeof activeDays[ dayNumber ] != 'undefined' ) || booknetic.getMonthWeekInfo(cursor, monthlyRecurringType, monthlyDayOfWeek) )
                    {
                        if
                        (
                            // if is not off day for staff or service
                            !( typeof booknetic.globalTimesheet[ weekNum-1 ] != 'undefined' && booknetic.globalTimesheet[ weekNum-1 ]['day_off'] ) &&
                            // if is not holiday for staff or service
                            typeof booknetic.globalDayOffs[ dateFormat ] == 'undefined'
                        )
                        {
                            c_times++;
                        }
                    }
                }
                else if
                (
                    // if weekly repeat type then only selected days of week...
                    ( typeof activeDays[ weekNum ] != 'undefined' || repeatType == 'daily' ) &&
                    // if is not off day for staff or service
                    !( typeof booknetic.globalTimesheet[ weekNum-1 ] != 'undefined' && booknetic.globalTimesheet[ weekNum-1 ]['day_off'] ) &&
                    // if is not holiday for staff or service
                    typeof booknetic.globalDayOffs[ dateFormat ] == 'undefined'
                )
                {
                    c_times++;
                }

                cursor = new Date( cursor.getTime() + 1000 * 24 * 3600 * frequency );
            }

            cursor = new Date( cursor.getTime() - 1000 * 24 * 3600 * frequency );
            var end = cursor.getFullYear() + '-' + booknetic.zeroPad( cursor.getMonth() + 1 ) + '-' + booknetic.zeroPad( cursor.getDate() );

            if( !isNaN( cursor.getFullYear() ) )
            {
                booking_panel_js.find('#booknetic_recurring_end').val( booknetic.convertDate( end, 'Y-m-d' ) );
            }
        }).on('keyup', '#booknetic_daily_recurring_frequency', booknetic.calcRecurringTimes
        ).on('change', '#booknetic_monthly_recurring_type, #booknetic_monthly_recurring_day_of_week, #booknetic_monthly_recurring_day_of_month', booknetic.calcRecurringTimes
        ).on('change', '#booknetic_monthly_recurring_type', function ()
        {
            if( $(this).val() == 'specific_day' )
            {
                booking_panel_js.find("#booknetic_monthly_recurring_day_of_month").next('.select2').show();
                booking_panel_js.find("#booknetic_monthly_recurring_day_of_week").next('.select2').hide();
            }
            else
            {
                booking_panel_js.find("#booknetic_monthly_recurring_day_of_month").next('.select2').hide();
                booking_panel_js.find("#booknetic_monthly_recurring_day_of_week").next('.select2').show();
            }
        }).on('change', '#booknetic_recurring_start, #booknetic_recurring_end', function ()
        {
            booknetic.calcRecurringTimes();

            const recurringProps = {
                'recurring_start_date' : booknetic.getSelected.recurringStartDate(),
                'recurring_end_date' : booknetic.getSelected.recurringEndDate(),
                'recurring_times' : booknetic.getSelected.recurringTimesArr(),
                'appointments' : booknetic.getSelected.recurringTimesArrFinish(),
            }

            if (recurringProps['recurring_start_date'] === '' || (!$('#booknetic_recurring_end').is(':disabled') && recurringProps['recurring_start_date'] === '')) {
                return;
            }

            const params = booknetic.ajaxParameters(undefined, false);
            const newCartArr = Object.assign({}, booknetic.cartArr);

            newCartArr[ booknetic.cartCurrentIndex ] = {
                ...newCartArr[ booknetic.cartCurrentIndex ], ...recurringProps
            }

            params.set('cart', JSON.stringify(newCartArr) );

            booknetic.ajax('get_day_offs', params , function( result )
            {
                booknetic.globalDayOffs = result['day_offs'];
                booknetic.globalTimesheet = result['timesheet'];

                result['disabled_days_of_week'].forEach(function( value, key )
                {
                    booking_panel_js.find('#booknetic_day_of_week_checkbox_' + (parseInt(key)+1)).attr('disabled', value);
                });

                booknetic.calcRecurringTimes();
            });
        });

    });

    bookneticHooks.addFilter('step_validation_recurring_info' , function ( result , booknetic )
    {
        var dateEditPending = false;
        var timeEditPending = false;

        booknetic.panel_js.find("#booknetic_recurring_dates > tr").each(function()
        {
            var dateText = $(this).find('span.date_text');
            if( dateText.length && !dateText.is(':visible') )
            {
                dateEditPending = true;
            }

            var timeSelect = $(this).find('.booknetic_time_select');
            if( timeSelect.length && !timeSelect.val() )
            {
                timeEditPending = true;
            }
        });

        if( dateEditPending )
        {
            return {
                status: false,
                errorMsg: booknetic.__('select_available_date')
            };
        }

        if( timeEditPending )
        {
            return {
                status: false,
                errorMsg: booknetic.__('select_available_time')
            };
        }

        if( booknetic.getSelected.recurringTimesArrFinish() === false )
        {
            return {
                status: false,
                errorMsg: booknetic.__('select_available_time')
            };
        }

        if( booknetic.getSelected.recurringDateValidate() === false)
        {
            return {
                status: false,
                errorMsg: booknetic.__('select_available_date')
            };
        }

        return result
    });

    bookneticHooks.addAction('before_step_loading', function( booknetic, new_step_id, old_step_id )
    {
        if( new_step_id !== 'recurring_info' )
            return;

        booknetic.stepManager.loadStandartSteps( new_step_id, old_step_id );
    });

})(jQuery);
// source --> https://ordonna.com/wp-content/plugins/booknetic/app/Frontend/assets/js/steps/step_service_extras.js?v=5.2.4&amp;ver=6.9.4 
(function ($) {

    bookneticHooks.addAction('booking_panel_loaded', function (booknetic) {
        let booking_panel_js = booknetic.panel_js;

        booking_panel_js.on('click', '.booknetic_service_extra_card', function (e) {
            // If view more button is clicked inside services card
            if ($(e.target).is(".booknetic_view_more_service_notes_button")) {
                $(this).find('.booknetic_service_card_description_wrapped, .booknetic_view_more_service_notes_button').css('display', 'none');
                $(this).find('.booknetic_service_card_description_fulltext, .booknetic_view_less_service_notes_button').css('display', 'inline');
                booknetic.handleScroll();
            } else if ($(e.target).is('.booknetic_view_less_service_notes_button')) {
                $(this).find('.booknetic_service_card_description_wrapped, .booknetic_view_more_service_notes_button').css('display', 'inline');
                $(this).find('.booknetic_service_card_description_fulltext, .booknetic_view_less_service_notes_button').css('display', 'none');
                booknetic.handleScroll();
            }
        }).on('click', '.booknetic_extra_on_off_mode', function (e) {
            if ($(e.target).is('.booknetic_service_extra_quantity_inc, .booknetic_service_extra_quantity_dec'))
                return;

            if ($(this).hasClass('booknetic_service_extra_card_selected')) {
                $(this).find('.booknetic_service_extra_quantity_dec').trigger('click');
            } else {
                $(this).find('.booknetic_service_extra_quantity_inc').trigger('click');
            }
        }).on('click', '.booknetic_service_extra_quantity_inc', function () {
            var quantity = parseInt($(this).prev().val());
            quantity = quantity > 0 ? quantity : 0;
            var max_quantity = parseInt($(this).prev().data('max-quantity'));

            if (max_quantity !== 0 && quantity >= max_quantity) {
                quantity = max_quantity;
            } else {
                quantity++;
            }

            $(this).prev().val(quantity).trigger('keyup');
        }).on('click', '.booknetic_service_extra_quantity_dec', function () {
            var quantity = parseInt($(this).next().val());
            quantity = quantity > 0 ? quantity : 0;
            var min_quantity = parseInt($(this).next().attr('data-min-quantity'));

            if (quantity > min_quantity) {
                quantity--
            }

            $(this).next().val(quantity).trigger('keyup');
        }).on('focusout', '.booknetic_service_extra_quantity_input', function () {
            // prevent from bypassing restriction on manual input field type

            const quantity = parseInt($(this).val());
            const min_possible_input = $(this).data('min-quantity');
            const max_possible_input = $(this).data('max-quantity');

            let updated_quantity = quantity;

            if (quantity > max_possible_input) {
                updated_quantity = $(this).val(max_possible_input);
                updated_quantity = max_possible_input;
            } else if (quantity < min_possible_input) {
                $(this).val(min_possible_input);
                updated_quantity = min_possible_input;
            }

            if (updated_quantity > 0) {
                $(this).closest('.booknetic_service_extra_card').addClass('booknetic_service_extra_card_selected');
            } else {
                $(this).closest('.booknetic_service_extra_card').removeClass('booknetic_service_extra_card_selected');
            }
        }).on('keyup', '.booknetic_service_extra_quantity_input', function () {
            var quantity = parseInt($(this).val());
            if (!(quantity > 0)) {
                $(this).val('0');
                $(this).closest('.booknetic_service_extra_card').removeClass('booknetic_service_extra_card_selected');
            } else {
                $(this).closest('.booknetic_service_extra_card').addClass('booknetic_service_extra_card_selected');
            }
        }).on('touchstart click', '.booknetic_number_of_brought_customers_inc', function (e) {
            e.preventDefault();
            e.stopPropagation();
            handleQuantityChange($(this), true, booknetic.panel_js);
        }).on('touchstart click', '.booknetic_number_of_brought_customers_dec', function (e) {
            e.preventDefault();
            e.stopPropagation();
            handleQuantityChange($(this), false, booknetic.panel_js);
        }).on('keyup', '.booknetic_number_of_brought_customers_quantity_input', function () {
            let val = Number($(this).val());
            let max = Number($(this).data('max-quantity')) || 0;

            if (!Number.isInteger(val) || val < 0) {
                $(this).val(0);
            } else if (max !== 0 && val > max) {
                $(this).val(max);
            }
        }).on('click', ".booknetic_category_accordion" /* doit bu services stepine de aiddi... */, function (e) {
            //todo: refactor me, no jokes...
            if ($(e.target).attr('data-parent') == 1) {
                let node = $(this).closest('.booknetic_category_accordion').find('>div').not(':first-child')

                if ($(e.target).hasClass('booknetic_service_category') && node.hasClass('booknetic_category_accordion_hidden')) {
                    node.slideToggle('fast');
                    node.removeClass('booknetic_category_accordion_hidden');
                    node.slideToggle(function () {
                        booknetic.handleScroll();
                    });

                    $(this).closest('.booknetic_category_accordion').toggleClass('active');
                } else {
                    if (node.hasClass('booknetic_category_accordion_hidden')) {
                        node.css('display', 'none');
                        node.removeClass('booknetic_category_accordion_hidden');
                    }

                    $(this).closest('.booknetic_category_accordion').toggleClass('active');
                    $(this).closest('.booknetic_category_accordion').find('>div').not(':first-child').slideToggle(function () {
                        booknetic.handleScroll();
                    });
                }

            }

        })

    });

    bookneticHooks.addFilter('step_validation_service_extras', function (result, booknetic) {
        // Check quantity limits first
        const selectedExtras = booknetic.getSelected.serviceExtras();
        for (const extra of selectedExtras) {
            if (extra.quantity > extra.max_quantity) {
                return {
                    status: false,
                    errorMsg: booknetic.__('You have exceed the maximum value for extra service(s).')
                };
            }
        }

        // Get service extra limitations
        const serviceExtraLimitations = booknetic.panel_js.find(".limitations").data("extra-limitations");

        if(!serviceExtraLimitations){
            return result
        }

        const { enabled: isServiceExtraLimiterEnabled, limitations } = serviceExtraLimitations;

        if (!isServiceExtraLimiterEnabled) {
            return result;
        }

        const minLimit = parseInt(limitations.min);
        const maxLimit = parseInt(limitations.max);

        // Count selected extras
        const serviceExtraCards = booknetic.panel_js.find(`.booknetic_service_extra_card`);
        let selectedServiceExtraCount = 0;

        serviceExtraCards.each(function() {
            if ($(this).hasClass(`booknetic_service_extra_card_selected`)) {
                selectedServiceExtraCount++;
            }
        });

        if (minLimit && selectedServiceExtraCount < minLimit) {
            return {
                status: false,
                errorMsg: booknetic.__(`Please select at least ${minLimit} service ${minLimit === 1 ? "extra" : "extras"}`)
            };
        }

        if (maxLimit && selectedServiceExtraCount > maxLimit) {
            return {
                status: false,
                errorMsg: booknetic.__(`You can only select ${maxLimit} service ${maxLimit === 1 ? "extra" : "extras"} per booking`)
            };
        }

        return result;
    });

    bookneticHooks.addAction('before_step_loading', function (booknetic, new_step_id, old_step_id) {
        if (new_step_id !== 'service_extras')
            return;

        booknetic.stepManager.loadStandartSteps(new_step_id, old_step_id);
    });

    function onServiceExtrasLoaded(booknetic) {
        const booking_panel_js = booknetic.panel_js;
        const html = booking_panel_js.find('.booknetic_appointment_container_body [data-step-id="service_extras"]').html();

        let accordion = booking_panel_js.find(".bkntc_service_extras_list .booknetic_category_accordion");

        if (accordion.attr('data-accordion') === 'on') {
            accordion.toggleClass('active');
            accordion.attr('data-accordion', 'off');
        }

        if (BookneticData['skip_extras_step_if_need'] === 'on' && html.includes('booknetic_empty_box')) {
            booking_panel_js
                .find('.booknetic_appointment_step_element[data-step-id="service_extras"]:not(.booknetic_menu_hidden)')
                .hide();

            booknetic.stepManager.refreshStepNumbers();
            booknetic.stepManager.goForward();
        }
    }

    bookneticHooks.addAction('loaded_cached_step', function (booknetic, step_id) {
        if (step_id !== 'service_extras') return;

        onServiceExtrasLoaded(booknetic);
    });

    function handleQuantityChange(element, isIncrement, bookneticPanel) {
        const $input = bookneticPanel.find('.booknetic_number_of_brought_customers_quantity_input');
        const maxQuantity = parseInt($input.data('max-quantity')) || 0;

        let quantity = parseInt($input.val()) || 0;
        quantity += isIncrement ? 1 : -1;

        if (quantity < 0) {
            quantity = 0;
        }

        if (maxQuantity && quantity > maxQuantity) {
            quantity = maxQuantity;
        }

        $input.val(quantity).trigger('keyup');
    }

    bookneticHooks.addAction('loaded_step', function (booknetic, new_step_id, old_step_id, ajaxData) {
        if (new_step_id !== 'service_extras') return;

        onServiceExtrasLoaded(booknetic);
    });

})(jQuery);
// source --> https://ordonna.com/wp-content/plugins/booknetic/app/Frontend/assets/js/steps/step_services.js?v=5.2.4&amp;ver=6.9.4 
(function($)
{

    bookneticHooks.addAction('booking_panel_loaded', function ( booknetic )
    {
        let booking_panel_js = booknetic.panel_js;

        booking_panel_js.on('click', '.booknetic_service_card', booknetic.throttle(function(e)
        {
            // If view more button is clicked inside services card
            if ( $(e.target).is( ".booknetic_view_more_service_notes_button" ) ) {
                $( this ).find( '.booknetic_service_card_description_wrapped, .booknetic_view_more_service_notes_button' ).css( 'display', 'none' );
                $( this ).find( '.booknetic_service_card_description_fulltext, .booknetic_view_less_service_notes_button' ).css( 'display', 'inline' );
                booknetic.handleScroll();
                return
            } else if ( $(e.target).is( '.booknetic_view_less_service_notes_button' ) ) {
                $( this ).find( '.booknetic_service_card_description_wrapped, .booknetic_view_more_service_notes_button' ).css( 'display', 'inline' );
                $( this ).find( '.booknetic_service_card_description_fulltext, .booknetic_view_less_service_notes_button' ).css( 'display', 'none' );
                booknetic.handleScroll();
                return
            }

            $(this).parents('.bkntc_service_list').find('.booknetic_service_card_selected').removeClass('booknetic_service_card_selected');
            $(this).addClass('booknetic_service_card_selected');

            booknetic.stepManager.goForward();
        }));
    });

    bookneticHooks.addAction('before_step_loading', function( booknetic, new_step_id, old_step_id )
    {
        if( new_step_id !== 'service' )
            return;

        booknetic.stepManager.loadStandartSteps( new_step_id, old_step_id );
    });

    bookneticHooks.addAction('loaded_step', function( booknetic, new_step_id )
    {
        if( new_step_id !== 'service' )
            return;

        let accordion = booknetic.panel_js.find(".bkntc_service_list .booknetic_category_accordion");

        if ( accordion.attr('data-accordion') == 'on' )
        {
            accordion.toggleClass('active');
            accordion.find('>div').not(':first-child').addClass('booknetic_category_accordion_hidden');
            accordion.attr('data-accordion', 'off');
        }

        let searchInput = booknetic.panel_js.find('.booknetic_service_search_input');

        if ( searchInput.length )
        {
            let debounceTimer;

            searchInput.off('input').on('input', function ()
            {
                clearTimeout(debounceTimer);

                debounceTimer = setTimeout(function ()
                {
                    let query = searchInput.val().toLowerCase().trim();
                    let serviceList = booknetic.panel_js.find('.bkntc_service_list');
                    let accordions = serviceList.find('.booknetic_category_accordion');

                    if ( query === '' )
                    {
                        serviceList.find('.booknetic_service_card, .booknetic_service_category').removeAttr('style');
                        accordions.removeAttr('style');

                        accordions.each(function ()
                        {
                            if ( $(this).attr('data-accordion') !== 'on' )
                            {
                                $(this).removeClass('active');
                                let nodes = $(this).find('>div').not(':first-child');
                                nodes.removeClass('booknetic_category_accordion_hidden');
                                nodes.css('display', 'none');
                            }
                        });
                        return;
                    }

                    serviceList.find('.booknetic_category_accordion_hidden').removeClass('booknetic_category_accordion_hidden');
                    accordions.removeAttr('style');
                    serviceList.find('.booknetic_service_card, .booknetic_service_category').removeAttr('style');

                    serviceList.find('.booknetic_service_card').each(function ()
                    {
                        let title = $(this).find('.booknetic_service_title_span').text().toLowerCase();
                        let description = $(this).find('.booknetic_service_card_description_fulltext').text().toLowerCase();

                        if ( title.indexOf(query) !== -1 || description.indexOf(query) !== -1 )
                        {
                            $(this).show();
                        }
                        else
                        {
                            $(this).hide();
                        }
                    });

                    serviceList.find('.booknetic_service_category').each(function ()
                    {
                        let categoryName = $(this).text().toLowerCase();

                        if ( categoryName.indexOf(query) !== -1 )
                        {
                            let nextCards = $(this).nextUntil('.booknetic_service_category, .booknetic_category_accordion').filter('.booknetic_service_card');
                            nextCards.show();
                            $(this).show();
                        }
                        else
                        {
                            let nextCards = $(this).nextUntil('.booknetic_service_category, .booknetic_category_accordion').filter('.booknetic_service_card');
                            let hasVisible = nextCards.filter(':visible').length > 0;
                            $(this).toggle(hasVisible);
                        }
                    });

                    accordions.each(function ()
                    {
                        let hasVisible = $(this).find('.booknetic_service_card:visible').length > 0;
                        $(this).toggle(hasVisible);

                        if ( hasVisible )
                        {
                            $(this).addClass('active');
                        }
                    });
                }, 200);
            });
        }
    });

    bookneticHooks.addFilter('step_validation_service' , function ( result , booknetic )
    {
        if( !( booknetic.getSelected.service() > 0 ) )
        {
            return {
                status: false,
                errorMsg: booknetic.__('select_service')
            };
        }

        return result
    });

})(jQuery);
// source --> https://ordonna.com/wp-content/plugins/booknetic/app/Frontend/assets/js/steps/step_staff.js?v=5.2.4&amp;ver=6.9.4 
(function($)
{

    bookneticHooks.addFilter('step_validation_staff' , function ( result , booknetic )
    {
        if( !( booknetic.getSelected.staff() > 0 || booknetic.getSelected.staff() == -1 ) )
        {
            return {
                status: false,
                errorMsg: booknetic.__('select_staff')
            };
        }

        return result
    });

    bookneticHooks.addAction('before_step_loading', function( booknetic, new_step_id, old_step_id )
    {
        if( new_step_id !== 'staff' )
            return;

        booknetic.stepManager.loadStandartSteps( new_step_id, old_step_id );
    });

})(jQuery);
// source --> https://ordonna.com/wp-content/plugins/booknetic/app/Frontend/assets/js/steps/step_cart.js?v=5.2.4&amp;ver=6.9.4 
(function($)
{

    bookneticHooks.addAction('booking_panel_loaded', function ( booknetic )
    {
        let booking_panel_js = booknetic.panel_js;

        booknetic.deleteCartItem = function (itemIndex , itemLine )
        {
            itemIndex = Number.parseInt(itemIndex);
            if( booknetic.cartArr.length == 1 && itemIndex == 0)
            {
                $("#booknetic_start_new_booking_btn").trigger('click' );
                return;
            }

            if(booknetic.cartCurrentIndex != itemIndex)
            {
                itemLine.remove();
                booknetic.cartArr.splice(itemIndex,1);
                booknetic.cartCurrentIndex--;
                booknetic.cartHTMLBody.splice(itemIndex,1);
                booknetic.cartHTMLSideBar.splice(itemIndex,1);
                $("div.booknetic-cart .booknetic-cart-col").each( function (index){
                    $(this).attr('data-index', index);
                })
                this.showCartIcon();
            }else
            {

                let hasPrev = booknetic.cartArr[itemIndex-1] != undefined;
                let hasNext = booknetic.cartArr[itemIndex+1] != undefined;
                let currentBody = booking_panel_js[0].querySelector('.booknetic_appointment_container_body .booknetic_need_copy');

                if( hasPrev )
                {
                    currentBody.parentNode.insertBefore( booknetic.cartHTMLBody[itemIndex-1] , currentBody);

                    booking_panel_js[0].querySelectorAll('.booknetic_appointment_steps_body .booknetic_appointment_step_element.need_copy').forEach((current)=>{
                        let id = current.getAttribute('data-step-id');
                        current.parentNode.insertBefore(booknetic.cartHTMLSideBar[itemIndex-1][id] , current);
                        current.parentNode.removeChild(current);
                    });

                    booknetic.cartCurrentIndex = itemIndex-1;
                }
                else if( hasNext )
                {
                    currentBody.parentNode.insertBefore( booknetic.cartHTMLBody[itemIndex+1] , currentBody);
                    booking_panel_js[0].querySelectorAll('.booknetic_appointment_steps_body .booknetic_appointment_step_element.need_copy').forEach((current)=>{
                        let id = current.getAttribute('data-step-id');
                        current.parentNode.insertBefore(booknetic.cartHTMLSideBar[itemIndex+1][id] , current);
                        current.parentNode.removeChild(current);
                    });
                    booknetic.cartCurrentIndex = itemIndex;
                }
                currentBody.parentNode.removeChild(currentBody);
                booknetic.cartArr.splice( itemIndex,1);
                booknetic.cartHTMLBody.splice( itemIndex ,1);
                booknetic.cartHTMLSideBar.splice( itemIndex ,1);

                itemLine.remove();
                $("div.booknetic-cart .booknetic-cart-col").each( function (index){
                    $(this).attr('data-index', index);
                });

                booknetic.cartPrevStep = undefined;

            }
            booknetic.stepManager.saveData();
            booknetic.stepManager.loadStep('cart');
        };

        booknetic.showCartIcon = function ()
        {
            let cartContainer = booking_panel_js.find('.booknetic_appointment_container_header_cart');
            cartContainer.find('span').text(booknetic.cartArr.length);

            if (booknetic.cartArr.length > 0 ) {
                cartContainer.fadeIn();
            } else {
                cartContainer.fadeOut();
            }
        };

        booking_panel_js.on('click', '.booknetic-cart-item-btns',function(e)
        {
            e.stopPropagation();
        }).on('mouseenter', '.booknetic-cart-item-info' , function ()
        {
            $(this).parents('.booknetic-cart-item-body-row').addClass('show');
        }).on('mouseleave', '.booknetic-cart-item-info' , function ()
        {
            $(this).parents('.booknetic-cart-item-body-row').removeClass('show');
        }).on('click', '.booknetic-appointment-container-cart-btn' , function ()
        {
            let current_step_el	= booking_panel_js.find(".booknetic_appointment_step_element.booknetic_active_step"),
                current_step_id = current_step_el.data('step-id'),
                next_step_el	= booking_panel_js.find('.booknetic_appointment_steps_body div[data-step-id="cart"]'),
                next_step_id    = 'cart';
            booknetic.toast( false );
            booknetic.stepManager.loadStep( next_step_id );
            // current_step_el.addClass('booknetic_selected_step');

            if( booknetic.isMobileView() )
            {
                $('html,body').animate({scrollTop: parseInt(booking_panel_js.offset().top) - 100}, 1000);
            }
            if(current_step_id != 'cart')
            {
                booknetic.cartPrevStep = current_step_id;
            }
        }).on('hover', '.booknetic-cart-item-info', function()
        {
            $(this).closest('.booknetic-cart-item-body-row').toggleClass('show');
        }).on('click', '.booknetic-cart-item-error-close', function ()
        {
            $(this).closest('.booknetic-cart-item-error').removeClass('show');
        }).on('click', '.booking-again' , function ()
        {
            booknetic.cartCurrentIndex++;
            booknetic.stepManager.saveData();
            $("#booknetic_start_new_booking_btn").trigger('click');
        }).on('click' ,'.booknetic-cart-item-remove' , function ()
        {
            let itemLine  = $(this).parents('div.booknetic-cart-col');
            let itemIndex = itemLine.attr('data-index');
            booknetic.deleteCartItem( itemIndex , itemLine );

        }).on('click','.booknetic-cart-item-edit',function ()
        {
            let itemLine  = $(this).parents('div.booknetic-cart-col');
            let itemIndex = Number.parseInt(itemLine.attr('data-index'));

            let currentBody = booking_panel_js[0].querySelector('.booknetic_appointment_container_body .booknetic_need_copy');

            currentBody.parentNode.insertBefore( booknetic.cartHTMLBody[itemIndex] , currentBody);

            currentBody.parentNode.removeChild(currentBody);

            // booknetic.cartHTMLBody[booknetic.cartCurrentIndex] = currentBody.cloneNode(true);
            booknetic.cartHTMLBody[booknetic.cartCurrentIndex] = $(currentBody).clone(true,true).get(0);

            booking_panel_js[0].querySelectorAll('.booknetic_appointment_steps_body .booknetic_appointment_step_element.need_copy').forEach((current)=>
            {
                let id = current.getAttribute('data-step-id');

                if(booknetic.cartHTMLSideBar[booknetic.cartCurrentIndex] == undefined)
                {
                    booknetic.cartHTMLSideBar[booknetic.cartCurrentIndex] = {};
                }
                booknetic.cartHTMLSideBar[booknetic.cartCurrentIndex][id] = $(current).clone(true,true).get(0);

                current.parentNode.insertBefore(booknetic.cartHTMLSideBar[itemIndex][id] , current)
                current.parentNode.removeChild(current);
            });

            var start_step = booking_panel_js.find(".booknetic_appointment_step_element:not(.booknetic_menu_hidden):eq(0)");

            booknetic.cartCurrentIndex = itemIndex;
            booknetic.stepManager.loadStep(start_step.attr('data-step-id'));
        });

    });

    bookneticHooks.addAction('before_step_loading', function( booknetic, new_step_id, old_step_id )
    {
        let booking_panel_js = booknetic.panel_js;

        if( new_step_id === 'cart' )
        {
            booknetic.stepManager.loadStandartSteps( new_step_id, old_step_id );
        }

        if( new_step_id !=='cart' )
        {
            booknetic.cartPrevStep = undefined;
        }

        /**
         * CSS Height sorunu var deye bele yazilib kod, .booknetic_need_copy ichinde olan step deilse height 100% verenede css qarishir,
         * auto verir ve bu container avtomatik 0px olur heighti, ichinde olan steplerde ise 100% verir, butun alani kaplayir;
         * Gelecekde daha seliqeli usul dushunmek olar;
         */
        if( booking_panel_js.find(`.booknetic_need_copy [data-step-id="${new_step_id}"]`).length === 0 )
        {
            booking_panel_js.find('.booknetic_need_copy').css('height','auto');
        }
        else
        {
            booking_panel_js.find('.booknetic_need_copy').css('height','100%');
        }

        if( old_step_id === 'cart' )
        {
            let cartHtmlLastIndex = booking_panel_js.find('.booknetic-cart .booknetic-cart-col').last().attr('data-index');

            if( booknetic.cartArr.length-1 > cartHtmlLastIndex )
            {
                booknetic.cartArr = [];
                booknetic.cartCurrentIndex--;
            }
        }
    });

    bookneticHooks.addAction('loaded_step', function( booknetic, new_step_id, old_step_id, ajaxData )
    {
        let booking_panel_js = booknetic.panel_js;

        if( new_step_id === 'cart' )
        {
            booking_panel_js.find('.booknetic_appointment_container_body div[data-step-id="cart"]').css('display', 'flex');
            booknetic.showCartIcon();
        }

        booknetic.cartErrors.error = []
    });

    bookneticHooks.addAction('step_loaded_with_error', function( booknetic, new_step_id, old_step_id, ajaxData )
    {
        let booking_panel_js = booknetic.panel_js;

        //todo: cart needs to be added to getSelected obj
        if( booking_panel_js.find('.booknetic_appointment_step_element[data-step-id="cart"]').hasClass('booknetic_menu_hidden') )
        {
            if ( ajaxData.hasOwnProperty('errors') )
            {
                booknetic.toast(ajaxData.errors[0].message);
            }
            else
            {
                booknetic.toast(ajaxData.error_msg);
            }
        }

        if (ajaxData != undefined && typeof ajaxData['errors'] != 'undefined')
        {
            let errors = ajaxData['errors'];
            errors.filter(function (value,index)
            {
                return typeof value['cart_item'] != 'undefined';
            })
            booknetic.cartErrors.error = errors;
        }
        else
        {
            booknetic.cartErrors.error = [];
        }
    });



})(jQuery);
// source --> https://ordonna.com/wp-content/plugins/booknetic/app/Frontend/assets/js/booknetic-popup.js?v=5.2.4&amp;ver=6.9.4 
(function($)
{
    "use strict";

    $(document).ready( function()
    {
        $('body').append('<div class="bkntc_booking_modal" style="display: none">\n' +
            '\n' +
            '    <div class="content">\n' +
            '        <div class="close_icon">\n' +
            '            <svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px"\n' +
            '                 width="20" height="20"\n' +
            '                 viewBox="0 0 24 24"\n' +
            '                 style=" fill:#000000;"><path d="M 4.7070312 3.2929688 L 3.2929688 4.7070312 L 10.585938 12 L 3.2929688 19.292969 L 4.7070312 20.707031 L 12 13.414062 L 19.292969 20.707031 L 20.707031 19.292969 L 13.414062 12 L 20.707031 4.7070312 L 19.292969 3.2929688 L 12 10.585938 L 4.7070312 3.2929688 z"></path></svg>\n' +
            '        </div>\n' +
            '        <div class="body">\n' +
            '\n' +
            '        </div>\n' +
            '    </div>\n' +
            '</div>');

        let modal = $('.bkntc_booking_modal');
        let modalX = modal.find('.close_icon');
        let modalBody = modal.find('.body');

        let closeModal = function ()
        {
            modal.css('display' ,'none');
            modalBody.html('')
            $("html,body").css('overflow','visible');
        };

        $(document).on('click', '.bnktc_booking_popup_btn', function (e)
        {
            e.preventDefault();
            let data = {};
            let btn = $(this);
            let tenantId = $(this).attr('data-tenant-id');

            data['action'] = 'bkntc_get_booking_panel';
            data['location'] = $(this).attr('data-location');
            data['location_category'] = $(this).attr('data-location-category');
            data['staff'] = $(this).attr('data-staff');
            data['show_service'] = $(this).attr('data-show-service');
            data['service'] = $(this).attr('data-service');
            data['category'] = $(this).attr('data-category');
            data['theme'] = $(this).attr('data-theme');

            if( tenantId > 0 ){
                data['tenant_id'] = $(this).attr('data-tenant-id');
            }

            var ajaxObject =
            {
                url: window.BookneticData.ajax_url,
                method: 'POST',
                data: data,
                success: function ( result )
                {
                    result = $(result);

                    if( tenantId > 0 ){
                        result.data('tenant_id', tenantId);
                    }

                    modalX.css('display', 'flex');
                    modalBody.html( result );
                },
                error: function (jqXHR, exception)
                {
                    closeModal();
                }
            };

            modal.css('display' ,'flex');
            modalX.css('display', 'none');
            modalBody.append('<div class="bkntc_loader_div"><img class="btn_preloader" src="'+ window.BookneticData.assets_url +'/icons/loading.svg"></div>');
            $("html,body").css('overflow','hidden');
            $.ajax( ajaxObject );
        });

        $(".bkntc_booking_modal .close_icon").on('click', closeModal);
    });

})(jQuery);