var is_booking_without_payment=false; var date_approved=[]; var date2approve=[]; var date_admin_blank=[]; var dates_additional_info=[]; var is_all_days_available=[]; var avalaibility_filters=[]; var is_show_cost_in_tooltips=false; var is_show_cost_in_date_cell=false; var is_show_availability_in_tooltips=false; var global_avalaibility_times=[]; var numbb=0; var timeoutID_of_thank_you_page=null; /** * Booking Calendar - JavaScript Settings * * Example or redefine some settings: * * [booking type=1] * */ var wpbc_settings=(function(obj, $){ var p_options=obj.options=obj.options||[]; p_options['pending_days_selectable']=false; obj.get_option=function(item_id){ return p_options[ item_id ]; }; obj.set_option=function(item_id, item_value){ p_options[ item_id ]=item_value; }; return obj; }(wpbc_settings||{}, jQuery)); function init_datepick_cal(bk_type, date_approved_par, my_num_month, start_day_of_week, start_bk_month){ if(jQuery('#calendar_booking'+ bk_type).hasClass('hasDatepick')==true){ return false; } var cl=document.getElementById('calendar_booking'+ bk_type);if(cl===null) return; date_approved[ bk_type ]=date_approved_par; var isRangeSelect=false; var bkMultiDaysSelect=365; if(bk_days_selection_mode==='dynamic'){ isRangeSelect=true; bkMultiDaysSelect=0; } if(bk_days_selection_mode==='single') bkMultiDaysSelect=0; var bkMinDate=0; var bkMaxDate=booking_max_monthes_in_calendar; var is_this_admin=false; if(( location.href.indexOf('page=wpbc-new')!=-1) &&(location.href.indexOf('booking_hash')!=-1) ){ is_this_admin=true; bkMinDate=null; bkMaxDate=null; } function click_on_cal_td(){ if(typeof(selectDayPro)=='function'){selectDayPro(bk_type);}} function selectDay(date){ var is_calendar_booking_unselectable=jQuery('#calendar_booking_unselectable' + bk_type); var is_booking_form_also=jQuery('#booking_form_div' + bk_type); if(( is_calendar_booking_unselectable.length > 0)&&(is_booking_form_also.length <=0)){ wpbc_unselect_all_days(bk_type); jQuery('.wpbc_only_calendar .popover_calendar_hover').remove(); return false; } if('function'===typeof(jQuery(".datepick-days-cell").popover)){ jQuery('.datepick-days-cell').popover('hide'); } jQuery('#date_booking' + bk_type).val(date); if(typeof(bkDisableBookedTimeSlots)=='function'){ if(typeof(prepare_tooltip)=='function'){setTimeout("prepare_tooltip("+bk_type+");",1000);} bkDisableBookedTimeSlots(jQuery('#date_booking' + bk_type).val(), bk_type); } if(typeof(selectDayPro)=='function'){ selectDayPro(date, bk_type); } jQuery(".booking_form_div").trigger("date_selected", [ bk_type, date ]); } function hoverDay(value, date){ if(typeof(hoverDayTime)=='function'){ hoverDayTime(value, date, bk_type); } if((location.href.indexOf('page=wpbc')==-1) || (location.href.indexOf('page=wpbc-new') > 0)){ if(typeof(hoverDayPro)=='function'){ hoverDayPro(value, date, bk_type); }} var is_calendar_booking_unselectable=jQuery('#calendar_booking_unselectable' + bk_type); var is_booking_form_also=jQuery('#booking_form_div' + bk_type); if(( is_calendar_booking_unselectable.length==1)&&(is_booking_form_also.length!=1)){ jQuery('#calendar_booking' + bk_type + ' .datepick-days-cell-over').removeClass('datepick-days-cell-over'); jQuery('.wpbc_only_calendar #calendar_booking' + bk_type + ' .datepick-days-cell, ' + '.wpbc_only_calendar #calendar_booking' + bk_type + ' .datepick-days-cell a').css('cursor', 'default'); return false; }} function applyCSStoDays(date){ var class_day=(date.getMonth()+1) + '-' + date.getDate() + '-' + date.getFullYear(); var additional_class=' wpbc_weekday_' + date.getDay() + ' '; if(( false)&&(date.getDate()==(wpdev_bk_today[2]))&&(date.getMonth()==(wpdev_bk_today[1]-1))&&(date.getFullYear()==(wpdev_bk_today[0]))){ var my_test_date1=new Date(wpdev_bk_today[ 0 ], (wpdev_bk_today[ 1 ] - 1), wpdev_bk_today[ 2 ], wpdev_bk_today[ 3 ], wpdev_bk_today[ 4 ], 0); var my_test_date2=new Date(wpdev_bk_today[ 0 ], (wpdev_bk_today[ 1 ] - 1), wpdev_bk_today[ 2 ], 18, 0, 0); if(my_test_date2.getTime() < my_test_date1.getTime()) return [ false, 'cal4date-' + class_day + ' date_user_unavailable' ]; } if(typeof(prices_per_day)!=='undefined') if(typeof(prices_per_day[bk_type])!=='undefined') if(typeof(prices_per_day[bk_type][class_day])!=='undefined'){ additional_class +=' rate_'+prices_per_day[bk_type][class_day]; } if(typeof(wpdev_bk_season_filter)!=='undefined') if(typeof(wpdev_bk_season_filter[class_day])!=='undefined'){ additional_class +=' '+wpdev_bk_season_filter[class_day].join(' '); } if(is_this_admin==false){ var my_test_date=new Date(wpdev_bk_today[0],(wpdev_bk_today[1]-1), wpdev_bk_today[2] ,0,0,0); if((days_between(date, my_test_date)) < block_some_dates_from_today) return [false, 'cal4date-' + class_day +' date_user_unavailable']; if(typeof(wpbc_available_days_num_from_today)!=='undefined') if(parseInt('0' + wpbc_available_days_num_from_today) > 0) if((days_between(date, my_test_date)) > parseInt('0' + wpbc_available_days_num_from_today)) return [false, 'cal4date-' + class_day +' date_user_unavailable']; } if(typeof(is_this_day_available)=='function'){ var is_day_available=is_this_day_available(date, bk_type); var season_filter=''; if(is_day_available instanceof Array){ season_filter=' season_filter_id_' + is_day_available[1]; is_day_available=is_day_available[0]; } if(! is_day_available){return [false, 'cal4date-' + class_day +' date_user_unavailable ' + season_filter ];}} if(typeof(check_global_time_availability)=='function'){check_global_time_availability(date, bk_type);} var blank_admin_class_day=''; if(typeof(date_admin_blank[ bk_type ])!=='undefined') if(typeof(date_admin_blank[ bk_type ][ class_day ])!=='undefined'){ blank_admin_class_day=' date_admin_blank '; } var reserved_days_count=1; if(typeof(availability_per_day)!=='undefined') if(typeof(availability_per_day[ bk_type ])!=='undefined') if(typeof(availability_per_day[ bk_type ][ class_day ])!=='undefined'){ reserved_days_count=parseInt(availability_per_day[ bk_type ][ class_day ]);} var checkin_days_count=[0 ,0]; if(typeof(wpbc_check_in_dates)!=='undefined') if(typeof(wpbc_check_in_dates[ bk_type ])!=='undefined') if(typeof(wpbc_check_in_dates[ bk_type ][ class_day ])!=='undefined'){ checkin_days_count=[ wpbc_check_in_dates[ bk_type ][ class_day ][ 0 ] , wpbc_check_in_dates[ bk_type ][ class_day ][ 1 ] ]; } var checkout_days_count=[0 ,0]; if(typeof(wpbc_check_out_dates)!=='undefined') if(typeof(wpbc_check_out_dates[ bk_type ])!=='undefined') if(typeof(wpbc_check_out_dates[ bk_type ][ class_day ])!=='undefined'){ checkout_days_count=[ wpbc_check_out_dates[ bk_type ][ class_day ][ 0 ] , wpbc_check_out_dates[ bk_type ][ class_day ][ 1 ] ]; } var both_check_in_out_num=0; if(typeof(getNumberClosedCheckInOutDays)=='function'){ both_check_in_out_num=getNumberClosedCheckInOutDays(bk_type, class_day); } if(wpdev_in_array(parent_booking_resources, bk_type)) if(reserved_days_count <=0){ if(typeof(date2approve[ bk_type ])!=='undefined') if(typeof(date2approve[ bk_type ][ class_day ])!=='undefined') return [false, 'cal4date-' + class_day +' date2approve date_unavailable_for_all_childs ' + blank_admin_class_day]; return [false, 'cal4date-' + class_day +' date_approved date_unavailable_for_all_childs ' + blank_admin_class_day]; } var th=0; var tm=0; var ts=0; var time_return_value=false; var is_set_pending_days_selectable=wpbc_settings.get_option('pending_days_selectable'); if(typeof(date2approve[ bk_type ])!=='undefined') if(typeof(date2approve[ bk_type ][ class_day ])!=='undefined'){ for (var ia=0;ia 0)||((reserved_days_count - both_check_in_out_num) <=0)) ){ if((reserved_days_count - both_check_in_out_num) <=0){ if(checkin_days_count[1]==1) additional_class=' date_approved'; else additional_class=' date2approve'; return [false, 'cal4date-' + class_day + additional_class + blank_admin_class_day]; } if((reserved_days_count - both_check_in_out_num - checkin_days_count[0]) <=0){ if(checkin_days_count[1]==1) additional_class +=' date_approved'; else additional_class +=' date2approve'; additional_class +=' timespartly check_in_time'; } if((reserved_days_count - both_check_in_out_num - checkout_days_count[0]) <=0){ if(checkout_days_count[1]==1) additional_class +=' date_approved'; else additional_class +=' date2approve'; additional_class +=' timespartly check_out_time'; }} return [true, 'date_available cal4date-' + class_day +' reserved_days_count' + reserved_days_count + ' ' + is_datepick_unselectable + additional_class+ ' ']; }} function changeMonthYear(year, month){ if(typeof(prepare_tooltip)=='function'){ setTimeout("prepare_tooltip("+bk_type+");",1000); } if(typeof(prepare_highlight)=='function'){ setTimeout("prepare_highlight();",1000); }} jQuery('#calendar_booking'+ bk_type).text(''); jQuery('#calendar_booking'+ bk_type).datepick({beforeShowDay: applyCSStoDays, onSelect: selectDay, onHover:hoverDay, onChangeMonthYear:changeMonthYear, showOn: 'both', multiSelect: bkMultiDaysSelect, numberOfMonths: my_num_month, stepMonths: 1, prevText: '«', nextText: '»', dateFormat: 'dd.mm.yy', changeMonth: false, changeYear: false, minDate: bkMinDate, maxDate: bkMaxDate, //'1Y', showStatus: false, multiSeparator: ', ', closeAtTop: false, firstDay:start_day_of_week, gotoCurrent: false, hideIfNoPrevNext:true, rangeSelect:isRangeSelect, useThemeRoller :false } ); setTimeout(function(){ jQuery('.datepick-days-cell.datepick-today.datepick-days-cell-over').removeClass('datepick-days-cell-over'); }, 500); if(start_bk_month!=false){ var inst=jQuery.datepick._getInst(document.getElementById('calendar_booking'+bk_type)); inst.cursorDate=new Date(); inst.cursorDate.setFullYear(start_bk_month[0], (start_bk_month[1]-1) , 1); inst.cursorDate.setMonth(parseInt(start_bk_month[1] - 1)); inst.cursorDate.setDate(1); inst.drawMonth=inst.cursorDate.getMonth(); inst.drawYear=inst.cursorDate.getFullYear(); jQuery.datepick._notifyChange(inst); jQuery.datepick._adjustInstDate(inst); jQuery.datepick._showDate(inst); jQuery.datepick._updateDatepick(inst); } if(typeof(prepare_tooltip)=='function'){ setTimeout("prepare_tooltip(" + bk_type + ");", 1000); }} function get_first_day_of_selection(dates){ if(dates.indexOf(',')!=-1){ var dates_array=dates.split(/,\s*/); var length=dates_array.length; var element=null; var new_dates_array=[]; for (var i=0; i < length; i++){ element=dates_array[i].split(/\./); new_dates_array[new_dates_array.length]=element[2]+'.' + element[1]+'.' + element[0]; } new_dates_array.sort(); element=new_dates_array[0].split(/\./); return element[2]+'.' + element[1]+'.' + element[0]; } if(dates.indexOf(' - ')!=-1){ var start_end_date=dates.split(" - "); return start_end_date[0]; } return dates; } function get_last_day_of_selection(dates){ if(dates.indexOf(',')!=-1){ var dates_array=dates.split(/,\s*/); var length=dates_array.length; var element=null; var new_dates_array=[]; for (var i=0; i < length; i++){ element=dates_array[i].split(/\./); new_dates_array[new_dates_array.length]=element[2]+'.' + element[1]+'.' + element[0]; } new_dates_array.sort(); element=new_dates_array[(new_dates_array.length-1)].split(/\./); return element[2]+'.' + element[1]+'.' + element[0]; } if(dates.indexOf(' - ')!=-1){ var start_end_date=dates.split(" - "); return start_end_date[(start_end_date.length-1)]; } return dates; } function setUnavailableSelectedDays(bk_type){ var sel_dates=jQuery('#calendar_booking'+bk_type).datepick('getDate'); var class_day2; for(var i=0; i '; jQuery('.submiting_content').fadeOut(new_booking_title_time); setTimeout(function (){ location.reload(true); }, parseInt(1000 + new_booking_title_time)); }}else{ setUnavailableSelectedDays(bk_type); document.getElementById('date_booking' + bk_type).value=''; jQuery('#calendar_booking' + bk_type + ', .block_hints').hide(); if(location.href.indexOf('admin.php')==-1){ jQuery('#calendar_booking' + bk_type).insertBefore("#booking_form_div" + bk_type); document.getElementById("booking_form_div" + bk_type).style.display="none"; jQuery('#hided_booking_form' + bk_type).prevAll('select[name="active_booking_form"]').hide(); jQuery('#hided_booking_form' + bk_type).prevAll('label[for="calendar_type"]').hide(); makeScroll('#ajax_respond_insert' + bk_type); if((document.getElementById('gateway_payment_forms' + bk_type)!=null) && (document.getElementById('gateway_payment_forms' + bk_type).innerHTML!='')) is_pay_now=true; if((!is_pay_now)||(is_booking_without_payment==true)){ if(type_of_thank_you_message=='page'){ timeoutID_of_thank_you_page=setTimeout(function(){ location.href=thank_you_page_URL; }, 1000); }else{ document.getElementById('submiting' + bk_type).innerHTML='
' + new_booking_title + '
'; if(! jQuery('#submiting' + bk_type).is('visible')){ jQuery('#submiting' + bk_type).closest('form.booking_form').before(jQuery('#submiting' + bk_type)); jQuery('#submiting' + bk_type).show(); jQuery(".wpbc_submit_spinner").hide(); } makeScroll('#submiting' + bk_type); jQuery('.submiting_content').fadeOut(new_booking_title_time); setTimeout(function (){ location.reload(true); }, parseInt(1000 + new_booking_title_time)); }} }else{ setTimeout(function (){ location.reload(true); }, 1000); }} } function wpbc_get_arr_of_selected_additional_calendars(bk_type){ var selected_additionl_calendars=[]; if(document.getElementById('additional_calendars' + bk_type)!=null){ var id_additional_str=document.getElementById('additional_calendars' + bk_type).value; var id_additional_arr=id_additional_str.split(','); var is_all_additional_days_unselected=true; for(var ia=0; ia < id_additional_arr.length; ia++){ if(document.getElementById('date_booking' + id_additional_arr[ ia ]).value!=''){ selected_additionl_calendars.push(id_additional_arr[ ia ]); }} } return selected_additionl_calendars; } function mybooking_submit(submit_form , bk_type, wpdev_active_locale){ var is_error=wpbc_check_errors_in_booking_form(bk_type); if(is_error){ return false; } if(document.getElementById('date_booking' + bk_type).value==''){ var arr_of_selected_additional_calendars=wpbc_get_arr_of_selected_additional_calendars(bk_type); if(arr_of_selected_additional_calendars.length==0){ showMessageUnderElement('#date_booking' + bk_type, message_verif_selectdts, ''); makeScroll('#calendar_booking' + bk_type); return; }} var count=submit_form.elements.length; var formdata=''; var inp_value; var element; var el_type; for (i=0; i 0){ if(jQuery('[name="' + primary_email_name + bk_type + '"]').val()!==inp_value){ showErrorMessage(element , message_verif_same_emeil , false); return; }} } continue; }} if(element.name!==('captcha_input' + bk_type)){ if(formdata!=='') formdata +='~'; el_type=element.type; if(element.className.indexOf('wpdev-validates-as-email')!==-1) el_type='email'; if(element.className.indexOf('wpdev-validates-as-coupon')!==-1) el_type='coupon'; inp_value=inp_value + ''; inp_value=inp_value.replace(new RegExp("\\^",'g'), '^'); inp_value=inp_value.replace(new RegExp("~",'g'), '~'); inp_value=inp_value.replace(/"/g, '"'); inp_value=inp_value.replace(/'/g, '''); formdata +=el_type + '^' + element.name + '^' + inp_value ; }} } if(typeof(is_this_time_selections_not_available)=='function'){ if(document.getElementById('date_booking' + bk_type).value==''){ if(document.getElementById('additional_calendars' + bk_type)!=null){ var id_additional_str=document.getElementById('additional_calendars' + bk_type).value; var id_additional_arr=id_additional_str.split(','); var is_times_dates_ok=false; for(var ia=0;ia< var my_booking_form=''; var my_booking_hash=''; if(document.getElementById('booking_form_type' + bk_type)!=undefined) my_booking_form=document.getElementById('booking_form_type' + bk_type).value; if(wpdev_bk_edit_id_hash!='') my_booking_hash=wpdev_bk_edit_id_hash; var is_send_emeils=1; if(jQuery('#is_send_email_for_pending').length){ is_send_emeils=jQuery('#is_send_email_for_pending').is(':checked'); if(false===is_send_emeils){ is_send_emeils=0; }else{ is_send_emeils=1; }} if(document.getElementById('date_booking' + bk_type).value!='') send_ajax_submit(bk_type,formdata,captcha_chalange,user_captcha,is_send_emeils,my_booking_hash,my_booking_form,wpdev_active_locale); else { jQuery('#booking_form_div' + bk_type).hide(); jQuery('#submiting' + bk_type).hide(); } var formdata_additional_arr; var formdata_additional; var my_form_field; var id_additional; var id_additional_str; var id_additional_arr; if(document.getElementById('additional_calendars' + bk_type)!=null){ id_additional_str=document.getElementById('additional_calendars' + bk_type).value; id_additional_arr=id_additional_str.split(','); if(! jQuery('#booking_form_div' + bk_type).is(':visible')){ jQuery('#booking_form_div' + bk_type).after('
' ); } for (var ia=0;ia 0){ jQuery('#gateway_payment_forms' + bk_type).after('
'); jQuery('#gateway_payment_forms' + bk_type).after(''); } send_ajax_submit(id_additional ,formdata_additional,captcha_chalange,user_captcha,is_send_emeils,my_booking_hash,my_booking_form ,wpdev_active_locale); }} } function send_ajax_submit(bk_type,formdata,captcha_chalange,user_captcha,is_send_emeils,my_booking_hash,my_booking_form ,wpdev_active_locale){ var my_bk_res=bk_type; if(document.getElementById('bk_type' + bk_type)!=null) my_bk_res=document.getElementById('bk_type' + bk_type).value; jQuery.ajax({ url: wpbc_ajaxurl, type:'POST', success: function (data, textStatus){if(textStatus=='success') jQuery('#ajax_respond_insert' + bk_type).html(data) ;}, error:function (XMLHttpRequest, textStatus, errorThrown){window.status='Ajax sending Error status:'+ textStatus;alert(XMLHttpRequest.status + ' ' + XMLHttpRequest.statusText);if(XMLHttpRequest.status==500){alert('Please check at this page according this error:' + ' https://wpbookingcalendar.com/faq/#ajax-sending-error');}}, data:{ action:'INSERT_INTO_TABLE', bktype: my_bk_res , dates: document.getElementById('date_booking' + bk_type).value , form: formdata, captcha_chalange:captcha_chalange, captcha_user_input: user_captcha, is_send_emeils:is_send_emeils, my_booking_hash:my_booking_hash, booking_form_type:my_booking_form, wpdev_active_locale:wpdev_active_locale, wpbc_nonce: document.getElementById('wpbc_nonce' + bk_type).value }}); } function showErrorMessage(element , errorMessage , isScrollStop){ if(! isScrollStop){ makeScroll(element); } if(jQuery("[name='" + element.name + "']").is(':visible')){ jQuery("[name='"+ element.name +"']") .fadeOut(350).fadeIn(300) .fadeOut(350).fadeIn(400) .fadeOut(350).fadeIn(300) .fadeOut(350).fadeIn(400) .animate({opacity: 1}, 4000) ; } if(jQuery("[name='"+ element.name +"']").attr('type')=="radio"){ if(( ! jQuery("[name='" + element.name + "']").parent().parent().parent().next().hasClass('alert-warning')) || ( (jQuery("[name='" + element.name + "']").parent().parent().parent().next().hasClass('alert-warning')) &&(! jQuery("[name='" + element.name + "']").parent().parent().parent().next().is(':visible')) ) ){ jQuery("[name='" + element.name + "']").parent().parent().parent() .after('' + errorMessage + ''); }}else if(jQuery("[name='"+ element.name +"']").attr('type')=="checkbox"){ if(( ! jQuery("[name='" + element.name + "']").parent().next().hasClass('alert-warning')) || ( (jQuery("[name='" + element.name + "']").parent().next().hasClass('alert-warning')) &&(! jQuery("[name='" + element.name + "']").parent().next().is(':visible')) ) ){ jQuery("[name='" + element.name + "']").parent() .after('' + errorMessage + ''); }}else{ if(( ! jQuery("[name='" + element.name + "']").next().hasClass('alert-warning')) || ( (jQuery("[name='" + element.name + "']").next().hasClass('alert-warning')) &&(! jQuery("[name='" + element.name + "']").next().is(':visible')) ) ){ jQuery("[name='" + element.name + "']") .after('' + errorMessage + ''); }} jQuery(".wpdev-help-message") .css({'padding':'5px 5px 4px', 'margin':'2px 2px 2px 10px', 'vertical-align': 'top', 'line-height': '32px' }); if(element.type=='checkbox') jQuery(".wpdev-help-message").css({ 'vertical-align': 'middle'}); jQuery(".widget_wpdev_booking .booking_form .wpdev-help-message") .css({'vertical-align': 'sub' }) ; jQuery(".wpdev-help-message") .animate({opacity: 1}, 10000) .fadeOut(2000); if(! jQuery("[name='" + element.name + "']").is(':visible')){ makeScroll(jQuery(".wpdev-help-message")); } jQuery(element).trigger('focus'); return; } function showMessageUnderElement(element , errorMessage , message_type){ makeScroll(element); if(jQuery(element).attr('type')=="radio"){ if(( ! jQuery(element).parent().parent().parent().next().hasClass('alert-warning')) || ( (jQuery(element).parent().parent().parent().next().hasClass('alert-warning')) &&(! jQuery(element).parent().parent().parent().next().is(':visible')) ) ){ jQuery(element).parent().parent().parent() .after('' + errorMessage + ''); }}else if(jQuery(element).attr('type')=="checkbox"){ if(( ! jQuery(element).parent().next().hasClass('alert-warning')) || ( (jQuery(element).parent().next().hasClass('alert-warning')) &&(! jQuery(element).parent().next().is(':visible')) ) ){ jQuery(element).parent() .after('' + errorMessage + ''); }}else{ if(( ! jQuery(element).next().hasClass('alert-warning')) || ( (jQuery(element).next().hasClass('alert-warning')) &&(! jQuery(element).next().is(':visible')) ) ){ jQuery(element) .after('' + errorMessage + ''); }} jQuery(".widget_wpdev_booking .booking_form .wpdev-help-message") .css({'vertical-align': 'sub' }) ; jQuery(".wpdev-help-message") .animate({opacity: 1}, 10000) .fadeOut(2000); } jQuery(document).ready(function(){ jQuery('div.inside_hint').on('click', function(){ jQuery(this).css('visibility', 'hidden').siblings('.has-inside-hint').trigger('focus'); }); jQuery('input.has-inside-hint').on('blur', function(){ if(this.value=='') jQuery(this).siblings('.inside_hint').css('visibility', ''); }).on('focus', function(){ jQuery(this).siblings('.inside_hint').css('visibility', 'hidden'); }); jQuery('.booking_form_div input[type=button]').prop("disabled", false); }); function makeScroll(object_name){ var targetOffset=jQuery(object_name).offset().top; if(targetOffset<0) targetOffset=0; if(jQuery('#wpadminbar').length > 0) targetOffset=targetOffset - 50; else targetOffset=targetOffset - 20; jQuery('html,body').animate({scrollTop: targetOffset}, 500); } function wpdev_in_array (array_here, p_val){ for(var i=0, l=array_here.length; i < l; i++){ if(array_here[i]==p_val){ return true; }} return false; } function days_between(date1, date2){ var ONE_DAY=1000 * 60 * 60 * 24; var date1_ms=date1.getTime(); var date2_ms=date2.getTime(); var difference_ms=date1_ms - date2_ms; return Math.round(difference_ms/ONE_DAY); } function daysInMonth(month,year){ var m=[31,28,31,30,31,30,31,31,30,31,30,31]; if(month!=2) return m[month - 1]; if(year%4!=0) return m[1]; if(year%100==0&&year%400!=0) return m[1]; return m[1] + 1; } function wpbc_timeline_nav(timeline_obj, nav_step){ jQuery(".wpbc_timeline_front_end").trigger("timeline_nav" , [ timeline_obj, nav_step ]); jQuery('#'+timeline_obj.html_client_id + ' .wpbc_tl_prev,#'+timeline_obj.html_client_id + ' .wpbc_tl_next').remove(); jQuery('#'+timeline_obj.html_client_id + ' .wpbc_tl_title').html('   Loading...'); // '
Loading ... ' if('function'===typeof(jQuery(".popover_click.popover_bottom").popover)) jQuery('.popover_click.popover_bottom').popover('hide'); jQuery.ajax({ url: wpbc_ajaxurl, type:'POST', success: function(data, textStatus){ if(textStatus=='success'){ jQuery('#' + timeline_obj.html_client_id + ' .wpbc_timeline_ajax_replace').html(data); return true; }}, error: function(XMLHttpRequest, textStatus, errorThrown){ window.status='Ajax Error! Status: ' + textStatus; alert('Ajax Error! Status: ' + XMLHttpRequest.status + ' ' + XMLHttpRequest.statusText); }, data:{ action: 'WPBC_TIMELINE_NAV', timeline_obj: timeline_obj, nav_step: nav_step, wpdev_active_locale:wpbc_active_locale, wpbc_nonce: document.getElementById('wpbc_nonce_'+ timeline_obj.html_client_id).value }}); } function wpbc_unselect_all_days(bk_type){ var is_calendar_exist=jQuery('#calendar_booking' + bk_type); if(is_calendar_exist.length > 0){ var inst=jQuery.datepick._getInst(document.getElementById('calendar_booking' + bk_type)); jQuery('#date_booking' + bk_type).val(''); inst.stayOpen=false; inst.dates=[]; jQuery.datepick._updateDatepick(inst); }} function wpbc_check_errors_in_booking_form(bk_type){ var is_error_in_field=false; var my_form=jQuery('#booking_form' + bk_type); if(my_form.length){ my_form.find(':input').each(function(index, el){ var skip_elements=[ 'hidden', 'button' ]; if(-1==skip_elements.indexOf(jQuery(el).attr('type'))){ if(( 'date_booking' + bk_type)==jQuery(el).attr('name')){ if((( jQuery('#calendar_booking' + bk_type).is(':visible'))&&(''==jQuery(el).val())) &&(wpbc_get_arr_of_selected_additional_calendars(bk_type).length==0) ){ showMessageUnderElement('#date_booking' + bk_type, message_verif_selectdts, ''); makeScroll('#calendar_booking' + bk_type); is_error_in_field=true; }} if(jQuery(el).is(':visible')){ if(jQuery(el).hasClass('wpdev-validates-as-required')){ if('checkbox'==jQuery(el).attr('type')){ if((! jQuery(el).is(':checked')) &&(! jQuery(':checkbox[name="' + el.name + '"]', my_form).is(":checked")) ){ showErrorMessage(el, message_verif_requred_for_check_box, is_error_in_field); is_error_in_field=true; }}else if('radio'==jQuery(el).attr('type')){ if(!jQuery(':radio[name="' + jQuery(el).attr('name') + '"]', my_form).is(':checked')){ showErrorMessage(el, message_verif_requred_for_radio_box, is_error_in_field); is_error_in_field=true; }}else{ var inp_value=jQuery(el).val(); if(''===inp_value.trim()){ showErrorMessage(el, message_verif_requred, is_error_in_field); is_error_in_field=true; }} } if(jQuery(el).hasClass('wpdev-validates-as-email')){ var inp_value=jQuery(el).val(); inp_value=inp_value.replace(/^\s+|\s+$/gm, ''); var reg=/^([A-Za-z0-9_\-\.\+])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,})$/; if((inp_value!='')&&(reg.test(inp_value)==false)){ showErrorMessage(el, message_verif_emeil, is_error_in_field); is_error_in_field=true; }} var classList=jQuery(el).attr('class'); if(classList){ classList=classList.split(/\s+/); jQuery.each(classList, function(cl_index, cl_item){ if('validate_as_date'===cl_item){ var regex=new RegExp('^[0-3]?\\d{1}[\\/\\.\\-]+[0-3]?\\d{1}[\\/\\.\\-]+[0-2]+\\d{3}$'); var message_verif_phone='This field must be valid date like this ' + '09/25/2018'; var inp_value=jQuery(el).val(); if(( inp_value!='')&&(regex.test(inp_value)==false)){ showErrorMessage(el, message_verif_phone, is_error_in_field); is_error_in_field=true; }} if('validate_as_digit'===cl_item){ var regex=new RegExp('^[0-9]+\\.?[0-9]*$'); var message_verif_phone='This field must contain only digits'; var inp_value=jQuery(el).val(); if(( inp_value!='')&&(regex.test(inp_value)==false)){ showErrorMessage(el, message_verif_phone, is_error_in_field); is_error_in_field=true; }} var is_validate_digit=cl_item.substring(0, 15); if('validate_digit_'===is_validate_digit){ var digits_to_check=parseInt(cl_item.substring(15)); if(!isNaN(digits_to_check)){ var regex=new RegExp('^\\d{' + digits_to_check + '}$'); var message_verif_phone='This field must contain ' + digits_to_check + ' digits'; var inp_value=jQuery(el).val(); if(( inp_value!='')&&(regex.test(inp_value)==false)){ showErrorMessage(el, message_verif_phone, is_error_in_field); is_error_in_field=true; }} }}); }} }}); } return is_error_in_field; } function bk_calendar_step_click(el){ var br_id=jQuery(el).closest('form').find('input[name^="bk_type"]').val(); var is_error=wpbc_check_errors_in_booking_form(br_id); if(is_error){ return false; } if(br_id!=undefined){ jQuery("#booking_form" + br_id + " .bk_calendar_step").css({"display": "none"}); jQuery("#booking_form" + br_id + " .bk_form_step").css({"display": "block"}); }else{ jQuery(".bk_calendar_step").css({"display": "none"}); jQuery(".bk_form_step").css({"display": "block"}); }} function bk_form_step_click(el){ var br_id=jQuery(el).closest('form').find('input[name^="bk_type"]').val(); var is_error=false; if(is_error){ return false; } if(br_id!=undefined){ jQuery("#booking_form" + br_id + " .bk_calendar_step").css({"display": "block"}); jQuery("#booking_form" + br_id + " .bk_form_step").css({"display": "none"}); makeScroll("#bklnk" + br_id); }else{ jQuery(".bk_calendar_step").css({"display": "block"}); jQuery(".bk_form_step").css({"display": "none"}); }} function wpbc_wizard_step(el, step_num){ var br_id=jQuery(el).closest('form').find('input[name^="bk_type"]').val(); if(1!=step_num){ var is_error=wpbc_check_errors_in_booking_form(br_id); if(is_error){ return false; }} if(wpbc_is_some_elements_visible(br_id, ['rangetime', 'durationtime', 'starttime', 'endtime'])){ if(is_this_time_selections_not_available(br_id, document.getElementById('booking_form' + br_id))){ return false; }} if(br_id!=undefined){ jQuery("#booking_form" + br_id + " .wpbc_wizard_step").css({"display": "none"}); jQuery("#booking_form" + br_id + " .wpbc_wizard_step" + step_num).css({"display": "block"}); }} function wpbc_is_some_elements_visible(bk_type, elements_names){ var is_some_elements_visible=false; var my_form=jQuery('#booking_form' + bk_type); if(my_form.length){ my_form.find(':input').each(function(index, el){ var skip_elements=['hidden', 'button']; if(-1==skip_elements.indexOf(jQuery(el).attr('type'))){ for(var ei=0; ei <(elements_names.length - 1) ; ei++){ if((elements_names[ ei ] + bk_type)==jQuery(el).attr('name')){ if(jQuery(el).is(':visible')){ is_some_elements_visible=true; }} }} }); } return is_some_elements_visible; };