𝗖𝗨𝗥𝗥𝗘𝗡𝗧 𝗙𝗜𝗟𝗘 : /home/builxejc/public_html/wp-content/plugins/motopress-hotel-booking/assets/js/admin//admin.min.js
!function(u){u(function(){var a,t;MPHBAdmin.BookingsCalendar=can.Control.extend({},{filtersForm:null,customPeriodWrapper:null,btnPeriodPrev:null,btnPeriodNext:null,periodEl:null,popup:null,init:function(t,e){this.filtersForm=this.element.find("#mphb-bookings-calendar-filters"),this.customPeriodWrapper=this.filtersForm.find(".mphb-custom-period-wrapper"),this.btnPeriodPrev=this.filtersForm.find(".mphb-period-prev"),this.btnPeriodNext=this.filtersForm.find(".mphb-period-next"),this.periodEl=this.filtersForm.find("#mphb-bookings-calendar-filter-period"),this.searchDateFromEl=this.filtersForm.find(".mphb-search-date-from"),this.searchDateToEl=this.filtersForm.find(".mphb-search-date-to"),this.popup=new MPHBAdmin.CalendarPopup(this.element.find("#mphb-bookings-calendar-popup"),{clickTargets:this.element.find(".mphb-link-to-booking, .mphb-silent-link-to-booking")}),this.initDatepickers()},initDatepickers:function(){this.filtersForm.find(".mphb-datepick").datepick({dateFormat:MPHBAdmin.Plugin.myThis.data.settings.dateFormat,firstDay:MPHBAdmin.Plugin.myThis.data.settings.firstDay,showSpeed:0,showOtherMonths:!0,monthsToShow:MPHBAdmin.Plugin.myThis.data.settings.numberOfMonthDatepicker,pickerClass:MPHBAdmin.Plugin.myThis.data.settings.datepickerClass,useMouseWheel:!1})},"#mphb-bookings-calendar-filter-period change":function(t,e){"custom"===u(t).val()?(this.customPeriodWrapper.removeClass("mphb-hide"),this.btnPeriodNext.addClass("mphb-hide"),this.btnPeriodPrev.addClass("mphb-hide")):(this.customPeriodWrapper.addClass("mphb-hide"),this.btnPeriodNext.removeClass("mphb-hide"),this.btnPeriodPrev.removeClass("mphb-hide"))},"#mphb-booking-calendar-search-room-availability-status change":function(t,e){""===u(t).val()?(this.searchDateFromEl.addClass("mphb-hide"),this.searchDateToEl.addClass("mphb-hide")):(this.searchDateFromEl.removeClass("mphb-hide"),this.searchDateToEl.removeClass("mphb-hide"))}}),MPHBAdmin.CalendarPopup=can.Control.extend({},{$title:null,$status:null,$preloader:null,$content:null,$editLink:null,titleText:"",errorText:"",statuses:{},ajaxUrl:"",ajaxAction:"mphb_get_admin_calendar_booking_info",ajaxNonce:"",init:function(t,e){if(t&&0!=t.length&&null!=e&&null!=e.clickTargets){var i=MPHBAdmin.Plugin.myThis.data,n=i.translations;this.titleText=n.bookingId,this.errorText=n.errorHasOccured,this.statuses=n.bookingStatuses,this.ajaxUrl=i.ajaxUrl,this.ajaxNonce=i.nonces[this.ajaxAction],this.$title=t.find(".mphb-title"),this.$status=t.find(".mphb-status"),this.$preloader=t.find(".mphb-preloader"),this.$content=t.find(".mphb-content"),this.$editLink=t.find(".mphb-edit-button"),e.clickTargets.on("click",this.onClick.bind(this))}},onClick:function(t){t.preventDefault();var e=u(t.target),i=parseInt(e.data("booking-id"));if(!isNaN(i)){var n=e.attr("href");this.$title.text(this.titleText.replace("%s",i)),this.$editLink.attr("href",n);var s=e.data("booking-status");this.statuses.hasOwnProperty(s)?(this.$status.text(this.statuses[s]),this.$status.attr("class","mphb-status mphb-status-"+s),this.show(this.$status)):this.hide(this.$status),this.show(),this.loadBookingDetails(i)}},".mphb-close-popup-button, .mphb-popup-backdrop click":function(){this.hide()},loadBookingDetails:function(t){this.beforeLoad();var e=this;u.ajax({url:this.ajaxUrl,type:"GET",dataType:"json",data:{action:this.ajaxAction,mphb_nonce:this.ajaxNonce,booking_id:t},success:function(t){e.updateContent(t.data)},error:function(t){console.error(t),e.setMessage(e.errorText),void 0!==t.responseJSON.data.errorMessage?console.error(t.responseJSON.data.errorMessage):console.error(t)},complete:function(){e.afterLoad()}})},updateContent:function(t){this.$content.html(t)},setMessage:function(t){this.updateContent("<p>"+t+"</p>")},beforeLoad:function(){this.$content.empty(),this.show(this.$preloader)},afterLoad:function(){this.hide(this.$preloader)},show:function(t){(t=t||this.element).removeClass("mphb-hide")},hide:function(t){(t=t||this.element).addClass("mphb-hide")}}),MPHBAdmin.ExportBookings=can.Control.extend({},{rooms:null,statuses:null,startDate:null,endDate:null,searchBy:null,columnsFieldset:null,exportColumns:null,submitButton:null,preloader:null,progressBar:null,progressBack:null,progressText:null,cancelButton:null,errorsWrapper:null,timeoutInterval:1e3,shortInterval:500,checkTimer:null,cancelTimer:null,messages:{error:"",processing:"",cancelling:""},init:function(t,e){0!=t.length&&(this.initMessages(),this.initElements(t),this.initDatepickers(),MPHBAdmin.Plugin.myThis.data.settings.isExportingBookings&&(this.alreadyStarted(),this.checkTimer=setTimeout(this.checkExport.bind(this),0)))},initMessages:function(){var t=MPHBAdmin.Plugin.myThis.data.translations;this.messages.error=t.errorHasOccured,this.messages.processing=t.processing,this.messages.cancelling=t.cancelling},initElements:function(t){this.rooms=t.find('select[name="room"]'),this.statuses=t.find('select[name="status"]'),this.startDate=t.find(".mphb-export-start-date"),this.endDate=t.find(".mphb-export-end-date"),this.searchBy=t.find('select[name="search_by"]'),this.columnsFieldset=t.find(".mphb-export-columns"),this.exportColumns=this.columnsFieldset.find('input[type="checkbox"]'),this.submitButton=t.find(".submit-button"),this.preloader=t.find(".mphb-preloader"),this.progressBar=t.find(".mphb-progress"),this.progressBack=this.progressBar.children(".mphb-progress__bar"),this.progressText=this.progressBar.children(".mphb-progress__text"),this.cancelButton=t.find(".cancel-button"),this.errorsWrapper=t.find(".mphb-errors-wrapper")},initDatepickers:function(){var t=MPHBAdmin.Plugin.myThis.data.settings,e={dateFormat:t.dateFormat,firstDay:t.firstDay,showSpeed:0,showOtherMonths:!0,monthsToShow:t.numberOfMonthDatepicker,pickerClass:t.datepickerClass,useMouseWheel:!1};this.startDate.datepick(e),this.endDate.datepick(e)},".submit-button click":function(t,e){e.preventDefault(),this.beforeStart(),this.startExport()},".cancel-button click":function(t,e){e.preventDefault(),clearTimeout(this.checkTimer),this.afterCancel(),this.cancelExport()},startExport:function(){var t="mphb_export_bookings_csv",e=MPHBAdmin.Plugin.myThis.data,i=this;u.ajax({url:e.ajaxUrl,type:"POST",dataType:"json",data:{action:t,mphb_nonce:e.nonces[t],args:this.getValues()},success:function(t){t.hasOwnProperty("success")&&t.success?(i.afterStart(),i.checkTimer=setTimeout(i.checkExport.bind(i),i.shortInterval)):i.badResponse(t.success?null:t.data.message)},error:this.badResponse.bind(this)})},checkExport:function(){var t="mphb_check_bookings_csv",e=MPHBAdmin.Plugin.myThis.data,i=this;u.ajax({url:e.ajaxUrl,type:"GET",dataType:"json",data:{action:t,mphb_nonce:e.nonces[t]},success:function(t){t.hasOwnProperty("success")&&t.success?t.data.finished?(i.setProgress(100),t.data.file?i.downloadFile(t.data.file):i.setMessage(i.messages.error),i.afterEnd()):(i.setProgress(Math.floor(t.data.progress)),i.checkTimer=setTimeout(i.checkExport.bind(i),i.timeoutInterval)):i.badResponse()},error:this.badResponse.bind(this)})},cancelExport:function(){var t="mphb_cancel_bookings_csv",e=MPHBAdmin.Plugin.myThis.data,i=this;u.ajax({url:e.ajaxUrl,type:"POST",dataType:"json",data:{action:t,mphb_nonce:e.nonces[t]},success:function(t){t.hasOwnProperty("success")&&t.success?t.data.cancelled?i.afterEnd():i.cancelTimer=setTimeout(i.cancelExport.bind(i),i.timeoutInterval):i.badResponse()},error:this.badResponse.bind(this)})},badResponse:function(t){null==t&&(t=this.messages.error),""!=t&&this.setMessage(t),this.afterEnd()},downloadFile:function(t){window.location=t},setProgress:function(t,e){null==e&&(e=0==t?this.messages.processing:t+"%"),this.progressBack.css("width",t+"%"),this.progressText.text(e),t<100&&(0==t?this.progressBar.addClass("mphb-wait"):this.progressBar.removeClass("mphb-wait"))},setMessage:function(t){this.errorsWrapper.text(t).removeClass("mphb-hide")},beforeStart:function(){this.submitButton.prop("disabled",!0),this.preloader.removeClass("mphb-hide"),this.errorsWrapper.addClass("mphb-hide").empty(),this.setProgress(0),this.progressBar.removeClass("mphb-hide"),this.cancelButton.removeClass("mphb-hide")},afterStart:function(){this.cancelButton.prop("disabled",!1)},alreadyStarted:function(){this.submitButton.prop("disabled",!0),this.preloader.removeClass("mphb-hide"),this.progressBar.removeClass("mphb-hide"),this.cancelButton.removeClass("mphb-hide").prop("disabled",!1)},afterCancel:function(){this.cancelButton.addClass("mphb-hide").prop("disabled",!0),this.progressBar.addClass("mphb-wait"),this.setProgress(100,this.messages.cancelling)},afterEnd:function(){this.submitButton.prop("disabled",!1),this.preloader.addClass("mphb-hide"),this.progressBar.addClass("mphb-hide"),this.cancelButton.addClass("mphb-hide").prop("disabled",!0)},getValues:function(){var t={};return t.room=this.rooms.val(),t.status=this.statuses.val(),t.start_date=this.startDate.val(),t.end_date=this.endDate.val(),t.search_by=this.searchBy.val(),t.columns=u.map(this.exportColumns.filter(":checked"),function(t){return t.value}),0==t.columns.length&&(t.columns="none"),t},".mphb-toggle-export-columns click":function(t,e){e.preventDefault(),this.columnsFieldset.toggleClass("mphb-hide")},".mphb-checkbox-select-all click":function(t,e){e.preventDefault(),this.exportColumns.filter(":not(:checked)").prop("checked",!0)},".mphb-checkbox-unselect-all click":function(t,e){e.preventDefault(),this.exportColumns.filter(":checked").prop("checked",!1)}}),MPHBAdmin.format_price=function(t,e){e=e||{};var i=MPHBAdmin.Plugin.myThis.data.settings.currency;e=u.extend({trim_zeros:!1},i,e),t=MPHBAdmin.number_format(t,e.decimals,e.decimal_separator,e.thousand_separator);var n=e.price_format.replace("%s",t);if(e.trim_zeros){var s=new RegExp("\\"+e.decimal_separator+"0+$|(\\"+e.decimal_separator+"\\d*[1-9])0+$");n=n.replace(s,"$1")}return'<span class="mphb-price">'+n+"</span>"},MPHBAdmin.format_percentage=function(t,e){e=e||{};var i=MPHBAdmin.Plugin.myThis.data.settings.currency;return e=u.extend({},i,e),'<span class="mphb-percentage">'+((t=MPHBAdmin.number_format(t,e.decimals,e.decimal_separator,e.thousand_separator))+"%")+"</span>"},MPHBAdmin.number_format=function(t,e,i,n){var s,a,r="";return e=e||0,i=i||".",n=n||",",t<0&&(r="-",t*=-1),3<(a=(s=parseInt(t=(+t||0).toFixed(e))+"").length)?a%=3:a=0,r+(a?s.substr(0,a)+n:"")+s.substr(a).replace(/(\d{3})(?=\d)/g,"$1"+n)+(e?i+Math.abs(t-s).toFixed(e).replace(/-/,0).slice(2):"")},MPHBAdmin.post=function(t,e,i){var n=MPHBAdmin.Plugin.myThis.data;"mphb"!==t.substr(0,4)&&(t="mphb_"+t),e=u.extend({action:t,mphb_nonce:n.nonces[t]},e);var s=u.extend({url:n.ajaxUrl,type:"POST",dataType:"json",data:e},i);return u.ajax(s)},MPHBAdmin.Plugin=can.Construct.extend({myThis:null},{data:null,init:function(t,e){(MPHBAdmin.Plugin.myThis=this).data=MPHBAdmin._data,delete MPHBAdmin._data;var i=u(".mphb-ctrl:not([data-inited])");this.setControls(i)},getVersion:function(){return this.data.version},getPrefix:function(){return this.data.prefix},addPrefix:function(t,e){return e=void 0!==e?e:"-",this.getPrefix()+e+t},setControls:function(t){u.each(t,function(){switch(u(this).attr("data-type")){case"text":break;case"number":new MPHBAdmin.NumberCtrl(u(this));break;case"total-price":new MPHBAdmin.TotalPriceCtrl(u(this));break;case"price-breakdown":new MPHBAdmin.PriceBreakdownCtrl(u(this));break;case"media":new MPHBAdmin.MediaCtrl(u(this));break;case"datepicker":new MPHBAdmin.DatePickerCtrl(u(this));break;case"color-picker":new MPHBAdmin.ColorPickerCtrl(u(this));break;case"complex":new MPHBAdmin.ComplexCtrl(u(this));break;case"complex-vertical":new MPHBAdmin.ComplexVerticalCtrl(u(this));break;case"dynamic-select":new MPHBAdmin.DynamicSelectCtrl(u(this));break;case"multiple-checkbox":new MPHBAdmin.MultipleCheckboxCtrl(u(this));break;case"amount":new MPHBAdmin.AmountCtrl(u(this));break;case"rules-list":new MPHBAdmin.RulesListCtrl(u(this));break;case"notes-list":new MPHBAdmin.NotesListCtrl(u(this));break;case"variable-pricing":new MPHBAdmin.VariablePricingCtrl(u(this));break;case"action-button":new MPHBAdmin.ActionButtonCtrl(u(this));break;case"install-plugin":new MPHBAdmin.InstallButtonCtrl(u(this))}u(this).attr("data-inited",!0)})}}),MPHBAdmin.PopupForm=can.Control.extend({},{$popup:null,$submitButton:null,isVisible:!1,isSubmitable:!0,resolve:null,reject:null,lastInput:{},init:function(t,e){this.$popup=t,this.$submitButton=t.find(".mphb-submit-popup-button")},reset:function(t){this.canSubmit(!0)},show:function(t){if(!this.isVisible){this.lastInput=t||{},this.reset(this.lastInput),this.$popup.removeClass("mphb-hide"),this.isVisible=!0;var i=this;return new Promise(function(t,e){i.resolve=t,i.reject=e})}},close:function(){this.isVisible&&(this.$popup.addClass("mphb-hide"),this.isVisible=!1,this.reject(new Error("Closed.")),this.resolve=this.reject=null)},submit:function(){this.isVisible&&(this.$popup.addClass("mphb-hide"),this.isVisible=!1,this.canSubmit()?this.resolve(this.getData()):this.reject(new Error("Can't submit.")),this.resolve=this.reject=null)},canSubmit:function(t){return null!=t&&(this.isSubmitable=t,this.$submitButton.prop("disabled",!this.isSubmitable)),this.isSubmitable},getData:function(){return u.extend({},this.lastInput)},".mphb-submit-popup-button click":function(t,e){this.submit()},".mphb-close-popup-button, .mphb-popup-backdrop click":function(t,e){this.close()}}),(a=jQuery)(".mphb-remove-customer").on("click",function(t){t.preventDefault(),t.stopPropagation();var e=MPHBAdmin.Plugin.myThis.data,i=e.translations.deleteConfirmation,n=e.nonces.mphb_remove_customer;if(confirm(i)){var s=a(this);a.ajax(ajaxurl,{type:"post",data:{action:"mphb_remove_customer",itemId:s.attr("data-item-key"),mphb_nonce:n},success:function(t){window.location.href=window.location.href}})}}),MPHBAdmin.AttributesCustomOrder=can.Control.extend({},{ITEM_SELECTOR:"tbody tr:not(.inline-edit-row)",TERM_ID_SELECTOR:".check-column input",TERM_ID_CLASS:".check-column",COLUMN_HANDLE:'<td class="column-handle"></td>',COLUMN_HANDLE_CLASS:".column-handle",init:function(t,e){this._super(t,e),t.find("tr:not(.inline-edit-row)").append(this.COLUMN_HANDLE),t.find(this.COLUMN_HANDLE_CLASS).show(),u(document).ajaxComplete(this.onAjaxComplete.bind(this)),t.sortable({items:this.ITEM_SELECTOR,cursor:"move",handle:this.COLUMN_HANDLE_CLASS,axis:"y",opacity:.65,scrollSensitivity:40,update:this.onUpdate.bind(this)})},onAjaxComplete:function(t,e,i){e&&4===e.readyState&&200===e.status&&i.data&&(0<=i.data.indexOf("_inline_edit")||0<=i.data.indexOf("add-tag"))&&(this.addMissingSortHandles(),u(document.body).trigger("init_tooltips"))},onUpdate:function(t,i){var e=i.item.find(this.TERM_ID_SELECTOR).val(),n=i.item.next().find(this.TERM_ID_SELECTOR).val();i.item.find(this.TERM_ID_SELECTOR).hide(),i.item.find(this.TERM_ID_CLASS).append('<span class="mphb-preloader"></span>');var s=this;u.ajax({url:MPHBAdmin.Plugin.myThis.data.ajaxUrl,type:"POST",dataType:"json",data:{action:"mphb_attributes_custom_ordering",mphb_nonce:MPHBAdmin.Plugin.myThis.data.nonces.mphb_attributes_custom_ordering,term_id:e,next_term_id:n,taxonomy_name:MPHBAdmin.Plugin.myThis.data.settings.editTaxonomyName},complete:function(t,e){i.item.find(s.TERM_ID_CLASS).find(".mphb-preloader").remove(),i.item.find(s.TERM_ID_SELECTOR).show()}}),this.element.find("tbody tr").each(function(t,e){t%2==0?u(this).addClass("alternate"):u(this).removeClass("alternate")})},addMissingSortHandles:function(){var t=this.element.find("tbody > tr"),i=this.element.find("tbody > tr > td"+this.COLUMN_HANDLE_CLASS).parent();if(t.length!=i.length){var n=this;t.each(function(t,e){i.is(e)||u(e).append(n.COLUMN_HANDLE)}),this.element.find(this.COLUMN_HANDLE_CLASS).show()}}}),MPHBAdmin.ServiceQuantity=can.Control.extend({},{$periodSelect:null,$quantityRows:null,$autoLimitCheckbox:null,$maxQuantityInput:null,init:function(t,e){if(0!=t.length){this.$periodSelect=t.find('select[name="mphb_price_periodicity"]'),this.$quantityRows=t.find(".form-table tr:nth-of-type(n + 3):not(:last-of-type)"),this.$autoLimitCheckbox=t.find('input[name="mphb_is_auto_limit"][type="checkbox"]'),this.$maxQuantityInput=t.find('input[name="mphb_max_quantity"]');var i=this;this.$periodSelect.on("change",function(t){var e=i.$periodSelect.val();i.onPeriodChange(e)}),this.$autoLimitCheckbox.on("change",function(t){var e=i.$autoLimitCheckbox.prop("checked");i.onAutoLimitChange(e)}),this.onPeriodChange(this.$periodSelect.val()),this.onAutoLimitChange(this.$autoLimitCheckbox.prop("checked"))}},onPeriodChange:function(t){"flexible"!=t?this.$quantityRows.addClass("mphb-hide"):this.$quantityRows.removeClass("mphb-hide")},onAutoLimitChange:function(t){this.$maxQuantityInput.prop("readonly",t)}}),(t=jQuery)(document.body).on("init_tooltips",function(){t(".mphb-help-tip").tipTip({attribute:"data-tip",fadeIn:50,fadeOut:50,delay:200,keepAlive:!0})}),t(document.body).trigger("init_tooltips"),MPHBAdmin.WPGallery=can.Construct.extend({myThis:null,getInstance:function(){return null===MPHBAdmin.WPGallery.myThis&&(MPHBAdmin.WPGallery.myThis=new MPHBAdmin.WPGallery),MPHBAdmin.WPGallery.myThis}},{frame:null,ctrl:null,init:function(){MPHBAdmin.WPGallery.myThis=this,Attachment=wp.media.model.Attachment,wp.media.controller.MPHBGallery=wp.media.controller.FeaturedImage.extend({defaults:parent._.defaults({id:"mphb-media-library-gallery",title:MPHBAdmin.Plugin.myThis.data.translations.roomTypeGalleryTitle,toolbar:"main-insert",filterable:"uploaded",library:wp.media.query({type:"image"}),multiple:"add",editable:!0,priority:60,syncSelection:!1},wp.media.controller.Library.prototype.defaults),updateSelection:function(){var t,e=this.get("selection"),i=MPHBAdmin.WPGallery.myThis.ctrl.getValue();""!==i&&-1!==i&&(t=parent._.map(i.split(/,/),function(t){return Attachment.get(t)})),e.reset(t)}}),wp.media.view.MediaFrame.MPHBGallery=wp.media.view.MediaFrame.Post.extend({createStates:function(){this.options;this.states.add([new wp.media.controller.MPHBGallery])},bindHandlers:function(){wp.media.view.MediaFrame.Select.prototype.bindHandlers.apply(this,arguments),this.on("toolbar:create:main-insert",this.createToolbar,this);parent._.each({content:{embed:"embedContent","edit-selection":"editSelectionContent"},toolbar:{"main-insert":"mainInsertToolbar"}},function(t,i){parent._.each(t,function(t,e){this.on(i+":render:"+e,this[t],this)},this)},this)},mainInsertToolbar:function(t){var i=this;this.selectionStatusToolbar(t),t.set("insert",{style:"primary",priority:80,text:MPHBAdmin.Plugin.myThis.data.translations.addGalleryToRoomType,requires:{selection:!0},click:function(){var t=i.state(),e=t.get("selection");i.close(),t.trigger("insert",e).reset()}})}}),this.frame=new wp.media.view.MediaFrame.MPHBGallery(parent._.defaults({},{state:"mphb-media-library-gallery",library:{type:"image"},multiple:!0})),this.frame.on("open",this.proxy("onOpen")),this.frame.on("insert",this.proxy("setImage"))},open:function(t){this.ctrl=t,this.frame.open()},onOpen:function(){var e=this.frame;e.reset();var t=this.ctrl.getIds();if(t.length){var i=null;t.forEach(function(t){(i=wp.media.attachment(t)).fetch(),e.state().get("selection").add(i)})}},setImage:function(){var n=[],t=this.frame.state().get("selection").models;u.each(t,function(t,e){var i=e.attributes;n.push(i.id)}),this.ctrl.setValue(n.join(","))}}),MPHBAdmin.Ctrl=can.Control.extend({renderValue:function(t){var e=t.attr("data-type");return t.find('input[type="'+e+'"]').val()}},{parentForm:null,init:function(t,e){this.parentForm=this.element.closest("form")}}),MPHBAdmin.ActionButtonCtrl=MPHBAdmin.Ctrl.extend({},{button:null,preloader:null,statusText:null,checkInterval:1e3,reloadAfter:!1,redirectAfter:"",actionName:"",inProgress:!1,timeoutObject:null,iteration:1,undefinedError:"",init:function(t,e){this._super(t,e),this.button=t.find("button"),this.preloader=t.find(".mphb-preloader"),this.statusText=t.find(".status-text"),this.checkInterval=parseInt(this.button.data("check-interval")),this.reloadAfter="yes"===this.button.data("reload-after"),this.redirectAfter=this.button.data("redirect-after"),this.actionName=this.button.attr("name"),this.undefinedError=MPHBAdmin.Plugin.myThis.data.translations.errorHasOccured,this.button.prop("disabled")&&(this.inProgress=!0),"yes"===this.button.data("is-in-progress")&&(this.beforeStart(),this.iteration=2,this.makeRequest()),this.button.on("click",this.onClick.bind(this))},onClick:function(t){t.preventDefault(),this.inProgress||(this.beforeStart(),this.makeRequest())},makeRequest:function(){var e=this;MPHBAdmin.post(this.actionName,{iteration:this.iteration},{success:function(t){t.data&&t.data.message?e.setStatus(t.data.message,!t.success):e.setStatus("",!1),t.success&&t.data&&t.data.inProgress?(e.iteration++,e.timeoutObject=setTimeout(e.makeRequest.bind(e),e.checkInterval)):e.afterEnd(t.success)},error:function(t){e.setStatus(e.undefinedError,!0),e.afterEnd(!1)}})},beforeStart:function(){this.inProgress=!0,this.iteration=1,this.button.prop("disabled",!0),this.preloader.removeClass("mphb-hide"),this.statusText.text("").removeClass("error")},afterEnd:function(t){this.inProgress=!1,this.preloader.addClass("mphb-hide");var e=!0;t&&((this.redirectAfter||this.reloadAfter)&&(e=!1),this.redirectAfter?window.location.href=this.redirectAfter:this.reloadAfter&&document.location.reload(!0)),e&&this.button.prop("disabled",!1)},setStatus:function(t,e){this.statusText.text(t),this.statusText.toggleClass("error",e)}}),MPHBAdmin.AmountCtrl=MPHBAdmin.Ctrl.extend({renderValue:function(t){var e=t.find('input[type="number"]:not(:disabled)'),i="price"==t.children(".mphb-amount-inputs").attr("data-render-type")?MPHBAdmin.format_price:MPHBAdmin.format_percentage;if(1==e.length)return i(e.val(),{decimals:4});var n=MPHBAdmin.Plugin.myThis.data.translations.adults;return n+=i(u(e[0]).val(),{decimals:4}),n+="<br />"+MPHBAdmin.Plugin.myThis.data.translations.children,n+=i(u(e[1]).val(),{decimals:4})}},{mainWrapper:null,singleInputGroup:null,multipleInputsGroup:null,commonAmountInput:null,adultsAmountInput:null,childrenAmountInput:null,dependencyCtrl:null,singleInputTriggers:[],multipleInputsTriggers:[],init:function(t,e){this._super(t,e),this.mainWrapper=this.element.children(".mphb-amount-inputs"),this.singleInputGroup=this.mainWrapper.children(".mphb-amount-single-input-group"),this.multipleInputsGroup=this.mainWrapper.children(".mphb-amount-multiple-inputs-group"),this.commonAmountInput=this.singleInputGroup.find("input.mphb-amount-common-input"),this.adultsAmountInput=this.multipleInputsGroup.find("input.mphb-amount-adults-input"),this.childrenAmountInput=this.multipleInputsGroup.find("input.mphb-amount-children-input");var i=this.mainWrapper.attr("data-dependency");if(i){var n=this;this.dependencyCtrl=this.element.closest("form").find('[name="'+i+'"]'),this.dependencyCtrl.on("change",function(t){var e=u(this).val();n.onTrigger(e)})}this.singleInputTriggers=this.mainWrapper.attr("data-single-triggers").split(","),this.multipleInputsTriggers=this.mainWrapper.attr("data-multiple-triggers").split(",")},onTrigger:function(t){var e=-1!=this.singleInputTriggers.indexOf(t),i=-1!=this.multipleInputsTriggers.indexOf(t);-1!=t.indexOf("percent")?this.mainWrapper.attr("data-render-type","percentage"):this.mainWrapper.attr("data-render-type","price"),e?this.switchToSingleInput():i&&this.switchToMultipleInputs()},switchToSingleInput:function(){this.adultsAmountInput.prop("disabled",!0),this.childrenAmountInput.prop("disabled",!0),this.commonAmountInput.prop("disabled",!1),this.multipleInputsGroup.addClass("mphb-hide"),this.singleInputGroup.removeClass("mphb-hide")},switchToMultipleInputs:function(){this.commonAmountInput.prop("disabled",!0),this.adultsAmountInput.prop("disabled",!1),this.childrenAmountInput.prop("disabled",!1),this.singleInputGroup.addClass("mphb-hide"),this.multipleInputsGroup.removeClass("mphb-hide")}}),MPHBAdmin.ColorPickerCtrl=MPHBAdmin.Ctrl.extend({},{input:null,init:function(t,e){this._super(t,e),this.input=this.element.find("input"),this.input.spectrum({allowEmpty:!0,preferredFormat:"hex",showInput:!0,showInitial:!0,showAlpha:!1})}}),MPHBAdmin.ComplexCtrl=MPHBAdmin.Ctrl.extend({},{prototypeItem:null,itemsHolder:null,lastIndex:null,uniqid:null,itemSelector:"tr",metaName:null,init:function(t,e){this._super(t,e),this.uniqid=this.element.children("table").attr("data-uniqid"),this.metaName=this.element.children('input[type="hidden"]:first-of-type').attr("name"),this.initItemsHolder(),this.initAddBtn(),this.initDeleteBtns(),this.preparePrototypeItem(),this.initLastIndex(),this.setKeys(this.itemsHolder.children(this.itemSelector))},makeItemsHolderSortable:function(){this.itemsHolder.parent().hasClass("mphb-separate-sortable-table")?this.itemsHolder.sortable({handle:".mphb-sortable-handle",cursor:"move"}):this.itemsHolder.sortable()},initLastIndex:function(){this.lastIndex=0;var i=this;this.itemsHolder.children(this.itemSelector).each(function(t,e){i.lastIndex=Math.max(i.lastIndex,parseInt(u(e).attr("data-id")))})},initItemsHolder:function(){this.itemsHolder=this.element.children("table").children("tbody"),this.itemsHolder.hasClass("mphb-sortable")&&this.makeItemsHolderSortable()},initAddBtn:function(){var e=this;this.element.on("click",'.mphb-complex-add-item[data-id="'+this.uniqid+'"]',function(t){t.preventDefault(),e.addItem()})},initDeleteBtns:function(){var e=this;this.itemsHolder.on("click",'.mphb-complex-delete-item[data-id="'+this.uniqid+'"]',function(t){t.preventDefault(),e.deleteItem(u(this).closest(e.itemSelector))})},preparePrototypeItem:function(){var t=this.itemsHolder.children(".mphb-complex-item-prototype");this.prototypeItem=t.clone(),this.prototypeItem.removeClass("mphb-hide mphb-complex-item-prototype").find("[name]:not(.mphb-keep-disabled)").each(function(){u(this).removeAttr("disabled")}),t.remove()},getIncIndex:function(){return++this.lastIndex},setKeys:function(t){var i,n,s,a,r,o,l=this,d=new RegExp("%key_"+this.uniqid+"%","g"),h="%key_"+this.uniqid+"%";t.each(function(t,e){o=u(e),(a=o.attr("data-id"))===h&&(a=l.getIncIndex(),o.attr("data-id",a)),o.find('[name*="[%key_'+l.uniqid+'%]"]').each(function(){i=u(this).attr("name").replace(d,a),u(this).attr("name",i),u(this).attr("id")&&(n=u(this).attr("id").replace(d,a).replace(/\[|\]/g,"__"),u(this).attr("name",i).attr("id",n))}),o.find('[for*="[%key_'+l.uniqid+'%]"]').each(function(){s=u(this).attr("for").replace(d,a).replace(/\[|\]/g,"__"),u(this).attr("for",s)}),o.find('[data-dependency*="%key_'+l.uniqid+'%"]').each(function(){r=u(this).attr("data-dependency").replace(d,a),u(this).attr("data-dependency",r)})})},clonePrototypeItem:function(){var t=this.prototypeItem.clone();return this.setKeys(t),t},addItemToHolder:function(t){this.itemsHolder.append(t)},deleteItem:function(t){t.remove()},addItem:function(){var t=this.clonePrototypeItem();this.addItemToHolder(t);var e=t.find(".mphb-ctrl:not([data-inited])");MPHBAdmin.Plugin.myThis.setControls(e)}}),MPHBAdmin.ComplexVerticalCtrl=MPHBAdmin.ComplexCtrl.extend({},{itemSelector:"tbody",lastIndexInput:null,minItemsCount:0,init:function(t,e){this._super(t,e),this.minItemsCount=this.itemsHolder.attr("data-min-items-count")},initLastIndex:function(){this.lastIndexInput=this.itemsHolder.find(">tfoot .mphb-complex-last-index"),this.lastIndex=this.lastIndexInput.val()},getIncIndex:function(){var t=this._super();return this.lastIndexInput.val(t),t},initItemsHolder:function(){this.itemsHolder=this.element.children("table")},addItemToHolder:function(t){this.itemsHolder.children("tfoot").before(t)},disableDeleteButtons:function(){this.itemsHolder.children(this.itemSelector).children(".mphb-complex-item-actions-holder").find(".mphb-complex-delete-item").attr("disabled","disabled").addClass("mphb-hide")},enableDeleteButtons:function(){this.itemsHolder.children(this.itemSelector).children(".mphb-complex-item-actions-holder").find(".mphb-complex-delete-item").removeAttr("disabled").removeClass("mphb-hide")},updateItemActions:function(){this.itemsHolder.children(this.itemSelector).length<=this.minItemsCount?this.disableDeleteButtons():this.enableDeleteButtons()},updateDefaultItem:function(){var t=this.itemsHolder.children(this.itemSelector).find('>.mphb-complex-item-actions-holder [name="'+this.metaName+'[default]"]');t.filter(":checked").length||t.first().attr("checked","checked")},deleteItem:function(t){this._super(t),this.updateItemActions(),this.updateDefaultItem()},addItem:function(){this._super(),this.updateItemActions(),this.updateDefaultItem()}}),MPHBAdmin.DatePickerCtrl=MPHBAdmin.Ctrl.extend({renderValue:function(t){return t.find('input[type="text"]').val()}},{input:null,hiddenInput:null,init:function(t,e){this._super(t,e),this.input=this.element.find('input[type="text"]'),this.hiddenInput=this.element.find('input[type="hidden"]'),this.fixDate();var n=this;if(u(this.input).data("dateMin")&&(this.minDate=new Date(u(this.input).data("dateMin"))),u(this.input).data("dateMax")&&(this.maxDate=new Date(u(this.input).data("dateMax"))),u(this.input).data("dependentAsMin")){var i=u(this.input).data("dependentAsMin");this.dependentAsMinInput=u('input[name="'+i+'"]'),this.setDependentMinDate=!0,u(this.dependentAsMinInput).each(function(){u(this).data("dateMin",n.hiddenInput.val())})}if(u(this.input).data("dependentAsMax")){var s=u(this.input).data("dependentAsMax");this.dependentAsMaxInput=u('input[name="'+s+'"]'),this.setDependentMaxDate=!0,u(this.dependentAsMaxInput).each(function(){u(this).data("dateMax",n.hiddenInput.val())})}if(this.input.attr("readonly")||this.input.datepick({dateFormat:MPHBAdmin.Plugin.myThis.data.settings.dateFormat,firstDay:MPHBAdmin.Plugin.myThis.data.settings.firstDay,altField:this.hiddenInput,altFormat:MPHBAdmin.Plugin.myThis.data.settings.dateTransferFormat,showSpeed:0,showOtherMonths:!1,monthsToShow:MPHBAdmin.Plugin.myThis.data.settings.numberOfMonthDatepicker,pickerClass:MPHBAdmin.Plugin.myThis.data.settings.datepickerClass,useMouseWheel:!1,minDate:this.minDate,maxDate:this.maxDate,onSelect:function(i){n.setDependentMinDate&&u.each(n.dependentAsMinInput,function(t,e){u(e).datepick("option","minDate",i[0])}),n.setDependentMaxDate&&u.each(n.dependentAsMaxInput,function(t,e){u(e).datepick("option","maxDate",i[0])})}}),!this.input.attr("required")){var a=this.hiddenInput;this.input.on("change",function(){""==u(this).val()&&a.val("")})}},fixDate:function(){if(this.hiddenInput.val()){var t=u.datepick.parseDate(MPHBAdmin.Plugin.myThis.data.settings.dateTransferFormat,this.hiddenInput.val()),e=u.datepick.formatDate(MPHBAdmin.Plugin.myThis.data.settings.dateFormat,t);this.input.val(e)}else;}}),MPHBAdmin.DynamicSelectCtrl=MPHBAdmin.Ctrl.extend({},{input:null,dependencyCtrl:null,ajaxAction:null,ajaxNonce:null,errorsWrapper:null,preloader:null,defaultValue:null,defaultOption:null,complexId:null,group:"",init:function(t,e){this._super(t,e),this.input=this.element.find("select"),this.defaultValue=this.input.attr("data-default"),this.defaultOption=this.input.find('option[value="'+this.defaultValue+'"]').clone(),this.errorsWrapper=this.element.find(".mphb-errors-wrapper"),this.preloader=this.element.find(".mphb-preloader"),this.ajaxAction=this.input.attr("data-ajax-action"),this.ajaxNonce=this.input.attr("data-ajax-nonce"),this.initDependencyCtrl(),this.initComplexId(),this.initGroup()},initDependencyCtrl:function(){var t=this.input.attr("data-dependency");this.dependencyCtrl=this.element.closest("form").find('[name="'+t+'"]');var e=this;this.dependencyCtrl.on("change",function(t){e.updateList()}).on("focus",function(t){e.hideErrors()})},initComplexId:function(){var t=this.element.parents("tr[data-id]");0<t.length&&(this.complexId=parseInt(t.attr("data-id")))},initGroup:function(){var t=this.element.parents(".mphb-ctrl-rules-list");0<t.length&&(this.group=t.attr("data-group"))},setOptions:function(t){var i=this;this.input.html(this.defaultOption.clone()),u.each(t,function(t,e){i.input.append(u("<option />",{value:t,html:e}))})},updateList:function(){var e=this;this.hideErrors(),this.showPreloader(),this.input.html(this.defaultOption.clone());var t={action:this.ajaxAction,mphb_nonce:this.ajaxNonce,formValues:this.parseFormToJSON()};u.ajax({url:MPHBAdmin.Plugin.myThis.data.ajaxUrl,type:"GET",dataType:"json",data:t,success:function(t){t.hasOwnProperty("success")?t.success?e.setOptions(t.data.options):e.showError(t.data.message):e.showError(MPHBAdmin.Plugin.myThis.data.translations.errorHasOccured)},error:function(t){e.showError(MPHBAdmin.Plugin.myThis.data.translations.errorHasOccured)},complete:function(t){e.hidePreloader()}})},parseFormToJSON:function(){var t=this.parentForm.serializeJSON();return""!=this.group&&(t=t[this.group]),null!=this.complexId&&(t=t[this.complexId]),t},showPreloader:function(){this.preloader.removeClass("mphb-hide")},hidePreloader:function(){this.preloader.addClass("mphb-hide")},hideErrors:function(){this.errorsWrapper.empty().addClass("mphb-hide")},showError:function(t){this.errorsWrapper.html(t).removeClass("mphb-hide")}}),MPHBAdmin.InstallButtonCtrl=MPHBAdmin.Ctrl.extend({},{$button:null,$preloader:null,$statusText:null,pluginSlug:"",pluginZipLink:"#",redirect:"",ajax:{url:"",action:"mphb_install_plugin",nonce:""},i18n:{unknownError:""},init:function(t,e){this._super(t,e),this.$button=t.find(".button-row > button"),this.$preloader=t.find(".mphb-preloader"),this.$statusText=t.find(".status-text"),this.pluginSlug=this.$button.data("plugin-slug"),this.pluginZipLink=this.$button.data("plugin-zip"),this.redirect=this.$button.data("redirect"),"no"===this.redirect?this.redirect=!1:null==this.redirect&&(this.redirect="");var i=MPHBAdmin.Plugin.myThis.data;this.ajax.url=i.ajaxUrl,this.ajax.nonce=i.nonces[this.ajax.action],this.i18n.unknownError=i.translations.errorHasOccured,this.$button.on("click",this.triggerInstall.bind(this))},triggerInstall:function(t){t.preventDefault(),this.beforeRequest();var e=this;u.ajax({url:this.ajax.url,type:"POST",dataType:"json",data:{action:this.ajax.action,mphb_nonce:this.ajax.nonce,plugin_slug:this.pluginSlug,plugin_zip:this.pluginZipLink},success:function(t){t.success?(e.afterSuccess(),t.data&&t.data.message&&e.setMessage(t.data.message),e.reloadOrRedirect()):(e.afterFailure(),t.data&&t.data.message?e.setError(t.data.message):e.setError(e.i18n.unknownError))},error:function(t){e.afterSuccess(),e.reloadOrRedirect()}})},beforeRequest:function(){this.$button.prop("disabled",!0),this.$preloader.removeClass("mphb-hide"),this.$statusText.addClass("mphb-hide").removeClass("error").html("")},afterSuccess:function(){this.$preloader.addClass("mphb-hide")},afterFailure:function(){this.$button.prop("disabled",!1),this.$preloader.addClass("mphb-hide")},setMessage:function(t){this.$statusText.html(t).removeClass("error mphb-hide")},setError:function(t){this.$statusText.html(t).addClass("error").removeClass("mphb-hide")},reloadOrRedirect:function(){!1!==this.redirect&&(""==this.redirect?document.location.reload(!0):window.location.href=this.redirect)}}),MPHBAdmin.MediaCtrl=MPHBAdmin.Ctrl.extend({},{$input:null,$preview:null,$addButton:null,$removeButton:null,isSingle:!1,thumbSize:"full",init:function(t,e){this._super(t,e),this.$input=this.element.find("input[type=hidden]"),this.$preview=this.element.find("img").on("click",this.proxy("addMedia")),this.$addButton=this.element.find(".mphb-admin-organize-image-add").on("click",this.proxy("addMedia")),this.$removeButton=this.element.find(".mphb-admin-organize-image-remove").on("click",this.proxy("removeMedia")),this.isSingle=!!this.$input.attr("is-single"),this.thumbSize=this.$input.attr("image-size")},getValue:function(){return this.$input.val()},getIds:function(){var t=this.getValue();if(""===t)return[];var e=t.split(",");return u.map(e,function(t){return parseInt(t)})},setValue:function(t){this.$input.val(t),this.updatePreview(),this.updateButtons()},updateButtons:function(){""===this.getValue()?(this.$addButton.removeClass("mphb-hide"),this.$removeButton.addClass("mphb-hide")):(this.$addButton.addClass("mphb-hide"),this.$removeButton.removeClass("mphb-hide"))},updatePreview:function(){var t=this.getValue();if(""===t)this.$preview.addClass("mphb-hide").attr("src","");else{var e=null;if(this.isSingle)e=wp.media.attachment(t);else{var i=parseInt(this.getIds().shift());e=wp.media.attachment(i)}var n=e.attributes.sizes[this.thumbSize].url;this.$preview.removeClass("mphb-hide").attr("src",n)}},addMedia:function(t){if(t.preventDefault(),this.isSingle){var i=wp.media({multiple:!1}),n=this;i.open().on("select",function(t){var e=i.state().get("selection").first().toJSON().id;u("#image_url").val(e),n.setValue(e)})}else MPHBAdmin.WPGallery.getInstance().open(this)},removeMedia:function(t){t.preventDefault(),this.setValue("")}}),MPHBAdmin.MultipleCheckboxCtrl=MPHBAdmin.Ctrl.extend({renderValue:function(t){var e=t.find('input[type="checkbox"]'),i=e.filter(".mphb-checkbox-all:checked"),n=e.filter(":checked");if(0<i.length||n.length==e.length)return MPHBAdmin.Plugin.myThis.data.translations.all;var s=[];return n.each(function(){var t=u(this).parent().text();s.push(t)}),0<s.length?s.join(", "):MPHBAdmin.Plugin.myThis.data.translations.none}},{checkboxes:null,selectAllCheckbox:null,init:function(t,e){this._super(t,e),this.checkboxes=this.element.find('input[type="checkbox"]:not(.mphb-checkbox-all)'),this.selectAllCheckbox=this.element.find('input[type="checkbox"].mphb-checkbox-all'),this.selectAllCheckbox.prop("checked")&&this.disableCheckboxes()},".mphb-checkbox-all click":function(){this.selectAllCheckbox.prop("checked")?(this.disableCheckboxes(),this.selectCheckboxes()):this.enableCheckboxes()},".mphb-checkbox-select-all click":function(t,e){e.preventDefault(),this.selectCheckboxes()},".mphb-checkbox-unselect-all click":function(t,e){e.preventDefault(),this.unselectAll(),this.enableCheckboxes()},disableCheckboxes:function(){this.checkboxes.prop("disabled",!0)},enableCheckboxes:function(){this.checkboxes.prop("disabled",!1)},selectCheckboxes:function(){this.checkboxes.prop("checked",!0)},unselectCheckboxes:function(){this.checkboxes.prop("checked",!1)},unselectAll:function(){this.selectAllCheckbox.prop("checked",!1),this.unselectCheckboxes()}}),MPHBAdmin.RulesListCtrl=MPHBAdmin.Ctrl.extend({},{editClass:"mphb-rules-list-editing",editText:"",doneText:"",lastIndex:-1,rulesCount:0,table:null,tbody:null,rulePrototype:null,editingRule:null,noRulesMessage:null,prependNewItems:!1,init:function(t,e){this._super(t,e),this.editText=MPHBAdmin.Plugin.myThis.data.translations.edit,this.doneText=MPHBAdmin.Plugin.myThis.data.translations.done,this.noRulesMessage=t.find(".mphb-rules-list-empty-message"),this.table=t.children("table"),this.tbody=this.table.children("tbody"),this.tbody.hasClass("mphb-sortable")&&(this.tbody.sortable(),this.prependNewItems=!0);var i=this.tbody.children(".mphb-rules-list-prototype"),n=i.clone();i.remove(),n.removeClass("mphb-rules-list-prototype mphb-hide"),n.find(".mphb-ctrl:not(.mphb-keep-disabled) [name]:not(.mphb-keep-disabled)").each(function(){u(this).prop("disabled",!1)}),this.rulePrototype=n;var s=this.tbody.children("tr"),a=this.lastIndex;s.each(function(){var t=parseInt(u(this).attr("data-id"));a=Math.max(a,t)}),this.lastIndex=a,this.rulesCount=s.length},".mphb-rules-list-add-button click":function(){this.addRule()},".mphb-rules-list-edit-button click":function(t,e){var i=this.getRuleByButton(t);this.toggleEdit(i)},".mphb-rules-list-delete-button click":function(t,e){var i=this.getRuleByButton(t);this.deleteRule(i)},addRule:function(){var t=this.rulePrototype.clone(),n=this.nextIndex();t.attr("data-id",n),t.find('[name*="[$index$]"]').each(function(){var t=u(this),e=t.attr("name");e=e.replace("$index$",n),t.attr("name",e);var i=t.attr("id");i&&(i=i.replace("$index$",n),t.attr("id",i))}),t.find('[for*="[$index$]"]').each(function(){var t=u(this),e=t.attr("for");e=e.replace("$index$",n),t.attr("for",e)}),t.find('[data-dependency*="[$index$]"]').each(function(){var t=u(this),e=t.attr("data-dependency");e=e.replace("$index$",n),t.attr("data-dependency",e)}),this.prependNewItems?this.tbody.prepend(t):this.tbody.append(t),this.increaseRulesCount();var e=t.find(".mphb-ctrl:not([data-inited])");MPHBAdmin.Plugin.myThis.setControls(e),this.toggleEdit(t)},toggleEdit:function(t){null!=this.editingRule&&(this.renderValues(this.editingRule),this.editingRule.removeClass(this.editClass),this.editingRule.find(".mphb-rules-list-edit-button").text(this.editText)),this.isEditingRule(t)?this.editingRule=null:((this.editingRule=t).addClass(this.editClass),t.find(".mphb-rules-list-edit-button").text(this.doneText))},deleteRule:function(t){this.isEditingRule(t)&&(this.editingRule=null),t.remove(),this.decreaseRulesCount()},isEditingRule:function(t){return null!=this.editingRule&&t[0]===this.editingRule[0]},getRuleByButton:function(t){return t.closest("tr")},increaseRulesCount:function(){0==this.rulesCount&&(this.noRulesMessage.addClass("mphb-hide"),this.table.removeClass("mphb-hide")),this.rulesCount++},decreaseRulesCount:function(){this.rulesCount--,0==this.rulesCount&&(this.table.addClass("mphb-hide"),this.noRulesMessage.removeClass("mphb-hide"))},nextIndex:function(){return this.lastIndex++,this.lastIndex},renderValues:function(t){var n=this;t.children("td").each(function(){var t=u(this),e=t.children(".mphb-ctrl");if(0!=e.length){var i=n.renderValue(e);t.children(".mphb-rules-list-rendered-value").html(i)}})},renderValue:function(t){var e="";switch(t.attr("data-type")){case"text":e=MPHBAdmin.Ctrl.renderValue(t);break;case"datepicker":e=MPHBAdmin.DatePickerCtrl.renderValue(t);break;case"textarea":e=t.find("textarea").val();break;case"number":e=MPHBAdmin.NumberCtrl.renderValue(t);break;case"select":case"dynamic-select":var i=t.children("select"),n=i.val();if(null!=n)e=i.children('option[value="'+n+'"]').text();else e=MPHBAdmin.Plugin.myThis.data.translations.none;break;case"single-checkbox":e=MPHBAdmin.SingleCheckboxCtrl.renderValue(t);break;case"multiple-checkbox":e=MPHBAdmin.MultipleCheckboxCtrl.renderValue(t);break;case"amount":e=MPHBAdmin.AmountCtrl.renderValue(t);break;case"placeholder":e="-"}return e}}),MPHBAdmin.NotesListCtrl=MPHBAdmin.RulesListCtrl.extend({},{editClass:"mphb-notes-list-editing",editText:"",doneText:"",rulesCount:0,table:null,tbody:null,rulePrototype:null,editingRule:null,noRulesMessage:null,prependNewItems:!1,init:function(t,e){this._super(t,e),this.lastIndex=-1,this.editText=MPHBAdmin.Plugin.myThis.data.translations.edit,this.doneText=MPHBAdmin.Plugin.myThis.data.translations.done,this.noRulesMessage=t.find(".mphb-notes-list-empty-message"),this.table=t.children("table"),this.tbody=this.table.children("tbody"),this.tbody.hasClass("mphb-sortable")&&(this.tbody.sortable(),this.prependNewItems=!0);var i=this.tbody.children(".mphb-notes-list-prototype"),n=i.clone();i.remove(),n.removeClass("mphb-notes-list-prototype mphb-hide"),n.find(".mphb-ctrl:not(.mphb-keep-disabled) [name]:not(.mphb-keep-disabled)").each(function(){u(this).prop("disabled",!1)}),this.rulePrototype=n;var s=this.tbody.children("tr"),a=this.lastIndex;s.each(function(){var t=parseInt(u(this).attr("data-id"));a=Math.max(a,t)}),this.lastIndex=a,this.rulesCount=s.length},".mphb-notes-list-add-button click":function(){this.addRule()},".mphb-notes-list-edit-button click":function(t,e){var i=this.getRuleByButton(t);this.toggleEdit(i)},".mphb-notes-list-delete-button click":function(t,e){var i=this.getRuleByButton(t);this.deleteRule(i)},addRule:function(){var t=this.rulePrototype.clone(),n=this.nextIndex();t.attr("data-id",n),t.find('[name*="[$index$]"]').each(function(){var t=u(this),e=t.attr("name");e=e.replace("$index$",n),t.attr("name",e);var i=t.attr("id");i&&(i=i.replace("$index$",n),t.attr("id",i))}),t.find('[data-dependency*="[$index$]"]').each(function(){var t=u(this),e=t.attr("data-dependency");e=e.replace("$index$",n),t.attr("data-dependency",e)}),this.prependNewItems?this.tbody.prepend(t):this.tbody.append(t),this.increaseRulesCount();var e=t.find(".mphb-ctrl:not([data-inited])");MPHBAdmin.Plugin.myThis.setControls(e),this.toggleEdit(t)},toggleEdit:function(t){null!=this.editingRule&&(this.renderValues(this.editingRule),this.editingRule.removeClass(this.editClass),this.editingRule.find(".mphb-notes-list-edit-button").text(this.editText)),this.isEditingRule(t)?this.editingRule=null:((this.editingRule=t).addClass(this.editClass),t.find(".mphb-notes-list-edit-button").text(this.doneText))},deleteRule:function(t){this.isEditingRule(t)&&(this.editingRule=null),t.remove(),this.decreaseRulesCount()},isEditingRule:function(t){return null!=this.editingRule&&t[0]===this.editingRule[0]},getRuleByButton:function(t){return t.closest("tr")},increaseRulesCount:function(){0==this.rulesCount&&(this.noRulesMessage.addClass("mphb-hide"),this.table.removeClass("mphb-hide")),this.rulesCount++},decreaseRulesCount:function(){this.rulesCount--,0==this.rulesCount&&(this.table.addClass("mphb-hide"),this.noRulesMessage.removeClass("mphb-hide"))},nextIndex:function(){return this.lastIndex++,this.lastIndex},renderValues:function(t){var n=this;t.children("td").each(function(){var t=u(this),e=t.children(".mphb-ctrl");if(0!=e.length){var i=n.renderValue(e);t.children(".mphb-notes-list-rendered-value").html(i)}})},renderValue:function(t){var e="";switch(t.attr("data-type")){case"text":e=MPHBAdmin.Ctrl.renderValue(t);break;case"username":e=t.find(".mphb-ctrl-user-name").text();break;case"timestamp":e=t.find(".mphb-ctrl-date-val").text();break;case"datepicker":e=MPHBAdmin.DatePickerCtrl.renderValue(t);break;case"textarea":e=t.find("textarea").val();break;case"number":e=MPHBAdmin.NumberCtrl.renderValue(t);break;case"select":case"dynamic-select":var i=t.children("select"),n=i.val();if(null!=n)e=i.children('option[value="'+n+'"]').text();else e=MPHBAdmin.Plugin.myThis.data.translations.none;break;case"multiple-checkbox":e=MPHBAdmin.MultipleCheckboxCtrl.renderValue(t);break;case"amount":e=MPHBAdmin.AmountCtrl.renderValue(t);break;case"placeholder":e="-"}return e}}),MPHBAdmin.NumberCtrl=MPHBAdmin.Ctrl.extend({renderValue:function(t){var e=t.children('input[type="number"]');return e.val()+e.parent().text()}},{input:null,disableOn:[],init:function(t,e){this._super(t,e),this.input=this.element.children("[name]");var i=this.input.attr("data-dependency"),n=this.input.attr("data-disable-on");if(i&&n){this.disableOn=n.split(",");var s=this;this.element.closest("form").find('[name="'+i+'"]').on("change",function(t){var e=u(this).val();s.onDependencyChange(e)})}},onDependencyChange:function(t){-1!=this.disableOn.indexOf(t)?this.input.prop("disabled",!0):this.input.prop("disabled",!1)}}),MPHBAdmin.PriceBreakdownCtrl=MPHBAdmin.Ctrl.extend({},{".mphb-price-breakdown-expand click":function(t,e){e.preventDefault(),u(t).blur();var i=u(t).parents("tr.mphb-price-breakdown-group");i.find(".mphb-price-breakdown-rate").toggleClass("mphb-hide"),i.nextUntil("tr.mphb-price-breakdown-group").toggleClass("mphb-hide"),u(t).children(".mphb-inner-icon").toggleClass("mphb-hide")}}),MPHBAdmin.SingleCheckboxCtrl=MPHBAdmin.Ctrl.extend({renderValue:function(t){var e=t.children('input[type="checkbox"]');return e.prop("checked")?u.trim(e.parent().text()):""}},{input:null,disableOn:[],init:function(t,e){this._super(t,e),this.input=this.element.children("[name]")}}),MPHBAdmin.TotalPriceCtrl=MPHBAdmin.Ctrl.extend({},{preloader:null,input:null,init:function(t,e){this._super(t,e),this.input=this.element.find("input"),this.recalculateBtn=this.element.find("#mphb-recalculate-total-price"),this.errorsWrapper=this.element.find(".mphb-errors-wrapper"),this.preloader=this.element.find(".mphb-preloader")},set:function(t){this.input.val(t)},hideErrors:function(){this.errorsWrapper.empty().addClass("mphb-hide")},"input focus":function(){this.hideErrors()},showError:function(t){this.errorsWrapper.html(t).removeClass("mphb-hide")},"#mphb-recalculate-total-price click":function(t,e){var n=this;this.hideErrors(),this.showPreloader();var i=this.parseFormToJSON();u.ajax({url:MPHBAdmin.Plugin.myThis.data.ajaxUrl,type:"POST",dataType:"json",data:{action:"mphb_recalculate_total",mphb_nonce:MPHBAdmin.Plugin.myThis.data.nonces.mphb_recalculate_total,formValues:i},success:function(t){if(t.hasOwnProperty("success"))if(t.success){n.set(t.data.total);var e=n.element.closest("form").find('[name="_mphb_booking_price_breakdown"]'),i=e.siblings(".mphb-price-breakdown-wrapper");e.val(t.data.price_breakdown),e.prop("disabled",!1),i.html(t.data.price_breakdown_html)}else n.showError(t.data.message);else n.showError(MPHBAdmin.Plugin.myThis.data.translations.errorHasOccured)},error:function(t){n.showError(MPHBAdmin.Plugin.myThis.data.translations.errorHasOccured)},complete:function(t){n.hidePreloader()}})},showPreloader:function(){this.recalculateBtn.attr("disabled","disabled"),this.preloader.removeClass("mphb-hide")},hidePreloader:function(){this.recalculateBtn.removeAttr("disabled"),this.preloader.addClass("mphb-hide")},parseFormToJSON:function(){return this.parentForm.serializeJSON()}}),MPHBAdmin.VariablePricingCtrl=MPHBAdmin.Ctrl.extend({},{MIN_PERIOD:2,name:"",periodsTable:null,variationsTable:null,variationsTableBody:null,variationsTableFooter:null,afterPeriods:null,afterPrices:null,pricesHeaders:null,template:null,templateActions:null,lastIndex:-1,lastPeriodIndex:-1,periodsCount:0,removePeriodText:"",periodDescription:"",init:function(t,e){this._super(t,e),this.name=t.children(".mphb-pricing-name-holder").attr("name"),this.removePeriodText=MPHBAdmin.Plugin.myThis.data.translations.removePeriod,this.periodDescription=MPHBAdmin.Plugin.myThis.data.translations.periodDescription,this.periodsTable=t.children(".mphb-pricing-periods-table"),this.variationsTable=t.children(".mphb-pricing-variations-table"),this.variationsTableBody=this.variationsTable.children("tbody"),this.variationsTableFooter=this.variationsTable.find("tfoot > tr > td"),this.afterPeriods=this.periodsTable.find("> tbody > tr:first-child > td:last-child"),this.afterPrices=this.periodsTable.find("> tbody > tr:last-child > td:last-child"),this.pricesHeaders=t.find(".mphb-pricing-price-per-night"),this.template=this.loadTemplate(),this.templateActions=this.template.children("td:last-child"),this.lastIndex=this.findLastIndex(),this.lastPeriodIndex=this.findLastPeriodIndex(),this.periodsCount=this.findPeriodsCount(),this.watchCheckbox()},loadTemplate:function(){var t=this.variationsTable.find(".mphb-pricing-variation-template"),e=t.clone();return t.remove(),e.removeClass("mphb-pricing-variation-prototype mphb-hide"),e.find("[name]").each(function(){u(this).prop("disabled",!1)}),e},addVariation:function(){var t=this.template.clone(),i=this.nextIndex();t.attr("data-index",i),t.find('[name*="[$index$]"]').each(function(){var t=u(this),e=t.attr("name");e=e.replace("$index$",i),t.attr("name",e)}),this.variationsTableBody.append(t)},removeVariation:function(t){t.remove()},addPeriod:function(){var t=this.nextPeriodIndex(),e='<input type="number" name="'+this.name+'[periods][]" class="small-text" value="'+this.MIN_PERIOD+'" min="'+this.MIN_PERIOD+'" step="1" />';e='<td data-period-index="'+t+'">'+(e+='<span class="mphb-pricing-period-description">'+this.periodDescription+'</span><span class="dashicons dashicons-trash mphb-pricing-action mphb-pricing-remove-period" title="'+this.removePeriodText+'"></span>')+"</td>";var i='<td data-period-index="'+t+'"><input type="text" name="'+this.name+'[prices][]" class="mphb-price-text" value="" /></td>',n='<td data-period-index="'+t+'"><input type="text" name="'+this.name+'[variations][$index$][prices][]" class="mphb-price-text" value="" /></td>';this.afterPeriods.before(e),this.afterPrices.before(i),this.templateActions.before(n),this.variationsTableBody.children("tr").each(function(t,e){var i=u(e);t=parseInt(i.attr("data-index"));i.children("td:last-child").before(n.replace("$index$",t))}),this.increasePeriodsCount()},removePeriod:function(t){this.template.find('[data-period-index="'+t+'"]').remove(),this.element.find('[data-period-index="'+t+'"]').remove(),this.decreasePeriodsCount()},nextIndex:function(){return this.lastIndex++,this.lastIndex},nextPeriodIndex:function(){return this.lastPeriodIndex++,this.lastPeriodIndex},findLastIndex:function(){var t=this.variationsTableBody.children("tr"),e=-1;return t.each(function(){var t=parseInt(u(this).attr("data-index"));e=Math.max(e,t)}),e},findLastPeriodIndex:function(){var t=this.periodsTable.find("> tbody > tr:first-child > td[data-period-index]"),e=-1;return t.each(function(){var t=parseInt(u(this).attr("data-period-index"));e=Math.max(e,t)}),e},findPeriodsCount:function(){return this.periodsTable.find("> tbody > tr:first-child > td[data-period-index]").length},increasePeriodsCount:function(){this.periodsCount++,this.updateColspans()},decreasePeriodsCount:function(){this.periodsCount--,this.updateColspans()},updateColspans:function(){this.pricesHeaders.attr("colspan",this.periodsCount),this.variationsTableFooter.attr("colspan",this.periodsCount+3)},watchCheckbox:function(){var e=this;this.element.find(".mphb-pricing-enable-variations").on("change",function(t){e.variationsTable.toggleClass("mphb-hide")})},".mphb-pricing-add-variation click":function(t,e){this.addVariation()},".mphb-pricing-remove-variation click":function(t,e){var i=t.closest("tr");this.removeVariation(i)},".mphb-pricing-add-period click":function(t,e){this.addPeriod()},".mphb-pricing-remove-period click":function(t,e){var i=t.closest("td").attr("data-period-index");this.removePeriod(i)}}),MPHBAdmin.AddRoomPopup=MPHBAdmin.PopupForm.extend({},{$roomTypes:null,$rooms:null,availableRooms:{},reservedRooms:[],selectedRoom:0,selectedRoomType:0,init:function(t,e){this._super(t,e),this.$roomTypes=t.find(".mphb-room-type-select"),this.$rooms=t.find(".mphb-room-select"),this.availableRooms=this.parseAvailableRooms(this.$rooms)},parseAvailableRooms:function(t){var s={};return t.children().each(function(t,e){var i=parseInt(e.value);if(!isNaN(i)){var n=parseInt(e.getAttribute("data-room-type-id"));s[n]||(s[n]=[]),s[n].push(i)}}),s},reset:function(t){this._super(t),this.canSubmit(!1),this.reservedRooms=t.reserved_rooms;var e=t.room_id||"",i=t.room_type_id||"";if(this.availableRooms.hasOwnProperty(i)){var n=this.reservedRooms.indexOf(e);0<=n?this.reservedRooms.splice(n,1):e=""}else e=i="";this.$rooms.val(e),this.$roomTypes.val(i),this.selectedRoom=e||0,this.selectedRoomType=i||0,this.filterRoomTypes(),this.filterRooms(),this.checkIfCanSubmit()},filterRoomTypes:function(){var t=this.$roomTypes.children('[value!=""]'),r=this.availableRooms,o=this.reservedRooms;t.show(),t.each(function(t,e){for(var i=parseInt(e.value),n=r[i],s=0,a=0;a<n.length;a++)-1==o.indexOf(n[a])&&s++;0==s&&(u(e).hide(),i==this.selectedRoomType&&(this.selectedRoomType=this.selectedRoom=0))})},filterRooms:function(){var n=this.selectedRoomType,t=this.$rooms.children('[value!=""]');if(0!=n){t.show();var s=this.reservedRooms;t.each(function(t,e){var i=parseInt(e.value);(parseInt(e.getAttribute("data-room-type-id"))!=n||0<=s.indexOf(i))&&u(e).hide()})}else t.hide()},getData:function(){var t=this.selectedRoomType,e=this.$roomTypes.children("option:selected").text().trim(),i=this.selectedRoom,n=this.$rooms.children("option:selected").text().trim();return u.extend({},this._super(),{room_type:{id:t,title:e},room:{id:i,title:n}})},checkIfCanSubmit:function(){this.canSubmit(0!=this.selectedRoom&&0!=this.selectedRoomType)},".mphb-room-type-select change":function(t,e){var i=parseInt(this.$roomTypes.val())||0,n=this.selectedRoomType!=i;this.selectedRoomType=i,n&&(this.$rooms.val(""),this.selectedRoom=0,this.filterRooms(),this.checkIfCanSubmit())},".mphb-room-select change":function(t,e){this.selectedRoom=parseInt(this.$rooms.val())||0,this.checkIfCanSubmit()}}),MPHBAdmin.BookingEditor=can.Control.extend({},{$editor:null,$roomsTable:null,$submitButton:null,settings:{},i18n:{},rooms:{},popup:null,init:function(t,e){this.$editor=t,this.$roomsTable=t.find(".mphb-reserve-rooms-table > tbody"),this.$submitButton=t.find(".mphb-reserve-rooms .mphb-submit-button-wrapper > .button"),this.settings=MPHBAdmin.Plugin.myThis.data.settings,this.i18n=MPHBAdmin.Plugin.myThis.data.translations,this.popup=new MPHBAdmin.AddRoomPopup(t.find(".mphb-popup")),this.initDatepickers(),this.initRooms(),this.toggleSubmit()},initDatepickers:function(){this.$editor.find(".mphb-datepick").datepick({dateFormat:this.settings.dateFormat,firstDay:this.settings.firstDay,showSpeed:0,showOtherMonths:!0,monthsToShow:this.settings.numberOfMonthDatepicker,pickerClass:this.settings.datepickerClass+" mphb-datepick-popup mphb-check-in-datepick",useMouseWheel:!1})},initRooms:function(){var t=this.$roomsTable.children(),a=this;t.each(function(t,e){var i=u(e),n=parseInt(i.data("room-id")),s=parseInt(i.data("room-type-id"));isNaN(n)||isNaN(s)||(a.rooms[n]={$element:i,roomTypeId:s,isAvailable:i.hasClass("mphb-available-room")})})},toggleSubmit:function(){!this.hasRooms()||this.hasUnavailableRooms()?this.$submitButton.prop("disabled",!0):this.$submitButton.prop("disabled",!1)},hasRooms:function(){return!u.isEmptyObject(this.rooms)},hasUnavailableRooms:function(){var i=!1;return u.each(this.rooms,function(t,e){if(!e.isAvailable)return!(i=!0)}),i},addRoom:function(t,e){var i='<tr class="mphb-reserve-room mphb-available-room" data-room-id="'+t.id+'"><td class="column-room-type">'+e.title+'</td><td class="column-room">'+t.title+'</td><td class="column-status"><input type="hidden" name="add_rooms[]" value="'+t.id+'"><span>'+this.i18n.available+'</span></td><td class="column-actions"><button class="button mphb-remove-room-button">'+this.i18n.remove+'</button> <button class="button mphb-replace-room-button">'+this.i18n.replace+"</button></td></tr>";this.$roomsTable.append(i),this.rooms[t.id]={$element:this.$roomsTable.children('[data-room-id="'+t.id+'"]').first(),roomTypeId:e.id,isAvailable:!0},this.toggleSubmit()},replaceRoom:function(t,e,i){if(this.rooms[t]){var n=this.rooms[t].$element,s=n.children(".column-status"),a=s.children("input").first();n.children(".column-room-type").text(i.title),n.children(".column-room").text(e.title),n.data("room-id",e.id),1==a.length?a.val(e.id):n.children(".column-status").prepend('<input type="hidden" name="replace_rooms['+t+']" value="'+e.id+'">'),s.children("span").text(this.i18n.available),n.removeClass("mphb-unavailable-room").addClass("mphb-available-room"),this.rooms[e.id]=this.rooms[t],this.rooms[e.id].roomTypeId=i.id,this.rooms[e.id].isAvailable=!0,delete this.rooms[t],this.toggleSubmit()}},getRoomIds:function(){return Object.keys(this.rooms).map(function(t){return parseInt(t)})},"#mphb-add-room-button click":function(t,e){e.preventDefault();var i=this;this.popup.show({reserved_rooms:this.getRoomIds()}).then(function(t){i.addRoom(t.room,t.room_type)},function(t){})},".mphb-replace-room-button click":function(t,e){e.preventDefault();var i=t.parents(".mphb-reserve-room"),n=parseInt(i.data("room-id")),s=this;if(!isNaN(n)){var a={reserved_rooms:this.getRoomIds(),room_id:n,room_type_id:this.rooms[n].roomTypeId};this.popup.show(a).then(function(t){s.replaceRoom(t.room_id,t.room,t.room_type)},function(t){})}},".mphb-remove-room-button click":function(t,e){e.preventDefault();var i=t.parents(".mphb-reserve-room"),n=parseInt(i.data("room-id"));isNaN(n)||null==this.rooms[n]||delete this.rooms[n],i.remove(),this.toggleSubmit()},".mphb-reserve-rooms .mphb-submit-button-wrapper > .button click":function(t,e){this.hasRooms()&&!this.hasUnavailableRooms()||e.preventDefault()}}),new MPHBAdmin.Plugin,u(function(){u(".mphb-bookings-calendar-wrapper")&&new MPHBAdmin.BookingsCalendar(u(".mphb-bookings-calendar-wrapper")),0<u(".mphb-edit-booking.edit").length&&new MPHBAdmin.BookingEditor(u(".mphb-edit-booking")),MPHBAdmin.Plugin.myThis.data.settings.isAttributesCustomOrder&&new MPHBAdmin.AttributesCustomOrder(u("table.wp-list-table")),new MPHBAdmin.ServiceQuantity(".post-type-mphb_room_service #mphb_price"),new MPHBAdmin.ExportBookings("#mphb-export-bookings-form");var i=MPHBAdmin.Plugin.myThis.data;if(i.settings.displayImportCheckbox){var t=u("#posts-filter .wp-list-table");if(0<t.length){var e=i.translations.displayImport,n=i.settings.displayImport?'checked="checked"':"";u('<p id="mphb-display-import-control"><label><input type="checkbox" id="mphb-display-imported-bookings" '+n+" /> "+e+'<span class="mphb-preloader mphb-hide"></span></label></p>').insertBefore(t),u("#mphb-display-imported-bookings").change(function(){var t=u(this),e=t.prop("checked");t.siblings(".mphb-preloader").removeClass("mphb-hide"),t.prop("disabled",!0),u.ajax({url:i.ajaxUrl,type:"POST",dataType:"json",data:{action:"mphb_display_imported_bookings",mphb_nonce:i.nonces.mphb_display_imported_bookings,new_value:e,user_id:i.settings.userId},complete:function(){location.reload(!0)}})})}}})})}(jQuery);