;(function($,doc,win){
"use strict";
var ChauffeurBookingForm=function(object,option){
var $this=$(object);
var $optionDefault;
var $option=$.extend($optionDefault,option);
var $marker=[];
var $googleMap;
var $routeIndex=0;
var $startLocation;
var $googleMapHeightInterval;
var $self=this;
var $iti;
var $sidebar;
var $autocomplete=[];
var $GoogleMapAPI;
this.setup=function(){
$GoogleMapAPI=new CHBSGoogleMapAPI($option.google_map_option.api_key);
var helper=new CHBSHelper();
helper.getMessageFromConsole();
$self.e('select,input[type="hidden"]').each(function(){
if($(this)[0].hasAttribute('data-value'))
$(this).val($(this).attr('data-value'));
});
if(parseInt($option.google_map_option.ask_load_enable,10)===1){
if(isNaN(parseInt($self.e('[name="chbs_google_maps_enable"]').val(),10))){
var url=window.location.href;
if(url.indexOf('?')===-1) url+='?';
else url+='&';
if(confirm($option.message.google_map_ask_load_confirm))
window.location.href=url+'chbs_google_maps_enable=1';
else window.location.href=url+'chbs_google_maps_enable=-1';
return;
}}
$self.init();
if(parseInt($option.icon_field_enable,10)===1){
for(var i=1;i<=3;i++){
$self.e('input[name="chbs_pickup_date_service_type_'+i+'"]').before('<span class="chbs-meta-icon-2 chbs-meta-icon-2-date-1"></span>');
$self.e('input[name="chbs_pickup_time_service_type_'+i+'"]').before('<span class="chbs-meta-icon-2 chbs-meta-icon-2-time-1"></span>');
$self.e('input[name="chbs_return_date_service_type_'+i+'"]').before('<span class="chbs-meta-icon-2 chbs-meta-icon-2-date-1"></span>');
$self.e('input[name="chbs_return_time_service_type_'+i+'"]').before('<span class="chbs-meta-icon-2 chbs-meta-icon-2-time-1"></span>');
}
for(var i=1;i<=2;i++){
$self.e('input[name="chbs_pickup_location_service_type_'+i+'"]').before('<span class="chbs-meta-icon-2 chbs-meta-icon-2-location-1"></span>');
$self.e('input[name="chbs_dropoff_location_service_type_'+i+'"]').before('<span class="chbs-meta-icon-2 chbs-meta-icon-2-location-1"></span>');
}
$self.e('input[name="chbs_passenger_adult_service_type_1"]').before('<span class="chbs-meta-icon-2 chbs-meta-icon-2-passengers-1"></span>');
$self.e('input[name="chbs_passenger_adult_service_type_3"]').before('<span class="chbs-meta-icon-2 chbs-meta-icon-2-passengers-1"></span>');
$self.e('input[name="chbs_passenger_children_service_type_1"]').before('<span class="chbs-meta-icon-2 chbs-meta-icon-2-passengers-1"></span>');
$self.e('input[name="chbs_passenger_children_service_type_3"]').before('<span class="chbs-meta-icon-2 chbs-meta-icon-2-passengers-1"></span>');
}};
this.init=function(){
var helper=new CHBSHelper();
if(helper.isMobile()){
$self.e('input[name="chbs_pickup_date_service_type_1"]').prop('readonly',true);
$self.e('input[name="chbs_pickup_date_service_type_2"]').prop('readonly',true);
$self.e('input[name="chbs_pickup_date_service_type_3"]').prop('readonly',true);
$self.e('input[name="chbs_return_date_service_type_1"]').prop('readonly',true);
$self.e('input[name="chbs_return_date_service_type_3"]').prop('readonly',true);
}
$self.createButtonRadio('.chbs-booking-extra');
$(window).resize(function(){
try
{
$self.e('select').selectmenu('close');
}
catch(e){}
try
{
$self.e('.chbs-datepicker').datepicker('hide');
}
catch(e){}
try
{
$self.e('.chbs-timepicker').timepicker('hide');
}
catch(e){}
try
{
$self.e('.ui-timepicker-wrapper').css({opacity:0});
}
catch(e){}
try
{
var currCenter=$googleMap.getCenter();
google.maps.event.trigger($googleMap,'resize');
$googleMap.setCenter(currCenter);
}
catch(e){}});
$self.setWidthClass();
if(parseInt($option.use_my_location_link_enable,10)===1){
if(navigator.geolocation){
$self.e('.chbs-my-location-link').css('display','inline');
navigator.geolocation.getCurrentPosition($self.myLocationSuccess,$self.myLocationError);
}}
var active=1;
var panel=$self.e('.chbs-tab>ul').children('li[data-id="'+parseInt($self.e('[name="chbs_service_type_id"]').val())+'"]',10);
if(panel.length===1) active=panel.index();
$self.e('.chbs-tab').tabs({
activate:function(event,ui){
$('.qtip').remove();
$self.googleMapReInit();
var serviceTypeId=$self.getServiceTypeId();
$self.setServiceTypeId(serviceTypeId);
$self.showRideInfo();
$self.googleMapCreate();
$self.googleMapCreateRoute();
$self.addGAEvent('service_type_select',{'service_type_id':serviceTypeId});
},
active:active
});
$self.e('.chbs-main-navigation-default a').on('click',function(e){
e.preventDefault();
var navigation=parseInt($(this).parent('li').data('step'),10);
var step=parseInt($self.e('input[name="chbs_step"]').val(),10);
$self.addGAEvent('navigation_top_select',{'step_current':step,'step_target':navigation});
if(navigation-step===0) return;
$self.goToStep(navigation-step);
});
$self.e('.chbs-button-step-next').on('click',function(e){
e.preventDefault();
var step=parseInt($self.e('input[name="chbs_step"]').val(),10);
$self.addGAEvent('navigation_bottom_click',{'step_current':step,'step_target':step+1});
$self.goToStep(1);
});
$self.e('.chbs-button-step-prev').on('click',function(e){
e.preventDefault();
var step=parseInt($self.e('input[name="chbs_step"]').val(),10);
$self.addGAEvent('navigation_bottom_click',{'step_current':step,'step_target':step-1});
$self.goToStep(-1);
});
$self.e('.chbs-main-content').on('click','.chbs-form-field',function(e){
if($(this).find(':input[type="file"]').length) return;
$('.qtip').remove();
e.preventDefault();
if(($(e.target).hasClass('chbs-location-add'))||($(e.target).hasClass('chbs-location-remove'))) return;
$(this).find(':input').focus();
var select=$(this).find('select:not(.chbs-selectmenu-disable)');
if(select.length)
select.selectmenu('open');
});
$self.e('.chbs-location-add').on('click',function(e){
e.preventDefault();
var field=$(this).parent('.chbs-form-field:first');
var fieldNext=field.next('.chbs-form-field-waypoint-duration');
if(parseInt(fieldNext.length,10)===1) field=fieldNext;
var newField=$self.e('.chbs-form-field-location-autocomplete.chbs-hidden').clone(true,true);
newField.insertAfter(field);
newField.removeClass('chbs-hidden');
newField.find(':input').focus();
var waypointDuration=$self.e('.chbs-form-field-waypoint-duration.chbs-hidden');
if(parseInt(waypointDuration.length,10)===1){
var newFieldWaypointDuration=waypointDuration.clone(true,true);
newFieldWaypointDuration.insertAfter(newField);
newFieldWaypointDuration.removeClass('chbs-hidden');
newFieldWaypointDuration.find('select').removeClass('chbs-selectmenu-disable');
$self.createSelectMenu();
}
$self.googleMapAutocompleteCreate(newField.find('input[type="text"]'));
$self.reCalculateRoute();
$self.createLabelTooltip();
});
$self.e('.chbs-location-remove').on('click',function(e){
e.preventDefault();
var field=$(this).parent('.chbs-form-field:first');
var fieldNext=field.next('.chbs-form-field-waypoint-duration');
fieldNext.find('select').selectmenu('destroy');
field.remove();
fieldNext.remove();
$self.googleMapCreate();
$self.googleMapCreateRoute();
});
$self.e('.chbs-form-field-location-autocomplete input[type="text"]').each(function(){
$self.googleMapAutocompleteCreate($(this));
});
$self.e('.chbs-payment-form').on('click','.chbs-payment>li>a',function(e){
e.preventDefault();
$(this).parents('.chbs-payment').find('li>a').removeClass('chbs-state-selected');
$(this).addClass('chbs-state-selected');
$self.getGlobalNotice().addClass('chbs-hidden');
var paymentId=$(this).attr('data-payment-id');
var paymentName=$(this).attr('data-payment-name');
$self.e('input[name="chbs_payment_id"]').val(paymentId);
$self.addGAEvent('payment_select',{'payment_id':paymentId,'payment_name':paymentName});
$self.createSummaryPriceElement();
});
$self.e('>*').on('click','.chbs-form-checkbox',function(e){
var text=$(this).next('input[type="hidden"]');
var value=parseInt(text.val(),10)===1 ? 0:1;
if(value===1) $(this).addClass('chbs-state-selected');
else $(this).removeClass('chbs-state-selected');
$(this).next('input[type="hidden"]').on('change',function(e){
var value=parseInt($(this).val(),10)===1 ? 1:0;
var section=$(this).parents('.chbs-clear-fix:first').nextAll('.chbs-panel:first');
if(value===0) section.addClass('chbs-hidden');
else section.removeClass('chbs-hidden');
$(window).scroll();
});
text.val(value).trigger('change');
});
$self.e('.chbs-booking-extra').on('click','.chbs-booking-extra-list .chbs-button.chbs-button-style-2',function(e){
e.preventDefault();
var extraNote=$(this).parents('li:first').find('.chbs-booking-form-extra-note');
var bookingExtraId=$(this).parents('li:first').attr('data-booking_extra_id');
var bookingExtraName=$(this).parents('li:first').attr('data-booking_extra_name');
var buttonRadio=false;
if(!$(this).parent('.chbs-button-radio').length){
$(this).toggleClass('chbs-state-selected');
if($(this).hasClass('chbs-state-selected'))
extraNote.removeClass('chbs-hidden');
else extraNote.addClass('chbs-hidden');
}else{
buttonRadio=true;
if(parseInt($(this).attr('data-value'),10)!==0)
extraNote.removeClass('chbs-hidden');
else extraNote.addClass('chbs-hidden');
}
$self.getSelectedBookingExtra();
if(buttonRadio){
$self.addGAEvent((parseInt($(this).attr('data-value'),10)!==0 ? 'booking_extra_select':'booking_extra_deselect'),{'booking_extra_id':bookingExtraId,'booking_extra_name':bookingExtraName});
}else{
$self.addGAEvent(($(this).hasClass('chbs-state-selected') ? 'booking_extra_select':'booking_extra_deselect'),{'booking_extra_id':bookingExtraId,'booking_extra_name':bookingExtraName});
}
$self.createSummaryPriceElement();
});
$self.e('.chbs-booking-extra').on('blur','.chbs-booking-extra-list input[type="text"]',function(e){
if(isNaN($(this).val())) $(this).val(1);
$self.createSummaryPriceElement();
});
$self.e('.chbs-booking-extra').on('click','.chbs-booking-extra-list .chbs-column-2',function(){
$(this).find('input[type="text"]').select();
});
$self.e('.chbs-main-content-step-2').on('click','.chbs-vehicle-list .chbs-button.chbs-button-style-2:not(.chbs-button-on-request)',function(e){
e.preventDefault();
if($(this).hasClass('chbs-state-selected')) return;
$(this).addClass('chbs-state-selected');
$self.e('.chbs-vehicle-list .chbs-button.chbs-button-style-2').not($(this)).removeClass('chbs-state-selected');
var vehicleId=parseInt($(this).parents('.chbs-vehicle').attr('data-id'),10);
var vehicleName=$(this).parents('.chbs-vehicle').attr('data-name');
$self.addGAEvent('vehicle_select',{'vehicle_id':vehicleId,'vehicle_name':vehicleName});
$self.e('input[name="chbs_vehicle_id"]').val(vehicleId);
$self.e('.chbs-vehicle-content-price-bid>div').addClass('chbs-hidden');
$self.e('.chbs-vehicle-list [name="chbs_vehicle_bid_price[]"]').val('');
$(this).parents('.chbs-vehicle').find('.chbs-vehicle-content-price-bid>div:first-child').removeClass('chbs-hidden');
$self.getGlobalNotice().addClass('chbs-hidden');
$self.getSelectedBookingExtra(true);
$self.calculateBaseLocationDistance(function(){
$self.createSummaryPriceElement();
if(parseInt($option.scroll_to_booking_extra_after_select_vehicle_enable,10)===1){
var header=$self.e('.chbs-booking-extra-header');
if(parseInt(header.length,10)===1){
$.scrollTo(header,200,{offset:-50});
}else{
var navigationButton=$self.e('.chbs-main-content-step-2 .chbs-main-content-navigation-button');
$.scrollTo(navigationButton,200,{offset:-1*parseInt($(window).height(),10)+110});
}}
$self.manageBookingExtra();
});
});
$self.e('.chbs-main-content-step-2').on('click','.chbs-vehicle .chbs-vehicle-content .chbs-show-more-button a',function(e){
e.preventDefault();
$(this).toggleClass('chbs-state-selected');
var section=$(this).parents('.chbs-vehicle:first').find('.chbs-vehicle-content-description');
var height=parseInt(section.children('div').actual('outerHeight',{includeMargin:true}),10);
if(section.hasClass('chbs-state-open')){
section.animate({height:0},150,function(){
section.removeClass('chbs-state-open');
$(window).scroll();
});
}else{
section.animate({height:height},150,function(){
section.css('height','auto');
section.addClass('chbs-state-open');
$(window).scroll();
});
}});
$self.e('.chbs-main-content-step-2').on('click','.chbs-booking-extra .chbs-booking-extra-header .chbs-show-more-button a',function(e){
e.preventDefault();
$(this).toggleClass('chbs-state-selected');
var section=$(this).parents('.chbs-booking-extra:first').children('.chbs-booking-extra-header+div');
var height=parseInt(section.children('div').actual('outerHeight',{includeMargin:true}),10);
if(section.hasClass('chbs-state-open')){
section.animate({height:0},150,function(){
section.removeClass('chbs-state-open');
$(window).scroll();
});
}else{
section.animate({height:height},150,function(){
section.css('height','auto');
section.addClass('chbs-state-open');
$(window).scroll();
});
}});
$self.e('.chbs-main-content-step-4').on('click','.chbs-summary .chbs-summary-header a',function(e){
e.preventDefault();
$self.goToStep(parseInt($(this).attr('data-step'),10)-4);
});
$self.e('.chbs-main-content-step-4').on('click','.chbs-coupon-code-section a',function(e){
e.preventDefault();
$self.addGAEvent('coupon_apply',{'code':$self.e('.chbs-coupon-code-section [name="chbs_coupon_code"]').val()});
$self.setAction('coupon_code_check');
$self.post($self.e('form[name="chbs-form"]').serialize(),function(response){
$self.e('.chbs-summary-price-element').replaceWith(response.html);
var object=$self.e('.chbs-coupon-code-section');
object.qtip({
show:
{
target:$(this)
},
style:
{
classes:(response.error===1 ? 'chbs-qtip chbs-qtip-error':'chbs-qtip chbs-qtip-success')
},
content:
{
text:response.message
},
position:
{
my:($option.is_rtl ? 'bottom right':'bottom left'),
at:($option.is_rtl ? 'top right':'top left'),
container:object.parent()
}}).qtip('show');
});
});
$self.e('.chbs-main-content-step-4').on('click','.chbs-gratuity-section a',function(e){
e.preventDefault();
$self.setAction('gratuity_customer_set');
$self.addGAEvent('gratuity_apply');
$self.post($self.e('form[name="chbs-form"]').serialize(),function(response){
$self.e('.chbs-summary-price-element').replaceWith(response.html);
var object=$self.e('.chbs-gratuity-section');
object.qtip({
show:
{
target:$(this)
},
style:
{
classes:(response.error===1 ? 'chbs-qtip chbs-qtip-error':'chbs-qtip chbs-qtip-success')
},
content:
{
text:response.message
},
position:
{
my:($option.is_rtl ? 'bottom right':'bottom left'),
at:($option.is_rtl ? 'top right':'top left'),
container:object.parent()
}}).qtip('show');
object.find('[name="chbs_gratuity_customer_value"]').val(response.gratuity);
});
});
$self.e('.chbs-datepicker:not(.chbs-datepicker-form-element)').datepicker({
autoSize:true,
firstDay:$option.first_day_week,
minDate:$option.datetime_min_format,
maxDate:$option.datetime_max_format,
dateFormat:$option.date_format_js,
beforeShow:function(date,instance){
var helper=new CHBSHelper();
var value=helper.getValueFromClass($(instance.dpDiv),'chbs-booking-form-id-');
if(value!==false) $(instance.dpDiv).removeClass('chbs-booking-form-id-'+value);
$(instance.dpDiv).addClass('chbs-booking-form-id-'+$option.booking_form_id).addClass('chbs-datepicker');
if($(date).attr('name')==='chbs_return_date_service_type_'+$self.getServiceTypeId()){
try
{
var datePickup=$self.e('[name="chbs_pickup_date_service_type_'+$self.getServiceTypeId()+'"]').val();
var dateParse=$.datepicker.parseDate($option.date_format_js,datePickup);
if(dateParse!==null){
$(this).datepicker('option','minDate',datePickup);
}}
catch(e){
}}
},
beforeShowDay:function(date){
var helper=new CHBSHelper();
var dayWeek=parseInt(date.getDay(),10);
if(dayWeek===0) dayWeek=7;
date=$.datepicker.formatDate('dd-mm-yy',date);
for(var i in $option.date_exclude){
var r=helper.compareDate([date,$option.date_exclude[i].start,$option.date_exclude[i].stop]);
if(r) return([false,'','']);
}
var sDate=date.split('-');
var date=new Date(sDate[2],sDate[1]-1,sDate[0]);
if((!$option.business_hour[dayWeek].start)||(!$option.business_hour[dayWeek].stop))
return([false,'','']);
return([true,'','']);
},
onSelect:function(date,object){
$self.createTimePicker($(this),object);
}});
$('.ui-datepicker').addClass('notranslate');
if(parseInt($option.timepicker_dropdown_list_enable,10)===1){
$this.on('focusin','.chbs-timepicker:not(.chbs-timepicker-form-element)',function(){
var helper=new CHBSHelper();
var prefix=$(this).attr('name').indexOf('pickup')>-1 ? 'pickup':'return';
var field=$self.e('input[name="chbs_'+prefix+'_date_service_type_'+$self.getServiceTypeId()+'"]');
if(helper.isEmpty(field.val())){
$(this).timepicker('remove');
field.click();
return;
}else{
if(helper.isEmpty($(this).val())){
if($(this).hasClass('ui-timepicker-input')){
$(this).timepicker('show');
}else{
$self.createTimePicker(field,field.datepicker());
}}
}});
}
$self.createSelectMenu();
$self.createAutocomplete('.chbs-form-field-location-fixed-autocomplete');
$self.createAutocomplete('.chbs-form-field-route-autocomplete');
$self.e('.chbs-booking-extra').on('blur','.chbs-booking-extra-list input[type="text"]',function(){
if(!$(this)[0].hasAttribute('data-quantity-max')) return;
var value=$(this).val();
if(isNaN(value)) value=1;
value=parseInt(value,10);
if(value>parseInt($(this).attr('data-quantity-max'),10))
$(this).val($(this).attr('data-quantity-max'));
$self.createSummaryPriceElement();
});
$self.e('.chbs-form-field').has('select').css({cursor:'pointer'});
$self.e('.chbs-main-content-step-3').on('click','.chbs-button-sign-up',function(e){
e.preventDefault();
$self.addGAEvent('user_sign_up');
$self.e('.chbs-client-form-sign-up').removeClass('chbs-hidden');
$self.e('input[name="chbs_client_account"]').val(1);
});
$self.e('.chbs-main-content').on('click','.chbs-button-widget-submit',function(e){
e.preventDefault();
var helper=new CHBSHelper();
var data={};
data.service_type_id=$self.getServiceTypeId();
data.pickup_date=$self.e('[name="chbs_pickup_date_service_type_'+data.service_type_id+'"]').val();
data.pickup_time=$self.e('[name="chbs_pickup_time_service_type_'+data.service_type_id+'"]').val();
if($.inArray($self.getServiceTypeId(),[1,2,3])>-1){
var coordinate=$self.e('[name="chbs_pickup_location_coordinate_service_type_'+data.service_type_id+'"]').val();
if(!helper.isEmpty(coordinate)){
var json=JSON.parse(coordinate);
data.pickup_location_lat=json.lat;
data.pickup_location_lng=json.lng;
data.pickup_location_zip_code=json.zip_code;
data.pickup_location_locality=json.locality;
data.pickup_location_address=json.address;
data.pickup_location_text=$self.e('[name="chbs_pickup_location_service_type_'+data.service_type_id+'"]').val();
}
var coordinate=$self.e('[name="chbs_dropoff_location_coordinate_service_type_'+data.service_type_id+'"]').val();
if(!helper.isEmpty(coordinate)){
var json=JSON.parse(coordinate);
data.dropoff_location_lat=json.lat;
data.dropoff_location_lng=json.lng;
data.dropoff_location_zip_code=json.zip_code;
data.dropoff_location_locality=json.locality;
data.dropoff_location_address=json.address;
data.dropoff_location_text=$self.e('[name="chbs_dropoff_location_service_type_'+data.service_type_id+'"]').val();
}
if($.inArray($self.getServiceTypeId(),[1,2])>-1){
var pickupLocationId=$self.e('[name="chbs_fixed_location_pickup_service_type_'+data.service_type_id+'"]').val();
if(parseInt(pickupLocationId,10)>0)
data.fixed_location_pickup_id=pickupLocationId;
var dropoffLocationId=$self.e('[name="chbs_fixed_location_dropoff_service_type_'+data.service_type_id+'"]').val();
if(parseInt(dropoffLocationId,10)>0)
data.fixed_location_dropoff_id=dropoffLocationId;
}}
if($.inArray($self.getServiceTypeId(),[3])>-1){
data.route_id=$self.e('[name="chbs_route_service_type_'+data.service_type_id+'"]').val();
}
if($.inArray($self.getServiceTypeId(),[1,3])>-1){
data.extra_time=$self.e('[name="chbs_extra_time_service_type_'+data.service_type_id+'"]').val();
data.transfer_type=$self.e('[name="chbs_transfer_type_service_type_'+data.service_type_id+'"]').val();
if($.inArray(data.transfer_type,[3])){
data.duration=$self.e('[name="chbs_duration_service_type_'+data.service_type_id+'"]').val();
data.return_date=$self.e('[name="chbs_return_date_service_type_'+data.service_type_id+'"]').val();
data.return_time=$self.e('[name="chbs_return_time_service_type_'+data.service_type_id+'"]').val();
}}
if($.inArray($self.getServiceTypeId(),[2])>-1){
data.duration=$self.e('[name="chbs_duration_service_type_'+data.service_type_id+'"]').val();
}
var passengerAdult=$self.e('[name="chbs_passenger_adult_service_type_'+data.service_type_id+'"]');
if(passengerAdult.length===1) data.passenger_adult=passengerAdult.val();
var passengerChildren=$self.e('[name="chbs_passenger_children_service_type_'+data.service_type_id+'"]');
if(passengerChildren.length===1) data.passenger_children=passengerChildren.val();
data.currency=$self.e('[name="chbs_currency"]').val();
data.widget_submit=1;
data.widget_second_step=parseInt($self.e('[name="chbs_widget_second_step"]').val(),10);
var url=$option.widget.booking_form_url;
if(url.indexOf('?')===-1) url+='?';
else url+='&';
url+=decodeURI($.param(data));
var form=$self.e('form[name="chbs-form"]');
form.attr('action',url).submit();
});
$self.e('.chbs-main-content-step-3').on('click','.chbs-button-sign-in',function(e){
e.preventDefault();
$self.getGlobalNotice().addClass('chbs-hidden');
$self.preloader(true);
$self.addGAEvent('user_sign_in');
$self.setAction('user_sign_in');
$self.post($self.e('form[name="chbs-form"]').serialize(),function(response){
if(parseInt(response.user_sign_in,10)===1){
$self.e('.chbs-main-content-step-3 .chbs-client-form').html('');
if(typeof(response.client_form_sign_up)!=='undefined')
$self.e('.chbs-main-content-step-3 .chbs-client-form').append(response.client_form_sign_up);
if(typeof(response.summary)!=='undefined')
$self.e('.chbs-main-content-step-3>.chbs-layout-25x75 .chbs-layout-column-left:first').html(response.summary[0]);
$self.createSelectMenu();
$self.createAutocomplete('.chbs-form-field-location-fixed-autocomplete');;
$self.createAutocomplete('.chbs-form-field-route-autocomplete');
}else{
if(typeof(response.error.global[0])!=='undefined')
$self.getGlobalNotice().removeClass('chbs-hidden').html(response.error.global[0].message);
}
$self.preloader(false);
});
});
$self.e('.chbs-main-content-step-3').on('click','.chbs-sign-up-password-generate',function(e){
e.preventDefault();
var helper=new CHBSHelper();
var password=helper.generatePassword(8);
$self.e('input[name="chbs_client_sign_up_password"],input[name="chbs_client_sign_up_password_retype"]').val(password);
});
$self.e('.chbs-main-content-step-3').on('click','.chbs-sign-up-password-show',function(e){
e.preventDefault();
var password=$self.e('input[name="chbs_client_sign_up_password"]');
password.attr('type',(password.attr('type')==='password' ? 'text':'password'));
});
if(parseInt($option.vehicle_price_calculation_first_step_enable,10)===1){
$self.e('.chbs-main-content-step-1').on('change',':input',function(e){
$self.doVehiclePriceCalculationStepFirst();
});
}
$self.e('.chbs-notice-fixed a').on('click',function(e){
e.preventDefault();
$(this).parents('.chbs-notice-fixed').addClass('chbs-hidden');
});
$(document).bind('keypress',function(e){
if(parseInt(e.which,10)===13){
switch($(e.target).attr('name')){
case 'chbs_client_sign_in_login':
case 'chbs_client_sign_in_password':
$self.e('.chbs-main-content-step-3 .chbs-button-sign-in').trigger('click');
break;
}}
});
$(document).unbind('keydown').bind('keydown',function(e){
switch($(e.target).attr('name')){
case 'chbs_passenger_adult_service_type_1':
case 'chbs_passenger_adult_service_type_2':
case 'chbs_passenger_adult_service_type_3':
case 'chbs_passenger_children_service_type_1':
case 'chbs_passenger_children_service_type_2':
case 'chbs_passenger_children_service_type_3':
if($.inArray(parseInt(e.keyCode,10),[38,40])>-1){
var value=parseInt($(e.target).val(),10);
if(isNaN(value)) value=0;
if(parseInt(e.keyCode,10)===38)
value=(value+1)>99 ? 99:value+1;
else if(parseInt(e.keyCode,10)===40)
value=(value-1)<0 ? 0:value-1;
$(e.target).val(parseInt(value));
}
break;
}});
$self.e('.chbs-main-content-step-2').on('click','.chbs-quantity-section .chbs-quantity-section-button',function(e){
var textField=$(this).parent().children('input[type="text"]');
if(parseInt(textField.length,10)!==1) return;
var step=parseInt($(this).attr('data-step'),10);
var value=parseInt(textField.val(),10);
var minValue=1;
var maxValue=parseInt(textField.attr('data-quantity-max'),10);
value+=step;
if((value<minValue)||(value>maxValue)) return;
textField.val(value);
$(this).parents('li:first').find('.chbs-column-3 .chbs-button').removeClass('chbs-state-selected');
$(this).parents('li:first').find('.chbs-column-3 .chbs-button:first').trigger('click');
});
$self.e('.chbs-main-content-step-2 .chbs-vehicle-list').on('click','.chbs-pagination a',function(e){
e.preventDefault();
var i=0;
var vehiclePerPage=parseInt($(this).parent('.chbs-pagination').attr('data-vehicle_per_page'),10);
var vehicleCount=$self.e('.chbs-vehicle-list>ul>li').length;
var vehicleFirst=0;
$self.e('.chbs-vehicle-list>ul>li').each(function(){
i++;
if((!$(this).hasClass('chbs-hidden'))&&(vehicleFirst===0)) vehicleFirst=i;
});
var step=parseInt($(this).attr('href').substr(1),10);
var range1=vehicleFirst+(step*vehiclePerPage);
var range2=range1+vehiclePerPage;
if(range1>vehicleCount){
return;
}
if(range1<=0){
return;
}
i=0;
$self.e('.chbs-vehicle-list>ul>li').each(function(){
i++;
$(this).addClass('chbs-hidden');
if((i>=range1)&&(i<range2))
$(this).removeClass('chbs-hidden');
});
});
$self.createLabelTooltip();
$self.googleMapCreate();
$self.googleMapInit();
var firstOption=$self.e('[name="chbs_route_service_type_3"]>option:first');
if(parseInt(firstOption.val(),10)===-1){
if(typeof($startLocation)!=='undefined'){
var data=[{lat:$startLocation.lat(),lng:$startLocation.lng()}];
firstOption.attr('data-coordinate',JSON.stringify(data));
}}
$self.googleMapCreateRoute(function(){
if((parseInt(helper.urlParam('widget_submit'),10)===1)&&(parseInt(helper.urlParam('widget_second_step'),10)===1)){
$self.goToStep(1,function(){
$this.removeClass('chbs-hidden');
$self.createStickySidebar();
$(window).scroll();
});
}
else $this.removeClass('chbs-hidden');
$self.googleMapStartCustomizeHeight();
});
$self.moveSubmitButton();
$self.setBidPriceVehicle();
$self.showRideInfo();
};
this.createTimePicker=function(dateField,object){
var helper=new CHBSHelper();
var dateSelected=[object.selectedDay,object.selectedMonth+1,object.selectedYear];
for(var i in dateSelected){
if(new String(dateSelected[i]).length===1) dateSelected[i]='0'+dateSelected[i];
}
dateSelected=dateSelected[0]+'-'+dateSelected[1]+'-'+dateSelected[2];
if(helper.isEmpty(dateField.datepicker('getDate'))) return;
var dayWeek=parseInt(dateField.datepicker('getDate').getDay(),10);
if(dayWeek===0) dayWeek=7;
var prefix=dateField.attr('name').indexOf('pickup')>-1 ? 'pickup':'return';
var timeField=$self.e('input[name="chbs_'+prefix+'_time_service_type_'+$self.getServiceTypeId()+'"]');
if(parseInt($option.pickup_time_field_write_enable,10)===1||prefix==='return'){
var minTime='';
var maxTime='';
if((helper.isEmpty(minTime))||(helper.isEmpty(maxTime))){
if(new String(typeof($option.business_hour[dayWeek]))!=='undefined'){
minTime=$option.business_hour[dayWeek].start;
maxTime=$option.business_hour[dayWeek].stop;
}}
var t=$option.datetime_min.split(' ');
if(dateSelected===t[0]){
if(Date.parse('01/01/1970 '+t[1])>Date.parse('01/01/1970 '+minTime))
minTime=t[1];
}
if(!helper.isEmpty($option.datetime_max)){
var t=$option.datetime_max.split(' ');
if(dateSelected===t[0]){
if(Date.parse('01/01/1970 '+t[1])<Date.parse('01/01/1970 '+maxTime))
maxTime=t[1];
}}
var option=
{
appendTo:$this,
showOn:[],
timeFormat:$option.time_format,
step:$option.timepicker_step,
disableTouchKeyboard:true,
minTime:minTime,
maxTime:maxTime,
disableTextInput:parseInt($option.timepicker_field_readonly,10)===1 ? true:false
};
if(parseInt($option.timepicker_dropdown_list_enable,10)===1){
try
{
timeField.timepicker('remove');
}
catch(e){}
if(typeof($option.business_hour[dayWeek].default_format)!='undefined'){
option.scrollDefault=$option.business_hour[dayWeek].default_format;
}
timeField.timepicker(option);
timeField.val('').timepicker('show');
timeField.blur();
$self.setTimepicker(timeField);
if(parseInt($self.getServiceTypeId(),10)===3){
var routeField=$self.e('select[name="chbs_route_service_type_3"]>option:selected');
try
{
var pickupHour=JSON.parse(routeField.attr('data-pickup_hour'));
if((pickupHour[dayWeek]!=undefined)&&(pickupHour[dayWeek].hour.length>0)){
$('.ui-timepicker-list>li').addClass('ui-timepicker-disabled').each(function(){
if($.inArray(dateField.text(),pickupHour[dayWeek].hour)>-1){
dateField.removeClass('ui-timepicker-disabled');
}});
}}
catch(e){}}
if(parseInt($option.timepicker_hour_range_enable,10)===1){
$('.ui-timepicker-list>li').each(function(){
var node=[dateField,dateField.next()];
if(node[1].length===1)
node[0].html(node[0].text()+' - '+node[1].text());
else node[0].remove();
});
timeField.on('selectTime',function(obj1,obj2){
var element=$('.ui-timepicker-list>.ui-timepicker-selected');
if(element.length===1){
dateField.val(element.text());
}});
}
if(typeof($option.business_hour[dayWeek].default_format)!='undefined'){
$('.ui-timepicker-list>li:contains("'+$option.business_hour[dayWeek].default_format+'"):last').addClass('ui-timepicker-selected');
}}
}else{
if(new String(typeof($option.business_hour[dayWeek]))!=='undefined'){
timeField.val($option.business_hour[dayWeek].default_format);
}}
};
this.setVehiclePriceCalculationStepFirst=function(state){
$self.e('input[name="chbs_vehicle_price_calculation_first_step_action"]').val(state);
};
this.getVehiclePriceCalculationStepFirst=function(){
return(parseInt($self.e('input[name="chbs_vehicle_price_calculation_first_step_action"]').val(),10));
};
this.increaseVehiclePriceCalculationStepFirst=function(step){
var value=parseInt($self.getVehiclePriceCalculationStepFirst(),10);
$self.setVehiclePriceCalculationStepFirst(value+step);
};
this.doVehiclePriceCalculationStepFirst=function(){
if(parseInt($option.vehicle_price_calculation_first_step_enable,10)===1){
var distance=$self.e('[name="chbs_distance_sum"]').val();
var duration=$self.e('[name="chbs_duration_sum"]').val();
if(distance>0||duration>0){
$self.increaseVehiclePriceCalculationStepFirst(1);
$self.goToStep(1,function(){
$self.increaseVehiclePriceCalculationStepFirst(-1);
});
}}
};
this.showRideInfo=function(){
var serviceTypeId=$self.getServiceTypeId();
if(parseInt(serviceTypeId,10)===2)
$self.e('.chbs-ride-info>div:first').addClass('chbs-hidden');
else $self.e('.chbs-ride-info>div:first').removeClass('chbs-hidden');
};
this.myLocationSuccess=function(position){
$self.e('.chbs-my-location-link').on('click',function(){
var coordinate=
{
lat: position.coords.latitude,
lng: position.coords.longitude
};
var field=$self.e('input[name="chbs_pickup_location_coordinate_service_type_'+$self.getServiceTypeId()+'"]');
field.val(JSON.stringify(coordinate));
$self.googleMapSetAddress(field,function(){
$self.googleMapCreate();
$self.googleMapCreateRoute();
},true);
});
};
this.myLocationError=function(error){
console.log(error);
};
this.getVehicleSelectedId=function(){
var vehicleId=parseInt($self.e('.chbs-vehicle .chbs-vehicle-content-header .chbs-button.chbs-state-selected').parents('.chbs-vehicle').attr('data-id'),10);
return(vehicleId);
}
this.setBidPriceVehicle=function(){
$self.e('.chbs-main-content-step-2')
$self.e('.chbs-main-content-step-2').on('click','.chbs-vehicle-content-price-bid>div:first-child>a',function(e){
e.preventDefault();
$(this).parent('div').addClass('chbs-hidden');
$(this).parent('div').next('div').removeClass('chbs-hidden');
});
$self.e('.chbs-main-content-step-2').on('click','.chbs-vehicle-content-price-bid>div+div>input+a',function(e){
var input=$(this).prev('input');
e.preventDefault();
$self.setAction('vehicle_bid_price_check');
$self.preloader(true);
$self.post($self.e('form[name="chbs-form"]').serialize(),function(response){
$self.preloader(false);
if(typeof(response.html)!=='undefined'){
if(typeof(response.bid_vehicle_min_value)!='undefined'){
if(confirm(response.bid_question)){
input.val(response.bid_vehicle_min_value);
$self.preloader(true);
$self.post($self.e('form[name="chbs-form"]').serialize(),function(response){
$self.preloader(false);
if(typeof(response.html)!=='undefined'){
$self.e('.chbs-summary-price-element').replaceWith(response.html);
}});
}else{
$self.e('.chbs-summary-price-element').replaceWith(response.html);
if(typeof(response.bid_notice)!='undefined') alert(response.bid_notice);
}}else{
$self.e('.chbs-summary-price-element').replaceWith(response.html);
if(typeof(response.bid_notice)!='undefined') alert(response.bid_notice);
}}
});
});
$self.e('.chbs-main-content-step-2').on('click','.chbs-vehicle-content-price-bid>div+div>input+a+a',function(e){
e.preventDefault();
$(this).parent('div').addClass('chbs-hidden');
$(this).parent('div').prev('div').removeClass('chbs-hidden');
$(this).parent('div').find('input[type="text"]').val('');
$self.setAction('vehicle_bid_price_check');
$self.post($self.e('form[name="chbs-form"]').serialize(),function(response){
if(typeof(response.html)!=='undefined')
$self.e('.chbs-summary-price-element').replaceWith(response.html);
});
});
};
this.setPayment=function(){
var paymentId=parseInt($self.e('input[name="chbs_payment_id"]').val(),10);
if(paymentId>0) $self.e('.chbs-payment>li>a[data-payment-id="'+paymentId+'"]').addClass('chbs-state-selected');
};
this.moveSubmitButton=function(){
if(($this.hasClass('chbs-widget'))&&($this.hasClass('chbs-widget'))&&($this.hasClass('chbs-widget-style-2'))){
var button=$self.e('.chbs-main-content-step-1 .chbs-button-widget-submit').parent();
button.clone().appendTo($self.e('#panel-1'));
button.clone().appendTo($self.e('#panel-2'));
button.clone().appendTo($self.e('#panel-3'));
button.remove();
}};
this.convertTimeToMinute=function(time){
time=time.split(':');
return(time[0]*60+time[1]);
};
this.createLabelTooltip=function(){
$self.e('.chbs-tooltip').qtip({
style:
{
classes:'chbs-qtip chbs-qtip-success'
},
position:
{
my:'bottom left',
at:'top left',
container:$this
}});
};
this.setTimepicker=function(field){
if((parseInt($option.timepicker_dropdown_list_enable,10)===1)||(field.hasClass('chbs-timepicker-form-element')))
$('.ui-timepicker-wrapper').css({opacity:1,'width':field.parent('div').outerWidth()+1});
};
this.createFormElementFieldDatePicker=function(){
var option=
{
autoSize:true,
firstDay:$option.first_day_week,
dateFormat:$option.date_format_js,
beforeShow:function(date,instance){
var helper=new CHBSHelper();
var value=helper.getValueFromClass($(instance.dpDiv),'chbs-booking-form-id-');
if(value!==false) $(instance.dpDiv).removeClass('chbs-booking-form-id-'+value);
$(instance.dpDiv).addClass('chbs-booking-form-id-'+$option.booking_form_id).addClass('chbs-datepicker');
}};
$self.e('.chbs-datepicker.chbs-datepicker-form-element').datepicker(option);
};
this.createFormElementFieldTimePicker=function(){
$self.e('.chbs-main-content').on('click','.chbs-timepicker.chbs-timepicker-form-element',function(e){
var option=
{
showOn:[],
appendTo:$this,
showOnFocus:false,
timeFormat:$option.time_format,
};
$(this).timepicker(option);
$(this).val('').timepicker('show');
$(this).blur();
$self.setTimepicker($(this));
});
};
this.createFormElementFieldAutocomplete=function(){
var helper=new CHBSHelper();
$self.e('.chbs-autocomplete-form-element').each(function(){
var id='chbs_autocomplete_form_element_'+helper.getRandomString(16);
$(this).attr('id',id);
var field=$(this);
var autocomplete=new google.maps.places.Autocomplete(document.getElementById(id),option);
autocomplete.addListener('place_changed',function(id){
var place=autocomplete.getPlace();
if(!place.geometry){
alert($option.message.place_geometry_error);
field.val('');
return(false);
}
var placeData=
{
lat:place.geometry.location.lat(),
lng:place.geometry.location.lng(),
address:$self.removeDoubleQuote(field.val()),
zip_code:$self.getElementFromPlace(place,'postal_code'),
country_code:$self.getElementFromPlace(place,'country','short_name')
};
$(field).siblings('input[type="hidden"]').val(JSON.stringify(placeData));
});
});
};
this.createFileField=function(){
$self.e('input[type="file"]').each(function(){
var field=$(this);
$(this).fileupload({
url:$option.ajax_url,
dataType:'json',
formData:{'action':'chbs_file_upload'},
done:function(e,data){
$self.setFileUploadField(field,true,data.result);
}});
$(this).parent('.chbs-file-upload').next('.chbs-file-remove').children('span:last-child').on('click',function(e){
e.preventDefault();
$self.setFileUploadField(field,false,[]);
});
});
};
this.setFileUploadField=function(object,upload,data){
var name=object.attr('name');
var field=$self.e('input[name="'+name+'"]');
if(parseInt(data.error,10)===1){
alert(data.message);
return;
}
if(upload){
field.parent('.chbs-file-upload').addClass('chbs-hidden');
field.parent('.chbs-file-upload').next('.chbs-file-remove').removeClass('chbs-hidden').find('span>span').html(data.name);
}else{
field.parent('.chbs-file-upload').removeClass('chbs-hidden');
field.parent('.chbs-file-upload').next('.chbs-file-remove').addClass('chbs-hidden').find('span>span').html('');
data={name:'',type:'',tmp_name:''};}
$self.e('input[name="'+name+'_name"]').val(data.name);
$self.e('input[name="'+name+'_type"]').val(data.type);
$self.e('input[name="'+name+'_tmp_name"]').val(data.tmp_name);
};
this.triggerOnSelectDatePicker=function(selector){
var trigger=true;
if(selector==='[name="chbs_pickup_date_service_type_3"]'){
trigger=false;
var routeField=$self.e('select[name="chbs_route_service_type_3"]>option:selected');
try
{
var pickupHour=JSON.parse(routeField.attr('data-pickup_hour'));
}
catch(e){}
var pickupTime=$self.e('[name="chbs_pickup_time_service_type_3"]').val();
var dateField=$self.e('[name="chbs_pickup_date_service_type_3"]');
try
{
var dayWeek=parseInt(dateField.datepicker('getDate').getDay(),10);
$('.ui-timepicker-list>li').removeClass('ui-timepicker-disabled');
if((pickupHour[dayWeek]!=undefined)&&(pickupHour[dayWeek].hour!=undefined)){
$('.ui-timepicker-list>li').addClass('ui-timepicker-disabled').each(function(){
if($.inArray($(this).text(),pickupHour[dayWeek].hour)>-1){
$(this).removeClass('ui-timepicker-disabled');
}});
if($.inArray(pickupTime,pickupHour[dayWeek].hour)==-1) trigger=true;
}}
catch(e){}}
if(trigger){
var inst=$.datepicker._getInst($(selector)[0]);
$.datepicker._get(inst,'onSelect').apply(inst.input[0],[$(selector).datepicker('getDate'),inst]);
}};
this.createSelectMenu=function(useDisable=true){
var selector='select';
if(useDisable) selector+=':not(.chbs-selectmenu-disable)';
$self.e(selector).selectmenu({
appendTo:$this,
open:function(event,ui){
var select=$(this);
var selectmenu=$('#'+select.attr('id')+'-menu').parent('div');
var field=select.parents('.chbs-form-field:first');
var left=parseInt(selectmenu.css('left'),10)-1;
var borderWidth=parseInt(field.css('border-left-width'),10)+parseInt(field.css('border-right-width'),10);
var width=field[0].getBoundingClientRect().width-borderWidth;
selectmenu.css({width:width+2,left:left});
},
change:function(event,ui){
var name=$(this).attr('name');
if(name==='chbs_waypoint_duration_service_type_1[]'){
$self.reCalculateRoute();
}
if(name==='chbs_route_service_type_3'){
$self.e('[name="chbs_pickup_date_service_type_3"]').val('');
$self.e('[name="chbs_pickup_time_service_type_3"]').val('');
$self.triggerOnSelectDatePicker('[name="chbs_pickup_date_service_type_3"]');
$self.googleMapCreate();
$self.googleMapCreateRoute();
}
if($.inArray(name,['chbs_transfer_type_service_type_1','chbs_transfer_type_service_type_3'])>-1){
var section=$self.e('[name="chbs_return_date_service_type_'+$self.getServiceTypeId()+'"]').parent('div').parent('div');
if(parseInt($(this).val(),10)===3) section.removeClass('chbs-hidden');
else section.addClass('chbs-hidden');
}
if($.inArray(name,['chbs_extra_time_service_type_1','chbs_transfer_type_service_type_1','chbs_duration_service_type_2','chbs_extra_time_service_type_3','chbs_transfer_type_service_type_3'])>-1){
$self.reCalculateRoute();
}1
if(name==='chbs_navigation_responsive'){
var navigation=parseInt($(this).val(),10);
var step=parseInt($self.e('input[name="chbs_step"]').val(),10);
$self.addGAEvent('navigation_top_select',{'step_current':step,'step_target':navigation});
if(navigation-step===0) return;
$self.goToStep(navigation-step);
}
if($.inArray(name,['chbs_vehicle_passenger_count','chbs_vehicle_bag_count','chbs_vehicle_standard','chbs_vehicle_category'])>-1){
$self.setAction('vehicle_filter');
$self.e('.chbs-vehicle-list').children().addClass('chbs-hidden');
$self.e('.chbs-vehicle-list').addClass('chbs-preloader-1');
$self.post($self.e('form[name="chbs-form"]').serialize(),function(response){
$self.getGlobalNotice().addClass('chbs-hidden');
var vehicleList=$self.e('.chbs-vehicle-list');
vehicleList.html('').removeClass('chbs-preloader-1');
if((typeof(response.error)!=='undefined')&&(typeof(response.error.global)!=='undefined')){
$self.getGlobalNotice().removeClass('chbs-hidden').html(response.error.global[0].message);
}else{
vehicleList.html(response.html);
$self.recalculateVehiclePrice(response,1);
}
$self.e('.chbs-vehicle-list').find('.chbs-button.chbs-button-style-2').removeClass('chbs-state-selected');
$self.preloadVehicleImage();
$self.e('input[name="chbs_vehicle_id"]').val(0);
$self.createSummaryPriceElement();
});
}
if($.inArray(name,['chbs_fixed_location_pickup_service_type_1','chbs_fixed_location_pickup_service_type_2']>-1)){
$self.checkFixedLocationPickup(name);
}
if($.inArray(name,['chbs_fixed_location_dropoff_service_type_1']>-1)){
$self.checkFixedLocationPickup('chbs_fixed_location_pickup_service_type_1');
}
if($.inArray(name,['chbs_fixed_location_dropoff_service_type_2']>-1)){
$self.checkFixedLocationPickup('chbs_fixed_location_pickup_service_type_2');
}
if($.inArray(name,['chbs_fixed_location_pickup_service_type_1','chbs_fixed_location_dropoff_service_type_1','chbs_fixed_location_pickup_service_type_2','chbs_fixed_location_dropoff_service_type_3']>-1)){
$self.googleMapSetAddress($(this),function(){
$self.googleMapCreate();
$self.googleMapCreateRoute();
});
}
}});
$self.e('.ui-selectmenu-button .ui-icon.ui-icon-triangle-1-s').attr('class','chbs-meta-icon-arrow-vertical-large');
$self.checkFixedLocationPickup('chbs_fixed_location_pickup_service_type_1');
$self.checkFixedLocationPickup('chbs_fixed_location_pickup_service_type_2');
var fInedx=[1,3];
for(var i in fInedx){
var transferType=$self.e('[name="chbs_transfer_type_service_type_'+fInedx[i]+'"]');
if(transferType.length===1){
if(parseInt(transferType.val(),10)===3){
var returnDate=$self.e('[name="chbs_return_date_service_type_'+fInedx[i]+'"]');
returnDate.parents('.chbs-form-field').parent('.chbs-clear-fix').removeClass('chbs-hidden');
}}
}};
this.getAutocompleteSource=function(item){
var source=[];
$(item).next('select').find('option:not([disabled="disabled"])').each(function(index2,item2){
source.push({label:item2.text,value:item2.value});
});
return(source);
};
this.createAutocomplete=function(selector){
$self.e(selector).each(function(index,item){
var source=$self.getAutocompleteSource(item);
if(source.length){
$(item).autocomplete({
appendTo:$this,
source:source,
minLength:0,
focus:function(event,ui){
event.preventDefault();
},
select:$self.handleAutocompleteChange,
change:$self.handleAutocompleteChange,
create:function(event,ui){
var helper=new CHBSHelper();
var select=$(event.target).next('select');
var selectedId=select.children('option[selected="selected"]').val();
var label=select.children('option[value="'+parseInt(selectedId,10)+'"]').text();
if(!helper.isEmpty(label)) $(event.target).val(label);
}}).focus(function(){
$(this).autocomplete('search');
});
$.ui.autocomplete.filter=function(array,term){
var matcher=new RegExp($.ui.autocomplete.escapeRegex(term),'i');
return $.grep(array,function(value){
return(matcher.test(value.label||value.value||value));
});
};}});
};
this.handleAutocompleteChange=function(event,ui){
event.preventDefault();
var $select=$(event.target).next('select'),name=$select.attr('name');
if(ui.item==null){
$(event.target).val('');
$select.val('');
}else{
$(event.target).val(ui.item.label);
$select.val(ui.item.value);
}
if($.inArray(name,['chbs_fixed_location_pickup_service_type_1','chbs_fixed_location_dropoff_service_type_1','chbs_fixed_location_pickup_service_type_2','chbs_fixed_location_dropoff_service_type_3']>-1)){
$self.googleMapSetAddress($select,function(){
$self.googleMapCreate();
$self.googleMapCreateRoute();
});
}
if($.inArray(name,['chbs_fixed_location_pickup_service_type_1','chbs_fixed_location_pickup_service_type_2']>-1)){
$self.checkFixedLocationPickup(name);
}
if($.inArray(name,['chbs_fixed_location_dropoff_service_type_1']>-1)){
$self.checkFixedLocationPickup('chbs_fixed_location_pickup_service_type_1');
}
if($.inArray(name,['chbs_fixed_location_dropoff_service_type_2']>-1)){
$self.checkFixedLocationPickup('chbs_fixed_location_pickup_service_type_2');
}
return(true);
};
this.checkFixedLocationPickup=function(pickupLocationFieldName){
var dropoffLocationFieldName=pickupLocationFieldName.replace('pickup','dropoff');
var dropoffLocationField=$self.e('[name="'+dropoffLocationFieldName+'"]');
dropoffLocationField.children('option').removeAttr('disabled');
try
{
dropoffLocationField.selectmenu('refresh');
}
catch(e){}
var dataPickupLocation=$self.e('select[name="'+pickupLocationFieldName+'"]').children('option:selected').attr('data-location');
if(typeof(dataPickupLocation)=='undefined') return;
dataPickupLocation=JSON.parse(dataPickupLocation);
if(!dataPickupLocation.dropoff_disable.length) return;
for(var i in dataPickupLocation.dropoff_disable)
dropoffLocationField.children('option[value="'+dataPickupLocation.dropoff_disable[i]+'"]').attr('disabled','disabled').removeAttr('selected');
try
{
dropoffLocationField.selectmenu('refresh');
}
catch(e){}
$self.e('.chbs-form-field-location-fixed-autocomplete').each(function(index,item){
var fixedLocation=$self.getAutocompleteSource(item);
$(item).autocomplete({source:fixedLocation});
});
};
this.setMainNavigation=function(){
var step=parseInt($self.e('input[name="chbs_step"]').val(),10);
var element=$self.e('.chbs-main-navigation-default').find('li');
element.removeClass('chbs-state-selected').removeClass('chbs-state-completed');
element.filter('[data-step="'+step+'"]').addClass('chbs-state-selected');
var i=0;
element.each(function(){
if((++i)>=step) return;
$(this).addClass('chbs-state-completed');
});
};
this.getServiceTypeId=function(){
return(parseInt($self.e('.ui-tabs .ui-tabs-active').attr('data-id'),10));
};
this.setServiceTypeId=function(serviceTypeId){
$self.e('input[name="chbs_service_type_id"]').val(serviceTypeId);
};
this.setAction=function(name){
$self.e('input[name="action"]').val('chbs_'+name);
};
this.e=function(selector){
return($this.find(selector));
};
this.recalculateVehiclePrice=function(response,previousStep){
if(((parseInt(response.booking_summary_hide_fee,10)===1)||(parseInt(response.booking_summary_hide_fee,10)===2))&&(parseInt(previousStep,10)===1)){
var vehicle=[];
$self.e('.chbs-vehicle-list>ul>li').each(function(){
var helper=new CHBSHelper();
var parent=$(this).children('div:first');
if((!helper.isEmpty(parent.attr('data-base_location_cooridnate_lat')))&&(!helper.isEmpty(parent.attr('data-base_location_cooridnate_lng'))))
vehicle.push({id:parent.attr('data-id'),lat:parent.attr('data-base_location_cooridnate_lat'),lng:parent.attr('data-base_location_cooridnate_lng')});
});
if(vehicle.length){
$self.e('.chbs-vehicle-list').children().addClass('chbs-hidden');
$self.e('.chbs-vehicle-list').addClass('chbs-preloader-1');
var j=0;
for(var i in vehicle){
$self.calculateBaseLocationDistance(function(baseLocationData){
j++;
var vehicleElement=$self.e('.chbs-vehicle-list .chbs-vehicle[data-id="'+baseLocationData.id+'"]');
vehicleElement.find('[name="chbs_base_location_vehicle_distance['+baseLocationData.id+']"]').val(baseLocationData.distance);
vehicleElement.find('[name="chbs_base_location_vehicle_return_distance['+baseLocationData.id+']"]').val(baseLocationData.return_distance);
if(j===vehicle.length){
$self.goToStep(0);
return;
}},vehicle[i]);
}}
}};
this.goToStep=function(stepDelta,callback,useRecaptcha=true,useScrollToTop=true,usePreloader=true){
if(usePreloader){
$self.preloader(true);
}
var step=$self.e('input[name="chbs_step"]');
var stepRequest=$self.e('input[name="chbs_step_request"]');
if((parseInt($option.recaptcha.enable,10)===1)&&($self.getVehiclePriceCalculationStepFirst()===0)){
var s=parseInt(step.val(),10)+stepDelta;
if(s>=1){
if(useRecaptcha){
var grc=parseInt($option.recaptcha.api_type,10)===1 ? grecaptcha:grecaptcha.enterprise;
grc.ready(function(){
grc.execute($option.recaptcha.site_key).then(function(token){
$self.e('[name="chbs_recaptcha_token"]').val(token);
$self.goToStep(stepDelta,callback,false);
});
});
return;
}}
}
$self.setAction('go_to_step');
$self.setServiceTypeId($self.getServiceTypeId());
stepRequest.val(parseInt(step.val(),10)+stepDelta);
var serviceTypeId=$self.getServiceTypeId();
if(parseInt(stepRequest.val(),10)===2){
var sum=parseInt($self.e('[name="chbs_passenger_adult_service_type_'+serviceTypeId+'"]').val(),10)+parseInt($self.e('[name="chbs_passenger_children_service_type_'+serviceTypeId+'"]').val(),10);
if(sum>0) $self.e('[name="chbs_vehicle_passenger_count"]').val(sum);
}
if(parseInt(stepRequest.val(),10)===4){
if($iti){
var field=$self.e('input[name="chbs_client_contact_detail_phone_number"]');
var number=$iti.getNumber();
field.val(number);
}}
$self.post($self.e('form[name="chbs-form"]').serialize(),function(response){
var previousStep=$self.e('input[name="chbs_step"]').val();
if($self.getVehiclePriceCalculationStepFirst()!==0){
response.step=1;
if((typeof(response.vehicle_price_calculation_step_first)!=='undefined')&&(typeof(response.vehicle_price_calculation_step_first.message)!=='undefined')&&(parseInt(response.vehicle_price_calculation_step_first.show,10)===1)){
$self.e('.chbs-notice-fixed').removeClass('chbs-hidden');
$self.e('.chbs-notice-fixed span:first').html(response.vehicle_price_calculation_step_first.message);
}else{
$self.e('.chbs-notice-fixed').addClass('chbs-hidden');
}
if(typeof(callback)!=='undefined') callback();
return;
}
$self.e('.chbs-notice-fixed').addClass('chbs-hidden');
response.step=parseInt(response.step,10);
$self.getGlobalNotice().addClass('chbs-hidden');
$self.e('.chbs-main-content>div').css('display','none');
$self.e('.chbs-main-content>div:eq('+(response.step-1)+')').css('display','block');
$self.e('input[name="chbs_step"]').val(response.step);
$self.setMainNavigation();
$self.googleMapDuplicate(-1);
google.maps.event.trigger($googleMap,'resize');
$self.e('select[name="chbs_navigation_responsive"]').val(response.step);
$self.e('select[name="chbs_navigation_responsive"]').selectmenu('refresh');
if(parseInt(response.step,10)===1)
$self.googleMapStartCustomizeHeight();
else $self.googleMapStopCustomizeHeight();
switch(parseInt(response.step,10)){
case 2:
if(typeof(response.redirect_to_url_address)!=='undefined'){
$('body').css({'display':'none'});
window.location.href=response.redirect_to_url_address;
break;
}
$self.e('.chbs-vehicle-filter>.chbs-form-field>select[name="chbs_vehicle_passenger_count"]').replaceWith(response.vehicle_passenger_filter_field);
if(typeof(response.vehicle)!=='undefined'){
$self.e('.chbs-vehicle-list').removeClass('chbs-preloader-1');
$self.e('.chbs-vehicle-list').html(response.vehicle);
$self.recalculateVehiclePrice(response,previousStep);
}
if(typeof(response.booking_extra)!=='undefined')
$self.e('.chbs-booking-extra').html(response.booking_extra);
if(typeof(response.summary)!=='undefined')
$self.e('.chbs-main-content-step-2>.chbs-layout-25x75 .chbs-layout-column-left:first').html(response.summary[0]);
$self.preloadVehicleImage();
$self.createVehicleGallery();
$self.createSelectMenu();
$self.createAutocomplete('.chbs-form-field-location-fixed-autocomplete');
$self.createAutocomplete('.chbs-form-field-route-autocomplete');
$self.manageBookingExtra();
break;
case 3:
if((typeof(response.client_form_sign_in)!=='undefined')&&(typeof(response.client_form_sign_up)!=='undefined')){
$self.e('.chbs-main-content-step-3 .chbs-client-form').html('');
if(typeof(response.client_form_sign_in)!=='undefined')
$self.e('.chbs-main-content-step-3 .chbs-client-form').prepend(response.client_form_sign_in);
if(typeof(response.client_form_sign_up)!=='undefined')
$self.e('.chbs-main-content-step-3 .chbs-client-form').append(response.client_form_sign_up);
if(typeof(response.payment_form)!=='undefined')
$self.e('.chbs-main-content-step-3 .chbs-payment-form').html(response.payment_form);
}
if(typeof(response.summary)!=='undefined')
$self.e('.chbs-main-content-step-3>.chbs-layout-25x75 .chbs-layout-column-left:first').html(response.summary[0]);
$self.setPayment();
$self.createFileField();
$self.createSelectMenu();
$self.createAutocomplete('.chbs-form-field-location-fixed-autocomplete');
$self.createAutocomplete('.chbs-form-field-route-autocomplete');
$self.createFormElementFieldDatePicker();
$self.createFormElementFieldTimePicker();
$self.createFormElementFieldAutocomplete();
break;
case 4:
if(typeof(response.summary)!=='undefined'){
$self.e('.chbs-main-content-step-4>.chbs-layout-33x33x33>.chbs-layout-column-left').html(response.summary[0]);
$self.e('.chbs-main-content-step-4>.chbs-layout-33x33x33>.chbs-layout-column-center').html(response.summary[1]);
$self.e('.chbs-main-content-step-4>.chbs-layout-33x33x33>.chbs-layout-column-right').html(response.summary[2]);
}
$self.e('.chbs-agreement-header,.chbs-agreement').remove();
if(typeof(response.agreement_html)!=='undefined'){
$self.e('.chbs-main-content-step-4>.chbs-layout-33x33x33').after(response.agreement_html);
}
$self.createSelectMenu();
break;
}
$self.createPhoneField();
$self.createLabelTooltip();
$self.createStickySidebar();
if($.inArray(response.step,[2,3,4])>-1){
$self.createCurrencySwitcher();
}
$(window).scroll();
if($.inArray(response.step,[4])>-1)
$self.googleMapDuplicate(response.step);
$('.qtip').remove();
if(typeof(response.error)!=='undefined'){
if(typeof(response.error.global[0])!=='undefined')
$self.getGlobalNotice().removeClass('chbs-hidden').html(response.error.global[0].message);
if(typeof(response.error.local)!=='undefined'){
for(var index in response.error.local){
var selector,object;
var sName=response.error.local[index].field.split('-');
if(isNaN(sName[1])) selector='[name="'+sName[0]+'"]:eq(0)';
else selector='[name="'+sName[0]+'[]"]:eq('+sName[1]+')';
object=$self.e(selector).prevAll('label');
object.qtip({
show:
{
target:$(this)
},
style:
{
classes:(response.error===1 ? 'chbs-qtip chbs-qtip-error':'chbs-qtip chbs-qtip-success')
},
content:
{
text:response.error.local[index].message
},
position:
{
my:($option.rtl_mode ? 'bottom right':'bottom left'),
at:($option.rtl_mode ? 'top right':'top left'),
container:object.parents('[name="chbs-form"]')
}}).qtip('show');
}}
}
if(parseInt(response.step,10)===5){
$self.addGAEvent('booking_send',{'booking_id':response.booking_id});
$self.e('.chbs-main-navigation-default').addClass('chbs-hidden');
$self.e('.chbs-main-navigation-responsive').addClass('chbs-hidden');
if(typeof(response.error)!=='undefined'){
$self.getGlobalNotice().removeClass('chbs-hidden').html(response.error.global[0].message);
}else{
var helper=new CHBSHelper();
if((typeof(response.redirect_to_woocommerce_cart_enable)!=='undefined')&&(parseInt(response.redirect_to_woocommerce_cart_enable,10)===1)){
$('body').css('display','none');
window.location.href=response.redirect_to_woocommerce_cart_url_address;
}
if(parseInt(response.payment_id,10)>0){
if(!helper.isEmpty(response.payment_info))
$self.e('.chbs-booking-complete-payment-'+response.payment_prefix).append('<p>'+response.payment_info+'</p>');
}
switch(parseInt(response.payment_id,10)){
case -2:
if(!helper.isEmpty(response.payment_disable_success_url_address)){
$('body').css('display','none');
window.location.href=response.payment_disable_success_url_address;
}
$self.e('.chbs-booking-complete-payment-disable').css('display','block');
break;
case -1:
if(parseInt(response.thank_you_page_enable,10)!==1){
$('body').css('display','none');
window.location.href=response.payment_url;
}else{
$self.e('.chbs-booking-complete-payment-woocommerce').css('display','block');
$self.e('.chbs-booking-complete-payment-woocommerce>a').attr('href',response.payment_url);
}
break;
case 1:
if(!helper.isEmpty(response.payment_cash_success_url_address)){
$('body').css('display','none');
window.location.href=response.payment_cash_success_url_address;
}
$self.e('.chbs-booking-complete-payment-cash').css('display','block');
break;
case 2:
$('body').css('display','none');
$.getScript('https://js.stripe.com/v3/',function(){
var stripe=Stripe(response.stripe_publishable_key);
var section=$self.e('.chbs-booking-complete-payment-stripe');
$self.e('.chbs-booking-complete').on('click','.chbs-booking-complete-payment-stripe a',function(e){
e.preventDefault();
stripe.redirectToCheckout({
sessionId:response.stripe_session_id
}).then(function(result){
});
});
var counter=parseInt(response.stripe_redirect_duration,10);
if(counter<=0){
section.find('a').trigger('click');
}else{
$('body').css('display','block');
section.css('display','block');
var interval=setInterval(function(){
counter--;
section.find('div>span').html(counter);
if(counter===0){
clearInterval(interval);
section.find('a').trigger('click');
}},1000);
}});
break;
case 3:
$('body').css('display','none');
var section=$self.e('.chbs-booking-complete-payment-paypal');
$self.e('.chbs-booking-complete').on('click','.chbs-booking-complete-payment-paypal a',function(e){
e.preventDefault();
var form=$self.e('form[name="chbs-form-paypal"]');
for(var i in response.form)
form.find('input[name="'+i+'"]').val(response.form[i]);
form.submit();
});
var counter=parseInt(response.payment_paypal_redirect_duration,10);
if(counter<=0){
section.find('a').trigger('click');
}else{
$('body').css('display','block');
section.css('display','block');
var interval=setInterval(function(){
counter--;
section.find('div>span').html(counter);
if(counter===0){
clearInterval(interval);
section.find('a').trigger('click');
}},1000);
}
break;
case 4:
if(!helper.isEmpty(response.payment_wire_transfer_success_url_address)){
$('body').css('display','none');
window.location.href=response.payment_wire_transfer_success_url_address;
}
$self.e('.chbs-booking-complete-payment-wire-transfer').css('display','block');
break;
case 5:
if(!helper.isEmpty(response.payment_credit_card_pickup_success_url_address)){
$('body').css('display','none');
window.location.href=response.payment_credit_card_pickup_success_url_address;
}
$self.e('.chbs-booking-complete-payment-credit-card-pickup').css('display','block');
break;
default:
if(!helper.isEmpty(response.callback_function)){
var object=new window[response.callback_object];
object[response.callback_function](response,$this);
}}
}}
if(useScrollToTop){
var offset=20;
if($('#wpadminbar').length===1)
offset+=$('#wpadminbar').height();
$.scrollTo($this,{offset:-1*offset});
}
if(typeof(callback)!=='undefined') callback();
if(usePreloader){
$self.preloader(false);
}});
};
this.createPhoneField=function(){
var field=$self.e('input[name="chbs_client_contact_detail_phone_number"]');
var fieldPlaceholder=$self.e('input[name="chbs_client_contact_detail_phone_number_placeholder"]');
if(parseInt(fieldPlaceholder.length,10)===1){
if(parseInt($option.phone_number_iti_library_enable,10)===1){
$iti=window.intlTelInput(fieldPlaceholder[0],
{
initialCountry:$option.client_country_code,
separateDialCode:true
});
$iti.setNumber(field.val());
fieldPlaceholder[0].addEventListener('countrychange',function(){
var number=$iti.getNumber();
field.val(number);
});
}else{
fieldPlaceholder.on('change',function(){
var number=fieldPlaceholder.val();
field.val(number);
});
}
fieldPlaceholder.trigger('change');
}};
this.manageBookingExtra=function(){
var bookingExtraList=$self.e('.chbs-booking-extra-list');
var bookingExtraCategoryList=$self.e('.chbs-booking-extra-category-list');
if(bookingExtraList.length!==1) return;
if(parseInt(bookingExtraCategoryList.length)===1){
bookingExtraList.addClass('chbs-hidden');
bookingExtraCategoryList.find('>div>a').off('click');
bookingExtraCategoryList.find('>div>a').on('click',function(e){
e.preventDefault();
var categoryId=$(this).attr('data-category_id');
bookingExtraList=$self.e('.chbs-booking-extra-list');
if($(this).next('.chbs-booking-extra-list').length===1){
if(!$(this).next('.chbs-booking-extra-list').hasClass('chbs-hidden')){
$(this).next('.chbs-booking-extra-list').addClass('chbs-hidden');
return;
}}
bookingExtraList.find('li').each(function(){
if($.inArray(categoryId,$(this).attr('data-category_id').split(','))>-1)
$(this).removeClass('chbs-hidden-by-category');
else $(this).addClass('chbs-hidden-by-category');
});
$(this).after(bookingExtraList);
bookingExtraList.removeClass('chbs-hidden');
});
}
var vehicleIdSelected=$self.e('[name="chbs_vehicle_id"]').val();
bookingExtraList=$self.e('.chbs-booking-extra-list');
bookingExtraList.find('li:not(.chbs-hidden-by-category)').each(function(){
var vehicleId=$(this).attr('data-vehicle_id').split(',');
if(($.inArray('-1',vehicleId)>-1)||($.inArray(vehicleIdSelected,vehicleId)>-1)){
$(this).removeClass('chbs-hidden');
}else{
$(this).addClass('chbs-hidden');
$(this).find('.chbs-button.chbs-button-style-2').removeClass('.chbs-state-selected');
}});
var data=$self.getSelectedBookingExtra(false);
var t=[data.join(','),$self.e('input[name="chbs_booking_extra_id"]').val()];
if(new String(t[0])!==new String(t[1])){
$self.e('input[name="chbs_booking_extra_id"]').val(t[0]);
$self.createSummaryPriceElement();
}};
this.getSelectedBookingExtra=function(set=true){
var data=[];
var bookingExtraList=$self.e('.chbs-booking-extra-list');
var vehicleIdSelected=parseInt($self.e('[name="chbs_vehicle_id"]').val(),10);
bookingExtraList.find('.chbs-button.chbs-button-style-2').each(function(){
var vehicleIdBookingExtra=$(this).parents('li:first').attr('data-vehicle_id').split(',').map(function(val){ return parseInt(val,10); });
if($(this).hasClass('chbs-state-selected')){
if($.inArray(-1,vehicleIdBookingExtra)>-1){
data.push($(this).attr('data-value'));
}
else if(vehicleIdSelected>0){
if($.inArray(vehicleIdSelected,vehicleIdBookingExtra)>-1){
data.push($(this).attr('data-value'));
}}
}});
if(set){
$self.e('input[name="chbs_booking_extra_id"]').val(data.join(','));
}
return(data);
};
this.post=function(data,callback){
$.post($option.ajax_url,data,function(response){
callback(response);
},'json');
};
this.preloader=function(action,forcePreloader=false){
if(!forcePreloader){
if(parseInt($option.form_preloader_enable,10)!==1) return;
if($self.getVehiclePriceCalculationStepFirst()!==0) return;
}
$self.e('#chbs-preloader').css('display',(action ? 'block':'none'));
};
this.preloadVehicleImage=function(){
try
{
$self.e('.chbs-vehicle-list .chbs-vehicle-image img').one('load',function(){
$(this).parent('.chbs-vehicle-image').animate({'opacity':1},300);
}).each(function(){
if(this.complete) $(this).load();
});
}
catch(e){}};
this.createVehicleGallery=function(){
$self.e('.chbs-main-content-step-2').on('click','.chbs-vehicle-list .chbs-vehicle-image img',function(e){
e.preventDefault();
var gallery=$(this).parents('.chbs-vehicle-image:first').nextAll('.chbs-vehicle-gallery');
if(parseInt(gallery.length,10)===1){
$.fancybox({'type': 'iframe','scrolling': 'no'});
$.fancybox.open(gallery.find('img'));
}});
};
this.googleMapStartCustomizeHeight=function(){
if(parseInt($option.widget.mode,10)===1) return;
if(parseInt($self.e('input[name="chbs_step"]').val(),10)!==1) return;
if($googleMapHeightInterval>0) return;
$googleMapHeightInterval=window.setInterval(function(){
$self.googleMapCustomizeHeight();
},500);
};
this.googleMapStopCustomizeHeight=function(){
if(parseInt($option.widget.mode,10)===1) return;
if(parseInt($self.e('input[name="chbs_step"]').val(),10)!==1) return;
clearInterval($googleMapHeightInterval);
$self.e('#chbs_google_map').height('420px');
$googleMapHeightInterval=0;
};
this.googleMapCustomizeHeight=function(){
if(parseInt($option.widget.mode,10)===1) return;
if(parseInt($self.e('input[name="chbs_step"]').val(),10)!==1) return;
var rideInfo=$self.e('.chbs-ride-info');
var columnLeft=$self.e('.chbs-main-content-step-1>.chbs-layout-50x50>.chbs-layout-column-left');
var helper=new CHBSHelper();
if(helper.isMobile()){
$self.e('#chbs_google_map').height('420px');
}else{
$self.e('#chbs_google_map').height(parseInt(columnLeft.actual('height'),10)-parseInt(rideInfo.actual('height'),10));
}
google.maps.event.trigger($googleMap,'resize');
};
this.googleMapDuplicate=function(step){
if(step===4){
var map=$self.e('.chbs-google-map>#chbs_google_map');
if(map.children('div').length)
$self.e('.chbs-google-map-summary').append(map);
$self.e('#chbs_google_map').height('420px');
}else{
var map=$self.e('.chbs-google-map-summary>#chbs_google_map');
if(map.children('div').length)
$self.e('.chbs-google-map').append(map);
}
for(var i in $marker)
$marker[i].setMap($googleMap);
var bound=new google.maps.LatLngBounds();
for(var i in $marker)
bound.extend($marker[i].position);
$googleMap.fitBounds(bound);
google.maps.event.trigger($googleMap,'resize');
};
this.googleMapSetAddress=function(field,callback,setField=false){
var coordinate;
var helper=new CHBSHelper();
if(field.prop('tagName').toLowerCase()==='select'){
callback();
return;
}
else coordinate=JSON.parse(field.val());
if((helper.isEmpty(coordinate.lat))||(helper.isEmpty(coordinate.lng))) return;
var geocoder=new google.maps.Geocoder;
geocoder.geocode({'location':new google.maps.LatLng(coordinate.lat,coordinate.lng)},function(result,status){
if((status==='OK')&&(result[0])){
coordinate.address=$self.removeDoubleQuote(result[0].formatted_address);
if(setField){
var textField=field.parent('.chbs-form-field-location-autocomplete').children('input[type="text"]');
if(textField.length===1) textField.val(coordinate.address);
}
field.val(JSON.stringify(coordinate));
callback();
}});
};
this.isPointInCircle=function(point,pointCenter,radius){
return(google.maps.geometry.spherical.computeDistanceBetween(point,pointCenter)<=radius);
}
this.getGoogleMapAutocompleteOption=function(fieldName,reset=0){
var option={};
var setting={};
var helper=new CHBSHelper();
var fieldType,fieldTypeReverse;
if(parseInt($option.driving_zone.location_field_relation_type,10)!==2){
reset=0;
}
if(fieldName.indexOf('pickup')>-1){
fieldType='pickup';
fieldTypeReverse='dropoff';
setting=$option.driving_zone.pickup;
}
if(fieldName.indexOf('dropoff')>-1){
fieldType='dropoff';
fieldTypeReverse='pickup';
setting=$option.driving_zone.dropoff;
}
if(fieldName.indexOf('waypoint')>-1){
fieldType='waypoint';
fieldTypeReverse='waypoint';
setting=$option.driving_zone.waypoint;
}
option.bounds=null;
option.strictBounds=false;
option.componentRestrictions={};
option.componentRestrictions.country=[];
option.fieldName=fieldName;
option.fieldNameCoordinate=fieldName.replace('location','location_coordinate');
option.fieldNameReverse=fieldName.replace(fieldType,fieldTypeReverse);
option.fieldNameReverseCoordinate=option.fieldNameReverse.replace('location','location_coordinate');
option.fieldType=fieldType;
option.fieldTypeReverse=fieldTypeReverse;
option.restrictionType=0;
option.fields=['address_components','geometry'];
if((parseInt(setting.enable,10)===1)&&(parseInt(reset,10)===0)){
if((!helper.isEmpty(setting.area.coordinate.lat))&&(!helper.isEmpty(setting.area.coordinate.lat))&&(parseInt(setting.area.radius,10)>=0)){
var circle=new google.maps.Circle({
center:new google.maps.LatLng(setting.area.coordinate.lat,setting.area.coordinate.lng),
radius:setting.area.radius*1000
});
option.circle=circle;
option.strictBounds=true;
option.bounds=circle.getBounds();
option.restrictionType=1;
}
if(setting.country.length){
if($.inArray(-1,setting.country)===-1){
option.componentRestrictions={};
option.componentRestrictions.country=setting.country;
option.restrictionType+=2;
}}
}
return(option);
};
this.setGoogleMapAutocompleteOption=function(fieldName){
if(parseInt($option.driving_zone.location_field_relation_type,10)!==2) return;
var Helper=new CHBSHelper();
var fieldOption=$self.getGoogleMapAutocompleteOption(fieldName);
var fieldReverseOption=$self.getGoogleMapAutocompleteOption(fieldOption.fieldNameReverse);
var field=$self.e('[name="'+fieldName+'"]');
var fieldReverse=$self.e('[name="'+fieldOption.fieldNameReverse+'"]');
if((Helper.isEmpty(field.val()))&&(Helper.isEmpty(fieldReverse.val()))){
if(fieldName in $autocomplete){
$autocomplete[fieldName].setOptions($self.getGoogleMapAutocompleteOption(fieldName,1));
}
if(fieldOption.fieldNameReverse in $autocomplete){
$autocomplete[fieldOption.fieldNameReverse].setOptions($self.getGoogleMapAutocompleteOption(fieldOption.fieldNameReverse,1));
}}
else if((!Helper.isEmpty(field.val()))&&(Helper.isEmpty(fieldReverse.val()))){
var fieldCoordinate=JSON.parse($self.e('[name="'+fieldOption.fieldNameCoordinate+'"').val());
var r1=true;
var r2=true;
if(fieldOption.restrictionType==1||fieldOption.restrictionType==3)
r1=$self.isPointInCircle(new google.maps.LatLng(fieldCoordinate.lat,fieldCoordinate.lng),fieldOption.circle.center,fieldOption.circle.radius);
if(fieldOption.restrictionType==2||fieldOption.restrictionType==3){
if($.inArray(fieldCoordinate.country_code,fieldOption.componentRestrictions.country)==-1) r2=false;
}
if(fieldOption.fieldNameReverse in $autocomplete){
$autocomplete[fieldOption.fieldNameReverse].setOptions($self.getGoogleMapAutocompleteOption(fieldOption.fieldNameReverse,(r1&&r2 ? 1:0)));
}
if(fieldOption.fieldName in $autocomplete){
$autocomplete[fieldOption.fieldName].setOptions($self.getGoogleMapAutocompleteOption(fieldOption.fieldName,0));
}}
else if((Helper.isEmpty(field.val()))&&(!Helper.isEmpty(fieldReverse.val()))){
var fieldCoordinate=JSON.parse($self.e('[name="'+fieldReverseOption.fieldNameCoordinate+'"').val());
var r1=true;
var r2=true;
if(fieldReverseOption.restrictionType==1||fieldReverseOption.restrictionType==3)
r1=$self.isPointInCircle(new google.maps.LatLng(fieldCoordinate.lat,fieldCoordinate.lng),fieldReverseOption.circle.center,fieldReverseOption.circle.radius);
if(fieldReverseOption.restrictionType==2||fieldReverseOption.restrictionType==3){
if($.inArray(fieldCoordinate.country_code,fieldReverseOption.componentRestrictions.country)==-1) r2=false;
}
if(fieldOption.fieldName in $autocomplete){
$autocomplete[fieldOption.fieldName].setOptions($self.getGoogleMapAutocompleteOption(fieldOption.fieldName,(r1&&r2 ? 1:0)));
}
if(fieldOption.fieldNameReverse in $autocomplete){
$autocomplete[fieldOption.fieldNameReverse].setOptions($self.getGoogleMapAutocompleteOption(fieldOption.fieldNameReverse,0));
}}
};
this.googleMapAutocompleteCreate=function(text){
if(text.is('[readonly]')) return;
var id='chbs_location_'+(new CHBSHelper()).getRandomString(16);
text.attr('id',id).on('keypress',function(e){
if(e.which===13){
e.preventDefault();
return(false);
}});
var event='change';
if(parseInt($option.driving_zone.location_field_relation_type,10)===2)
event+=' blur';
text.on(event,function(){
if(!$.trim($(this).val()).length){
text.siblings('input[type="hidden"]').val('');
$self.setGoogleMapAutocompleteOption(text.attr('name'));
$self.googleMapCreate();
$self.googleMapCreateRoute();
}});
var fieldName=new String(text.attr('name'));
var option=$self.getGoogleMapAutocompleteOption(fieldName,1);
$autocomplete[fieldName]=new google.maps.places.Autocomplete(document.getElementById(id),option);
$autocomplete[fieldName].addListener('place_changed',function(){
var fieldName=this.fieldName;
var place=$autocomplete[fieldName].getPlace();
if(!place.geometry){
alert($option.message.place_geometry_error);
text.val('');
$self.setGoogleMapAutocompleteOption(fieldName);
return(false);
}
var placeData=
{
lat:place.geometry.location.lat(),
lng:place.geometry.location.lng(),
address:$self.removeDoubleQuote(text.val()),
zip_code:$self.getElementFromPlace(place,'postal_code'),
country_code:$self.getElementFromPlace(place,'country','short_name'),
};
var newLocation=$self.getLocationReplace(place.geometry.location.lat(),place.geometry.location.lng());
if(newLocation!==false){
placeData.lat=newLocation.coordinate.lat;
placeData.lng=newLocation.coordinate.lng;
}
for(var i in place.address_components){
if($.inArray('locality',place.address_components[i].types)>-1){
placeData.locality=place.address_components[i].long_name;
break;
}}
var field=text.siblings('input[type="hidden"]');
field.val(JSON.stringify(placeData));
$self.setGoogleMapAutocompleteOption(fieldName);
$self.googleMapCreateRoute();
});
};
this.getLocationReplace=function(coordinateLat,coordinateLng){
if(parseInt($option.location_replace.length,10)===0) return(false);
var Helper=new CHBSHelper();
for(var i in $option.location_replace){
for(var j in $option.location_replace[i].geofence_shape_coordinate){
var coordinate=[];
var point=[coordinateLng,coordinateLat];
for(var k in $option.location_replace[i].geofence_shape_coordinate[j]){
coordinate.push([$option.location_replace[i].geofence_shape_coordinate[j][k].lng,$option.location_replace[i].geofence_shape_coordinate[j][k].lat]);
}
var result=Helper.coordinateInsidePolygon(point,coordinate);
if(result===true){
return($option.location_replace[i].location);
}}
}
return(false);
};
this.getElementFromPlace=function(place,element,elementType='long_name'){
for(var i=0;i<place.address_components.length;i++){
for(var j=0;j<place.address_components[i].types.length;j++){
if(place.address_components[i].types[j]==element){
var c=place.address_components[i];
return(elementType=='long_name' ? c.long_name:c.short_name);
}}
}
return('');
};
this.googleMapInit=function(){
if(!$self.googleMapExist()) return;
if(parseInt($option.google_map_option.default_location.type,10)===1){
if(navigator.geolocation){
$self.googleMapSetDefaultLocation();
navigator.geolocation.getCurrentPosition(function(position){
try
{
$startLocation=new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
$googleMap.setCenter($startLocation);
}
catch(e){}},
function(){
$self.googleMapSetDefaultLocation();
});
}else{
$self.googleMapSetDefaultLocation();
}}
else $self.googleMapSetDefaultLocation();
};
this.googleMapSetDefaultLocation=function(){
if(typeof($startLocation)==='undefined')
$startLocation=new google.maps.LatLng($option.google_map_option.default_location.coordinate.lat,$option.google_map_option.default_location.coordinate.lng);
if($self.getServiceTypeId()===3) return;
var helper=new CHBSHelper();
var coordinate=[];
coordinate[0]=$self.e('[name="chbs_pickup_location_coordinate_service_type_'+$self.getServiceTypeId()+'"]').val();
coordinate[1]=$self.e('[name="chbs_dropoff_location_coordinate_service_type_'+$self.getServiceTypeId()+'"]').val();
if((!helper.isEmpty(coordinate[0]))&&(!helper.isEmpty(coordinate[1])))
$startLocation=new google.maps.LatLng(coordinate[0],coordinate[1]);
try
{
$googleMap.setCenter($startLocation);
}
catch(e){}};
this.googleMapCreate=function(){
if($self.e('#chbs_google_map').length!==1) return;
var Helper=new CHBSHelper();
var option=
{
draggable:Helper.mapToBool($option.google_map_option.draggable.enable),
scrollwheel:Helper.mapToBool($option.google_map_option.scrollwheel.enable),
mapTypeId:google.maps.MapTypeId[$option.google_map_option.map_control.id],
mapTypeControl:Helper.mapToBool($option.google_map_option.map_control.enable),
mapTypeControlOptions:
{
style:google.maps.MapTypeControlStyle[$option.google_map_option.map_control.style],
position:google.maps.ControlPosition[$option.google_map_option.map_control.position]
},
zoom:$option.google_map_option.zoom_control.level,
zoomControl:Helper.mapToBool($option.google_map_option.zoom_control.enable),
zoomControlOptions:
{
position:google.maps.ControlPosition[$option.google_map_option.zoom_control.position]
},
streetViewControl:false,
styles:$option.google_map_option.style,
mapId:$option.google_map_option.map_id
};
$googleMap=new google.maps.Map($self.e('#chbs_google_map')[0],option);
if(parseInt($option.google_map_option.traffic_layer.enable,10)===1){
var trafficLayer=new google.maps.TrafficLayer();
trafficLayer.setMap($googleMap);
}};
this.getCoordinate=function(includeDropoffLocation=false){
var helper=new CHBSHelper();
var coordinate=new Array();
var serviceTypeId=$self.getServiceTypeId();
var panelField=$self.e('#panel-'+(serviceTypeId)).children('.chbs-form-field-location-autocomplete,.chbs-form-field-location-fixed');
if(serviceTypeId===1||serviceTypeId===2){
panelField.each(function(){
if((serviceTypeId===2)&&($(this).hasClass('chbs-form-field-location-autocomplete'))&&(!includeDropoffLocation)){
if($(this).children('input[name="chbs_dropoff_location_service_type_2"]').length===1) return(true);
}
var c;
try
{
if($(this).hasClass('chbs-form-field-location-autocomplete'))
c=JSON.parse($(this).children('input[type="hidden"]').val());
else
{
if(($(this).find('input.chbs-form-field-location-fixed-autocomplete').length===0)||($(this).find('input.chbs-form-field-location-fixed-autocomplete').val().length)){
c=JSON.parse($(this).find('select>option:selected').attr('data-location'));
}
else c={lat:'',lng:''};}}
catch(e){
c={lat:'',lng:''};}
if((!helper.isEmpty(c.lat))&&(!helper.isEmpty(c.lng)))
coordinate.push(new google.maps.LatLng(c.lat,c.lng));
});
}else{
var data=[];
var p=true;
var option=$self.e('select[name="chbs_route_service_type_3"]>option:selected');
if(parseInt($self.e('[name="chbs_route_service_type_3_autocomplete"]').length,10)===1)
p=!helper.isEmpty($self.e('[name="chbs_route_service_type_3_autocomplete"]').val());
if((parseInt(option.val(),10)>0)&&(p))
data=JSON.parse(option.attr('data-coordinate'));
var field=$self.e('[name="chbs_pickup_location_coordinate_service_type_3"]');
if(parseInt(field.length,10)===1){
if(!helper.isEmpty(field.val()))
data.unshift(JSON.parse(field.val()));
}
var field=$self.e('[name="chbs_dropoff_location_coordinate_service_type_3"]');
if(parseInt(field.length,10)===1){
if(!helper.isEmpty(field.val()))
data.push(JSON.parse(field.val()));
}
for(var i in data){
if((!helper.isEmpty(data[i].lat))&&(!helper.isEmpty(data[i].lng)))
coordinate.push(new google.maps.LatLng(data[i].lat,data[i].lng));
}}
return(coordinate);
};
this.googleMapExist=function(){
return(typeof($googleMap)==='undefined' ? false:true);
};
this.googleMapCreateRoute=function(callback){
var serviceTypeId=$self.getServiceTypeId();
if(!$self.googleMapExist()){
if(typeof(callback)!=='undefined') callback();
return;
}
var request;
var panelField=$self.e('#panel-'+(serviceTypeId)).children('.chbs-form-field-location-autocomplete');
var coordinate=$self.getCoordinate();
var length=coordinate.length;
if(length===0){
$self.googleMapReInit();
if(typeof(callback)!=='undefined') callback();
return;
}
if(serviceTypeId===2){
if(length===2){
coordinate=[coordinate[0]];
length=1;
}}
if(length>2){
var waypoint=new Array();
coordinate.forEach(function(item,i){
if((i>0)&&(i<length-1))
waypoint.push({location:item,vehicleStopover:true});
});
request=
{
origin:coordinate[0],
intermediates:waypoint,
destination:coordinate[length-1],
travelMode:'drive'
};}
else if(length===2){
request=
{
origin:coordinate[0],
destination:coordinate[length-1],
travelMode:'drive'
};}else{
request=
{
origin:coordinate[length-1],
destination:coordinate[length-1],
travelMode:'drive'
};}
request.routeModifiers={};
request.routeModifiers.avoidTolls=$.inArray('tolls',$option.google_map_option.route_avoid)>-1 ? true:false;
request.routeModifiers.avoidFerries=$.inArray('ferries',$option.google_map_option.route_avoid)>-1 ? true:false;
request.routeModifiers.avoidHighways=$.inArray('highways',$option.google_map_option.route_avoid)>-1 ? true:false;
if(parseInt($option.google_map_option.route_type,10)===2){
request.computeAlternativeRoutes=true;
}
$GoogleMapAPI.computeRoutes(request,function(response){
if($GoogleMapAPI.hasRoute(response)){
$self.googleMapCreate();
$self.googleMapClearMarker();
if(parseInt($option.google_map_option.route_type,10)===2){
var distanceMin=-1;
for(var i in response.routes){
var d=$self.formatDistance(response.routes[i].distanceMeters);
if((d<distanceMin)||(distanceMin===-1)){
distanceMin=d;
$routeIndex=i;
}}
}
for(var i in response.routes[$self.getRouteIndex()].legs){
var leg=response.routes[$self.getRouteIndex()].legs[i];
$self.googleMapCreateMarker(leg.startLocation);
$self.googleMapCreateMarker(leg.endLocation);
}
if(parseInt($option.tax_rate_geofence_enable,10)===1){
var routeData=[];
for(var i in response.routes[$self.getRouteIndex()].legs){
var leg=response.routes[$self.getRouteIndex()].legs[i];
for(var j in leg.steps){
var step=leg.steps[j];
routeData.push([step.startLocation,step.endLocation,step.distanceMeters,step.startLocation]);
}}
$self.e('input[name="chbs_route_data"]').val(JSON.stringify(routeData));
}
try
{
$googleMap.fitBounds($GoogleMapAPI.getBound(response,$self.getRouteIndex()));
}
catch(e){}
$GoogleMapAPI.drawRoute(response,$self.getRouteIndex(),$googleMap);
$self.calculateRoute(response,callback);
}else{
if($.inArray(serviceTypeId,[1,3])>-1){
alert($option.message.designate_route_error);
panelField.each(function(){
$(this).children('input[type="text"]').val('');
$(this).children('input[type="hidden"]').val('');
});
if($.inArray(serviceTypeId,[1])>-1){
$self.googleMapReInit();
}
else if($.inArray(serviceTypeId,[3])>-1){
$self.triggerOnSelectDatePicker('[name="chbs_pickup_date_service_type_3"]');
$self.googleMapCreate();
$self.googleMapCreateRoute();
}}
}
if(typeof(callback)!=='undefined') callback();
});
};
this.googleMapClearMarker=function(){
for(var i in $marker)
$marker[i].setMap(null);
$marker=[];
};
this.googleMapCreateMarker=function(position){
var position=new google.maps.LatLng(position.latLng.latitude,position.latLng.longitude);
var label=$marker.length+1;
var marker=new google.maps.marker.AdvancedMarkerElement({
position:position,
map:$googleMap,
title:''+label
});
$marker.push(marker);
};
this.googleMapReInit=function(){
if(!$self.googleMapExist()) return;
$googleMap.setZoom($option.google_map_option.zoom_control.level);
$self.calculateRoute();
try
{
if($startLocation!==null)
$googleMap.setCenter($startLocation);
}
catch(e){}};
this.calculateRoute=function(response,callback){
var distance=0;
var duration=0;
if($GoogleMapAPI.hasRoute(response)){
distance=parseInt(response.routes[$self.getRouteIndex()].distanceMeters,10);
duration=parseInt(response.routes[$self.getRouteIndex()].duration,10);
}
distance=$self.formatDistance(distance);
duration=$self.formatDuration(duration);
if($option.ride_time_rounding>0.00){
duration=Math.ceil(duration/$option.ride_time_rounding)*$option.ride_time_rounding;
}
$self.e('input[name="chbs_distance_map"]').val(distance);
$self.e('input[name="chbs_duration_map"]').val(duration*$option.ride_time_multiplier);
$self.reCalculateRoute(callback);
};
this.reCalculateRoute=function(callback){
var duration=0;
var durationWaypoint=0;
var distance=0;
var serviceTypeId=parseInt($self.e('input[name="chbs_service_type_id"]').val(),10);
distance=$self.e('input[name="chbs_distance_map"]').val();
switch(serviceTypeId){
case 1:
var helper=new CHBSHelper();
duration=$self.e('select[name="chbs_extra_time_service_type_1"]').val();
if(isNaN(duration)) duration=0;
duration*=($option.extra_time_unit===2 ? 60:1);
$self.e('input[name="chbs_waypoint_location_service_type_1[]"]').each(function(){
var coordinate={};
try
{
var coordinate=JSON.parse($(this).next('input').val());
}
catch(e){
coordinate.lat=null;
coordinate.lng=null;
}
if((!helper.isEmpty(coordinate.lat))&&(!helper.isEmpty(coordinate.lng))){
var field=$(this).parent('.chbs-form-field:first').next('.chbs-form-field-waypoint-duration').children('select');
if(parseInt(field.length,10)===1){
durationWaypoint+=parseInt(field.val(),10);
}}
});
break;
case 2:
duration=$self.e('select[name="chbs_duration_service_type_2"]').val();
if(isNaN(duration)) duration=0;
duration*=60;
break;
case 3:
duration=$self.e('select[name="chbs_extra_time_service_type_3"]').val();
if(isNaN(duration)) duration=0;
duration*=($option.extra_time_unit===2 ? 60:1);
break;
}
if($.inArray(serviceTypeId,[1,3])>-1){
var transferType=$self.e('select[name="chbs_transfer_type_service_type_'+serviceTypeId+'"]');
var transferTypeValue=transferType.length===1 ? ($.inArray(parseInt(transferType.val(),10),[2,3])>-1 ? 2:1):1;
duration+=(parseInt($self.e('input[name="chbs_duration_map"]').val(),10)*transferTypeValue)+(durationWaypoint*transferTypeValue);
distance*=transferTypeValue;
}
$self.e('input[name="chbs_distance_sum"]').val(distance);
$self.e('input[name="chbs_duration_sum"]').val(duration);
var sDuration=$self.splitTime(duration);
distance=$self.formatLength(distance);
$self.e('.chbs-ride-info>div:eq(0)>span:eq(2)>span:eq(0)').html(distance);
$self.e('.chbs-ride-info>div:eq(1)>span:eq(2)>span:eq(0)').html(sDuration[0]);
$self.e('.chbs-ride-info>div:eq(1)>span:eq(2)>span:eq(2)').html(sDuration[1]);
$self.calculateBaseLocationDistance(callback);
};
this.formatLength=function(length){
if($option.length_unit===2){
length/=1.609344;
length=Math.round(length*10)/10;
}
return(length);
};
this.splitTime=function(time){
return([Math.floor(time/60),time%60]);
};
this.setWidthClass=function(){
if(parseInt($option.widget.mode,10)===1){
if($this.hasClass('chbs-widget-style-1')) return;
}
var Helper=new CHBSHelper();
var width=Helper.setWidthClass($this);
if($self.prevWidth!==width){
$self.prevWidth=width;
$(window).resize();
$self.createStickySidebar();
if(parseInt($option.widget.mode,10)!==1){
if($.inArray(width,['300','480'])>-1)
$self.googleMapStopCustomizeHeight();
else $self.googleMapStartCustomizeHeight();
}};
$self.e('.chbs-notice-fixed>div').css('width',parseInt($this.css('width'),10));
setTimeout($self.setWidthClass,500);
};
this.getValueFromClass=function(object,pattern){
try
{
var reg=new RegExp(pattern);
var className=$(object).attr('class').split(' ');
for(var i in className){
if(reg.test(className[i]))
return(className[i].substring(pattern.length));
}}
catch(e){}
return(false);
};
this.createSummaryPriceElement=function(){
$self.setAction('create_summary_price_element');
$self.post($self.e('form[name="chbs-form"]').serialize(),function(response){
$self.e('.chbs-summary-price-element').replaceWith(response.html);
$self.createSelectMenu();
$(window).scroll();
});
};
this.createStickySidebar=function(){
if(parseInt($option.summary_sidebar_sticky_enable,10)!==1) return;
var className=$self.getValueFromClass($this,'chbs-width-');
if($.inArray(className,['300','480','768'])>-1){
$self.removeStickySidebar();
return;
}
if($this.hasClass('chbs-hidden')) return;
var step=parseInt($self.e('input[name="chbs_step"]').val(),10);
$sidebar=$self.e('.chbs-main-content>.chbs-main-content-step-'+step+'>.chbs-layout-25x75 .chbs-layout-column-left:first').theiaStickySidebar({'additionalMarginTop':40,'additionalMarginBottom':40});
};
this.removeStickySidebar=function(){
if(parseInt($option.summarySidebarStickyEnable,10)!==1) return;
try
{
$sidebar.destroy();
}
catch(e){}};
this.getGlobalNotice=function(){
var step=parseInt($self.e('input[name="chbs_step"]').val(),10);
return($self.e('.chbs-main-content-step-'+step+' .chbs-notice'));
};
this.calculateBaseLocationDistance=function(callback,coordinate){
if(typeof(coordinate)=='undefined') coordinate=false;
var helper=new CHBSHelper();
var baseLocation;
var baseLocationData={distance:0,duration:0,return_distance:0,return_duration:0};
if(coordinate===false){
$self.e('input[name="chbs_base_location_distance"]').val(0);
$self.e('input[name="chbs_base_location_duration"]').val(0);
$self.e('input[name="chbs_base_location_return_distance"]').val(0);
$self.e('input[name="chbs_base_location_return_duration"]').val(0);
baseLocation={coordinate:{lat:$option.base_location.coordinate.lat,lng:$option.base_location.coordinate.lng}};
var vehicleId=$self.e('input[name="chbs_vehicle_id"]').val();
var vehicle=$self.e('.chbs-vehicle-list .chbs-vehicle[data-id="'+vehicleId+'"]');
if(vehicle.length===1){
if((!helper.isEmpty(vehicle.attr('data-base_location_cooridnate_lat')))&&(!helper.isEmpty(vehicle.attr('data-base_location_cooridnate_lng')))){
baseLocation.coordinate.lat=vehicle.attr('data-base_location_cooridnate_lat');
baseLocation.coordinate.lng=vehicle.attr('data-base_location_cooridnate_lng');
}}
}else{
baseLocationData.id=coordinate.id;
baseLocation={coordinate:{lat:coordinate.lat,lng:coordinate.lng}};}
if((helper.isEmpty(baseLocation.coordinate.lat))||(helper.isEmpty(baseLocation.coordinate.lng))){
$self.doVehiclePriceCalculationStepFirst();
$self.callback(callback,baseLocationData);
return(baseLocationData);
}
var request;
var routeCoordinate=$self.getCoordinate(true);
if(parseInt(routeCoordinate.length,10)===0){
$self.doVehiclePriceCalculationStepFirst();
$self.callback(callback,baseLocationData);
return(baseLocationData);
}
request=
{
origin:new google.maps.LatLng(baseLocation.coordinate.lat,baseLocation.coordinate.lng),
destination:routeCoordinate[0],
travelMode:'drive'
};
$GoogleMapAPI.computeRoutes(request,function(response,status){
if($GoogleMapAPI.hasRoute(response)){
var distance=parseInt(response.routes[0].distanceMeters,10);
var duration=parseInt(response.routes[0].duration,10);
distance=$self.formatDistance(distance);
duration=$self.formatDuration(duration);
if(coordinate===false){
$self.e('input[name="chbs_base_location_distance"]').val(distance);
$self.e('input[name="chbs_base_location_duration"]').val(duration);
}else{
baseLocationData.distance=distance;
baseLocationData.duration=duration;
}
if(routeCoordinate.length>1){
var transferTypeId=1;
var serviceTypeId=$self.getServiceTypeId();
if($.inArray(serviceTypeId,[1,3])>-1){
var transferType=$self.e('select[name="chbs_transfer_type_service_type_'+serviceTypeId+'"]');
transferTypeId=transferType.length===1 ? parseInt(transferType.val(),10):1;
}
request=
{
origin:$.inArray(transferTypeId,[1,3])>-1 ? routeCoordinate[routeCoordinate.length-1]:routeCoordinate[0],
destination:new google.maps.LatLng(baseLocation.coordinate.lat,baseLocation.coordinate.lng),
travelMode:'drive'
};
$GoogleMapAPI.computeRoutes(request,function(response,status){
if($GoogleMapAPI.hasRoute(response)){
var distance=parseInt(response.routes[0].distanceMeters,10);
var duration=parseInt(response.routes[0].duration,10);
distance=$self.formatDistance(distance);
duration=$self.formatDuration(duration);
if(coordinate===false){
$self.e('input[name="chbs_base_location_return_distance"]').val(distance);
$self.e('input[name="chbs_base_location_return_duration"]').val(duration);
}else{
baseLocationData.return_distance=distance;
baseLocationData.return_duration=duration;
}}
$self.doVehiclePriceCalculationStepFirst();
$self.callback(callback,baseLocationData);
});
}else{
$self.doVehiclePriceCalculationStepFirst();
$self.callback(callback,baseLocationData);
}}else{
$self.doVehiclePriceCalculationStepFirst();
$self.callback(callback,baseLocationData);
}});
return(baseLocationData);
};
this.getRouteIndex=function(){
return(isNaN($routeIndex) ? 0:$routeIndex);
};
this.removeDoubleQuote=function(value){
return(value.replace(/"/g,''));
};
this.callback=function(callback,arg){
if(typeof(callback)!=='undefined') callback(arg);
};
this.createButtonRadio=function(selector){
$self.e(selector).on('click','.chbs-button-radio a',function(e){
e.preventDefault();
var field=$(this).parent('.chbs-button-radio').find('input[type="hidden"]');
$(this).siblings('a').removeClass('chbs-state-selected');
if($(this).hasClass('chbs-state-selected')){
field.val(-1);
$(this).removeClass('chbs-state-selected');
}else{
field.val($(this).attr('data-value'));
$(this).addClass('chbs-state-selected');
}});
};
this.formatDistance=function(distance){
if(isNaN(distance)) distance=0;
distance/=1000;
distance=Math.round(distance*10)/10;
if(distance<0) distance=0;
return(distance);
};
this.formatDuration=function(duration){
if(isNaN(duration)) duration=0;
duration=Math.ceil(duration/60);
if(duration<0) duration=0;
return(duration);
};
this.addGAEvent=function(eventName,argument){
if(typeof(chbseGAEvent)!=="undefined"){
chbseGAEvent.addEvent(eventName,argument);
}};
this.createCurrencySwitcher=function(){
if(typeof(CHBSECSCurrencySwitcher)!=="undefined"){
CHBSECSCurrencySwitcher.setup($self);
}};
};
$.fn.chauffeurBookingForm=function(option){
console.log('--------------------------------------------------------------------------------------------');
console.log('Chauffer Booking System for WordPress ver. '+option.plugin_version+(parseInt(option.license_verified,10)===1 ? ' (license verified)':' (license unverified)'));
console.log('https://1.envato.market/chauffeur-booking-system-for-wordpress-preview');
console.log('--------------------------------------------------------------------------------------------');
var form=new ChauffeurBookingForm(this,option);
return(form);
};
})(jQuery,document,window);
!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}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 o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));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=116)}({116:function(e,t,n){"use strict";n.r(t);var r=function(e){return"string"!=typeof e||""===e?(console.error("The namespace must be a non-empty string."),!1):!!/^[a-zA-Z][a-zA-Z0-9_.\-\/]*$/.test(e)||(console.error("The namespace can only contain numbers, letters, dashes, periods, underscores and slashes."),!1)};var o=function(e){return"string"!=typeof e||""===e?(console.error("The hook name must be a non-empty string."),!1):/^__/.test(e)?(console.error("The hook name cannot begin with `__`."),!1):!!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(e)||(console.error("The hook name can only contain numbers, letters, dashes, periods and underscores."),!1)};var i=function(e,t){return function(n,i,a){var s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:10,l=e[t];if(o(n)&&r(i))if("function"==typeof a)if("number"==typeof s){var c={callback:a,priority:s,namespace:i};if(l[n]){var u,d=l[n].handlers;for(u=d.length;u>0&&!(s>=d[u-1].priority);u--);u===d.length?d[u]=c:d.splice(u,0,c),l.__current.forEach((function(e){e.name===n&&e.currentIndex>=u&&e.currentIndex++}))}else l[n]={handlers:[c],runs:0};"hookAdded"!==n&&e.doAction("hookAdded",n,i,a,s)}else console.error("If specified, the hook priority must be a number.");else console.error("The hook callback must be a function.")}};var a=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(i,a){var s=e[t];if(o(i)&&(n||r(a))){if(!s[i])return 0;var l=0;if(n)l=s[i].handlers.length,s[i]={runs:s[i].runs,handlers:[]};else for(var c=s[i].handlers,u=function(e){c[e].namespace===a&&(c.splice(e,1),l++,s.__current.forEach((function(t){t.name===i&&t.currentIndex>=e&&t.currentIndex--})))},d=c.length-1;d>=0;d--)u(d);return"hookRemoved"!==i&&e.doAction("hookRemoved",i,a),l}}};var s=function(e,t){return function(n,r){var o=e[t];return void 0!==r?n in o&&o[n].handlers.some((function(e){return e.namespace===r})):n in o}};var l=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(r){var o=e[t];o[r]||(o[r]={handlers:[],runs:0}),o[r].runs++;var i=o[r].handlers;for(var a=arguments.length,s=new Array(a>1?a-1:0),l=1;l<a;l++)s[l-1]=arguments[l];if(!i||!i.length)return n?s[0]:void 0;var c={name:r,currentIndex:0};for(o.__current.push(c);c.currentIndex<i.length;){var u=i[c.currentIndex],d=u.callback.apply(null,s);n&&(s[0]=d),c.currentIndex++}return o.__current.pop(),n?s[0]:void 0}};var c=function(e,t){return function(){var n,r,o=e[t];return null!==(n=null===(r=o.__current[o.__current.length-1])||void 0===r?void 0:r.name)&&void 0!==n?n:null}};var u=function(e,t){return function(n){var r=e[t];return void 0===n?void 0!==r.__current[0]:!!r.__current[0]&&n===r.__current[0].name}};var d=function(e,t){return function(n){var r=e[t];if(o(n))return r[n]&&r[n].runs?r[n].runs:0}},f=function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.actions=Object.create(null),this.actions.__current=[],this.filters=Object.create(null),this.filters.__current=[],this.addAction=i(this,"actions"),this.addFilter=i(this,"filters"),this.removeAction=a(this,"actions"),this.removeFilter=a(this,"filters"),this.hasAction=s(this,"actions"),this.hasFilter=s(this,"filters"),this.removeAllActions=a(this,"actions",!0),this.removeAllFilters=a(this,"filters",!0),this.doAction=l(this,"actions"),this.applyFilters=l(this,"filters",!0),this.currentAction=c(this,"actions"),this.currentFilter=c(this,"filters"),this.doingAction=u(this,"actions"),this.doingFilter=u(this,"filters"),this.didAction=d(this,"actions"),this.didFilter=d(this,"filters")};var h=function(){return new f},p=h();p.addAction,p.addFilter,p.removeAction,p.removeFilter,p.hasAction,p.hasFilter,p.removeAllActions,p.removeAllFilters,p.doAction,p.applyFilters,p.currentAction,p.currentFilter,p.doingAction,p.doingFilter,p.didAction,p.didFilter,p.actions,p.filters;function v(e){return(v="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function y(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?m(Object(n),!0).forEach((function(t){g(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):m(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function g(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=v(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=v(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==v(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}window.isEditMode=!1,window.eael=window.ea={hooks:h(),isEditMode:!1,elementStatusCheck:function(e){return!(!window.eaElementList||!(e in window.eaElementList))||(window.eaElementList=y(y({},window.eaElementList),{},g({},e,!0)),!1)},debounce:function(e,t){var n;return function(){var r=this,o=arguments;clearTimeout(n),n=setTimeout((function(){e.apply(r,o)}),t)}}},eael.hooks.addAction("widgets.reinit","ea",(function(e){var t=jQuery(".eael-filter-gallery-container",e),n=jQuery(".eael-post-grid:not(.eael-post-carousel)",e),r=jQuery(".eael-twitter-feed-masonry",e),o=jQuery(".eael-instafeed",e),i=jQuery(".premium-gallery-container",e),a=jQuery(".eael-event-calendar-cls",e),s=jQuery(".eael-testimonial-slider",e),l=jQuery(".eael-tm-carousel",e),c=jQuery(".eael-post-carousel:not(.eael-post-grid)",e),u=jQuery(".eael-logo-carousel",e),d=jQuery(".eael-twitter-feed-carousel",e);t.length&&t.isotope("layout"),n.length&&n.isotope("layout"),r.length&&r.isotope("layout"),o.length&&o.isotope("layout"),i.length&&i.isotope("layout"),a.length&&eael.hooks.doAction("eventCalendar.reinit"),s.length&&eael.hooks.doAction("testimonialSlider.reinit"),l.length&&eael.hooks.doAction("teamMemberCarousel.reinit"),c.length&&eael.hooks.doAction("postCarousel.reinit"),u.length&&eael.hooks.doAction("logoCarousel.reinit"),d.length&&eael.hooks.doAction("twitterCarousel.reinit")}));var w,b=function(e){void 0===window.eaelPreventResizeOnClick&&window.dispatchEvent(new Event("resize")),(e="object"===v(e)?e:jQuery(e)).find(".swiper-wrapper").each((function(){var e=jQuery(this).css("transform");jQuery(this).css("transform",e)}))};eael.hooks.addAction("ea-advanced-tabs-triggered","ea",b),eael.hooks.addAction("ea-advanced-accordion-triggered","ea",b),jQuery(window).on("elementor/frontend/init",(function(){window.isEditMode=elementorFrontend.isEditMode(),window.eael.isEditMode=elementorFrontend.isEditMode(),eael.hooks.doAction("init"),eael.isEditMode&&eael.hooks.doAction("editMode.init")})),function(e){eael.getToken=function(){localize.nonce&&!eael.noncegenerated&&e.ajax({url:localize.ajaxurl,type:"post",data:{action:"eael_get_token"},success:function(e){e.success&&(localize.nonce=e.data.nonce,eael.noncegenerated=!0)}})},eael.sanitizeURL=function(e){if(e.startsWith("/")||e.startsWith("#"))return e;try{var t=new URL(e);if(!["http:","https:","ftp:","ftps:","mailto:","news:","irc:","irc6:","ircs:","gopher:","nntp:","feed:","telnet:","mms:","rtsp:","sms:","svn:","tel:","fax:","xmpp:","webcal:","urn:"].includes(t.protocol))throw new Error("Invalid protocol");return t.toString()}catch(e){return console.error("Error sanitizing URL:",e.message),"#"}};var t=!0;window.addEventListener("hashchange",(function(){if(t){var n=window.location.hash.substr(1);"undefined"!==(n="safari"===n?"eael-safari":n)&&n&&/^[A-Za-z][-A-Za-z0-9_:.]*$/.test(n)&&e("#"+n).trigger("click")}})),e("a").on("click",(function(n){var r,o=e(this).attr("href");(r=(o=void 0===o?"":o).startsWith("#"))||(r=(o=o.replace(localize.page_permalink,"")).startsWith("#")),r&&(t=!1,setTimeout((function(){t=!0}),100));try{if(o.startsWith("#!")){var i=o.replace("#!","#");e(i).trigger("click")}else if(r&&(e(o).hasClass("eael-tab-item-trigger")||e(o).hasClass("eael-accordion-header"))&&(e(o).trigger("click"),void 0!==o&&o)){var a=e(o).closest(".eael-advance-tabs");if(a.length>0){var s=a.data("custom-id-offset");s=s?parseFloat(s):0,e("html, body").animate({scrollTop:e(o).offset().top-s},300)}}}catch(e){}})),e(document).on("click",".e-n-tab-title",(function(){setTimeout((function(){window.dispatchEvent(new Event("resize"))}),100)}))}(jQuery),(w=jQuery)(document).on("click",".theme-savoy .eael-product-popup .nm-qty-minus, .theme-savoy .eael-product-popup .nm-qty-plus",(function(e){var t=w(this),n=t.closest(".quantity").find(".qty"),r=parseFloat(n.val()),o=parseFloat(n.attr("max")),i=parseFloat(n.attr("min")),a=n.attr("step");r&&""!==r&&"NaN"!==r||(r=0),""!==o&&"NaN"!==o||(o=""),""!==i&&"NaN"!==i||(i=0),"any"!==a&&""!==a&&void 0!==a&&"NaN"!==parseFloat(a)||(a=1),t.hasClass("nm-qty-plus")?o&&(o==r||r>o)?n.val(o):n.val(r+parseFloat(a)):i&&(i==r||r<i)?n.val(i):r>0&&n.val(r-parseFloat(a))})),function(e){e.fn.isInViewport=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:2;if(e(this).length<1)return!1;var n=e(this).offset().top,r=n+e(this).outerHeight()/t,o=e(window).scrollTop(),i=o+e(window).height()/t;return r>o&&n<i},e(document).ready((function(){var e=new URLSearchParams(location.search);if(e.has("popup-selector")&&(e.has("eael-lostpassword")||e.has("eael-resetpassword"))){var t=e.get("popup-selector");t.length&&/^[A-Za-z.#][A-Za-z0-9_:.#\s-]*$/.test(t)&&(t=t.replace(/_/g," "),setTimeout((function(){jQuery(t).trigger("click")}),300))}})),e(document).on("click",".eael-onpage-edit-template",(function(){var t=e(this),n=t.data("eael-template-id"),r=t.data("page-id"),o=t.data("mode");"edit"===o?(parent.window.$e.internal("panel/state-loading"),parent.window.$e.run("editor/documents/switch",{id:parseInt(n)}).then((function(){t.data("mode","save"),t.find("span").text("Save & Back"),t.find("i").addClass("eicon-arrow-left").removeClass("eicon-edit"),t.closest(".eael-onpage-edit-template-wrapper").addClass("eael-onpage-edit-activate").parent().addClass("eael-widget-otea-active"),parent.window.$e.internal("panel/state-ready")}))):"save"===o&&(parent.window.$e.internal("panel/state-loading"),parent.window.$e.run("editor/documents/switch",{id:parseInt(r),mode:"save",shouldScroll:!1}).then((function(){parent.window.$e.internal("panel/state-ready"),t.data("mode","edit")})))}))}(jQuery)}});
!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof module&&"object"==typeof module.exports?module.exports=e(require("jquery")):e(jQuery)}(function(e){return function(A){"use strict";var L=A.tablesorter={version:"2.31.3",parsers:[],widgets:[],defaults:{theme:"default",widthFixed:!1,showProcessing:!1,headerTemplate:"{content}",onRenderTemplate:null,onRenderHeader:null,cancelSelection:!0,tabIndex:!0,dateFormat:"mmddyyyy",sortMultiSortKey:"shiftKey",sortResetKey:"ctrlKey",usNumberFormat:!0,delayInit:!1,serverSideSorting:!1,resort:!0,headers:{},ignoreCase:!0,sortForce:null,sortList:[],sortAppend:null,sortStable:!1,sortInitialOrder:"asc",sortLocaleCompare:!1,sortReset:!1,sortRestart:!1,emptyTo:"bottom",stringTo:"max",duplicateSpan:!0,textExtraction:"basic",textAttribute:"data-text",textSorter:null,numberSorter:null,initWidgets:!0,widgetClass:"widget-{name}",widgets:[],widgetOptions:{zebra:["even","odd"]},initialized:null,tableClass:"",cssAsc:"",cssDesc:"",cssNone:"",cssHeader:"",cssHeaderRow:"",cssProcessing:"",cssChildRow:"tablesorter-childRow",cssInfoBlock:"tablesorter-infoOnly",cssNoSort:"tablesorter-noSort",cssIgnoreRow:"tablesorter-ignoreRow",cssIcon:"tablesorter-icon",cssIconNone:"",cssIconAsc:"",cssIconDesc:"",cssIconDisabled:"",pointerClick:"click",pointerDown:"mousedown",pointerUp:"mouseup",selectorHeaders:"> thead th, > thead td",selectorSort:"th, td",selectorRemove:".remove-me",debug:!1,headerList:[],empties:{},strings:{},parsers:[],globalize:0,imgAttr:0},css:{table:"tablesorter",cssHasChild:"tablesorter-hasChildRow",childRow:"tablesorter-childRow",colgroup:"tablesorter-colgroup",header:"tablesorter-header",headerRow:"tablesorter-headerRow",headerIn:"tablesorter-header-inner",icon:"tablesorter-icon",processing:"tablesorter-processing",sortAsc:"tablesorter-headerAsc",sortDesc:"tablesorter-headerDesc",sortNone:"tablesorter-headerUnSorted"},language:{sortAsc:"Ascending sort applied, ",sortDesc:"Descending sort applied, ",sortNone:"No sort applied, ",sortDisabled:"sorting is disabled",nextAsc:"activate to apply an ascending sort",nextDesc:"activate to apply a descending sort",nextNone:"activate to remove the sort"},regex:{templateContent:/\{content\}/g,templateIcon:/\{icon\}/g,templateName:/\{name\}/i,spaces:/\s+/g,nonWord:/\W/g,formElements:/(input|select|button|textarea)/i,chunk:/(^([+\-]?(?:\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?)?$|^0x[0-9a-f]+$|\d+)/gi,chunks:/(^\\0|\\0$)/,hex:/^0x[0-9a-f]+$/i,comma:/,/g,digitNonUS:/[\s|\.]/g,digitNegativeTest:/^\s*\([.\d]+\)/,digitNegativeReplace:/^\s*\(([.\d]+)\)/,digitTest:/^[\-+(]?\d+[)]?$/,digitReplace:/[,.'"\s]/g},string:{max:1,min:-1,emptymin:1,emptymax:-1,zero:0,none:0,"null":0,top:!0,bottom:!1},keyCodes:{enter:13},dates:{},instanceMethods:{},setup:function(t,r){if(t&&t.tHead&&0!==t.tBodies.length&&!0!==t.hasInitialized){var e,o="",s=A(t),a=A.metadata;t.hasInitialized=!1,t.isProcessing=!0,t.config=r,A.data(t,"tablesorter",r),L.debug(r,"core")&&(console[console.group?"group":"log"]("Initializing tablesorter v"+L.version),A.data(t,"startoveralltimer",new Date)),r.supportsDataObject=((e=A.fn.jquery.split("."))[0]=parseInt(e[0],10),1<e[0]||1===e[0]&&4<=parseInt(e[1],10)),r.emptyTo=r.emptyTo.toLowerCase(),r.stringTo=r.stringTo.toLowerCase(),r.last={sortList:[],clickedIndex:-1},/tablesorter\-/.test(s.attr("class"))||(o=""!==r.theme?" tablesorter-"+r.theme:""),r.namespace?r.namespace="."+r.namespace.replace(L.regex.nonWord,""):r.namespace=".tablesorter"+Math.random().toString(16).slice(2),r.table=t,r.$table=s.addClass(L.css.table+" "+r.tableClass+o+" "+r.namespace.slice(1)).attr("role","grid"),r.$headers=s.find(r.selectorHeaders),r.$table.children().children("tr").attr("role","row"),r.$tbodies=s.children("tbody:not(."+r.cssInfoBlock+")").attr({"aria-live":"polite","aria-relevant":"all"}),r.$table.children("caption").length&&((o=r.$table.children("caption")[0]).id||(o.id=r.namespace.slice(1)+"caption"),r.$table.attr("aria-labelledby",o.id)),r.widgetInit={},r.textExtraction=r.$table.attr("data-text-extraction")||r.textExtraction||"basic",L.buildHeaders(r),L.fixColumnWidth(t),L.addWidgetFromClass(t),L.applyWidgetOptions(t),L.setupParsers(r),r.totalRows=0,r.debug&&L.validateOptions(r),r.delayInit||L.buildCache(r),L.bindEvents(t,r.$headers,!0),L.bindMethods(r),r.supportsDataObject&&void 0!==s.data().sortlist?r.sortList=s.data().sortlist:a&&s.metadata()&&s.metadata().sortlist&&(r.sortList=s.metadata().sortlist),L.applyWidget(t,!0),0<r.sortList.length?(r.last.sortList=r.sortList,L.sortOn(r,r.sortList,{},!r.initWidgets)):(L.setHeadersCss(r),r.initWidgets&&L.applyWidget(t,!1)),r.showProcessing&&s.unbind("sortBegin"+r.namespace+" sortEnd"+r.namespace).bind("sortBegin"+r.namespace+" sortEnd"+r.namespace,function(e){clearTimeout(r.timerProcessing),L.isProcessing(t),"sortBegin"===e.type&&(r.timerProcessing=setTimeout(function(){L.isProcessing(t,!0)},500))}),t.hasInitialized=!0,t.isProcessing=!1,L.debug(r,"core")&&(console.log("Overall initialization time:"+L.benchmark(A.data(t,"startoveralltimer"))),L.debug(r,"core")&&console.groupEnd&&console.groupEnd()),s.triggerHandler("tablesorter-initialized",t),"function"==typeof r.initialized&&r.initialized(t)}else L.debug(r,"core")&&(t.hasInitialized?console.warn("Stopping initialization. Tablesorter has already been initialized"):console.error("Stopping initialization! No table, thead or tbody",t))},bindMethods:function(r){var e=r.$table,t=r.namespace,o="sortReset update updateRows updateAll updateHeaders addRows updateCell updateComplete sorton appendCache updateCache applyWidgetId applyWidgets refreshWidgets destroy mouseup mouseleave ".split(" ").join(t+" ");e.unbind(o.replace(L.regex.spaces," ")).bind("sortReset"+t,function(e,t){e.stopPropagation(),L.sortReset(this.config,function(e){e.isApplyingWidgets?setTimeout(function(){L.applyWidget(e,"",t)},100):L.applyWidget(e,"",t)})}).bind("updateAll"+t,function(e,t,r){e.stopPropagation(),L.updateAll(this.config,t,r)}).bind("update"+t+" updateRows"+t,function(e,t,r){e.stopPropagation(),L.update(this.config,t,r)}).bind("updateHeaders"+t,function(e,t){e.stopPropagation(),L.updateHeaders(this.config,t)}).bind("updateCell"+t,function(e,t,r,o){e.stopPropagation(),L.updateCell(this.config,t,r,o)}).bind("addRows"+t,function(e,t,r,o){e.stopPropagation(),L.addRows(this.config,t,r,o)}).bind("updateComplete"+t,function(){this.isUpdating=!1}).bind("sorton"+t,function(e,t,r,o){e.stopPropagation(),L.sortOn(this.config,t,r,o)}).bind("appendCache"+t,function(e,t,r){e.stopPropagation(),L.appendCache(this.config,r),A.isFunction(t)&&t(this)}).bind("updateCache"+t,function(e,t,r){e.stopPropagation(),L.updateCache(this.config,t,r)}).bind("applyWidgetId"+t,function(e,t){e.stopPropagation(),L.applyWidgetId(this,t)}).bind("applyWidgets"+t,function(e,t){e.stopPropagation(),L.applyWidget(this,!1,t)}).bind("refreshWidgets"+t,function(e,t,r){e.stopPropagation(),L.refreshWidgets(this,t,r)}).bind("removeWidget"+t,function(e,t,r){e.stopPropagation(),L.removeWidget(this,t,r)}).bind("destroy"+t,function(e,t,r){e.stopPropagation(),L.destroy(this,t,r)}).bind("resetToLoadState"+t,function(e){e.stopPropagation(),L.removeWidget(this,!0,!1);var t=A.extend(!0,{},r.originalSettings);(r=A.extend(!0,{},L.defaults,t)).originalSettings=t,this.hasInitialized=!1,L.setup(this,r)})},bindEvents:function(e,t,r){var o,i=(e=A(e)[0]).config,s=i.namespace,d=null;!0!==r&&(t.addClass(s.slice(1)+"_extra_headers"),(o=L.getClosest(t,"table")).length&&"TABLE"===o[0].nodeName&&o[0]!==e&&A(o[0]).addClass(s.slice(1)+"_extra_table")),o=(i.pointerDown+" "+i.pointerUp+" "+i.pointerClick+" sort keyup ").replace(L.regex.spaces," ").split(" ").join(s+" "),t.find(i.selectorSort).add(t.filter(i.selectorSort)).unbind(o).bind(o,function(e,t){var r,o,s,a=A(e.target),n=" "+e.type+" ";if(!(1!==(e.which||e.button)&&!n.match(" "+i.pointerClick+" | sort | keyup ")||" keyup "===n&&e.which!==L.keyCodes.enter||n.match(" "+i.pointerClick+" ")&&void 0!==e.which||n.match(" "+i.pointerUp+" ")&&d!==e.target&&!0!==t)){if(n.match(" "+i.pointerDown+" "))return d=e.target,void("1"===(s=a.jquery.split("."))[0]&&s[1]<4&&e.preventDefault());if(d=null,r=L.getClosest(A(this),"."+L.css.header),L.regex.formElements.test(e.target.nodeName)||a.hasClass(i.cssNoSort)||0<a.parents("."+i.cssNoSort).length||r.hasClass("sorter-false")||0<a.parents("button").length)return!i.cancelSelection;i.delayInit&&L.isEmptyObject(i.cache)&&L.buildCache(i),i.last.clickedIndex=r.attr("data-column")||r.index(),(o=i.$headerIndexed[i.last.clickedIndex][0])&&!o.sortDisabled&&L.initSort(i,o,e)}}),i.cancelSelection&&t.attr("unselectable","on").bind("selectstart",!1).css({"user-select":"none",MozUserSelect:"none"})},buildHeaders:function(d){var e,l,t,r;for(d.headerList=[],d.headerContent=[],d.sortVars=[],L.debug(d,"core")&&(t=new Date),d.columns=L.computeColumnIndex(d.$table.children("thead, tfoot").children("tr")),l=d.cssIcon?'<i class="'+(d.cssIcon===L.css.icon?L.css.icon:d.cssIcon+" "+L.css.icon)+'"></i>':"",d.$headers=A(A.map(d.$table.find(d.selectorHeaders),function(e,t){var r,o,s,a,n,i=A(e);if(!L.getClosest(i,"tr").hasClass(d.cssIgnoreRow))return/(th|td)/i.test(e.nodeName)||(n=L.getClosest(i,"th, td"),i.attr("data-column",n.attr("data-column"))),r=L.getColumnData(d.table,d.headers,t,!0),d.headerContent[t]=i.html(),""===d.headerTemplate||i.find("."+L.css.headerIn).length||(a=d.headerTemplate.replace(L.regex.templateContent,i.html()).replace(L.regex.templateIcon,i.find("."+L.css.icon).length?"":l),d.onRenderTemplate&&(o=d.onRenderTemplate.apply(i,[t,a]))&&"string"==typeof o&&(a=o),i.html('<div class="'+L.css.headerIn+'">'+a+"</div>")),d.onRenderHeader&&d.onRenderHeader.apply(i,[t,d,d.$table]),s=parseInt(i.attr("data-column"),10),e.column=s,n=L.getOrder(L.getData(i,r,"sortInitialOrder")||d.sortInitialOrder),d.sortVars[s]={count:-1,order:n?d.sortReset?[1,0,2]:[1,0]:d.sortReset?[0,1,2]:[0,1],lockedOrder:!1,sortedBy:""},void 0!==(n=L.getData(i,r,"lockedOrder")||!1)&&!1!==n&&(d.sortVars[s].lockedOrder=!0,d.sortVars[s].order=L.getOrder(n)?[1,1]:[0,0]),d.headerList[t]=e,i.addClass(L.css.header+" "+d.cssHeader),L.getClosest(i,"tr").addClass(L.css.headerRow+" "+d.cssHeaderRow).attr("role","row"),d.tabIndex&&i.attr("tabindex",0),e})),d.$headerIndexed=[],r=0;r<d.columns;r++)L.isEmptyObject(d.sortVars[r])&&(d.sortVars[r]={}),e=d.$headers.filter('[data-column="'+r+'"]'),d.$headerIndexed[r]=e.length?e.not(".sorter-false").length?e.not(".sorter-false").filter(":last"):e.filter(":last"):A();d.$table.find(d.selectorHeaders).attr({scope:"col",role:"columnheader"}),L.updateHeader(d),L.debug(d,"core")&&(console.log("Built headers:"+L.benchmark(t)),console.log(d.$headers))},addInstanceMethods:function(e){A.extend(L.instanceMethods,e)},setupParsers:function(e,t){var r,o,s,a,n,i,d,l,c,g,p,u,f,h,m=e.table,b=0,y=L.debug(e,"core"),w={};if(e.$tbodies=e.$table.children("tbody:not(."+e.cssInfoBlock+")"),0===(h=(f=void 0===t?e.$tbodies:t).length))return y?console.warn("Warning: *Empty table!* Not building a parser cache"):"";for(y&&(u=new Date,console[console.group?"group":"log"]("Detecting parsers for each column")),o={extractors:[],parsers:[]};b<h;){if((r=f[b].rows).length)for(n=0,a=e.columns,i=0;i<a;i++){if((d=e.$headerIndexed[n])&&d.length&&(l=L.getColumnData(m,e.headers,n),p=L.getParserById(L.getData(d,l,"extractor")),g=L.getParserById(L.getData(d,l,"sorter")),c="false"===L.getData(d,l,"parser"),e.empties[n]=(L.getData(d,l,"empty")||e.emptyTo||(e.emptyToBottom?"bottom":"top")).toLowerCase(),e.strings[n]=(L.getData(d,l,"string")||e.stringTo||"max").toLowerCase(),c&&(g=L.getParserById("no-parser")),p=p||!1,g=g||L.detectParserForColumn(e,r,-1,n),y&&(w["("+n+") "+d.text()]={parser:g.id,extractor:p?p.id:"none",string:e.strings[n],empty:e.empties[n]}),o.parsers[n]=g,o.extractors[n]=p,0<(s=d[0].colSpan-1)))for(n+=s,a+=s;0<s+1;)o.parsers[n-s]=g,o.extractors[n-s]=p,s--;n++}b+=o.parsers.length?h:1}y&&(L.isEmptyObject(w)?console.warn("  No parsers detected!"):console[console.table?"table":"log"](w),console.log("Completed detecting parsers"+L.benchmark(u)),console.groupEnd&&console.groupEnd()),e.parsers=o.parsers,e.extractors=o.extractors},addParser:function(e){var t,r=L.parsers.length,o=!0;for(t=0;t<r;t++)L.parsers[t].id.toLowerCase()===e.id.toLowerCase()&&(o=!1);o&&(L.parsers[L.parsers.length]=e)},getParserById:function(e){if("false"==e)return!1;var t,r=L.parsers.length;for(t=0;t<r;t++)if(L.parsers[t].id.toLowerCase()===e.toString().toLowerCase())return L.parsers[t];return!1},detectParserForColumn:function(e,t,r,o){for(var s,a,n,i=L.parsers.length,d=!1,l="",c=L.debug(e,"core"),g=!0;""===l&&g;)(n=t[++r])&&r<50?n.className.indexOf(L.cssIgnoreRow)<0&&(d=t[r].cells[o],l=L.getElementText(e,d,o),a=A(d),c&&console.log("Checking if value was empty on row "+r+", column: "+o+': "'+l+'"')):g=!1;for(;0<=--i;)if((s=L.parsers[i])&&"text"!==s.id&&s.is&&s.is(l,e.table,d,a))return s;return L.getParserById("text")},getElementText:function(e,t,r){if(!t)return"";var o,s=e.textExtraction||"",a=t.jquery?t:A(t);return"string"==typeof s?"basic"===s&&void 0!==(o=a.attr(e.textAttribute))?A.trim(o):A.trim(t.textContent||a.text()):"function"==typeof s?A.trim(s(a[0],e.table,r)):"function"==typeof(o=L.getColumnData(e.table,s,r))?A.trim(o(a[0],e.table,r)):A.trim(a[0].textContent||a.text())},getParsedText:function(e,t,r,o){void 0===o&&(o=L.getElementText(e,t,r));var s=""+o,a=e.parsers[r],n=e.extractors[r];return a&&(n&&"function"==typeof n.format&&(o=n.format(o,e.table,t,r)),s="no-parser"===a.id?"":a.format(""+o,e.table,t,r),e.ignoreCase&&"string"==typeof s&&(s=s.toLowerCase())),s},buildCache:function(e,t,r){var o,s,a,n,i,d,l,c,g,p,u,f,h,m,b,y,w,x,v,C,$,I,D=e.table,R=e.parsers,T=L.debug(e,"core");if(e.$tbodies=e.$table.children("tbody:not(."+e.cssInfoBlock+")"),l=void 0===r?e.$tbodies:r,e.cache={},e.totalRows=0,!R)return T?console.warn("Warning: *Empty table!* Not building a cache"):"";for(T&&(f=new Date),e.showProcessing&&L.isProcessing(D,!0),d=0;d<l.length;d++){for(y=[],o=e.cache[d]={normalized:[]},h=l[d]&&l[d].rows.length||0,n=0;n<h;++n)if(m={child:[],raw:[]},g=[],!(c=A(l[d].rows[n])).hasClass(e.selectorRemove.slice(1)))if(c.hasClass(e.cssChildRow)&&0!==n)for($=o.normalized.length-1,(b=o.normalized[$][e.columns]).$row=b.$row.add(c),c.prev().hasClass(e.cssChildRow)||c.prev().addClass(L.css.cssHasChild),p=c.children("th, td"),$=b.child.length,b.child[$]=[],x=0,C=e.columns,i=0;i<C;i++)(u=p[i])&&(b.child[$][i]=L.getParsedText(e,u,i),0<(w=p[i].colSpan-1)&&(x+=w,C+=w)),x++;else{for(m.$row=c,m.order=n,x=0,C=e.columns,i=0;i<C;++i){if((u=c[0].cells[i])&&x<e.columns&&(!(v=void 0!==R[x])&&T&&console.warn("No parser found for row: "+n+", column: "+i+'; cell containing: "'+A(u).text()+'"; does it have a header?'),s=L.getElementText(e,u,x),m.raw[x]=s,a=L.getParsedText(e,u,x,s),g[x]=a,v&&"numeric"===(R[x].type||"").toLowerCase()&&(y[x]=Math.max(Math.abs(a)||0,y[x]||0)),0<(w=u.colSpan-1))){for(I=0;I<=w;)a=e.duplicateSpan||0===I?a:"string"!=typeof e.textExtraction&&L.getElementText(e,u,x+I)||"",m.raw[x+I]=a,g[x+I]=a,I++;x+=w,C+=w}x++}g[e.columns]=m,o.normalized[o.normalized.length]=g}o.colMax=y,e.totalRows+=o.normalized.length}if(e.showProcessing&&L.isProcessing(D),T){for($=Math.min(5,e.cache[0].normalized.length),console[console.group?"group":"log"]("Building cache for "+e.totalRows+" rows (showing "+$+" rows in log) and "+e.columns+" columns"+L.benchmark(f)),s={},i=0;i<e.columns;i++)for(x=0;x<$;x++)s["row: "+x]||(s["row: "+x]={}),s["row: "+x][e.$headerIndexed[i].text()]=e.cache[0].normalized[x][i];console[console.table?"table":"log"](s),console.groupEnd&&console.groupEnd()}A.isFunction(t)&&t(D)},getColumnText:function(e,t,r,o){var s,a,n,i,d,l,c,g,p,u,f="function"==typeof r,h="all"===t,m={raw:[],parsed:[],$cell:[]},b=(e=A(e)[0]).config;if(!L.isEmptyObject(b)){for(d=b.$tbodies.length,s=0;s<d;s++)for(l=(n=b.cache[s].normalized).length,a=0;a<l;a++)i=n[a],o&&!i[b.columns].$row.is(o)||(u=!0,g=h?i.slice(0,b.columns):i[t],i=i[b.columns],c=h?i.raw:i.raw[t],p=h?i.$row.children():i.$row.children().eq(t),f&&(u=r({tbodyIndex:s,rowIndex:a,parsed:g,raw:c,$row:i.$row,$cell:p})),!1!==u&&(m.parsed[m.parsed.length]=g,m.raw[m.raw.length]=c,m.$cell[m.$cell.length]=p));return m}L.debug(b,"core")&&console.warn("No cache found - aborting getColumnText function!")},setHeadersCss:function(a){function e(e,t){e.removeClass(n).addClass(i[t]).attr("aria-sort",l[t]).find("."+L.css.icon).removeClass(d[2]).addClass(d[t])}var t,r,o=a.sortList,s=o.length,n=L.css.sortNone+" "+a.cssNone,i=[L.css.sortAsc+" "+a.cssAsc,L.css.sortDesc+" "+a.cssDesc],d=[a.cssIconAsc,a.cssIconDesc,a.cssIconNone],l=["ascending","descending"],c=a.$table.find("tfoot tr").children("td, th").add(A(a.namespace+"_extra_headers")).removeClass(i.join(" ")),g=a.$headers.add(A("thead "+a.namespace+"_extra_headers")).removeClass(i.join(" ")).addClass(n).attr("aria-sort","none").find("."+L.css.icon).removeClass(d.join(" ")).end();for(g.not(".sorter-false").find("."+L.css.icon).addClass(d[2]),a.cssIconDisabled&&g.filter(".sorter-false").find("."+L.css.icon).addClass(a.cssIconDisabled),t=0;t<s;t++)if(2!==o[t][1]){if((g=(g=a.$headers.filter(function(e){for(var t=!0,r=a.$headers.eq(e),o=parseInt(r.attr("data-column"),10),s=o+L.getClosest(r,"th, td")[0].colSpan;o<s;o++)t=!!t&&(t||-1<L.isValueInArray(o,a.sortList));return t})).not(".sorter-false").filter('[data-column="'+o[t][0]+'"]'+(1===s?":last":""))).length)for(r=0;r<g.length;r++)g[r].sortDisabled||e(g.eq(r),o[t][1]);c.length&&e(c.filter('[data-column="'+o[t][0]+'"]'),o[t][1])}for(s=a.$headers.length,t=0;t<s;t++)L.setColumnAriaLabel(a,a.$headers.eq(t))},getClosest:function(e,t){return A.fn.closest?e.closest(t):e.is(t)?e:e.parents(t).filter(":first")},setColumnAriaLabel:function(e,t,r){if(t.length){var o=parseInt(t.attr("data-column"),10),s=e.sortVars[o],a=t.hasClass(L.css.sortAsc)?"sortAsc":t.hasClass(L.css.sortDesc)?"sortDesc":"sortNone",n=A.trim(t.text())+": "+L.language[a];t.hasClass("sorter-false")||!1===r?n+=L.language.sortDisabled:(a=(s.count+1)%s.order.length,r=s.order[a],n+=L.language[0===r?"nextAsc":1===r?"nextDesc":"nextNone"]),t.attr("aria-label",n),s.sortedBy?t.attr("data-sortedBy",s.sortedBy):t.removeAttr("data-sortedBy")}},updateHeader:function(e){var t,r,o,s,a=e.table,n=e.$headers.length;for(t=0;t<n;t++)o=e.$headers.eq(t),s=L.getColumnData(a,e.headers,t,!0),r="false"===L.getData(o,s,"sorter")||"false"===L.getData(o,s,"parser"),L.setColumnSort(e,o,r)},setColumnSort:function(e,t,r){var o=e.table.id;t[0].sortDisabled=r,t[r?"addClass":"removeClass"]("sorter-false").attr("aria-disabled",""+r),e.tabIndex&&(r?t.removeAttr("tabindex"):t.attr("tabindex","0")),o&&(r?t.removeAttr("aria-controls"):t.attr("aria-controls",o))},updateHeaderSortCount:function(e,t){var r,o,s,a,n,i,d,l,c=t||e.sortList,g=c.length;for(e.sortList=[],a=0;a<g;a++)if(d=c[a],(r=parseInt(d[0],10))<e.columns){switch(e.sortVars[r].order||(l=L.getOrder(e.sortInitialOrder)?e.sortReset?[1,0,2]:[1,0]:e.sortReset?[0,1,2]:[0,1],e.sortVars[r].order=l,e.sortVars[r].count=0),l=e.sortVars[r].order,o=(o=(""+d[1]).match(/^(1|d|s|o|n)/))?o[0]:""){case"1":case"d":o=1;break;case"s":o=n||0;break;case"o":o=0===(i=l[(n||0)%l.length])?1:1===i?0:2;break;case"n":o=l[++e.sortVars[r].count%l.length];break;default:o=0}n=0===a?o:n,s=[r,parseInt(o,10)||0],e.sortList[e.sortList.length]=s,o=A.inArray(s[1],l),e.sortVars[r].count=0<=o?o:s[1]%l.length}},updateAll:function(e,t,r){var o=e.table;o.isUpdating=!0,L.refreshWidgets(o,!0,!0),L.buildHeaders(e),L.bindEvents(o,e.$headers,!0),L.bindMethods(e),L.commonUpdate(e,t,r)},update:function(e,t,r){e.table.isUpdating=!0,L.updateHeader(e),L.commonUpdate(e,t,r)},updateHeaders:function(e,t){e.table.isUpdating=!0,L.buildHeaders(e),L.bindEvents(e.table,e.$headers,!0),L.resortComplete(e,t)},updateCell:function(e,t,r,o){if(A(t).closest("tr").hasClass(e.cssChildRow))console.warn('Tablesorter Warning! "updateCell" for child row content has been disabled, use "update" instead');else{if(L.isEmptyObject(e.cache))return L.updateHeader(e),void L.commonUpdate(e,r,o);e.table.isUpdating=!0,e.$table.find(e.selectorRemove).remove();var s,a,n,i,d,l,c=e.$tbodies,g=A(t),p=c.index(L.getClosest(g,"tbody")),u=e.cache[p],f=L.getClosest(g,"tr");if(t=g[0],c.length&&0<=p){if(n=c.eq(p).find("tr").not("."+e.cssChildRow).index(f),d=u.normalized[n],(l=f[0].cells.length)!==e.columns)for(s=!1,a=i=0;a<l;a++)s||f[0].cells[a]===t?s=!0:i+=f[0].cells[a].colSpan;else i=g.index();s=L.getElementText(e,t,i),d[e.columns].raw[i]=s,s=L.getParsedText(e,t,i,s),d[i]=s,"numeric"===(e.parsers[i].type||"").toLowerCase()&&(u.colMax[i]=Math.max(Math.abs(s)||0,u.colMax[i]||0)),!1!==(s="undefined"!==r?r:e.resort)?L.checkResort(e,s,o):L.resortComplete(e,o)}else L.debug(e,"core")&&console.error("updateCell aborted, tbody missing or not within the indicated table"),e.table.isUpdating=!1}},addRows:function(e,t,r,o){var s,a,n,i,d,l,c,g,p,u,f,h,m,b="string"==typeof t&&1===e.$tbodies.length&&/<tr/.test(t||""),y=e.table;if(b)t=A(t),e.$tbodies.append(t);else if(!(t&&t instanceof A&&L.getClosest(t,"table")[0]===e.table))return L.debug(e,"core")&&console.error("addRows method requires (1) a jQuery selector reference to rows that have already been added to the table, or (2) row HTML string to be added to a table with only one tbody"),!1;if(y.isUpdating=!0,L.isEmptyObject(e.cache))L.updateHeader(e),L.commonUpdate(e,r,o);else{for(d=t.filter("tr").attr("role","row").length,n=e.$tbodies.index(t.parents("tbody").filter(":first")),e.parsers&&e.parsers.length||L.setupParsers(e),i=0;i<d;i++){for(p=0,c=t[i].cells.length,g=e.cache[n].normalized.length,f=[],u={child:[],raw:[],$row:t.eq(i),order:g},l=0;l<c;l++)h=t[i].cells[l],s=L.getElementText(e,h,p),u.raw[p]=s,a=L.getParsedText(e,h,p,s),f[p]=a,"numeric"===(e.parsers[p].type||"").toLowerCase()&&(e.cache[n].colMax[p]=Math.max(Math.abs(a)||0,e.cache[n].colMax[p]||0)),0<(m=h.colSpan-1)&&(p+=m),p++;f[e.columns]=u,e.cache[n].normalized[g]=f}L.checkResort(e,r,o)}},updateCache:function(e,t,r){e.parsers&&e.parsers.length||L.setupParsers(e,r),L.buildCache(e,t,r)},appendCache:function(e,t){var r,o,s,a,n,i,d,l=e.table,c=e.$tbodies,g=[],p=e.cache;if(L.isEmptyObject(p))return e.appender?e.appender(l,g):l.isUpdating?e.$table.triggerHandler("updateComplete",l):"";for(L.debug(e,"core")&&(d=new Date),i=0;i<c.length;i++)if((s=c.eq(i)).length){for(a=L.processTbody(l,s,!0),o=(r=p[i].normalized).length,n=0;n<o;n++)g[g.length]=r[n][e.columns].$row,e.appender&&(!e.pager||e.pager.removeRows||e.pager.ajax)||a.append(r[n][e.columns].$row);L.processTbody(l,a,!1)}e.appender&&e.appender(l,g),L.debug(e,"core")&&console.log("Rebuilt table"+L.benchmark(d)),t||e.appender||L.applyWidget(l),l.isUpdating&&e.$table.triggerHandler("updateComplete",l)},commonUpdate:function(e,t,r){e.$table.find(e.selectorRemove).remove(),L.setupParsers(e),L.buildCache(e),L.checkResort(e,t,r)},initSort:function(t,e,r){if(t.table.isUpdating)return setTimeout(function(){L.initSort(t,e,r)},50);var o,s,a,n,i,d,l,c=!r[t.sortMultiSortKey],g=t.table,p=t.$headers.length,u=L.getClosest(A(e),"th, td"),f=parseInt(u.attr("data-column"),10),h="mouseup"===r.type?"user":r.type,m=t.sortVars[f].order;if(u=u[0],t.$table.triggerHandler("sortStart",g),d=(t.sortVars[f].count+1)%m.length,t.sortVars[f].count=r[t.sortResetKey]?2:d,t.sortRestart)for(a=0;a<p;a++)l=t.$headers.eq(a),f!==(d=parseInt(l.attr("data-column"),10))&&(c||l.hasClass(L.css.sortNone))&&(t.sortVars[d].count=-1);if(c){if(A.each(t.sortVars,function(e){t.sortVars[e].sortedBy=""}),t.sortList=[],t.last.sortList=[],null!==t.sortForce)for(o=t.sortForce,s=0;s<o.length;s++)o[s][0]!==f&&(t.sortList[t.sortList.length]=o[s],t.sortVars[o[s][0]].sortedBy="sortForce");if((n=m[t.sortVars[f].count])<2&&(t.sortList[t.sortList.length]=[f,n],t.sortVars[f].sortedBy=h,1<u.colSpan))for(s=1;s<u.colSpan;s++)t.sortList[t.sortList.length]=[f+s,n],t.sortVars[f+s].count=A.inArray(n,m),t.sortVars[f+s].sortedBy=h}else if(t.sortList=A.extend([],t.last.sortList),0<=L.isValueInArray(f,t.sortList))for(t.sortVars[f].sortedBy=h,s=0;s<t.sortList.length;s++)(d=t.sortList[s])[0]===f&&(d[1]=m[t.sortVars[f].count],2===d[1]&&(t.sortList.splice(s,1),t.sortVars[f].count=-1));else if(n=m[t.sortVars[f].count],t.sortVars[f].sortedBy=h,n<2&&(t.sortList[t.sortList.length]=[f,n],1<u.colSpan))for(s=1;s<u.colSpan;s++)t.sortList[t.sortList.length]=[f+s,n],t.sortVars[f+s].count=A.inArray(n,m),t.sortVars[f+s].sortedBy=h;if(t.last.sortList=A.extend([],t.sortList),t.sortList.length&&t.sortAppend&&(o=A.isArray(t.sortAppend)?t.sortAppend:t.sortAppend[t.sortList[0][0]],!L.isEmptyObject(o)))for(s=0;s<o.length;s++)if(o[s][0]!==f&&L.isValueInArray(o[s][0],t.sortList)<0){if(i=(""+(n=o[s][1])).match(/^(a|d|s|o|n)/))switch(d=t.sortList[0][1],i[0]){case"d":n=1;break;case"s":n=d;break;case"o":n=0===d?1:0;break;case"n":n=(d+1)%m.length;break;default:n=0}t.sortList[t.sortList.length]=[o[s][0],n],t.sortVars[o[s][0]].sortedBy="sortAppend"}t.$table.triggerHandler("sortBegin",g),setTimeout(function(){L.setHeadersCss(t),L.multisort(t),L.appendCache(t),t.$table.triggerHandler("sortBeforeEnd",g),t.$table.triggerHandler("sortEnd",g)},1)},multisort:function(l){var e,t,c,r,g=l.table,p=[],u=0,f=l.textSorter||"",h=l.sortList,m=h.length,o=l.$tbodies.length;if(!l.serverSideSorting&&!L.isEmptyObject(l.cache)){if(L.debug(l,"core")&&(t=new Date),"object"==typeof f)for(c=l.columns;c--;)"function"==typeof(r=L.getColumnData(g,f,c))&&(p[c]=r);for(e=0;e<o;e++)c=l.cache[e].colMax,l.cache[e].normalized.sort(function(e,t){var r,o,s,a,n,i,d;for(r=0;r<m;r++){if(s=h[r][0],a=h[r][1],u=0===a,l.sortStable&&e[s]===t[s]&&1===m)return e[l.columns].order-t[l.columns].order;if(n=(o=/n/i.test(L.getSortType(l.parsers,s)))&&l.strings[s]?(o="boolean"==typeof L.string[l.strings[s]]?(u?1:-1)*(L.string[l.strings[s]]?-1:1):l.strings[s]&&L.string[l.strings[s]]||0,l.numberSorter?l.numberSorter(e[s],t[s],u,c[s],g):L["sortNumeric"+(u?"Asc":"Desc")](e[s],t[s],o,c[s],s,l)):(i=u?e:t,d=u?t:e,"function"==typeof f?f(i[s],d[s],u,s,g):"function"==typeof p[s]?p[s](i[s],d[s],u,s,g):L["sortNatural"+(u?"Asc":"Desc")](e[s]||"",t[s]||"",s,l)))return n}return e[l.columns].order-t[l.columns].order});L.debug(l,"core")&&console.log("Applying sort "+h.toString()+L.benchmark(t))}},resortComplete:function(e,t){e.table.isUpdating&&e.$table.triggerHandler("updateComplete",e.table),A.isFunction(t)&&t(e.table)},checkResort:function(e,t,r){var o=A.isArray(t)?t:e.sortList;!1===(void 0===t?e.resort:t)||e.serverSideSorting||e.table.isProcessing?(L.resortComplete(e,r),L.applyWidget(e.table,!1)):o.length?L.sortOn(e,o,function(){L.resortComplete(e,r)},!0):L.sortReset(e,function(){L.resortComplete(e,r),L.applyWidget(e.table,!1)})},sortOn:function(e,t,r,o){var s,a=e.table;for(e.$table.triggerHandler("sortStart",a),s=0;s<e.columns;s++)e.sortVars[s].sortedBy=-1<L.isValueInArray(s,t)?"sorton":"";L.updateHeaderSortCount(e,t),L.setHeadersCss(e),e.delayInit&&L.isEmptyObject(e.cache)&&L.buildCache(e),e.$table.triggerHandler("sortBegin",a),L.multisort(e),L.appendCache(e,o),e.$table.triggerHandler("sortBeforeEnd",a),e.$table.triggerHandler("sortEnd",a),L.applyWidget(a),A.isFunction(r)&&r(a)},sortReset:function(e,t){var r;for(e.sortList=[],r=0;r<e.columns;r++)e.sortVars[r].count=-1,e.sortVars[r].sortedBy="";L.setHeadersCss(e),L.multisort(e),L.appendCache(e),A.isFunction(t)&&t(e.table)},getSortType:function(e,t){return e&&e[t]&&e[t].type||""},getOrder:function(e){return/^d/i.test(e)||1===e},sortNatural:function(e,t){if(e===t)return 0;e=(e||"").toString(),t=(t||"").toString();var r,o,s,a,n,i,d=L.regex;if(d.hex.test(t)){if((r=parseInt(e.match(d.hex),16))<(o=parseInt(t.match(d.hex),16)))return-1;if(o<r)return 1}for(r=e.replace(d.chunk,"\\0$1\\0").replace(d.chunks,"").split("\\0"),o=t.replace(d.chunk,"\\0$1\\0").replace(d.chunks,"").split("\\0"),i=Math.max(r.length,o.length),n=0;n<i;n++){if(s=isNaN(r[n])?r[n]||0:parseFloat(r[n])||0,a=isNaN(o[n])?o[n]||0:parseFloat(o[n])||0,isNaN(s)!==isNaN(a))return isNaN(s)?1:-1;if(typeof s!=typeof a&&(s+="",a+=""),s<a)return-1;if(a<s)return 1}return 0},sortNaturalAsc:function(e,t,r,o){if(e===t)return 0;var s=L.string[o.empties[r]||o.emptyTo];return""===e&&0!==s?"boolean"==typeof s?s?-1:1:-s||-1:""===t&&0!==s?"boolean"==typeof s?s?1:-1:s||1:L.sortNatural(e,t)},sortNaturalDesc:function(e,t,r,o){if(e===t)return 0;var s=L.string[o.empties[r]||o.emptyTo];return""===e&&0!==s?"boolean"==typeof s?s?-1:1:s||1:""===t&&0!==s?"boolean"==typeof s?s?1:-1:-s||-1:L.sortNatural(t,e)},sortText:function(e,t){return t<e?1:e<t?-1:0},getTextValue:function(e,t,r){if(r){var o,s=e?e.length:0,a=r+t;for(o=0;o<s;o++)a+=e.charCodeAt(o);return t*a}return 0},sortNumericAsc:function(e,t,r,o,s,a){if(e===t)return 0;var n=L.string[a.empties[s]||a.emptyTo];return""===e&&0!==n?"boolean"==typeof n?n?-1:1:-n||-1:""===t&&0!==n?"boolean"==typeof n?n?1:-1:n||1:(isNaN(e)&&(e=L.getTextValue(e,r,o)),isNaN(t)&&(t=L.getTextValue(t,r,o)),e-t)},sortNumericDesc:function(e,t,r,o,s,a){if(e===t)return 0;var n=L.string[a.empties[s]||a.emptyTo];return""===e&&0!==n?"boolean"==typeof n?n?-1:1:n||1:""===t&&0!==n?"boolean"==typeof n?n?1:-1:-n||-1:(isNaN(e)&&(e=L.getTextValue(e,r,o)),isNaN(t)&&(t=L.getTextValue(t,r,o)),t-e)},sortNumeric:function(e,t){return e-t},addWidget:function(e){e.id&&!L.isEmptyObject(L.getWidgetById(e.id))&&console.warn('"'+e.id+'" widget was loaded more than once!'),L.widgets[L.widgets.length]=e},hasWidget:function(e,t){return(e=A(e)).length&&e[0].config&&e[0].config.widgetInit[t]||!1},getWidgetById:function(e){var t,r,o=L.widgets.length;for(t=0;t<o;t++)if((r=L.widgets[t])&&r.id&&r.id.toLowerCase()===e.toLowerCase())return r},applyWidgetOptions:function(e){var t,r,o,s=e.config,a=s.widgets.length;if(a)for(t=0;t<a;t++)(r=L.getWidgetById(s.widgets[t]))&&r.options&&(o=A.extend(!0,{},r.options),s.widgetOptions=A.extend(!0,o,s.widgetOptions),A.extend(!0,L.defaults.widgetOptions,r.options))},addWidgetFromClass:function(e){var t,r,o=e.config,s="^"+o.widgetClass.replace(L.regex.templateName,"(\\S+)+")+"$",a=new RegExp(s,"g"),n=(e.className||"").split(L.regex.spaces);if(n.length)for(t=n.length,r=0;r<t;r++)n[r].match(a)&&(o.widgets[o.widgets.length]=n[r].replace(a,"$1"))},applyWidgetId:function(e,t,r){var o,s,a,n=(e=A(e)[0]).config,i=n.widgetOptions,d=L.debug(n,"core"),l=L.getWidgetById(t);l&&(a=l.id,o=!1,A.inArray(a,n.widgets)<0&&(n.widgets[n.widgets.length]=a),d&&(s=new Date),!r&&n.widgetInit[a]||(n.widgetInit[a]=!0,e.hasInitialized&&L.applyWidgetOptions(e),"function"==typeof l.init&&(o=!0,d&&console[console.group?"group":"log"]("Initializing "+a+" widget"),l.init(e,l,n,i))),r||"function"!=typeof l.format||(o=!0,d&&console[console.group?"group":"log"]("Updating "+a+" widget"),l.format(e,n,i,!1)),d&&o&&(console.log("Completed "+(r?"initializing ":"applying ")+a+" widget"+L.benchmark(s)),console.groupEnd&&console.groupEnd()))},applyWidget:function(e,t,r){var o,s,a,n,i,d=(e=A(e)[0]).config,l=L.debug(d,"core"),c=[];if(!1===t||!e.hasInitialized||!e.isApplyingWidgets&&!e.isUpdating){if(l&&(i=new Date),L.addWidgetFromClass(e),clearTimeout(d.timerReady),d.widgets.length){for(e.isApplyingWidgets=!0,d.widgets=A.grep(d.widgets,function(e,t){return A.inArray(e,d.widgets)===t}),s=(a=d.widgets||[]).length,o=0;o<s;o++)(n=L.getWidgetById(a[o]))&&n.id?(n.priority||(n.priority=10),c[o]=n):l&&console.warn('"'+a[o]+'" was enabled, but the widget code has not been loaded!');for(c.sort(function(e,t){return e.priority<t.priority?-1:e.priority===t.priority?0:1}),s=c.length,l&&console[console.group?"group":"log"]("Start "+(t?"initializing":"applying")+" widgets"),o=0;o<s;o++)(n=c[o])&&n.id&&L.applyWidgetId(e,n.id,t);l&&console.groupEnd&&console.groupEnd()}d.timerReady=setTimeout(function(){e.isApplyingWidgets=!1,A.data(e,"lastWidgetApplication",new Date),d.$table.triggerHandler("tablesorter-ready"),t||"function"!=typeof r||r(e),l&&(n=d.widgets.length,console.log("Completed "+(!0===t?"initializing ":"applying ")+n+" widget"+(1!==n?"s":"")+L.benchmark(i)))},10)}},removeWidget:function(e,t,r){var o,s,a,n,i=(e=A(e)[0]).config;if(!0===t)for(t=[],n=L.widgets.length,a=0;a<n;a++)(s=L.widgets[a])&&s.id&&(t[t.length]=s.id);else t=(A.isArray(t)?t.join(","):t||"").toLowerCase().split(/[\s,]+/);for(n=t.length,o=0;o<n;o++)s=L.getWidgetById(t[o]),0<=(a=A.inArray(t[o],i.widgets))&&!0!==r&&i.widgets.splice(a,1),s&&s.remove&&(L.debug(i,"core")&&console.log((r?"Refreshing":"Removing")+' "'+t[o]+'" widget'),s.remove(e,i,i.widgetOptions,r),i.widgetInit[t[o]]=!1);i.$table.triggerHandler("widgetRemoveEnd",e)},refreshWidgets:function(e,t,r){function o(e){A(e).triggerHandler("refreshComplete")}var s,a,n=(e=A(e)[0]).config.widgets,i=L.widgets,d=i.length,l=[];for(s=0;s<d;s++)(a=i[s])&&a.id&&(t||A.inArray(a.id,n)<0)&&(l[l.length]=a.id);L.removeWidget(e,l.join(","),!0),!0!==r?(L.applyWidget(e,t||!1,o),t&&L.applyWidget(e,!1,o)):o(e)},benchmark:function(e){return" ("+((new Date).getTime()-e.getTime())+" ms)"},log:function(){console.log(arguments)},debug:function(e,t){return e&&(!0===e.debug||"string"==typeof e.debug&&-1<e.debug.indexOf(t))},isEmptyObject:function(e){for(var t in e)return!1;return!0},isValueInArray:function(e,t){var r,o=t&&t.length||0;for(r=0;r<o;r++)if(t[r][0]===e)return r;return-1},formatFloat:function(e,t){return"string"!=typeof e||""===e?e:(e=(t&&t.config?!1!==t.config.usNumberFormat:void 0===t||t)?e.replace(L.regex.comma,""):e.replace(L.regex.digitNonUS,"").replace(L.regex.comma,"."),L.regex.digitNegativeTest.test(e)&&(e=e.replace(L.regex.digitNegativeReplace,"-$1")),r=parseFloat(e),isNaN(r)?A.trim(e):r);var r},isDigit:function(e){return isNaN(e)?L.regex.digitTest.test(e.toString().replace(L.regex.digitReplace,"")):""!==e},computeColumnIndex:function(e,t){var r,o,s,a,n,i,d,l,c,g,p=t&&t.columns||0,u=[],f=new Array(p);for(r=0;r<e.length;r++)for(i=e[r].cells,o=0;o<i.length;o++){for(d=r,l=(n=i[o]).rowSpan||1,c=n.colSpan||1,void 0===u[d]&&(u[d]=[]),s=0;s<u[d].length+1;s++)if(void 0===u[d][s]){g=s;break}for(p&&n.cellIndex===g||(n.setAttribute?n.setAttribute("data-column",g):A(n).attr("data-column",g)),s=d;s<d+l;s++)for(void 0===u[s]&&(u[s]=[]),f=u[s],a=g;a<g+c;a++)f[a]="x"}return L.checkColumnCount(e,u,f.length),f.length},checkColumnCount:function(e,t,r){var o,s,a=!0,n=[];for(o=0;o<t.length;o++)if(t[o]&&(s=t[o].length,t[o].length!==r)){a=!1;break}a||(e.each(function(e,t){var r=t.parentElement.nodeName;n.indexOf(r)<0&&n.push(r)}),console.error("Invalid or incorrect number of columns in the "+n.join(" or ")+"; expected "+r+", but found "+s+" columns"))},fixColumnWidth:function(e){var t,r,o,s,a,n=(e=A(e)[0]).config,i=n.$table.children("colgroup");if(i.length&&i.hasClass(L.css.colgroup)&&i.remove(),n.widthFixed&&0===n.$table.children("colgroup").length){for(i=A('<colgroup class="'+L.css.colgroup+'">'),t=n.$table.width(),s=(o=n.$tbodies.find("tr:first").children(":visible")).length,a=0;a<s;a++)r=parseInt(o.eq(a).width()/t*1e3,10)/10+"%",i.append(A("<col>").css("width",r));n.$table.prepend(i)}},getData:function(e,t,r){var o,s,a="",n=A(e);return n.length?(o=!!A.metadata&&n.metadata(),s=" "+(n.attr("class")||""),void 0!==n.data(r)||void 0!==n.data(r.toLowerCase())?a+=n.data(r)||n.data(r.toLowerCase()):o&&void 0!==o[r]?a+=o[r]:t&&void 0!==t[r]?a+=t[r]:" "!==s&&s.match(" "+r+"-")&&(a=s.match(new RegExp("\\s"+r+"-([\\w-]+)"))[1]||""),A.trim(a)):""},getColumnData:function(e,t,r,o,s){if("object"!=typeof t||null===t)return t;var a,n=(e=A(e)[0]).config,i=s||n.$headers,d=n.$headerIndexed&&n.$headerIndexed[r]||i.find('[data-column="'+r+'"]:last');if(void 0!==t[r])return o?t[r]:t[i.index(d)];for(a in t)if("string"==typeof a&&d.filter(a).add(d.find(a)).length)return t[a]},isProcessing:function(e,t,r){var o=(e=A(e))[0].config,s=r||e.find("."+L.css.header);t?(void 0!==r&&0<o.sortList.length&&(s=s.filter(function(){return!this.sortDisabled&&0<=L.isValueInArray(parseFloat(A(this).attr("data-column")),o.sortList)})),e.add(s).addClass(L.css.processing+" "+o.cssProcessing)):e.add(s).removeClass(L.css.processing+" "+o.cssProcessing)},processTbody:function(e,t,r){if(e=A(e)[0],r)return e.isProcessing=!0,t.before('<colgroup class="tablesorter-savemyplace"/>'),A.fn.detach?t.detach():t.remove();var o=A(e).find("colgroup.tablesorter-savemyplace");t.insertAfter(o),o.remove(),e.isProcessing=!1},clearTableBody:function(e){A(e)[0].config.$tbodies.children().detach()},characterEquivalents:{a:"áàâãäąå",A:"ÁÀÂÃÄĄÅ",c:"çćč",C:"ÇĆČ",e:"éèêëěę",E:"ÉÈÊËĚĘ",i:"íìİîïı",I:"ÍÌİÎÏ",o:"óòôõöō",O:"ÓÒÔÕÖŌ",ss:"ß",SS:"ẞ",u:"úùûüů",U:"ÚÙÛÜŮ"},replaceAccents:function(e){var t,r="[",o=L.characterEquivalents;if(!L.characterRegex){for(t in L.characterRegexArray={},o)"string"==typeof t&&(r+=o[t],L.characterRegexArray[t]=new RegExp("["+o[t]+"]","g"));L.characterRegex=new RegExp(r+"]")}if(L.characterRegex.test(e))for(t in o)"string"==typeof t&&(e=e.replace(L.characterRegexArray[t],t));return e},validateOptions:function(e){var t,r,o,s,a="headers sortForce sortList sortAppend widgets".split(" "),n=e.originalSettings;if(n){for(t in L.debug(e,"core")&&(s=new Date),n)if("undefined"===(o=typeof L.defaults[t]))console.warn('Tablesorter Warning! "table.config.'+t+'" option not recognized');else if("object"===o)for(r in n[t])o=L.defaults[t]&&typeof L.defaults[t][r],A.inArray(t,a)<0&&"undefined"===o&&console.warn('Tablesorter Warning! "table.config.'+t+"."+r+'" option not recognized');L.debug(e,"core")&&console.log("validate options time:"+L.benchmark(s))}},restoreHeaders:function(e){var t,r,o=A(e)[0].config,s=o.$table.find(o.selectorHeaders),a=s.length;for(t=0;t<a;t++)(r=s.eq(t)).find("."+L.css.headerIn).length&&r.html(o.headerContent[t])},destroy:function(e,t,r){if((e=A(e)[0]).hasInitialized){L.removeWidget(e,!0,!1);var o,s=A(e),a=e.config,n=s.find("thead:first"),i=n.find("tr."+L.css.headerRow).removeClass(L.css.headerRow+" "+a.cssHeaderRow),d=s.find("tfoot:first > tr").children("th, td");!1===t&&0<=A.inArray("uitheme",a.widgets)&&(s.triggerHandler("applyWidgetId",["uitheme"]),s.triggerHandler("applyWidgetId",["zebra"])),n.find("tr").not(i).remove(),o="sortReset update updateRows updateAll updateHeaders updateCell addRows updateComplete sorton appendCache updateCache applyWidgetId applyWidgets refreshWidgets removeWidget destroy mouseup mouseleave "+"keypress sortBegin sortEnd resetToLoadState ".split(" ").join(a.namespace+" "),s.removeData("tablesorter").unbind(o.replace(L.regex.spaces," ")),a.$headers.add(d).removeClass([L.css.header,a.cssHeader,a.cssAsc,a.cssDesc,L.css.sortAsc,L.css.sortDesc,L.css.sortNone].join(" ")).removeAttr("data-column").removeAttr("aria-label").attr("aria-disabled","true"),i.find(a.selectorSort).unbind("mousedown mouseup keypress ".split(" ").join(a.namespace+" ").replace(L.regex.spaces," ")),L.restoreHeaders(e),s.toggleClass(L.css.table+" "+a.tableClass+" tablesorter-"+a.theme,!1===t),s.removeClass(a.namespace.slice(1)),e.hasInitialized=!1,delete e.config.cache,"function"==typeof r&&r(e),L.debug(a,"core")&&console.log("tablesorter has been removed")}}};A.fn.tablesorter=function(t){return this.each(function(){var e=A.extend(!0,{},L.defaults,t,L.instanceMethods);e.originalSettings=t,!this.hasInitialized&&L.buildTable&&"TABLE"!==this.nodeName?L.buildTable(this,e):L.setup(this,e)})},window.console&&window.console.log||(L.logs=[],console={},console.log=console.warn=console.error=console.table=function(){var e=1<arguments.length?arguments:arguments[0];L.logs[L.logs.length]={date:Date.now(),log:e}}),L.addParser({id:"no-parser",is:function(){return!1},format:function(){return""},type:"text"}),L.addParser({id:"text",is:function(){return!0},format:function(e,t){var r=t.config;return e&&(e=A.trim(r.ignoreCase?e.toLocaleLowerCase():e),e=r.sortLocaleCompare?L.replaceAccents(e):e),e},type:"text"}),L.regex.nondigit=/[^\w,. \-()]/g,L.addParser({id:"digit",is:function(e){return L.isDigit(e)},format:function(e,t){var r=L.formatFloat((e||"").replace(L.regex.nondigit,""),t);return e&&"number"==typeof r?r:e?A.trim(e&&t.config.ignoreCase?e.toLocaleLowerCase():e):e},type:"numeric"}),L.regex.currencyReplace=/[+\-,. ]/g,L.regex.currencyTest=/^\(?\d+[\u00a3$\u20ac\u00a4\u00a5\u00a2?.]|[\u00a3$\u20ac\u00a4\u00a5\u00a2?.]\d+\)?$/,L.addParser({id:"currency",is:function(e){return e=(e||"").replace(L.regex.currencyReplace,""),L.regex.currencyTest.test(e)},format:function(e,t){var r=L.formatFloat((e||"").replace(L.regex.nondigit,""),t);return e&&"number"==typeof r?r:e?A.trim(e&&t.config.ignoreCase?e.toLocaleLowerCase():e):e},type:"numeric"}),L.regex.urlProtocolTest=/^(https?|ftp|file):\/\//,L.regex.urlProtocolReplace=/(https?|ftp|file):\/\/(www\.)?/,L.addParser({id:"url",is:function(e){return L.regex.urlProtocolTest.test(e)},format:function(e){return e?A.trim(e.replace(L.regex.urlProtocolReplace,"")):e},type:"text"}),L.regex.dash=/-/g,L.regex.isoDate=/^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}/,L.addParser({id:"isoDate",is:function(e){return L.regex.isoDate.test(e)},format:function(e){var t=e?new Date(e.replace(L.regex.dash,"/")):e;return t instanceof Date&&isFinite(t)?t.getTime():e},type:"numeric"}),L.regex.percent=/%/g,L.regex.percentTest=/(\d\s*?%|%\s*?\d)/,L.addParser({id:"percent",is:function(e){return L.regex.percentTest.test(e)&&e.length<15},format:function(e,t){return e?L.formatFloat(e.replace(L.regex.percent,""),t):e},type:"numeric"}),L.addParser({id:"image",is:function(e,t,r,o){return 0<o.find("img").length},format:function(e,t,r){return A(r).find("img").attr(t.config.imgAttr||"alt")||e},parsed:!0,type:"text"}),L.regex.dateReplace=/(\S)([AP]M)$/i,L.regex.usLongDateTest1=/^[A-Z]{3,10}\.?\s+\d{1,2},?\s+(\d{4})(\s+\d{1,2}:\d{2}(:\d{2})?(\s+[AP]M)?)?$/i,L.regex.usLongDateTest2=/^\d{1,2}\s+[A-Z]{3,10}\s+\d{4}/i,L.addParser({id:"usLongDate",is:function(e){return L.regex.usLongDateTest1.test(e)||L.regex.usLongDateTest2.test(e)},format:function(e){var t=e?new Date(e.replace(L.regex.dateReplace,"$1 $2")):e;return t instanceof Date&&isFinite(t)?t.getTime():e},type:"numeric"}),L.regex.shortDateTest=/(^\d{1,2}[\/\s]\d{1,2}[\/\s]\d{4})|(^\d{4}[\/\s]\d{1,2}[\/\s]\d{1,2})/,L.regex.shortDateReplace=/[\-.,]/g,L.regex.shortDateXXY=/(\d{1,2})[\/\s](\d{1,2})[\/\s](\d{4})/,L.regex.shortDateYMD=/(\d{4})[\/\s](\d{1,2})[\/\s](\d{1,2})/,L.convertFormat=function(e,t){e=(e||"").replace(L.regex.spaces," ").replace(L.regex.shortDateReplace,"/"),"mmddyyyy"===t?e=e.replace(L.regex.shortDateXXY,"$3/$1/$2"):"ddmmyyyy"===t?e=e.replace(L.regex.shortDateXXY,"$3/$2/$1"):"yyyymmdd"===t&&(e=e.replace(L.regex.shortDateYMD,"$1/$2/$3"));var r=new Date(e);return r instanceof Date&&isFinite(r)?r.getTime():""},L.addParser({id:"shortDate",is:function(e){return e=(e||"").replace(L.regex.spaces," ").replace(L.regex.shortDateReplace,"/"),L.regex.shortDateTest.test(e)},format:function(e,t,r,o){if(e){var s=t.config,a=s.$headerIndexed[o],n=a.length&&a.data("dateFormat")||L.getData(a,L.getColumnData(t,s.headers,o),"dateFormat")||s.dateFormat;return a.length&&a.data("dateFormat",n),L.convertFormat(e,n)||e}return e},type:"numeric"}),L.regex.timeTest=/^(0?[1-9]|1[0-2]):([0-5]\d)(\s[AP]M)$|^((?:[01]\d|[2][0-4]):[0-5]\d)$/i,L.regex.timeMatch=/(0?[1-9]|1[0-2]):([0-5]\d)(\s[AP]M)|((?:[01]\d|[2][0-4]):[0-5]\d)/i,L.addParser({id:"time",is:function(e){return L.regex.timeTest.test(e)},format:function(e){var t=(e||"").match(L.regex.timeMatch),r=new Date(e),o=e&&(null!==t?t[0]:"00:00 AM"),s=o?new Date("2000/01/01 "+o.replace(L.regex.dateReplace,"$1 $2")):o;return s instanceof Date&&isFinite(s)?(r instanceof Date&&isFinite(r)?r.getTime():0)?parseFloat(s.getTime()+"."+r.getTime()):s.getTime():e},type:"numeric"}),L.addParser({id:"metadata",is:function(){return!1},format:function(e,t,r){var o=t.config,s=o.parserMetadataName?o.parserMetadataName:"sortValue";return A(r).metadata()[s]},type:"numeric"}),L.addWidget({id:"zebra",priority:90,format:function(e,t,r){var o,s,a,n,i,d,l,c=new RegExp(t.cssChildRow,"i"),g=t.$tbodies.add(A(t.namespace+"_extra_table").children("tbody:not(."+t.cssInfoBlock+")"));for(i=0;i<g.length;i++)for(a=0,l=(o=g.eq(i).children("tr:visible").not(t.selectorRemove)).length,d=0;d<l;d++)s=o.eq(d),c.test(s[0].className)||a++,n=a%2==0,s.removeClass(r.zebra[n?1:0]).addClass(r.zebra[n?0:1])},remove:function(e,t,r,o){if(!o){var s,a,n=t.$tbodies,i=(r.zebra||["even","odd"]).join(" ");for(s=0;s<n.length;s++)(a=L.processTbody(e,n.eq(s),!0)).children().removeClass(i),L.processTbody(e,a,!1)}}})}(e),e.tablesorter});!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}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=10)}({10:function(e,t){var n=function(e,t){var n=e.find(".eael-data-table-wrap");n.data("table_id");if("undefined"!=typeof enableProSorter&&t.isFunction(enableProSorter)&&t(document).ready((function(){enableProSorter(jQuery,n)})),1==n.data("custom_responsive")){var r=e.find(".eael-data-table").find("th");e.find(".eael-data-table").find("tbody").find("tr").each((function(e,n){t(n).find("td .td-content-wrapper").each((function(e,n){0==r.eq(e).length?t(this).prepend('<div class="th-mobile-screen"></div>'):t(this).prepend('<div class="th-mobile-screen">'+r.eq(e).html()+"</div>")}))}))}},r=function(e,t,n){if("ea:table:export"==event.target.dataset.event){for(var r=n.el.querySelector("#eael-data-table-"+t.attributes.id).querySelectorAll("table tr"),a=[],o=0;o<r.length;o++){for(var i=[],l=r[o].querySelectorAll("th, td"),d=0;d<l.length;d++)i.push(JSON.stringify(l[d].innerText.replace(/(\r\n|\n|\r)/gm," ").trim()));a.push(i.join(","))}var u=new Blob([a.join("\n")],{type:"text/csv"}),c=parent.document.createElement("a");c.classList.add("eael-data-table-download-"+t.attributes.id),c.download="eael-data-table-"+t.attributes.id+".csv",c.href=window.URL.createObjectURL(u),c.style.display="none",parent.document.body.appendChild(c),c.click(),parent.document.querySelector(".eael-data-table-download-"+t.attributes.id).remove()}},a=function(e,t,n){var a=r.bind(this,e,t,n);e.el.addEventListener("click",a),e.currentPageView.on("destroy",(function(){e.el.removeEventListener("click",a)}))};jQuery(window).on("elementor/frontend/init",(function(){if(eael.elementStatusCheck("eaelDataTable"))return!1;isEditMode&&elementor.hooks.addAction("panel/open_editor/widget/eael-data-table",a),elementorFrontend.hooks.addAction("frontend/element_ready/eael-data-table.default",n)}))}});!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}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=8)}({8:function(e,t){window.enableProSorter=function(e,t){var n=t.data("table_enabled"),r=t.data("table_id");1==n&&e("#eael-data-table-"+r).tablesorter(),1!=n&&(e("table#eael-data-table-"+r+" .sorting").addClass("sorting-none"),e("table#eael-data-table-"+r+" .sorting_desc").addClass("sorting-none"),e("table#eael-data-table-"+r+" .sorting_asc").addClass("sorting-none"))}}});
(()=>{"use strict";var e,r,_,t,a,n={},i={};function __webpack_require__(e){var r=i[e];if(void 0!==r)return r.exports;var _=i[e]={exports:{}};return n[e].call(_.exports,_,_.exports,__webpack_require__),_.exports}__webpack_require__.m=n,e=[],__webpack_require__.O=(r,_,t,a)=>{if(!_){var n=1/0;for(b=0;b<e.length;b++){for(var[_,t,a]=e[b],i=!0,c=0;c<_.length;c++)(!1&a||n>=a)&&Object.keys(__webpack_require__.O).every(e=>__webpack_require__.O[e](_[c]))?_.splice(c--,1):(i=!1,a<n&&(n=a));if(i){e.splice(b--,1);var o=t();void 0!==o&&(r=o)}}return r}a=a||0;for(var b=e.length;b>0&&e[b-1][2]>a;b--)e[b]=e[b-1];e[b]=[_,t,a]},_=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,__webpack_require__.t=function(e,t){if(1&t&&(e=this(e)),8&t)return e;if("object"==typeof e&&e){if(4&t&&e.__esModule)return e;if(16&t&&"function"==typeof e.then)return e}var a=Object.create(null);__webpack_require__.r(a);var n={};r=r||[null,_({}),_([]),_(_)];for(var i=2&t&&e;("object"==typeof i||"function"==typeof i)&&!~r.indexOf(i);i=_(i))Object.getOwnPropertyNames(i).forEach(r=>n[r]=()=>e[r]);return n.default=()=>e,__webpack_require__.d(a,n),a},__webpack_require__.d=(e,r)=>{for(var _ in r)__webpack_require__.o(r,_)&&!__webpack_require__.o(e,_)&&Object.defineProperty(e,_,{enumerable:!0,get:r[_]})},__webpack_require__.f={},__webpack_require__.e=e=>Promise.all(Object.keys(__webpack_require__.f).reduce((r,_)=>(__webpack_require__.f[_](e,r),r),[])),__webpack_require__.u=e=>786===e?"397f2d183c19202777d6.bundle.min.js":216===e?"lightbox.570c05c5a283cfb6b223.bundle.min.js":30===e?"text-path.a67c1f3a78d208bc7e1b.bundle.min.js":131===e?"accordion.8b0db5058afeb74622f5.bundle.min.js":707===e?"alert.42cc1d522ef5c60bf874.bundle.min.js":457===e?"counter.12335f45aaa79d244f24.bundle.min.js":234===e?"progress.0ea083b809812c0e3aa1.bundle.min.js":575===e?"tabs.18344b05d8d1ea0702bc.bundle.min.js":775===e?"toggle.2a177a3ef4785d3dfbc5.bundle.min.js":180===e?"video.86d44e46e43d0807e708.bundle.min.js":177===e?"image-carousel.6167d20b95b33386757b.bundle.min.js":212===e?"text-editor.45609661e409413f1cef.bundle.min.js":211===e?"wp-audio.c9624cb6e5dc9de86abd.bundle.min.js":215===e?"nested-tabs.a2401356d329f179475e.bundle.min.js":915===e?"nested-accordion.294d40984397351fd0f5.bundle.min.js":1===e?"contact-buttons.e98d0220ce8c38404e7e.bundle.min.js":336===e?"floating-bars.740d06d17cea5cebdb61.bundle.min.js":557===e?"shared-frontend-handlers.03caa53373b56d3bab67.bundle.min.js":396===e?"shared-editor-handlers.cacdcbed391abf4b48b0.bundle.min.js":768===e?"container-editor-handlers.a2e8e48d28c5544fb183.bundle.min.js":77===e?"section-frontend-handlers.d85ab872da118940910d.bundle.min.js":220===e?"section-editor-handlers.53ffedef32043348b99b.bundle.min.js":304===e?"nested-title-keyboard-handler.2a67d3cc630e11815acc.bundle.min.js":void 0,__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t={},a="elementorFrontend:",__webpack_require__.l=(e,r,_,n)=>{if(t[e])t[e].push(r);else{var i,c;if(void 0!==_)for(var o=document.getElementsByTagName("script"),b=0;b<o.length;b++){var u=o[b];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==a+_){i=u;break}}i||(c=!0,(i=document.createElement("script")).charset="utf-8",__webpack_require__.nc&&i.setAttribute("nonce",__webpack_require__.nc),i.setAttribute("data-webpack",a+_),i.src=e),t[e]=[r];var onScriptComplete=(r,_)=>{i.onerror=i.onload=null,clearTimeout(d);var a=t[e];if(delete t[e],i.parentNode&&i.parentNode.removeChild(i),a&&a.forEach(e=>e(_)),r)return r(_)},d=setTimeout(onScriptComplete.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=onScriptComplete.bind(null,i.onerror),i.onload=onScriptComplete.bind(null,i.onload),c&&document.head.appendChild(i)}},__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;__webpack_require__.g.importScripts&&(e=__webpack_require__.g.location+"");var r=__webpack_require__.g.document;if(!e&&r&&(r.currentScript&&"SCRIPT"===r.currentScript.tagName.toUpperCase()&&(e=r.currentScript.src),!e)){var _=r.getElementsByTagName("script");if(_.length)for(var t=_.length-1;t>-1&&(!e||!/^http(s?):/.test(e));)e=_[t--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),__webpack_require__.p=e})(),(()=>{var e={76:0};__webpack_require__.f.j=(r,_)=>{var t=__webpack_require__.o(e,r)?e[r]:void 0;if(0!==t)if(t)_.push(t[2]);else if(76!=r){var a=new Promise((_,a)=>t=e[r]=[_,a]);_.push(t[2]=a);var n=__webpack_require__.p+__webpack_require__.u(r),i=new Error;__webpack_require__.l(n,_=>{if(__webpack_require__.o(e,r)&&(0!==(t=e[r])&&(e[r]=void 0),t)){var a=_&&("load"===_.type?"missing":_.type),n=_&&_.target&&_.target.src;i.message="Loading chunk "+r+" failed.\n("+a+": "+n+")",i.name="ChunkLoadError",i.type=a,i.request=n,t[1](i)}},"chunk-"+r,r)}else e[r]=0},__webpack_require__.O.j=r=>0===e[r];var webpackJsonpCallback=(r,_)=>{var t,a,[n,i,c]=_,o=0;if(n.some(r=>0!==e[r])){for(t in i)__webpack_require__.o(i,t)&&(__webpack_require__.m[t]=i[t]);if(c)var b=c(__webpack_require__)}for(r&&r(_);o<n.length;o++)a=n[o],__webpack_require__.o(e,a)&&e[a]&&e[a][0](),e[a]=0;return __webpack_require__.O(b)},r=self.webpackChunkelementorFrontend=self.webpackChunkelementorFrontend||[];r.forEach(webpackJsonpCallback.bind(null,0)),r.push=webpackJsonpCallback.bind(null,r.push.bind(r))})()})();
(self.webpackChunkelementorFrontend=self.webpackChunkelementorFrontend||[]).push([[941],{1:(e,t,r)=>{"use strict";var n=r(5578),i=r(7255),s=r(5755),o=r(1866),a=r(6029),c=r(5022),l=n.Symbol,u=i("wks"),p=c?l.for||l:l&&l.withoutSetter||o;e.exports=function(e){return s(u,e)||(u[e]=a&&s(l,e)?l[e]:p("Symbol."+e)),u[e]}},41:e=>{"use strict";e.exports=function(e){return{iterator:e,next:e.next,done:!1}}},169:(e,t,r)=>{"use strict";var n=r(4762),i=r(8473),s=r(1483),o=r(5755),a=r(382),c=r(2048).CONFIGURABLE,l=r(7268),u=r(4483),p=u.enforce,d=u.get,h=String,f=Object.defineProperty,g=n("".slice),m=n("".replace),v=n([].join),y=a&&!i(function(){return 8!==f(function(){},"length",{value:8}).length}),w=String(String).split("String"),b=e.exports=function(e,t,r){"Symbol("===g(h(t),0,7)&&(t="["+m(h(t),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),r&&r.getter&&(t="get "+t),r&&r.setter&&(t="set "+t),(!o(e,"name")||c&&e.name!==t)&&(a?f(e,"name",{value:t,configurable:!0}):e.name=t),y&&r&&o(r,"arity")&&e.length!==r.arity&&f(e,"length",{value:r.arity});try{r&&o(r,"constructor")&&r.constructor?a&&f(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(e){}var n=p(e);return o(n,"source")||(n.source=v(w,"string"==typeof t?t:"")),e};Function.prototype.toString=b(function toString(){return s(this)&&d(this).source||l(this)},"toString")},274:(e,t,r)=>{"use strict";var n=r(8473);e.exports=!n(function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")})},348:(e,t,r)=>{"use strict";var n=r(1807),i=r(1483),s=r(1704),o=TypeError;e.exports=function(e,t){var r,a;if("string"===t&&i(r=e.toString)&&!s(a=n(r,e)))return a;if(i(r=e.valueOf)&&!s(a=n(r,e)))return a;if("string"!==t&&i(r=e.toString)&&!s(a=n(r,e)))return a;throw new o("Can't convert object to primitive value")}},382:(e,t,r)=>{"use strict";var n=r(8473);e.exports=!n(function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]})},641:(e,t,r)=>{"use strict";r(5724),r(4846),r(7458),r(9655);const Module=function(){const e=jQuery,t=arguments,r=this,n={};let i;this.getItems=function(e,t){if(t){const r=t.split("."),n=r.splice(0,1);if(!r.length)return e[n];if(!e[n])return;return this.getItems(e[n],r.join("."))}return e},this.getSettings=function(e){return this.getItems(i,e)},this.setSettings=function(t,n,s){if(s||(s=i),"object"==typeof t)return e.extend(s,t),r;const o=t.split("."),a=o.splice(0,1);return o.length?(s[a]||(s[a]={}),r.setSettings(o.join("."),n,s[a])):(s[a]=n,r)},this.getErrorMessage=function(e,t){let r;if("forceMethodImplementation"===e)r=`The method '${t}' must to be implemented in the inheritor child.`;else r="An error occurs";return r},this.forceMethodImplementation=function(e){throw new Error(this.getErrorMessage("forceMethodImplementation",e))},this.on=function(t,i){if("object"==typeof t)return e.each(t,function(e){r.on(e,this)}),r;return t.split(" ").forEach(function(e){n[e]||(n[e]=[]),n[e].push(i)}),r},this.off=function(e,t){if(!n[e])return r;if(!t)return delete n[e],r;const i=n[e].indexOf(t);return-1!==i&&(delete n[e][i],n[e]=n[e].filter(e=>e)),r},this.trigger=function(t){const i="on"+t[0].toUpperCase()+t.slice(1),s=Array.prototype.slice.call(arguments,1);r[i]&&r[i].apply(r,s);const o=n[t];return o?(e.each(o,function(e,t){t.apply(r,s)}),r):r},r.__construct.apply(r,t),e.each(r,function(e){const t=r[e];"function"==typeof t&&(r[e]=function(){return t.apply(r,arguments)})}),function(){i=r.getDefaultSettings();const n=t[0];n&&e.extend(!0,i,n)}(),r.trigger("init")};Module.prototype.__construct=function(){},Module.prototype.getDefaultSettings=function(){return{}},Module.prototype.getConstructorID=function(){return this.constructor.name},Module.extend=function(e){const t=jQuery,r=this,child=function(){return r.apply(this,arguments)};return t.extend(child,r),(child.prototype=Object.create(t.extend({},r.prototype,e))).constructor=child,child.__super__=r.prototype,child},e.exports=Module},670:(e,t,r)=>{"use strict";var n=r(382),i=r(5835),s=r(7738);e.exports=function(e,t,r){n?i.f(e,t,s(0,r)):e[t]=r}},751:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r(5724),r(4846),r(9655);class InstanceType{static[Symbol.hasInstance](e){let t=super[Symbol.hasInstance](e);if(e&&!e.constructor.getInstanceType)return t;if(e&&(e.instanceTypes||(e.instanceTypes=[]),t||this.getInstanceType()===e.constructor.getInstanceType()&&(t=!0),t)){const t=this.getInstanceType===InstanceType.getInstanceType?"BaseInstanceType":this.getInstanceType();-1===e.instanceTypes.indexOf(t)&&e.instanceTypes.push(t)}return!t&&e&&(t=e.instanceTypes&&Array.isArray(e.instanceTypes)&&-1!==e.instanceTypes.indexOf(this.getInstanceType())),t}static getInstanceType(){elementorModules.ForceMethodImplementation()}constructor(){let e=new.target;const t=[];for(;e.__proto__&&e.__proto__.name;)t.push(e.__proto__),e=e.__proto__;t.reverse().forEach(e=>this instanceof e)}}t.default=InstanceType},1091:e=>{"use strict";var t=TypeError;e.exports=function(e){if(e>9007199254740991)throw t("Maximum allowed index exceeded");return e}},1265:(e,t,r)=>{"use strict";var n=r(6784);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(r(641)),s=n(r(2425)),o=n(r(2946)),a=n(r(3980)),c=n(r(2970)),l=n(r(8685)),u=r(9031),p=r(1462);const d={Module:i.default,ViewModule:s.default,ArgsObject:o.default,ForceMethodImplementation:l.default,utils:{Masonry:a.default,Scroll:c.default},importExport:{createGetInitialState:u.createGetInitialState,customizationDialogsRegistry:p.customizationDialogsRegistry}};window.elementorModules?Object.assign(window.elementorModules,d):window.elementorModules=d;t.default=window.elementorModules},1278:(e,t,r)=>{"use strict";var n=r(4762),i=n({}.toString),s=n("".slice);e.exports=function(e){return s(i(e),8,-1)}},1409:(e,t,r)=>{"use strict";var n=r(5578),i=r(1483);e.exports=function(e,t){return arguments.length<2?(r=n[e],i(r)?r:void 0):n[e]&&n[e][t];var r}},1423:(e,t,r)=>{"use strict";var n=r(1409),i=r(1483),s=r(4815),o=r(5022),a=Object;e.exports=o?function(e){return"symbol"==typeof e}:function(e){var t=n("Symbol");return i(t)&&s(t.prototype,a(e))}},1462:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.customizationDialogsRegistry=void 0;var n=r(7958);t.customizationDialogsRegistry=new n.BaseRegistry},1483:e=>{"use strict";var t="object"==typeof document&&document.all;e.exports=void 0===t&&void 0!==t?function(e){return"function"==typeof e||e===t}:function(e){return"function"==typeof e}},1506:(e,t,r)=>{"use strict";var n=r(2914),i=r(1807),s=r(2293),o=r(8761),a=r(5299),c=r(6960),l=r(4815),u=r(4887),p=r(6665),d=r(6721),h=TypeError,Result=function(e,t){this.stopped=e,this.result=t},f=Result.prototype;e.exports=function(e,t,r){var g,m,v,y,w,b,S,x=r&&r.that,E=!(!r||!r.AS_ENTRIES),I=!(!r||!r.IS_RECORD),_=!(!r||!r.IS_ITERATOR),C=!(!r||!r.INTERRUPTED),O=n(t,x),stop=function(e){return g&&d(g,"normal"),new Result(!0,e)},callFn=function(e){return E?(s(e),C?O(e[0],e[1],stop):O(e[0],e[1])):C?O(e,stop):O(e)};if(I)g=e.iterator;else if(_)g=e;else{if(!(m=p(e)))throw new h(o(e)+" is not iterable");if(a(m)){for(v=0,y=c(e);y>v;v++)if((w=callFn(e[v]))&&l(f,w))return w;return new Result(!1)}g=u(e,m)}for(b=I?e.next:g.next;!(S=i(b,g)).done;){try{w=callFn(S.value)}catch(e){d(g,"throw",e)}if("object"==typeof w&&w&&l(f,w))return w}return new Result(!1)}},1507:e=>{"use strict";e.exports={}},1703:e=>{"use strict";var t=Math.ceil,r=Math.floor;e.exports=Math.trunc||function trunc(e){var n=+e;return(n>0?r:t)(n)}},1704:(e,t,r)=>{"use strict";var n=r(1483);e.exports=function(e){return"object"==typeof e?null!==e:n(e)}},1799:(e,t,r)=>{"use strict";var n=r(382),i=r(8473),s=r(3145);e.exports=!n&&!i(function(){return 7!==Object.defineProperty(s("div"),"a",{get:function(){return 7}}).a})},1807:(e,t,r)=>{"use strict";var n=r(274),i=Function.prototype.call;e.exports=n?i.bind(i):function(){return i.apply(i,arguments)}},1831:(e,t,r)=>{"use strict";var n=r(9557),i=r(5578),s=r(2095),o="__core-js_shared__",a=e.exports=i[o]||s(o,{});(a.versions||(a.versions=[])).push({version:"3.46.0",mode:n?"pure":"global",copyright:"© 2014-2025 Denis Pushkarev (zloirock.ru), 2025 CoreJS Company (core-js.io)",license:"https://github.com/zloirock/core-js/blob/v3.46.0/LICENSE",source:"https://github.com/zloirock/core-js"})},1851:(e,t,r)=>{"use strict";var n,i,s,o=r(8473),a=r(1483),c=r(1704),l=r(5290),u=r(3181),p=r(7914),d=r(1),h=r(9557),f=d("iterator"),g=!1;[].keys&&("next"in(s=[].keys())?(i=u(u(s)))!==Object.prototype&&(n=i):g=!0),!c(n)||o(function(){var e={};return n[f].call(e)!==e})?n={}:h&&(n=l(n)),a(n[f])||p(n,f,function(){return this}),e.exports={IteratorPrototype:n,BUGGY_SAFARI_ITERATORS:g}},1866:(e,t,r)=>{"use strict";var n=r(4762),i=0,s=Math.random(),o=n(1.1.toString);e.exports=function(e){return"Symbol("+(void 0===e?"":e)+")_"+o(++i+s,36)}},1975:(e,t,r)=>{"use strict";var n=r(8612),i=r(1807),s=r(8120),o=r(2293),a=r(41),c=r(8660),l=r(8901),u=r(9557),p=r(6721),d=r(7486),h=r(5267),f=!u&&!d("filter",function(){}),g=!u&&!f&&h("filter",TypeError),m=u||f||g,v=c(function(){for(var e,t,r=this.iterator,n=this.predicate,s=this.next;;){if(e=o(i(s,r)),this.done=!!e.done)return;if(t=e.value,l(r,n,[t,this.counter++],!0))return t}});n({target:"Iterator",proto:!0,real:!0,forced:m},{filter:function filter(e){o(this);try{s(e)}catch(e){p(this,"throw",e)}return g?i(g,this,e):new v(a(this),{predicate:e})}})},1983:(e,t,r)=>{"use strict";var n=r(6721);e.exports=function(e,t,r){for(var i=e.length-1;i>=0;i--)if(void 0!==e[i])try{r=n(e[i].iterator,t,r)}catch(e){t="throw",r=e}if("throw"===t)throw r;return r}},2048:(e,t,r)=>{"use strict";var n=r(382),i=r(5755),s=Function.prototype,o=n&&Object.getOwnPropertyDescriptor,a=i(s,"name"),c=a&&"something"===function something(){}.name,l=a&&(!n||n&&o(s,"name").configurable);e.exports={EXISTS:a,PROPER:c,CONFIGURABLE:l}},2095:(e,t,r)=>{"use strict";var n=r(5578),i=Object.defineProperty;e.exports=function(e,t){try{i(n,e,{value:t,configurable:!0,writable:!0})}catch(r){n[e]=t}return t}},2121:(e,t,r)=>{"use strict";var n=r(4762),i=r(8473),s=r(1278),o=Object,a=n("".split);e.exports=i(function(){return!o("z").propertyIsEnumerable(0)})?function(e){return"String"===s(e)?a(e,""):o(e)}:o},2278:(e,t,r)=>{"use strict";var n=r(6742),i=r(4741).concat("length","prototype");t.f=Object.getOwnPropertyNames||function getOwnPropertyNames(e){return n(e,i)}},2293:(e,t,r)=>{"use strict";var n=r(1704),i=String,s=TypeError;e.exports=function(e){if(n(e))return e;throw new s(i(e)+" is not an object")}},2313:(e,t,r)=>{"use strict";var n=r(7914);e.exports=function(e,t,r){for(var i in t)n(e,i,t[i],r);return e}},2347:(e,t,r)=>{"use strict";var n=r(3312),i=Object;e.exports=function(e){return i(n(e))}},2355:(e,t,r)=>{"use strict";var n=r(1807),i=r(1704),s=r(1423),o=r(2564),a=r(348),c=r(1),l=TypeError,u=c("toPrimitive");e.exports=function(e,t){if(!i(e)||s(e))return e;var r,c=o(e,u);if(c){if(void 0===t&&(t="default"),r=n(c,e,t),!i(r)||s(r))return r;throw new l("Can't convert object to primitive value")}return void 0===t&&(t="number"),a(e,t)}},2425:(e,t,r)=>{"use strict";var n=r(6784);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(r(641));t.default=i.default.extend({elements:null,getDefaultElements:()=>({}),bindEvents(){},onInit(){this.initElements(),this.bindEvents()},initElements(){this.elements=this.getDefaultElements()}})},2564:(e,t,r)=>{"use strict";var n=r(8120),i=r(5983);e.exports=function(e,t){var r=e[t];return i(r)?void 0:n(r)}},2811:(e,t,r)=>{"use strict";var n=r(1409);e.exports=n("document","documentElement")},2890:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r(4846),r(6211);class _default extends elementorModules.ViewModule{getDefaultSettings(){return{selectors:{elements:".elementor-element",nestedDocumentElements:".elementor .elementor-element"},classes:{editMode:"elementor-edit-mode"}}}getDefaultElements(){const e=this.getSettings("selectors");return{$elements:this.$element.find(e.elements).not(this.$element.find(e.nestedDocumentElements))}}getDocumentSettings(e){let t;if(this.isEdit){t={};const e=elementor.settings.page.model;jQuery.each(e.getActiveControls(),r=>{t[r]=e.attributes[r]})}else t=this.$element.data("elementor-settings")||{};return this.getItems(t,e)}runElementsHandlers(){this.elements.$elements.each((e,t)=>setTimeout(()=>elementorFrontend.elementsHandler.runReadyTrigger(t)))}onInit(){this.$element=this.getSettings("$element"),super.onInit(),this.isEdit=this.$element.hasClass(this.getSettings("classes.editMode")),this.isEdit?elementor.on("document:loaded",()=>{elementor.settings.page.model.on("change",this.onSettingsChange.bind(this))}):this.runElementsHandlers()}onSettingsChange(){}}t.default=_default},2914:(e,t,r)=>{"use strict";var n=r(3786),i=r(8120),s=r(274),o=n(n.bind);e.exports=function(e,t){return i(e),void 0===t?e:s?o(e,t):function(){return e.apply(t,arguments)}}},2946:(e,t,r)=>{"use strict";var n=r(6784);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(r(751)),s=n(r(5213));class ArgsObject extends i.default{static getInstanceType(){return"ArgsObject"}constructor(e){super(),this.args=e}requireArgument(e,t=this.args){if(!Object.prototype.hasOwnProperty.call(t,e))throw Error(`${e} is required.`)}requireArgumentType(e,t,r=this.args){if(this.requireArgument(e,r),typeof r[e]!==t)throw Error(`${e} invalid type: ${t}.`)}requireArgumentInstance(e,t,r=this.args){if(this.requireArgument(e,r),!(r[e]instanceof t||(0,s.default)(r[e],t)))throw Error(`${e} invalid instance.`)}requireArgumentConstructor(e,t,r=this.args){if(this.requireArgument(e,r),r[e].constructor.toString()!==t.prototype.constructor.toString())throw Error(`${e} invalid constructor type.`)}}t.default=ArgsObject},2970:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r(5724);t.default=class Scroll{static scrollObserver(e){let t=0;const r={root:e.root||null,rootMargin:e.offset||"0px",threshold:((e=0)=>{const t=[];if(e>0&&e<=100){const r=100/e;for(let e=0;e<=100;e+=r)t.push(e/100)}else t.push(0);return t})(e.sensitivity)};return new IntersectionObserver(function handleIntersect(r){const n=r[0].boundingClientRect.y,i=r[0].isIntersecting,s=n<t?"down":"up",o=Math.abs(parseFloat((100*r[0].intersectionRatio).toFixed(2)));e.callback({sensitivity:e.sensitivity,isInViewport:i,scrollPercentage:o,intersectionScrollDirection:s}),t=n},r)}static getElementViewportPercentage(e,t={}){const r=e[0].getBoundingClientRect(),n=t.start||0,i=t.end||0,s=window.innerHeight*n/100,o=window.innerHeight*i/100,a=r.top-window.innerHeight,c=0-a+s,l=r.top+s+e.height()-a+o,u=Math.max(0,Math.min(c/l,1));return parseFloat((100*u).toFixed(2))}static getPageScrollPercentage(e={},t){const r=e.start||0,n=e.end||0,i=t||document.documentElement.scrollHeight-document.documentElement.clientHeight,s=i*r/100,o=i+s+i*n/100;return(document.documentElement.scrollTop+document.body.scrollTop+s)/o*100}}},3005:(e,t,r)=>{"use strict";var n=r(1703);e.exports=function(e){var t=+e;return t!=t||0===t?0:n(t)}},3145:(e,t,r)=>{"use strict";var n=r(5578),i=r(1704),s=n.document,o=i(s)&&i(s.createElement);e.exports=function(e){return o?s.createElement(e):{}}},3181:(e,t,r)=>{"use strict";var n=r(5755),i=r(1483),s=r(2347),o=r(5409),a=r(9441),c=o("IE_PROTO"),l=Object,u=l.prototype;e.exports=a?l.getPrototypeOf:function(e){var t=s(e);if(n(t,c))return t[c];var r=t.constructor;return i(r)&&t instanceof r?r.prototype:t instanceof l?u:null}},3242:(e,t,r)=>{"use strict";var n=r(8612),i=r(1807),s=r(1506),o=r(8120),a=r(2293),c=r(41),l=r(6721),u=r(5267)("find",TypeError);n({target:"Iterator",proto:!0,real:!0,forced:u},{find:function find(e){a(this);try{o(e)}catch(e){l(this,"throw",e)}if(u)return i(u,this,e);var t=c(this),r=0;return s(t,function(t,n){if(e(t,r++))return n(t)},{IS_RECORD:!0,INTERRUPTED:!0}).result}})},3312:(e,t,r)=>{"use strict";var n=r(5983),i=TypeError;e.exports=function(e){if(n(e))throw new i("Can't call method on "+e);return e}},3392:(e,t,r)=>{"use strict";var n=r(3005),i=Math.max,s=Math.min;e.exports=function(e,t){var r=n(e);return r<0?i(r+t,0):s(r,t)}},3617:(e,t,r)=>{"use strict";var n=r(8612),i=r(5578),s=r(6021),o=r(2293),a=r(1483),c=r(3181),l=r(3864),u=r(670),p=r(8473),d=r(5755),h=r(1),f=r(1851).IteratorPrototype,g=r(382),m=r(9557),v="constructor",y="Iterator",w=h("toStringTag"),b=TypeError,S=i[y],x=m||!a(S)||S.prototype!==f||!p(function(){S({})}),E=function Iterator(){if(s(this,f),c(this)===f)throw new b("Abstract class Iterator not directly constructable")},defineIteratorPrototypeAccessor=function(e,t){g?l(f,e,{configurable:!0,get:function(){return t},set:function(t){if(o(this),this===f)throw new b("You can't redefine this property");d(this,e)?this[e]=t:u(this,e,t)}}):f[e]=t};d(f,w)||defineIteratorPrototypeAccessor(w,y),!x&&d(f,v)&&f[v]!==Object||defineIteratorPrototypeAccessor(v,E),E.prototype=f,n({global:!0,constructor:!0,forced:x},{Iterator:E})},3658:(e,t,r)=>{"use strict";var n=r(6742),i=r(4741);e.exports=Object.keys||function keys(e){return n(e,i)}},3786:(e,t,r)=>{"use strict";var n=r(1278),i=r(4762);e.exports=function(e){if("Function"===n(e))return i(e)}},3815:(e,t,r)=>{"use strict";var n=r(2355),i=r(1423);e.exports=function(e){var t=n(e,"string");return i(t)?t:t+""}},3864:(e,t,r)=>{"use strict";var n=r(169),i=r(5835);e.exports=function(e,t,r){return r.get&&n(r.get,t,{getter:!0}),r.set&&n(r.set,t,{setter:!0}),i.f(e,t,r)}},3896:(e,t,r)=>{"use strict";var n=r(382),i=r(8473);e.exports=n&&i(function(){return 42!==Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype})},3980:(e,t,r)=>{"use strict";var n=r(6784);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r(5724);var i=n(r(2425));t.default=i.default.extend({getDefaultSettings:()=>({container:null,items:null,columnsCount:3,verticalSpaceBetween:30}),getDefaultElements(){return{$container:jQuery(this.getSettings("container")),$items:jQuery(this.getSettings("items"))}},run(){var e=[],t=this.elements.$container.position().top,r=this.getSettings(),n=r.columnsCount;t+=parseInt(this.elements.$container.css("margin-top"),10),this.elements.$items.each(function(i){var s=Math.floor(i/n),o=jQuery(this),a=o[0].getBoundingClientRect().height+r.verticalSpaceBetween;if(s){var c=o.position(),l=i%n,u=c.top-t-e[l];u-=parseInt(o.css("margin-top"),10),u*=-1,o.css("margin-top",u+"px"),e[l]+=a}else e.push(a)})}})},3991:(e,t,r)=>{"use strict";var n=r(8612),i=r(1807),s=r(8120),o=r(2293),a=r(41),c=r(8660),l=r(8901),u=r(6721),p=r(7486),d=r(5267),h=r(9557),f=!h&&!p("map",function(){}),g=!h&&!f&&d("map",TypeError),m=h||f||g,v=c(function(){var e=this.iterator,t=o(i(this.next,e));if(!(this.done=!!t.done))return l(e,this.mapper,[t.value,this.counter++],!0)});n({target:"Iterator",proto:!0,real:!0,forced:m},{map:function map(e){o(this);try{s(e)}catch(e){u(this,"throw",e)}return g?i(g,this,e):new v(a(this),{mapper:e})}})},4338:(e,t,r)=>{"use strict";var n={};n[r(1)("toStringTag")]="z",e.exports="[object z]"===String(n)},4347:(e,t)=>{"use strict";t.f=Object.getOwnPropertySymbols},4364:(e,t,r)=>{"use strict";r(3991)},4483:(e,t,r)=>{"use strict";var n,i,s,o=r(4644),a=r(5578),c=r(1704),l=r(9037),u=r(5755),p=r(1831),d=r(5409),h=r(1507),f="Object already initialized",g=a.TypeError,m=a.WeakMap;if(o||p.state){var v=p.state||(p.state=new m);v.get=v.get,v.has=v.has,v.set=v.set,n=function(e,t){if(v.has(e))throw new g(f);return t.facade=e,v.set(e,t),t},i=function(e){return v.get(e)||{}},s=function(e){return v.has(e)}}else{var y=d("state");h[y]=!0,n=function(e,t){if(u(e,y))throw new g(f);return t.facade=e,l(e,y,t),t},i=function(e){return u(e,y)?e[y]:{}},s=function(e){return u(e,y)}}e.exports={set:n,get:i,has:s,enforce:function(e){return s(e)?i(e):n(e,{})},getterFor:function(e){return function(t){var r;if(!c(t)||(r=i(t)).type!==e)throw new g("Incompatible receiver, "+e+" required");return r}}}},4644:(e,t,r)=>{"use strict";var n=r(5578),i=r(1483),s=n.WeakMap;e.exports=i(s)&&/native code/.test(String(s))},4741:e=>{"use strict";e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},4762:(e,t,r)=>{"use strict";var n=r(274),i=Function.prototype,s=i.call,o=n&&i.bind.bind(s,s);e.exports=n?o:function(e){return function(){return s.apply(e,arguments)}}},4815:(e,t,r)=>{"use strict";var n=r(4762);e.exports=n({}.isPrototypeOf)},4846:(e,t,r)=>{"use strict";r(3617)},4887:(e,t,r)=>{"use strict";var n=r(1807),i=r(8120),s=r(2293),o=r(8761),a=r(6665),c=TypeError;e.exports=function(e,t){var r=arguments.length<2?a(e):t;if(i(r))return s(n(r,e));throw new c(o(e)+" is not iterable")}},4914:(e,t,r)=>{"use strict";var n=r(1278);e.exports=Array.isArray||function isArray(e){return"Array"===n(e)}},4946:(e,t,r)=>{"use strict";var n=r(6784),i=n(r(1265)),s=n(r(2890)),o=n(r(7955)),a=n(r(8140)),c=n(r(7224)),l=n(r(5633)),u=n(r(9603));i.default.frontend={Document:s.default,tools:{StretchElement:o.default},handlers:{Base:c.default,StretchedElement:a.default,SwiperBase:l.default,CarouselBase:u.default}}},4961:(e,t,r)=>{"use strict";var n=r(382),i=r(1807),s=r(7611),o=r(7738),a=r(5599),c=r(3815),l=r(5755),u=r(1799),p=Object.getOwnPropertyDescriptor;t.f=n?p:function getOwnPropertyDescriptor(e,t){if(e=a(e),t=c(t),u)try{return p(e,t)}catch(e){}if(l(e,t))return o(!i(s.f,e,t),e[t])}},5022:(e,t,r)=>{"use strict";var n=r(6029);e.exports=n&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},5213:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=(e,t)=>{t=Array.isArray(t)?t:[t];for(const r of t)if(e.constructor.name===r.prototype[Symbol.toStringTag])return!0;return!1}},5247:e=>{"use strict";e.exports=function(e,t){return{value:e,done:t}}},5267:(e,t,r)=>{"use strict";var n=r(5578);e.exports=function(e,t){var r=n.Iterator,i=r&&r.prototype,s=i&&i[e],o=!1;if(s)try{s.call({next:function(){return{done:!0}},return:function(){o=!0}},-1)}catch(e){e instanceof t||(o=!1)}if(!o)return s}},5290:(e,t,r)=>{"use strict";var n,i=r(2293),s=r(5799),o=r(4741),a=r(1507),c=r(2811),l=r(3145),u=r(5409),p="prototype",d="script",h=u("IE_PROTO"),EmptyConstructor=function(){},scriptTag=function(e){return"<"+d+">"+e+"</"+d+">"},NullProtoObjectViaActiveX=function(e){e.write(scriptTag("")),e.close();var t=e.parentWindow.Object;return e=null,t},NullProtoObject=function(){try{n=new ActiveXObject("htmlfile")}catch(e){}var e,t,r;NullProtoObject="undefined"!=typeof document?document.domain&&n?NullProtoObjectViaActiveX(n):(t=l("iframe"),r="java"+d+":",t.style.display="none",c.appendChild(t),t.src=String(r),(e=t.contentWindow.document).open(),e.write(scriptTag("document.F=Object")),e.close(),e.F):NullProtoObjectViaActiveX(n);for(var i=o.length;i--;)delete NullProtoObject[p][o[i]];return NullProtoObject()};a[h]=!0,e.exports=Object.create||function create(e,t){var r;return null!==e?(EmptyConstructor[p]=i(e),r=new EmptyConstructor,EmptyConstructor[p]=null,r[h]=e):r=NullProtoObject(),void 0===t?r:s.f(r,t)}},5299:(e,t,r)=>{"use strict";var n=r(1),i=r(6775),s=n("iterator"),o=Array.prototype;e.exports=function(e){return void 0!==e&&(i.Array===e||o[s]===e)}},5409:(e,t,r)=>{"use strict";var n=r(7255),i=r(1866),s=n("keys");e.exports=function(e){return s[e]||(s[e]=i(e))}},5578:function(e,t,r){"use strict";var check=function(e){return e&&e.Math===Math&&e};e.exports=check("object"==typeof globalThis&&globalThis)||check("object"==typeof window&&window)||check("object"==typeof self&&self)||check("object"==typeof r.g&&r.g)||check("object"==typeof this&&this)||function(){return this}()||Function("return this")()},5599:(e,t,r)=>{"use strict";var n=r(2121),i=r(3312);e.exports=function(e){return n(i(e))}},5633:(e,t,r)=>{"use strict";var n=r(6784);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(r(7224));class SwiperHandlerBase extends i.default{getInitialSlide(){const e=this.getEditSettings();return e.activeItemIndex?e.activeItemIndex-1:0}getSlidesCount(){return this.elements.$slides.length}togglePauseOnHover(e){e?this.elements.$swiperContainer.on({mouseenter:()=>{this.swiper.autoplay.stop()},mouseleave:()=>{this.swiper.autoplay.start()}}):this.elements.$swiperContainer.off("mouseenter mouseleave")}handleKenBurns(){const e=this.getSettings();this.$activeImageBg&&this.$activeImageBg.removeClass(e.classes.kenBurnsActive),this.activeItemIndex=this.swiper?this.swiper.activeIndex:this.getInitialSlide(),this.swiper?this.$activeImageBg=jQuery(this.swiper.slides[this.activeItemIndex]).children("."+e.classes.slideBackground):this.$activeImageBg=jQuery(this.elements.$slides[0]).children("."+e.classes.slideBackground),this.$activeImageBg.addClass(e.classes.kenBurnsActive)}}t.default=SwiperHandlerBase},5724:(e,t,r)=>{"use strict";var n=r(8612),i=r(2347),s=r(6960),o=r(9273),a=r(1091);n({target:"Array",proto:!0,arity:1,forced:r(8473)(function(){return 4294967297!==[].push.call({length:4294967296},1)})||!function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(e){return e instanceof TypeError}}()},{push:function push(e){var t=i(this),r=s(t),n=arguments.length;a(r+n);for(var c=0;c<n;c++)t[r]=arguments[c],r++;return o(t,r),r}})},5755:(e,t,r)=>{"use strict";var n=r(4762),i=r(2347),s=n({}.hasOwnProperty);e.exports=Object.hasOwn||function hasOwn(e,t){return s(i(e),t)}},5799:(e,t,r)=>{"use strict";var n=r(382),i=r(3896),s=r(5835),o=r(2293),a=r(5599),c=r(3658);t.f=n&&!i?Object.defineProperties:function defineProperties(e,t){o(e);for(var r,n=a(t),i=c(t),l=i.length,u=0;l>u;)s.f(e,r=i[u++],n[r]);return e}},5835:(e,t,r)=>{"use strict";var n=r(382),i=r(1799),s=r(3896),o=r(2293),a=r(3815),c=TypeError,l=Object.defineProperty,u=Object.getOwnPropertyDescriptor,p="enumerable",d="configurable",h="writable";t.f=n?s?function defineProperty(e,t,r){if(o(e),t=a(t),o(r),"function"==typeof e&&"prototype"===t&&"value"in r&&h in r&&!r[h]){var n=u(e,t);n&&n[h]&&(e[t]=r.value,r={configurable:d in r?r[d]:n[d],enumerable:p in r?r[p]:n[p],writable:!1})}return l(e,t,r)}:l:function defineProperty(e,t,r){if(o(e),t=a(t),o(r),i)try{return l(e,t,r)}catch(e){}if("get"in r||"set"in r)throw new c("Accessors not supported");return"value"in r&&(e[t]=r.value),e}},5983:e=>{"use strict";e.exports=function(e){return null==e}},6021:(e,t,r)=>{"use strict";var n=r(4815),i=TypeError;e.exports=function(e,t){if(n(t,e))return e;throw new i("Incorrect invocation")}},6029:(e,t,r)=>{"use strict";var n=r(6477),i=r(8473),s=r(5578).String;e.exports=!!Object.getOwnPropertySymbols&&!i(function(){var e=Symbol("symbol detection");return!s(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&n&&n<41})},6145:(e,t,r)=>{"use strict";var n=r(4338),i=r(1483),s=r(1278),o=r(1)("toStringTag"),a=Object,c="Arguments"===s(function(){return arguments}());e.exports=n?s:function(e){var t,r,n;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(r=function(e,t){try{return e[t]}catch(e){}}(t=a(e),o))?r:c?s(t):"Object"===(n=s(t))&&i(t.callee)?"Arguments":n}},6211:(e,t,r)=>{"use strict";r(3242)},6477:(e,t,r)=>{"use strict";var n,i,s=r(5578),o=r(9461),a=s.process,c=s.Deno,l=a&&a.versions||c&&c.version,u=l&&l.v8;u&&(i=(n=u.split("."))[0]>0&&n[0]<4?1:+(n[0]+n[1])),!i&&o&&(!(n=o.match(/Edge\/(\d+)/))||n[1]>=74)&&(n=o.match(/Chrome\/(\d+)/))&&(i=+n[1]),e.exports=i},6651:(e,t,r)=>{"use strict";var n=r(5599),i=r(3392),s=r(6960),createMethod=function(e){return function(t,r,o){var a=n(t),c=s(a);if(0===c)return!e&&-1;var l,u=i(o,c);if(e&&r!=r){for(;c>u;)if((l=a[u++])!=l)return!0}else for(;c>u;u++)if((e||u in a)&&a[u]===r)return e||u||0;return!e&&-1}};e.exports={includes:createMethod(!0),indexOf:createMethod(!1)}},6665:(e,t,r)=>{"use strict";var n=r(6145),i=r(2564),s=r(5983),o=r(6775),a=r(1)("iterator");e.exports=function(e){if(!s(e))return i(e,a)||i(e,"@@iterator")||o[n(e)]}},6721:(e,t,r)=>{"use strict";var n=r(1807),i=r(2293),s=r(2564);e.exports=function(e,t,r){var o,a;i(e);try{if(!(o=s(e,"return"))){if("throw"===t)throw r;return r}o=n(o,e)}catch(e){a=!0,o=e}if("throw"===t)throw r;if(a)throw o;return i(o),r}},6726:(e,t,r)=>{"use strict";var n=r(5755),i=r(9497),s=r(4961),o=r(5835);e.exports=function(e,t,r){for(var a=i(t),c=o.f,l=s.f,u=0;u<a.length;u++){var p=a[u];n(e,p)||r&&n(r,p)||c(e,p,l(t,p))}}},6742:(e,t,r)=>{"use strict";var n=r(4762),i=r(5755),s=r(5599),o=r(6651).indexOf,a=r(1507),c=n([].push);e.exports=function(e,t){var r,n=s(e),l=0,u=[];for(r in n)!i(a,r)&&i(n,r)&&c(u,r);for(;t.length>l;)i(n,r=t[l++])&&(~o(u,r)||c(u,r));return u}},6775:e=>{"use strict";e.exports={}},6784:e=>{e.exports=function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}},e.exports.__esModule=!0,e.exports.default=e.exports},6960:(e,t,r)=>{"use strict";var n=r(8324);e.exports=function(e){return n(e.length)}},7224:(e,t,r)=>{"use strict";r(5724),r(4846),r(7458),r(6211),r(9655),e.exports=elementorModules.ViewModule.extend({$element:null,editorListeners:null,onElementChange:null,onEditSettingsChange:null,onPageSettingsChange:null,isEdit:null,__construct(e){this.isActive(e)&&(this.$element=e.$element,this.isEdit=this.$element.hasClass("elementor-element-edit-mode"),this.isEdit&&this.addEditorListeners())},isActive:()=>!0,isElementInTheCurrentDocument(){return!!elementorFrontend.isEditMode()&&elementor.documents.currentDocument.id.toString()===this.$element[0].closest(".elementor").dataset.elementorId},findElement(e){var t=this.$element;return t.find(e).filter(function(){return jQuery(this).parent().closest(".elementor-element").is(t)})},getUniqueHandlerID(e,t){return e||(e=this.getModelCID()),t||(t=this.$element),e+t.attr("data-element_type")+this.getConstructorID()},initEditorListeners(){var e=this;if(e.editorListeners=[{event:"element:destroy",to:elementor.channels.data,callback(t){t.cid===e.getModelCID()&&e.onDestroy()}}],e.onElementChange){const t=e.getWidgetType()||e.getElementType();let r="change";"global"!==t&&(r+=":"+t),e.editorListeners.push({event:r,to:elementor.channels.editor,callback(t,r){e.getUniqueHandlerID(r.model.cid,r.$el)===e.getUniqueHandlerID()&&e.onElementChange(t.model.get("name"),t,r)}})}e.onEditSettingsChange&&e.editorListeners.push({event:"change:editSettings",to:elementor.channels.editor,callback(t,r){if(r.model.cid!==e.getModelCID())return;const n=Object.keys(t.changed)[0];e.onEditSettingsChange(n,t.changed[n])}}),["page"].forEach(function(t){var r="on"+t[0].toUpperCase()+t.slice(1)+"SettingsChange";e[r]&&e.editorListeners.push({event:"change",to:elementor.settings[t].model,callback(t){e[r](t.changed)}})})},getEditorListeners(){return this.editorListeners||this.initEditorListeners(),this.editorListeners},addEditorListeners(){var e=this.getUniqueHandlerID();this.getEditorListeners().forEach(function(t){elementorFrontend.addListenerOnce(e,t.event,t.callback,t.to)})},removeEditorListeners(){var e=this.getUniqueHandlerID();this.getEditorListeners().forEach(function(t){elementorFrontend.removeListeners(e,t.event,null,t.to)})},getElementType(){return this.$element.data("element_type")},getWidgetType(){const e=this.$element.data("widget_type");if(e)return e.split(".")[0]},getID(){return this.$element.data("id")},getModelCID(){return this.$element.data("model-cid")},getElementSettings(e){let t={};const r=this.getModelCID();if(this.isEdit&&r){const e=elementorFrontend.config.elements.data[r],n=e.attributes;let i=n.widgetType||n.elType;n.isInner&&(i="inner-"+i);let s=elementorFrontend.config.elements.keys[i];s||(s=elementorFrontend.config.elements.keys[i]=[],jQuery.each(e.controls,(e,t)=>{(t.frontend_available||t.editor_available)&&s.push(e)})),jQuery.each(e.getActiveControls(),function(e){if(-1!==s.indexOf(e)){let r=n[e];r.toJSON&&(r=r.toJSON()),t[e]=r}})}else t=this.$element.data("settings")||{};return this.getItems(t,e)},getEditSettings(e){var t={};return this.isEdit&&(t=elementorFrontend.config.elements.editSettings[this.getModelCID()].attributes),this.getItems(t,e)},getCurrentDeviceSetting(e){return elementorFrontend.getCurrentDeviceSetting(this.getElementSettings(),e)},onInit(){this.isActive(this.getSettings())&&elementorModules.ViewModule.prototype.onInit.apply(this,arguments)},onDestroy(){this.isEdit&&this.removeEditorListeners(),this.unbindEvents&&this.unbindEvents()}})},7255:(e,t,r)=>{"use strict";var n=r(1831);e.exports=function(e,t){return n[e]||(n[e]=t||{})}},7268:(e,t,r)=>{"use strict";var n=r(4762),i=r(1483),s=r(1831),o=n(Function.toString);i(s.inspectSource)||(s.inspectSource=function(e){return o(e)}),e.exports=s.inspectSource},7458:(e,t,r)=>{"use strict";r(1975)},7486:e=>{"use strict";e.exports=function(e,t){var r="function"==typeof Iterator&&Iterator.prototype[e];if(r)try{r.call({next:null},t).next()}catch(e){return!0}}},7611:(e,t)=>{"use strict";var r={}.propertyIsEnumerable,n=Object.getOwnPropertyDescriptor,i=n&&!r.call({1:2},1);t.f=i?function propertyIsEnumerable(e){var t=n(this,e);return!!t&&t.enumerable}:r},7738:e=>{"use strict";e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},7914:(e,t,r)=>{"use strict";var n=r(1483),i=r(5835),s=r(169),o=r(2095);e.exports=function(e,t,r,a){a||(a={});var c=a.enumerable,l=void 0!==a.name?a.name:t;if(n(r)&&s(r,l,a),a.global)c?e[t]=r:o(t,r);else{try{a.unsafe?e[t]&&(c=!0):delete e[t]}catch(e){}c?e[t]=r:i.f(e,t,{value:r,enumerable:!1,configurable:!a.nonConfigurable,writable:!a.nonWritable})}return e}},7955:e=>{"use strict";e.exports=elementorModules.ViewModule.extend({getDefaultSettings:()=>({element:null,direction:elementorFrontend.config.is_rtl?"right":"left",selectors:{container:window},considerScrollbar:!1,cssOutput:"inline"}),getDefaultElements(){return{$element:jQuery(this.getSettings("element"))}},stretch(){const e=this.getSettings();let t;try{t=jQuery(e.selectors.container)}catch(e){}t&&t.length||(t=jQuery(this.getDefaultSettings().selectors.container)),this.reset();var r=this.elements.$element,n=t.innerWidth(),i=r.offset().left,s="fixed"===r.css("position"),o=s?0:i,a=window===t[0];if(!a){var c=t.offset().left;s&&(o=c),i>c&&(o=i-c)}if(e.considerScrollbar&&a){o-=window.innerWidth-n}s||(elementorFrontend.config.is_rtl&&(o=n-(r.outerWidth()+o)),o=-o),e.margin&&(o+=e.margin);var l={};let u=n;e.margin&&(u-=2*e.margin),l.width=u+"px",l[e.direction]=o+"px","variables"!==e.cssOutput?r.css(l):this.applyCssVariables(r,l)},reset(){const e={},t=this.getSettings(),r=this.elements.$element;"variables"!==t.cssOutput?(e.width="",e[t.direction]="",r.css(e)):this.resetCssVariables(r)},applyCssVariables(e,t){e.css("--stretch-width",t.width),t.left?e.css("--stretch-left",t.left):e.css("--stretch-right",t.right)},resetCssVariables(e){e.css({"--stretch-width":"","--stretch-left":"","--stretch-right":""})}})},7958:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BaseRegistry=void 0,r(4846),r(7458),r(9655),r(4364);t.BaseRegistry=class BaseRegistry{constructor(){this.sections=new Map}register(e){if(!e.key||!e.title)throw new Error("Template type must have key and title");const t=this.get(e.key)||this.formatSection(e);if(e.children)if(t.children){const r=new Map(t.children.map(e=>[e.key,e]));e.children.forEach(e=>{const t=this.formatSection(e);r.set(e.key,t)}),t.children=Array.from(r.values())}else t.children=e.children.map(e=>this.formatSection(e));this.sections.set(e.key,t)}formatSection({children:e,...t}){return{key:t.key,title:t.title,description:t.description||"",useParentDefault:!1!==t.useParentDefault,getInitialState:t.getInitialState||null,component:t.component||null,order:t.order||10,isAvailable:t.isAvailable||(()=>!0),...t}}getAll(){return Array.from(this.sections.values()).filter(e=>e.isAvailable()).map(e=>e.children?{...e,children:[...e.children].sort((e,t)=>e.order-t.order)}:e).sort((e,t)=>e.order-t.order)}get(e){return this.sections.get(e)}}},8120:(e,t,r)=>{"use strict";var n=r(1483),i=r(8761),s=TypeError;e.exports=function(e){if(n(e))return e;throw new s(i(e)+" is not a function")}},8140:(e,t,r)=>{"use strict";var n=r(6784);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r(4846),r(6211);var i=n(r(7224));class StretchedElement extends i.default{getStretchedClass(){return"e-stretched"}getStretchSettingName(){return"stretch_element"}getStretchActiveValue(){return"yes"}bindEvents(){const e=this.getUniqueHandlerID();elementorFrontend.addListenerOnce(e,"resize",this.stretch),elementorFrontend.addListenerOnce(e,"sticky:stick",this.stretch,this.$element),elementorFrontend.addListenerOnce(e,"sticky:unstick",this.stretch,this.$element),elementorFrontend.isEditMode()&&(this.onKitChangeStretchContainerChange=this.onKitChangeStretchContainerChange.bind(this),elementor.channels.editor.on("kit:change:stretchContainer",this.onKitChangeStretchContainerChange))}unbindEvents(){elementorFrontend.removeListeners(this.getUniqueHandlerID(),"resize",this.stretch),elementorFrontend.isEditMode()&&elementor.channels.editor.off("kit:change:stretchContainer",this.onKitChangeStretchContainerChange)}isActive(e){return elementorFrontend.isEditMode()||e.$element.hasClass(this.getStretchedClass())}getStretchElementForConfig(e=null){return e?this.$element.find(e):this.$element}getStretchElementConfig(){return{element:this.getStretchElementForConfig(),selectors:{container:this.getStretchContainer()},considerScrollbar:elementorFrontend.isEditMode()&&elementorFrontend.config.is_rtl}}initStretch(){this.stretch=this.stretch.bind(this),this.stretchElement=new elementorModules.frontend.tools.StretchElement(this.getStretchElementConfig())}getStretchContainer(){return elementorFrontend.getKitSettings("stretched_section_container")||window}isStretchSettingEnabled(){return this.getElementSettings(this.getStretchSettingName())===this.getStretchActiveValue()}stretch(){this.isStretchSettingEnabled()&&this.stretchElement.stretch()}onInit(...e){this.isActive(this.getSettings())&&(this.initStretch(),super.onInit(...e),this.stretch())}onElementChange(e){this.getStretchSettingName()===e&&(this.isStretchSettingEnabled()?this.stretch():this.stretchElement.reset())}onKitChangeStretchContainerChange(){this.stretchElement.setSettings("selectors.container",this.getStretchContainer()),this.stretch()}}t.default=StretchedElement},8324:(e,t,r)=>{"use strict";var n=r(3005),i=Math.min;e.exports=function(e){var t=n(e);return t>0?i(t,9007199254740991):0}},8473:e=>{"use strict";e.exports=function(e){try{return!!e()}catch(e){return!0}}},8612:(e,t,r)=>{"use strict";var n=r(5578),i=r(4961).f,s=r(9037),o=r(7914),a=r(2095),c=r(6726),l=r(8730);e.exports=function(e,t){var r,u,p,d,h,f=e.target,g=e.global,m=e.stat;if(r=g?n:m?n[f]||a(f,{}):n[f]&&n[f].prototype)for(u in t){if(d=t[u],p=e.dontCallGetSet?(h=i(r,u))&&h.value:r[u],!l(g?u:f+(m?".":"#")+u,e.forced)&&void 0!==p){if(typeof d==typeof p)continue;c(d,p)}(e.sham||p&&p.sham)&&s(d,"sham",!0),o(r,u,d,e)}}},8660:(e,t,r)=>{"use strict";var n=r(1807),i=r(5290),s=r(9037),o=r(2313),a=r(1),c=r(4483),l=r(2564),u=r(1851).IteratorPrototype,p=r(5247),d=r(6721),h=r(1983),f=a("toStringTag"),g="IteratorHelper",m="WrapForValidIterator",v="normal",y="throw",w=c.set,createIteratorProxyPrototype=function(e){var t=c.getterFor(e?m:g);return o(i(u),{next:function next(){var r=t(this);if(e)return r.nextHandler();if(r.done)return p(void 0,!0);try{var n=r.nextHandler();return r.returnHandlerResult?n:p(n,r.done)}catch(e){throw r.done=!0,e}},return:function(){var r=t(this),i=r.iterator;if(r.done=!0,e){var s=l(i,"return");return s?n(s,i):p(void 0,!0)}if(r.inner)try{d(r.inner.iterator,v)}catch(e){return d(i,y,e)}if(r.openIters)try{h(r.openIters,v)}catch(e){return d(i,y,e)}return i&&d(i,v),p(void 0,!0)}})},b=createIteratorProxyPrototype(!0),S=createIteratorProxyPrototype(!1);s(S,f,"Iterator Helper"),e.exports=function(e,t,r){var n=function Iterator(n,i){i?(i.iterator=n.iterator,i.next=n.next):i=n,i.type=t?m:g,i.returnHandlerResult=!!r,i.nextHandler=e,i.counter=0,i.done=!1,w(this,i)};return n.prototype=t?b:S,n}},8685:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.ForceMethodImplementation=void 0;class ForceMethodImplementation extends Error{constructor(e={},t={}){super(`${e.isStatic?"static ":""}${e.fullName}() should be implemented, please provide '${e.functionName||e.fullName}' functionality.`,t),Object.keys(t).length&&console.error(t),Error.captureStackTrace(this,ForceMethodImplementation)}}t.ForceMethodImplementation=ForceMethodImplementation;t.default=e=>{const t=Error().stack.split("\n")[2].trim(),r=t.startsWith("at new")?"constructor":t.split(" ")[1],n={};if(n.functionName=r,n.fullName=r,n.functionName.includes(".")){const e=n.functionName.split(".");n.className=e[0],n.functionName=e[1]}else n.isStatic=!0;throw new ForceMethodImplementation(n,e)}},8730:(e,t,r)=>{"use strict";var n=r(8473),i=r(1483),s=/#|\.prototype\./,isForced=function(e,t){var r=a[o(e)];return r===l||r!==c&&(i(t)?n(t):!!t)},o=isForced.normalize=function(e){return String(e).replace(s,".").toLowerCase()},a=isForced.data={},c=isForced.NATIVE="N",l=isForced.POLYFILL="P";e.exports=isForced},8761:e=>{"use strict";var t=String;e.exports=function(e){try{return t(e)}catch(e){return"Object"}}},8901:(e,t,r)=>{"use strict";var n=r(2293),i=r(6721);e.exports=function(e,t,r,s){try{return s?t(n(r)[0],r[1]):t(r)}catch(t){i(e,"throw",t)}}},9031:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createGetInitialState=function createGetInitialState(e,t={}){return(r,n)=>{let i=n;if(r.hasOwnProperty("uploadedData")){i=!1;const t=r.uploadedData.manifest.templates,n=elementorAppConfig?.["import-export-customization"]?.exportGroups||{};for(const r in t){if(n[t[r].doc_type]===e){i=!0;break}}}return{enabled:i,...t}}}},9037:(e,t,r)=>{"use strict";var n=r(382),i=r(5835),s=r(7738);e.exports=n?function(e,t,r){return i.f(e,t,s(1,r))}:function(e,t,r){return e[t]=r,e}},9273:(e,t,r)=>{"use strict";var n=r(382),i=r(4914),s=TypeError,o=Object.getOwnPropertyDescriptor,a=n&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(e){return e instanceof TypeError}}();e.exports=a?function(e,t){if(i(e)&&!o(e,"length").writable)throw new s("Cannot set read only .length");return e.length=t}:function(e,t){return e.length=t}},9441:(e,t,r)=>{"use strict";var n=r(8473);e.exports=!n(function(){function F(){}return F.prototype.constructor=null,Object.getPrototypeOf(new F)!==F.prototype})},9461:(e,t,r)=>{"use strict";var n=r(5578).navigator,i=n&&n.userAgent;e.exports=i?String(i):""},9497:(e,t,r)=>{"use strict";var n=r(1409),i=r(4762),s=r(2278),o=r(4347),a=r(2293),c=i([].concat);e.exports=n("Reflect","ownKeys")||function ownKeys(e){var t=s.f(a(e)),r=o.f;return r?c(t,r(e)):t}},9557:e=>{"use strict";e.exports=!1},9603:(e,t,r)=>{"use strict";var n=r(6784);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r(4846),r(6211),r(9655);var i=n(r(5633));class CarouselHandlerBase extends i.default{getDefaultSettings(){return{selectors:{carousel:".swiper",swiperWrapper:".swiper-wrapper",slideContent:".swiper-slide",swiperArrow:".elementor-swiper-button",paginationWrapper:".swiper-pagination",paginationBullet:".swiper-pagination-bullet",paginationBulletWrapper:".swiper-pagination-bullets"}}}getDefaultElements(){const e=this.getSettings("selectors"),t={$swiperContainer:this.$element.find(e.carousel),$swiperWrapper:this.$element.find(e.swiperWrapper),$swiperArrows:this.$element.find(e.swiperArrow),$paginationWrapper:this.$element.find(e.paginationWrapper),$paginationBullets:this.$element.find(e.paginationBullet),$paginationBulletWrapper:this.$element.find(e.paginationBulletWrapper)};return t.$slides=t.$swiperContainer.find(e.slideContent),t}getSwiperSettings(){const e=this.getElementSettings(),t=+e.slides_to_show||3,r=1===t,n=elementorFrontend.config.responsive.activeBreakpoints,i={mobile:1,tablet:r?1:2},s={slidesPerView:t,loop:"yes"===e.infinite,speed:e.speed,handleElementorBreakpoints:!0,breakpoints:{}};let o=t;Object.keys(n).reverse().forEach(t=>{const r=i[t]?i[t]:o;s.breakpoints[n[t].value]={slidesPerView:+e["slides_to_show_"+t]||r,slidesPerGroup:+e["slides_to_scroll_"+t]||1},e.image_spacing_custom&&(s.breakpoints[n[t].value].spaceBetween=this.getSpaceBetween(t)),o=+e["slides_to_show_"+t]||r}),"yes"===e.autoplay&&(s.autoplay={delay:e.autoplay_speed,disableOnInteraction:"yes"===e.pause_on_interaction}),r?(s.effect=e.effect,"fade"===e.effect&&(s.fadeEffect={crossFade:!0})):s.slidesPerGroup=+e.slides_to_scroll||1,e.image_spacing_custom&&(s.spaceBetween=this.getSpaceBetween());const a="arrows"===e.navigation||"both"===e.navigation,c="dots"===e.navigation||"both"===e.navigation||e.pagination;return a&&(s.navigation={prevEl:".elementor-swiper-button-prev",nextEl:".elementor-swiper-button-next"}),c&&(s.pagination={el:`.elementor-element-${this.getID()} .swiper-pagination`,type:e.pagination?e.pagination:"bullets",clickable:!0,renderBullet:(e,t)=>`<span class="${t}" role="button" tabindex="0" data-bullet-index="${e}" aria-label="${elementorFrontend.config.i18n.a11yCarouselPaginationBulletMessage} ${e+1}"></span>`}),"yes"===e.lazyload&&(s.lazy={loadPrevNext:!0,loadPrevNextAmount:1}),s.a11y={enabled:!0,prevSlideMessage:elementorFrontend.config.i18n.a11yCarouselPrevSlideMessage,nextSlideMessage:elementorFrontend.config.i18n.a11yCarouselNextSlideMessage,firstSlideMessage:elementorFrontend.config.i18n.a11yCarouselFirstSlideMessage,lastSlideMessage:elementorFrontend.config.i18n.a11yCarouselLastSlideMessage},s.on={slideChange:()=>{this.a11ySetPaginationTabindex(),this.handleElementHandlers(),this.a11ySetSlideAriaHidden()},init:()=>{this.a11ySetPaginationTabindex(),this.a11ySetSlideAriaHidden("initialisation")}},this.applyOffsetSettings(e,s,t),s}getOffsetWidth(){const e=elementorFrontend.getCurrentDeviceMode();return elementorFrontend.utils.controls.getResponsiveControlValue(this.getElementSettings(),"offset_width","size",e)||0}applyOffsetSettings(e,t,r){const n=e.offset_sides;if(!(elementorFrontend.isEditMode()&&"NestedCarousel"===this.constructor.name)&&n&&"none"!==n)switch(n){case"right":this.forceSliderToShowNextSlideWhenOnLast(t,r),this.addClassToSwiperContainer("offset-right");break;case"left":this.addClassToSwiperContainer("offset-left");break;case"both":this.forceSliderToShowNextSlideWhenOnLast(t,r),this.addClassToSwiperContainer("offset-both")}}forceSliderToShowNextSlideWhenOnLast(e,t){e.slidesPerView=t+.001}addClassToSwiperContainer(e){this.getDefaultElements().$swiperContainer[0].classList.add(e)}async onInit(...e){if(super.onInit(...e),!this.elements.$swiperContainer.length||2>this.elements.$slides.length)return;await this.initSwiper();"yes"===this.getElementSettings().pause_on_hover&&this.togglePauseOnHover(!0)}async initSwiper(){const e=elementorFrontend.utils.swiper;this.swiper=await new e(this.elements.$swiperContainer,this.getSwiperSettings()),this.elements.$swiperContainer.data("swiper",this.swiper)}bindEvents(){this.elements.$swiperArrows.on("keydown",this.onDirectionArrowKeydown.bind(this)),this.elements.$paginationWrapper.on("keydown",".swiper-pagination-bullet",this.onDirectionArrowKeydown.bind(this)),this.elements.$swiperContainer.on("keydown",".swiper-slide",this.onDirectionArrowKeydown.bind(this)),this.$element.find(":focusable").on("focus",this.onFocusDisableAutoplay.bind(this)),elementorFrontend.elements.$window.on("resize",this.getSwiperSettings.bind(this))}unbindEvents(){this.elements.$swiperArrows.off(),this.elements.$paginationWrapper.off(),this.elements.$swiperContainer.off(),this.$element.find(":focusable").off(),elementorFrontend.elements.$window.off("resize")}onDirectionArrowKeydown(e){const t=elementorFrontend.config.is_rtl,r=e.originalEvent.code,n=t?"ArrowLeft":"ArrowRight";if(!(-1!==["ArrowLeft","ArrowRight"].indexOf(r)))return!0;(t?"ArrowRight":"ArrowLeft")===r?this.swiper.slidePrev():n===r&&this.swiper.slideNext()}onFocusDisableAutoplay(){this.swiper.autoplay.stop()}updateSwiperOption(e){const t=this.getElementSettings()[e],r=this.swiper.params;switch(e){case"autoplay_speed":r.autoplay.delay=t;break;case"speed":r.speed=t}this.swiper.update()}getChangeableProperties(){return{pause_on_hover:"pauseOnHover",autoplay_speed:"delay",speed:"speed",arrows_position:"arrows_position"}}onElementChange(e){if(0===e.indexOf("image_spacing_custom"))return void this.updateSpaceBetween(e);if(this.getChangeableProperties()[e])if("pause_on_hover"===e){const e=this.getElementSettings("pause_on_hover");this.togglePauseOnHover("yes"===e)}else this.updateSwiperOption(e)}onEditSettingsChange(e){"activeItemIndex"===e&&this.swiper.slideToLoop(this.getEditSettings("activeItemIndex")-1)}getSpaceBetween(e=null){const t=elementorFrontend.utils.controls.getResponsiveControlValue(this.getElementSettings(),"image_spacing_custom","size",e);return Number(t)||0}updateSpaceBetween(e){const t=e.match("image_spacing_custom_(.*)"),r=t?t[1]:"desktop",n=this.getSpaceBetween(r);"desktop"!==r&&(this.swiper.params.breakpoints[elementorFrontend.config.responsive.activeBreakpoints[r].value].spaceBetween=n),this.swiper.params.spaceBetween=n,this.swiper.update()}getPaginationBullets(e="array"){const t=this.$element.find(this.getSettings("selectors").paginationBullet);return"array"===e?Array.from(t):t}a11ySetPaginationTabindex(){const e=this.swiper?.params?.pagination.bulletClass,t=this.swiper?.params?.pagination.bulletActiveClass;this.getPaginationBullets().forEach(e=>{e.classList?.contains(t)||e.removeAttribute("tabindex")});const r="ArrowLeft"===event?.code||"ArrowRight"===event?.code;event?.target?.classList?.contains(e)&&r&&this.$element.find(`.${t}`).trigger("focus")}getSwiperWrapperTranformXValue(){let e=this.elements.$swiperWrapper[0]?.style.transform;return e=e.replace("translate3d(",""),e=e.split(","),e=parseInt(e[0].replace("px","")),e||0}a11ySetSlideAriaHidden(e=""){if("number"!=typeof("initialisation"===e?0:this.swiper?.activeIndex))return;const t=this.getSwiperWrapperTranformXValue(),r=this.elements.$swiperWrapper[0].clientWidth;this.elements.$swiperContainer.find(this.getSettings("selectors").slideContent).each((e,n)=>{0<=n.offsetLeft+t&&r>n.offsetLeft+t?(n.removeAttribute("aria-hidden"),n.removeAttribute("inert")):(n.setAttribute("aria-hidden",!0),n.setAttribute("inert",""))})}handleElementHandlers(){}}t.default=CarouselHandlerBase},9655:(e,t,r)=>{"use strict";r(9930)},9930:(e,t,r)=>{"use strict";var n=r(8612),i=r(1807),s=r(1506),o=r(8120),a=r(2293),c=r(41),l=r(6721),u=r(5267)("forEach",TypeError);n({target:"Iterator",proto:!0,real:!0,forced:u},{forEach:function forEach(e){a(this);try{o(e)}catch(e){l(this,"throw",e)}if(u)return i(u,this,e);var t=c(this),r=0;s(t,function(t){e(t,r++)},{IS_RECORD:!0})}})}},e=>{var t;t=4946,e(e.s=t)}]);