!function(){"use strict";function c(){this.filterResults={},this.filterLimit=20}c.prototype.bindEventHandlers=function(){var t=this;$("#services").on("submit","#filter-services form",function(e){e.preventDefault();var i=$("#filter-services .key").val();$("#filter-services .selected").removeClass("selected"),t.resetForm(),t.filter(i)}),$("#services").on("click","#filter-services .clear",function(){$("#filter-services .key").val(""),t.filter(""),t.resetForm()}),$("#services").on("click",".service-row",function(){var i,e,r,s;$("#filter-services .filter").prop("disabled")?$("#filter-services .results").css("color","#AAA"):(i=$(this).attr("data-id"),e=t.filterResults.find(function(e){return Number(e.id)===Number(i)}),r=GlobalVariables.baseUrl+"/index.php?service="+encodeURIComponent(e.id),s=$("",{href:r,html:[$("",{class:"fas fa-link"})]}),$("#services .record-details h3").find("a").remove().end().append(s),t.display(e),$("#filter-services .selected").removeClass("selected"),$(this).addClass("selected"),$("#edit-service, #delete-service").prop("disabled",!1))}),$("#services").on("click","#add-service",function(){t.resetForm(),$("#services .add-edit-delete-group").hide(),$("#services .save-cancel-group").show(),$("#services .record-details").find("input, select, textarea").prop("disabled",!1),$("#filter-services button").prop("disabled",!0),$("#filter-services .results").css("color","#AAA"),$("#service-name").val("Service"),$("#service-duration").val("30"),$("#service-price").val("0"),$("#service-currency").val(""),$("#service-category").val("null"),$("#service-availabilities-type").val("flexible"),$("#service-attendants-number").val("1")}),$("#services").on("click","#cancel-service",function(){var e=$("#service-id").val();t.resetForm(),""!==e&&t.select(e,!0)}),$("#services").on("click","#save-service",function(){var e={name:$("#service-name").val(),duration:$("#service-duration").val(),price:$("#service-price").val(),currency:$("#service-currency").val(),description:$("#service-description").val(),location:$("#service-location").val(),availabilities_type:$("#service-availabilities-type").val(),attendants_number:$("#service-attendants-number").val()};"null"!==$("#service-category").val()?e.id_service_categories=$("#service-category").val():e.id_service_categories=null,""!==$("#service-id").val()&&(e.id=$("#service-id").val()),t.validate()&&t.save(e)}),$("#services").on("click","#edit-service",function(){$("#services .add-edit-delete-group").hide(),$("#services .save-cancel-group").show(),$("#services .record-details").find("input, select, textarea").prop("disabled",!1),$("#filter-services button").prop("disabled",!0),$("#filter-services .results").css("color","#AAA")}),$("#services").on("click","#delete-service",function(){var e=$("#service-id").val(),i=[{text:EALang.cancel,click:function(){$("#message-box").dialog("close")}},{text:EALang.delete,click:function(){t.delete(e),$("#message-box").dialog("close")}}];GeneralFunctions.displayMessageBox(EALang.delete_service,EALang.delete_record_prompt,i)})},c.prototype.unbindEventHandlers=function(){$("#services").off("submit","#filter-services form").off("click","#filter-services .clear").off("click",".service-row").off("click","#add-service").off("click","#cancel-service").off("click","#save-service").off("click","#edit-service").off("click","#delete-service")},c.prototype.save=function(e){var i=GlobalVariables.baseUrl+"/index.php/backend_api/ajax_save_service",r={csrfToken:GlobalVariables.csrfToken,service:JSON.stringify(e)};$.post(i,r).done(function(e){Backend.displayNotification(EALang.service_saved),this.resetForm(),$("#filter-services .key").val(""),this.filter("",e.id,!0)}.bind(this))},c.prototype.delete=function(e){var i=GlobalVariables.baseUrl+"/index.php/backend_api/ajax_delete_service",r={csrfToken:GlobalVariables.csrfToken,service_id:e};$.post(i,r).done(function(){Backend.displayNotification(EALang.service_deleted),this.resetForm(),this.filter($("#filter-services .key").val())}.bind(this))},c.prototype.validate=function(){$("#services .has-error").removeClass("has-error"),$("#services .form-message").removeClass("alert-danger").hide();try{var r=!1;if($("#services .required").each(function(e,i){$(i).val()||($(i).closest(".form-group").addClass("has-error"),r=!0)}),r)throw new Error(EALang.fields_are_required);return!0}catch(e){return $("#services .form-message").addClass("alert-danger").text(e.message).show(),!1}},c.prototype.resetForm=function(){$("#filter-services .selected").removeClass("selected"),$("#filter-services button").prop("disabled",!1),$("#filter-services .results").css("color",""),$("#services .record-details").find("input, select, textarea").val("").prop("disabled",!0),$("#services .record-details h3 a").remove(),$("#services .add-edit-delete-group").show(),$("#services .save-cancel-group").hide(),$("#edit-service, #delete-service").prop("disabled",!0),$("#services .record-details .has-error").removeClass("has-error"),$("#services .record-details .form-message").hide()},c.prototype.display=function(e){$("#service-id").val(e.id),$("#service-name").val(e.name),$("#service-duration").val(e.duration),$("#service-price").val(e.price),$("#service-currency").val(e.currency),$("#service-description").val(e.description),$("#service-location").val(e.location),$("#service-availabilities-type").val(e.availabilities_type),$("#service-attendants-number").val(e.attendants_number);var i=null!==e.id_service_categories?e.id_service_categories:"null";$("#service-category").val(i)},c.prototype.filter=function(i,r,s){s=s||!1;var e=GlobalVariables.baseUrl+"/index.php/backend_api/ajax_filter_services",t={csrfToken:GlobalVariables.csrfToken,key:i,limit:this.filterLimit};$.post(e,t).done(function(e){this.filterResults=e,$("#filter-services .results").empty(),e.forEach(function(e,i){$("#filter-services .results").append(c.prototype.getFilterHtml(e)).append($("
"))}),0===e.length?$("#filter-services .results").append($("",{text:EALang.no_records_found})):e.length===this.filterLimit&&$("