"use strict";App.Pages.Installation=function(){function validate(){try{var $fields=$("input");$alert.removeClass("alert-danger").prop("hidden",!0),$fields.removeClass("is-invalid");var missingRequired=!1;if($fields.each(function(index,field){$(field).val()||($(field).addClass("is-invalid"),missingRequired=!0)}),missingRequired)throw new Error(lang("fields_are_required"));if($password.val()!==$passwordConfirm.val())throw $password.addClass("is-invalid"),$passwordConfirm.addClass("is-invalid"),new Error(lang("passwords_mismatch"));if(7>$password.val().length)throw $password.addClass("is-invalid"),$passwordConfirm.addClass("is-invalid"),new Error(lang("password_length_notice").replace("$number",7));if(!App.Utils.Validation.email($email.val()))throw $email.addClass("is-invalid"),new Error(lang("invalid_email"));if(!App.Utils.Validation.email($companyEmail.val()))throw $companyEmail.addClass("is-invalid"),new Error(lang("invalid_email"));return!0}catch(error){return $alert.addClass("alert-danger").text(error.message).prop("hidden",!1),!1}}function getAdminData(){return{first_name:$firstName.val(),last_name:$lastName.val(),email:$email.val(),phone_number:$phoneNumber.val(),username:$username.val(),password:$password.val(),language:$language.val()}}function getCompanyData(){return{company_name:$companyName.val(),company_email:$companyEmail.val(),company_link:$companyLink.val()}}var $install=$("#install"),$alert=$(".alert"),$loading=$("#loading"),$firstName=$("#first-name"),$lastName=$("#last-name"),$email=$("#email"),$phoneNumber=$("#phone-number"),$username=$("#username"),$password=$("#password"),$passwordConfirm=$("#password-confirm"),$language=$("#language"),$companyName=$("#company-name"),$companyEmail=$("#company-email"),$companyLink=$("#company-link");return $(document).ajaxStart(function(){$loading.removeClass("d-none")}),$(document).ajaxStop(function(){$loading.addClass("d-none")}),$install.on("click",function(){if(validate()){var url=App.Utils.Url.siteUrl("installation/perform"),data={csrf_token:vars("csrf_token"),admin:getAdminData(),company:getCompanyData()};$.ajax({url:url,type:"POST",data:data,dataType:"json"}).done(function(){$alert.text("Easy!Appointments has been successfully installed!").addClass("alert-success").prop("hidden",!1),setTimeout(function(){window.location.href=App.Utils.Url.siteUrl("calendar")},1e3)})}}),"/"===vars("base_url").slice(-1)&&(App.Utils.Message.show("Invalid Configuration Detected","Please remove any trailing slashes from your \"BASE_URL\" setting of the root \"config.php\" file and try again."),$install.prop("disabled",!0).fadeTo("0.4")),{}}();