const form=document.getElementById("login-form"),username=document.getElementById("username"),password=document.getElementById("password"),form1=document.getElementById("signup-form"),nickname=document.getElementById("name"),jabber=document.getElementById("jabber"),password1=document.getElementById("newPassword"),password2=document.getElementById("confirmPassword");var matchedCase=new Array;matchedCase.push("[!@#$%&*_?]"),matchedCase.push("[A-Z]"),matchedCase.push("[0-9]"),matchedCase.push("[a-z]"),$("#register-form").submit(a=>{a.preventDefault();var a=parseFormData($(a.target).serializeArray()),e=(showSuccess([nickname,jabber,password2]),checkPasswordStrong(password1)),s=checkSpace(nickname),t=checkLength(nickname,3,15),o=checkRequired([nickname,password2]),r=checkPasswordMatch(password1,password2),c=checkEmail(jabber);o&&t&&r&&e&&c&&s&&($("#terms").prop("checked")?(a.password=a.password=encodePassword(a.password),delete a.password1,$("#signup-form button[type='submit']").text("Signing Up...").prop("disabled",!0),sendApiRequest({type:"POST",url:"/api/auth/register",data:a,success:a=>{localStorage.setItem("registration_success",1),window.location.href="/login"},error:a=>{$("#signup-form button[type='submit']").text("Sign Up").prop("disabled",!1),400==a.status?"invalid csrf token"==a.responseText?(localStorage.setItem("invalid_csrf_token",1),window.location.reload()):"invalid invite code"==a.responseText?(localStorage.setItem("invalid_invite_code",1),window.location.reload()):("invalid captcha"==a.responseJSON.message?($("#newPassword,#confirmPassword,[name='captcha_code']").val(""),$("#register-captcha-image").css("background-image","url("+a.responseJSON.captcha+")"),Toastify({text:"Invalid Captcha",duration:3e3,close:!0,gravity:"top",position:"right",stopOnFocus:!0,className:"bg-danger"}).showToast(),$("#newPassword")):"same name already exists"==a.responseJSON.message?($("#newPassword,#confirmPassword,[name='captcha_code']").val(""),$("#register-captcha-image").css("background-image","url("+a.responseJSON.captcha+")"),$("#signup_error").text("Username already exists"),Toastify({text:"Username already exists",duration:3e3,close:!0,gravity:"top",position:"right",stopOnFocus:!0,className:"bg-warning"}).showToast(),$("#name")):"same jabber already exists"==a.responseJSON.message?($("#newPassword,#confirmPassword,[name='captcha_code']").val(""),$("#register-captcha-image").css("background-image","url("+a.responseJSON.captcha+")"),Toastify({text:"Jabber already exists",duration:3e3,close:!0,gravity:"top",position:"right",stopOnFocus:!0,className:"bg-warning"}).showToast(),$("#jabber")):(Toastify({text:"Registration Failed!",duration:3e3,close:!0,gravity:"top",position:"right",stopOnFocus:!0,className:"bg-danger"}).showToast(),$("#name"))).focus():(Toastify({text:"Registration Failed!",duration:3e3,close:!0,gravity:"top",position:"right",stopOnFocus:!0,className:"bg-danger"}).showToast(),$("#name").focus())}})):Toastify({text:"You must agree to the terms first.",duration:3e3,close:!0,gravity:"top",position:"right",stopOnFocus:!0,className:"bg-warning"}).showToast())}),$("#login-form").submit(a=>{a.preventDefault();a=parseFormData($(a.target).serializeArray());showSuccess([username,password]),checkRequired([username,password])&&(a.password=encodePassword(a.password),$("#login-form button[type='submit']").text("Signing In...").prop("disabled",!0),sendApiRequest({type:"POST",url:"/api/auth/login",data:a,success:a=>{localStorage.setItem("login_success",1),window.location.href=a.redirect_to},error:a=>{$("#login-form button[type='submit']").text("Sign In").prop("disabled",!1),400==a.status?"invalid csrf token"==a.responseText?(localStorage.setItem("invalid_csrf_token",1),window.location.reload()):"invalid captcha"==a.responseJSON.message?($("#password,[name='captcha_code']").val(""),$("#captcha-image").css("background-image","url("+a.responseJSON.captcha+")"),$("#password").focus(),Toastify({text:"Invalid Captcha",duration:3e3,close:!0,gravity:"top",position:"right",stopOnFocus:!0,className:"bg-danger"}).showToast()):("invalid login"==a.responseJSON.message?($("#username,#password,[name='captcha_code']").val(""),$("#captcha-image").css("background-image","url("+a.responseJSON.captcha+")"),Toastify({text:"Invalid Login",duration:3e3,close:!0,gravity:"top",position:"right",stopOnFocus:!0,className:"bg-danger"}).showToast()):"too many login attempts"==a.responseJSON.message?($("#username,#password,[name='captcha_code']").val(""),$("#captcha-image").css("background-image","url("+a.responseJSON.captcha+")"),Toastify({text:"You've reached maximum login attempts. Try again later.",duration:3e3,close:!0,gravity:"top",position:"right",stopOnFocus:!0,className:"bg-danger"}).showToast()):"user locked"==a.responseJSON.message?($("#username,#password,[name='captcha_code']").val(""),$("#captcha-image").css("background-image","url("+a.responseJSON.captcha+")"),Toastify({text:"Your account is locked. Try again later.",duration:3e3,close:!0,gravity:"top",position:"right",stopOnFocus:!0,className:"bg-danger"}).showToast()):"user banned"==a.responseJSON.message?($("#username,#password,[name='captcha_code']").val(""),$("#captcha-image").css("background-image","url("+a.responseJSON.captcha+")"),Toastify({text:"Your account is banned.",duration:3e3,close:!0,gravity:"top",position:"right",stopOnFocus:!0,className:"bg-danger"}).showToast()):(Toastify({text:"Login Failed!",duration:3e3,close:!0,gravity:"top",position:"right",stopOnFocus:!0,className:"bg-danger"}).showToast(),$("#username,#password,[name='captcha_code']").val("")),$("#username").focus()):(Toastify({text:"Login Failed!",duration:3e3,close:!0,gravity:"top",position:"right",stopOnFocus:!0,className:"bg-danger"}).showToast(),$("#username,#password,[name='captcha_code']").val(""),$("#username").focus())}}))});const loadCaptchaImage=()=>{var a=$("input[name='csrf_token']").val();$("#captcha-image").css("background-image",""),sendApiRequest({type:"GET",url:"/api/captcha/image?"+$.param({csrf_token:a}),success:a=>{$("#captcha-image").css("background-image","url("+a+")")}})},loadRegisterCaptchaImage=()=>{var a=$("input[name='csrf_token']").val();$("#register-captcha-image").css("background-image",""),sendApiRequest({type:"GET",url:"/api/captcha/image?"+$.param({csrf_token:a}),success:a=>{$("#register-captcha-image").attr("src",a),$("#register-captcha-image").css("background-image","url("+a+")")}})};$(document).ready(()=>{1==localStorage.getItem("registration_success")&&(Toastify({text:"Registration Succeed!",duration:3e3,close:!0,gravity:"top",position:"right",stopOnFocus:!0,className:"bg-success"}).showToast(),localStorage.removeItem("registration_success")),1==localStorage.getItem("invalid_csrf_token")&&(Toastify({text:"Invalid CSRF token!",duration:3e3,close:!0,gravity:"top",position:"right",stopOnFocus:!0,className:"bg-warning"}).showToast(),localStorage.removeItem("invalid_csrf_token")),1==localStorage.getItem("invalid_invite_code")&&(Toastify({text:"Invalid invite codes!",duration:3e3,close:!0,gravity:"top",position:"right",stopOnFocus:!0,className:"bg-danger"}).showToast(),localStorage.removeItem("invalid_invite_code")),loadCaptchaImage()}),$("#reload-captcha").click(()=>{loadCaptchaImage(),$("#login-form input[name='captcha_code']").val(""),$("#login-form input[name='captcha_code']").focus()}),$("#reload-register-captcha").click(()=>{loadRegisterCaptchaImage(),$("#signup-form input[name='captcha_code']").val(""),$("#signup-form input[name='captcha_code']").focus()}),$("#register").click(()=>{$("#login-form").parent().hide(),$("#register-form").parent().show(),loadRegisterCaptchaImage()}),$("#login").click(()=>{$("#login-form").parent().show(),$("#register-form").parent().hide(),loadCaptchaImage()});