File: //var/www/iranga.kauko.lt/wp-content/plugins/woocommerce-bookings.bad/assets/js/date-picker.min.js
wc_bookings_date_picker={},jQuery(function(m){var e=0,t={init:function(){m("body").on("click",".wc-bookings-date-picker legend small.wc-bookings-date-picker-choose-date",this.toggle_calendar),m("body").on("click",".booking_date_year, .booking_date_month, .booking_date_day",this.open_calendar),m("body").on("input",".booking_date_year, .booking_date_month, .booking_date_day",this.input_date_trigger),m("body").on("keypress",".booking_date_year, .booking_date_month, .booking_date_day",this.input_date_keypress),m("body").on("keypress",".booking_to_date_year, .booking_to_date_month, .booking_to_date_day",this.input_date_keypress),m("body").on("change",".booking_to_date_year, .booking_to_date_month, .booking_to_date_day",this.input_date_trigger),m(".wc-bookings-date-picker legend small.wc-bookings-date-picker-choose-date").show(),m(".wc-bookings-date-picker").each(function(){var t=m(this).closest("form"),e=t.find(".picker"),a=m(this).closest("fieldset");wc_bookings_date_picker.date_picker_init(e),"always_visible"==e.data("display")?(m(".wc-bookings-date-picker-date-fields",a).hide(),m(".wc-bookings-date-picker-choose-date",a).hide()):e.hide(),e.data("is_range_picker_enabled")&&(t.find("p.wc_bookings_field_duration").hide(),t.find(".wc_bookings_field_start_date legend span.label").text("always_visible"!==e.data("display")?booking_form_params.i18n_dates:booking_form_params.i18n_start_date))})},calc_duration:function(t){var d=t.closest("form"),l=t.closest("fieldset"),c=t.data("duration-unit");setTimeout(function(){var t=1,e=parseInt(l.find("input.booking_to_date_year").val(),10),a=parseInt(l.find("input.booking_to_date_month").val(),10),i=parseInt(l.find("input.booking_to_date_day").val(),10),o=parseInt(l.find("input.booking_date_year").val(),10),s=parseInt(l.find("input.booking_date_month").val(),10),n=parseInt(l.find("input.booking_date_day").val(),10);if(e&&0<=a&&i&&o&&0<=s&&n){var _=new Date(Date.UTC(o,s-1,n)),r=new Date(Date.UTC(e,a-1,i));t=Math.floor((r.getTime()-_.getTime())/864e5),"day"===c&&(t+=1)}d.find("#wc_bookings_field_duration").val(t).change()})},open_calendar:function(){$picker=m(this).closest("fieldset").find(".picker:eq(0)"),wc_bookings_date_picker.date_picker_init($picker),$picker.slideDown()},toggle_calendar:function(){$picker=m(this).closest("fieldset").find(".picker:eq(0)"),wc_bookings_date_picker.date_picker_init($picker),$picker.slideToggle()},input_date_keypress:function(){var t=m(this).closest("fieldset").find(".picker:eq(0)");t.data("is_range_picker_enabled")&&(clearTimeout(e),e=setTimeout(wc_bookings_date_picker.calc_duration(t),800))},input_date_trigger:function(){var t=m(this).closest("fieldset"),e=t.find(".picker:eq(0)"),a=(m(this).closest("form"),parseInt(t.find("input.booking_date_year").val(),10)),i=parseInt(t.find("input.booking_date_month").val(),10),o=parseInt(t.find("input.booking_date_day").val(),10);if(a&&i&&o){var s=new Date(a,i-1,o);if(e.datepicker("setDate",s),e.data("is_range_picker_enabled")){var n=parseInt(t.find("input.booking_to_date_year").val(),10),_=parseInt(t.find("input.booking_to_date_month").val(),10),r=parseInt(t.find("input.booking_to_date_day").val(),10),d=new Date(n,_-1,r);!d||d<s?(t.find("input.booking_to_date_year").val("").addClass("error"),t.find("input.booking_to_date_month").val("").addClass("error"),t.find("input.booking_to_date_day").val("").addClass("error")):t.find("input").removeClass("error")}t.triggerHandler("date-selected",s)}},select_date_trigger:function(t){var e=m(this).closest("fieldset"),a=e.find(".picker:eq(0)"),i=m(this).closest("form"),o=t.split("-"),s=a.data("start_or_end_date");a.data("is_range_picker_enabled")&&s||(s="start"),"end"===s?(a.data("min_date",a.data("o_min_date")),e.find("input.booking_to_date_year").val(o[0]),e.find("input.booking_to_date_month").val(o[1]),e.find("input.booking_to_date_day").val(o[2]).change(),a.data("is_range_picker_enabled")&&wc_bookings_date_picker.calc_duration(a),a.data("start_or_end_date","start"),a.data("is_range_picker_enabled")&&i.find(".wc_bookings_field_start_date legend span.label").text("always_visible"!==a.data("display")?booking_form_params.i18n_dates:booking_form_params.i18n_clear_date_selection),"always_visible"!==a.data("display")&&m(this).hide()):(a.data("is_range_picker_enabled")&&(a.data("o_min_date",a.data("min_date")),a.data("min_date",t)),e.find("input.booking_to_date_year").val(""),e.find("input.booking_to_date_month").val(""),e.find("input.booking_to_date_day").val(""),e.find("input.booking_date_year").val(o[0]),e.find("input.booking_date_month").val(o[1]),e.find("input.booking_date_day").val(o[2]).change(),a.data("is_range_picker_enabled")&&wc_bookings_date_picker.calc_duration(a),a.data("start_or_end_date","end"),a.data("is_range_picker_enabled")&&i.find(".wc_bookings_field_start_date legend span.label").text(booking_form_params.i18n_end_date),"always_visible"===a.data("display")||a.data("is_range_picker_enabled")||m(this).hide()),e.triggerHandler("date-selected",t,s)},date_picker_init:function(t){var e=new a(t);e.set_default_params({onSelect:wc_bookings_date_picker.select_date_trigger,minDate:e.get_data_attr("min_date"),maxDate:e.get_data_attr("max_date"),defaultDate:e.get_data_attr("default_date"),closeText:e.get_custom_data("closeText"),currentText:e.get_custom_data("currentText"),prevText:e.get_custom_data("prevText"),nextText:e.get_custom_data("nextText"),monthNames:e.get_custom_data("monthNames"),monthNamesShort:e.get_custom_data("monthNamesShort"),dayNames:e.get_custom_data("dayNames"),dayNamesShort:e.get_custom_data("dayNamesShort"),dayNamesMin:e.get_custom_data("dayNamesMin"),firstDay:e.get_custom_data("firstDay"),isRTL:e.get_custom_data("isRTL"),beforeShowDay:e.maybe_load_from_cache.bind(e),onChangeMonthYear:function(t,e){this.get_data(t,e).done(this.applyStylesToDates)}.bind(e)}),e.create()},refresh_datepicker:function(){m(".wc-bookings-date-picker").find(".picker:eq(0)").datepicker("refresh")},get_input_date:function(t,e){var a=t.find("input.booking_"+e+"date_year"),i=t.find("input.booking_"+e+"date_month"),o=t.find("input.booking_"+e+"date_day");return 0!==a.val().length&&0!==i.val().length&&0!==o.val().length?a.val()+"-"+i.val()+"-"+o.val():""},get_number_of_days:function(t,e,a,i){var o=t,s=i;0<e.find("#wc_bookings_field_duration").length&&"minute"!=s.duration_unit&&"hour"!=s.duration_unit&&!a.data("is_range_picker_enabled")&&(o*=e.find("#wc_bookings_field_duration").val());return(o<1||"start"===s.check_availability_against)&&(o=1),o},is_blocks_bookable:function(t){for(var e=t.default_availability,a=0;a<t.number_of_days;a++){var i=new Date(t.start_date);i.setDate(i.getDate()+a);var o=i.getFullYear(),s=i.getMonth()+1,n=i.getDate(),_=i.getDay();m.datepicker.iso8601Week(i);0===_&&(_=7);var r={date:i,default_availability:t.default_availability},d=t.availability[t.resource_id];if(e=wc_bookings_date_picker.is_resource_available_on_date(r,d),"automatic"===t.resources_assignment){var l=m.extend({availability:t.availability,fully_booked_days:t.fully_booked_days},r);e=wc_bookings_date_picker.has_available_resource(l)}var c=o+"-"+s+"-"+n;if(t.fully_booked_days[c]&&(t.fully_booked_days[c][0]||t.fully_booked_days[c][t.resource_id])&&(e=!1),!e)break}return e},is_resource_available_on_date:function(t,e){if("object"!=typeof t||"object"!=typeof e)return!1;var a=t.default_availability,u=t.date.getFullYear(),b=t.date.getMonth()+1,k=t.date.getDate(),g=t.date.getDay(),i=new Date(u,0,1),p=Math.ceil(((t.date-i)/864e5+i.getDay()+1)/7);if(0===g&&(g=7),t.fully_booked_days&&t.fully_booked_days[u+"-"+b+"-"+k]&&t.fully_booked_days[u+"-"+b+"-"+k][t.resource_id])return!1;var f=[],h=_.range(1,1440,1);return a&&(f=h),m.each(e,function(t,e){var a=e.type,i=e.range;try{switch(a){case"months":if(void 0!==i[b])return f=i[b]?h:[],!0;break;case"weeks":if(void 0!==i[p])return f=i[p]?h:[],!0;break;case"days":if(void 0!==i[g])return f=i[g]?h:[],!0;break;case"custom":if(void 0!==i[u][b][k])return f=i[u][b][k]?h:[],!0;break;case"time":case"time:1":case"time:2":case"time:3":case"time:4":case"time:5":case"time:6":case"time:7":if(g===i.day||0===i.day){var o=parseInt(i.from.split(":")[0]),s=parseInt(i.from.split(":")[1]),n=parseInt(i.to.split(":")[0]),r=parseInt(i.to.split(":")[1]),d=s+60*o,l=r+60*n,c=_.range(d,l,1);return f=i.rule?_.union(f,c):_.difference(f,c),!0}break;case"time:range":i=i[u][b][k];o=parseInt(i.from.split(":")[0]),s=parseInt(i.from.split(":")[1]),n=parseInt(i.to.split(":")[0]),r=parseInt(i.to.split(":")[1]),d=s+60*o,l=r+60*n,c=_.range(d,l,1);f=i.rule?_.union(f,c):_.difference(f,c)}}catch(t){return!0}}),!_.isEmpty(f)},get_week_number:function(t){var e=new Date(t.getFullYear(),0,1);return Math.ceil(((t-e)/864e5+e.getDay()+1)/7)},has_available_resource:function(t){for(var e in t.availability)if(0!==(e=parseInt(e,10))){var a=t.availability[e];if(t.resource_id=e,wc_bookings_date_picker.is_resource_available_on_date(t,a))return!0}return!1}},a=function(t){this.$picker=m(t),this.$form=this.$picker.closest("form"),this.customData={},this.opts={cache:!1},this.cache={data:{},attributes:{}},m.each(wc_bookings_booking_form,function(t,e){this.customData[t]=e}.bind(this)),m.each(booking_form_params,function(t,e){this.customData[t]=e}.bind(this)),!this.customData.cache_ajax_requests||"true"!=this.customData.cache_ajax_requests.toLowerCase()&&"false"!=this.customData.cache_ajax_requests.toLowerCase()||(this.opts.cache="true"==this.customData.cache_ajax_requests.toLowerCase()),this.$picker.length};a.prototype.create=function(){var t=parseInt(this.$form.find("input.booking_date_year").val(),10),e=parseInt(this.$form.find("input.booking_date_month").val(),10),a=parseInt(this.$form.find("input.booking_date_day").val(),10);this.$picker.empty().removeClass("hasDatepicker").datepicker(this.get_default_params()),m(".ui-datepicker-current-day").removeClass("ui-datepicker-current-day"),t&&e&&a&&this.$picker.datepicker("setDate",new Date(t,e-1,a));var i=this.$picker.datepicker("getDate").getMonth()+1,o=this.$picker.datepicker("getDate").getFullYear();this.get_data(o,i).done(this.applyStylesToDates)},a.prototype.applyStylesToDates=function(t){for(var e=t.startDate;e<t.endDate;){var a=e.getTime();if(!this.cache.attributes[a]){var i=this.getDateElementAttributes(e),o=m('td[data-month="'+e.getMonth()+'"] a',this.$picker).filter(function(){return m(this).text()==e.getDate()}).parent();i.selectable||(i.class.push("ui-datepicker-unselectable"),i.class.push("ui-state-disabled")),e.setHours(0,0,0,0)===(new Date).setHours(0,0,0,0)&&i.class.push("ui-datepicker-today"),m.each(i,function(t,e){o.attr(t,m.isArray(e)?e.join(" "):e)}),this.opts.cache&&(this.cache.attributes[a]=i)}e.setDate(e.getDate()+1)}},a.prototype.maybe_load_from_cache=function(t){var e=t.getTime(),a=[!0,"1"===this.customData.default_availability?"bookable":"not-bookable",""],i=this.cache.attributes[e];if(i)i=[i.selectable,i.class.join(" "),i.title];else if(this.bookingsData){var o=this.getDateElementAttributes(t);a=[o.selectable,o.class.join(" "),o.title]}return i||a},a.prototype.get_default_params=function(){return this.defaultParams||{}},a.prototype.set_default_params=function(t){var e={showWeek:!1,showOn:!1,numberOfMonths:1,showButtonPanel:!1,showOtherMonths:!0,selectOtherMonths:!0,gotoCurrent:!0,dateFormat:m.datepicker.ISO_8601};if("object"!=typeof t)throw new Error("Cannot set params with typeof "+typeof t);this.defaultParams=m.extend(e,t)||{}},a.prototype.get_data=function(a,i){var e=function(t){t||(t=new Date([a,i,"01"].join("/")));var e=this.get_number_of_days_in_month(i);return this.get_padded_date_range(t,e)}.bind(this),o=m.Deferred(),s=e(),n=s.startDate.getTime()+"-"+s.endDate.getTime();if(this.opts.cache&&this.cache.data[n])o.resolveWith(this,[s,this.cache.data[n]]);else{var t={product_id:this.get_custom_data("product_id"),"wc-ajax":"wc_bookings_find_booked_day_blocks",security:this.$form.data("nonce")};this.$picker.block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),t.min_date=s.startDate,t.max_date=s.endDate,m.ajax({context:this,url:wc_bookings_date_picker_args.ajax_url,method:"GET",data:t}).done(function(t){this.bookingsData=this.bookingsDate||{},m.each(t,function(t,e){if(m.isArray(e)||"object"==typeof e){var a=m.isArray(e)?[]:{};this.bookingsData[t]=this.bookingsData[t]||a,m.extend(this.bookingsData[t],e)}else this.bookingsData[t]=e}.bind(this)),this.cache.data[n]=t,a||i||!this.bookingsData.min_date||(s=e(this.get_default_date(this.bookingsData.min_date))),o.resolveWith(this,[s,t]),this.$picker.unblock()}.bind(this))}return o},a.prototype.get_default_date=function(t){var e,a=this.$picker.data("default_date").split("-");a[2]="31";var i=1;if(e=3!==a.length?new Date:new Date(a),t){switch(t.unit){case"month":i=30;break;case"week":i=7}i*=t.value,e.setDate(e.getDate()+i)}return e},a.prototype.get_number_of_days_in_month=function(t){var e=this.get_default_date();return t=t||e.getMonth()+1,new Date(e.getFullYear(),t,0).getDate()},a.prototype.get_custom_data=function(t){if(t)return this.customData[t]||null},a.prototype.get_data_attr=function(t){if(t)return this.$picker.data(t)},a.prototype.get_padded_date_range=function(t,e,a){t=t||this.get_default_date(),e=e||30,a=a||7;var i=new Date,o=t<i,s=new Date(t.setDate(o?i.getDate():"01")),n=new Date(s.getTime());return s.setDate(s.getDate()-(o?0:a)),n.setDate(n.getDate()+(e+a)),{startDate:s,endDate:n}},a.prototype.getDateElementAttributes=function(t){var e={class:[],title:"",selectable:!0},a=0<this.$form.find("select#wc_bookings_field_resource").val()?this.$form.find("select#wc_bookings_field_resource").val():0,i=t.getFullYear(),o=t.getMonth()+1,s=t.getDate(),n=t.getDay(),_=i+"-"+o+"-"+s;new Date;if(this.bookingsData.unavailable_days&&this.bookingsData.unavailable_days[_]&&this.bookingsData.unavailable_days[_][a]&&(e.title=booking_form_params.i18n_date_unavailable,e.selectable=!1,e.class.push("not_bookable")),this.bookingsData.buffer_days&&this.bookingsData.buffer_days[_]&&(e.title=booking_form_params.i18n_date_unavailable,e.selectable=!1,e.class.push("not_bookable")),this.bookingsData.restricted_days&&void 0===this.bookingsData.restricted_days[n]&&(e.title=booking_form_params.i18n_date_unavailable,e.selectable=!1,e.class.push("not_bookable")),""+i+o+s<wc_bookings_booking_form.current_time&&(e.title=booking_form_params.i18n_date_unavailable,e.selectable=!1,e.class.push("not_bookable")),this.bookingsData.fully_booked_days[_]){if(this.bookingsData.fully_booked_days[_][0]||this.bookingsData.fully_booked_days[_][a])return e.title=booking_form_params.i18n_date_fully_booked,e.selectable=!1,e.class=["fully_booked"],e;"automatic"===this.customData.resources_assignment&&(e.class=["partial_booked"])}this.bookingsData.partially_booked_days&&this.bookingsData.partially_booked_days[_]&&("automatic"===this.customData.resources_assignment||this.bookingsData.partially_booked_days[_][0]||this.bookingsData.partially_booked_days[_][a])&&(e.class=["partial_booked"]);var r={start_date:t,number_of_days:wc_bookings_date_picker.get_number_of_days(this.customData.booking_duration,this.$form,this.$picker,wc_bookings_booking_form),fully_booked_days:this.bookingsData.fully_booked_days,availability:this.bookingsData.availability_rules,default_availability:this.customData.default_availability,resource_id:a,resources_assignment:this.customData.resources_assignment},d=wc_bookings_date_picker.is_blocks_bookable(r);if(d)if(-1<e.class.indexOf("partial_booked")?e.title=booking_form_params.i18n_date_partially_booked:e.title=booking_form_params.i18n_date_available,this.$picker.data("is_range_picker_enabled")){var l=this.$picker.closest("fieldset"),c=m.datepicker.parseDate(m.datepicker.ISO_8601,wc_bookings_date_picker.get_input_date(l,"")),u=m.datepicker.parseDate(m.datepicker.ISO_8601,wc_bookings_date_picker.get_input_date(l,"to_"));c&&(t.getTime()===c.getTime()||u&&c<=t&&t<=u)?(e.class.push("bookable-range"),t.getTime()===c.getTime()?e.class.push("selection-start-date"):t.getTime()===u.getTime()&&e.class.push("selection-end-date")):e.class.push("bookable")}else e.class.push("bookable");else e.title=booking_form_params.i18n_date_unavailable,e.selectable=d,e.class=[this.bookingsData.fully_booked_days[_]?"fully_booked":"not_bookable"];return e},wc_bookings_date_picker=t,wc_bookings_date_picker.init()});