mesa.home.LoginUtil=new function(){var h=4;var f=16;var k=4;var j=16;var c="musegamesAccount";var e="musegamesSecret";var d={};this.openRegister=function(m,o,p){var n="home/register.jsp";if(m){n+="?inviteId="+m+"&code="+o}new mesa.Popup.MessageWindow(null,"Register",n,500,425,true,null,p,p).show()};this.openLogin=function(o,m,n){new mesa.Popup.MessageWindow(null,"Login","home/login.jsp",460,340,true,o,function(p){if(m){m()}else{window.top.location.reload()}},n).show()};this.validateName=function(n){var m=n.strip();if(m.blank()){return{success:false,msg:"Username cannot be empty"}}else{if(m.length<h){return{success:false,msg:"Username cannot be shorter than "+h}}else{if(m.length>f){return{success:false,msg:"Username cannot be longer than "+f}}else{return{success:true}}}}};this.validateEmail=function(m){if(m.blank()){return{success:false,msg:"Email cannot be empty"}}else{if(!mesa.util.Utils.validateEmail(m)){return{success:false,msg:"Invalid email"}}else{return{success:true}}}};this.validatePassword=function(n,m){if(n.blank()){d.success=false;d.msg="Password cannot be empty";return d}if(n.length<k){d.success=false;d.msg="Password cannot be shorter than "+k;return d}if(n.length>j){d.success=false;d.msg="Password cannot be longer than "+j;return d}if(m){if(m.blank()){d.success=false;d.msg="Password again cannot be empty";return d}if(n!=m){d.success=false;d.msg="Passwords do not match";return d}}return{success:true,msg:""}};this.validateLogin=function(p,n){if(p.toLowerCase()=="username"||p.toLowerCase()=="email"){return false}var o=p.indexOf("@")>0;var m;if(o){m=mesa.util.Utils.validateEmail(p)}else{m=mesa.util.Utils.validateName(p)}if(!m.success){a(m.msg);return false}if(n.blank()){return false}if(n.toLowerCase()=="password"){return false}return true};this.submitLogin=function(o,m,n){new mesa.Ajax.Request("home/login.do",$(o).serialize(true),function(p){if($F("rememberMe")){if(p.fsso){var r=new Date();r.setTime(r.getTime()+(1209600000));var q="; expires="+r.toGMTString();document.cookie="fsso="+p.fsso+q+"; path=/forum/"}if(p.secret){mesa.WebUtils.createCookie(c,$F("nameOrEmail"),14);mesa.WebUtils.createCookie(e,p.secret,14)}}else{if(p.fsso){var r=new Date();r.setTime(r.getTime()+(43200000));var q="; expires="+r.toGMTString();document.cookie="fsso="+p.fsso+q+"; path=/forum/"}mesa.WebUtils.createCookie(e,"")}m()},function(p){if(n){n(p)}},mesa.Ajax.type.EDIT,null).send();return false};this.logout=function(){mesa.WebUtils.createCookie(e,"",-1);mesa.WebUtils.createCookie("fsso","",-1,"/forum/");new mesa.Ajax.Request("home/logout.do",null,function(m){location.href=pageContext.basePath}).send()};this.invalidateSession=function(){new mesa.Ajax.Request("home/invalidateSession.do").send()};this.resendRegistrationEmail=function(q,n,o){var m="home/resendRegistrationEmail.do";var p=$(q).serialize(true);new mesa.Ajax.Request(m,p,function(r){n(r)},function(r){o(r)}).send()};this.forgotPassword=function(){var o=$F("emailOrName");var m;if(!o.blank()){var n=o.indexOf("@")>0;if(n){m=mesa.util.Utils.validateEmail(o);if(m.success){l();return false}}else{m=mesa.util.Utils.validateName(o);if(m.success){l();return false}}}g();a("Please enter username or email above")};this.retrievePassword=function(q,n,o){var m="home/forgotPassword.do";var p=$(q).serialize(true);new mesa.Ajax.Request(m,p,function(r){n(r)},function(r){o(r)}).send()};function l(){var m="home/forgotPassword.do";var n=$("loginForm").serialize(true);new mesa.Ajax.Request(m,n,function(o){a("Please Check your email for new password!");b();$("forgotPasswordLink").hide()},function(o){a(o)},mesa.Ajax.type.EDIT,null).send()}function g(){$("submit").hide();$("password").style.display="none";$("retrieve").style.display="inline";$("emailOrName").style.borderColor="green"}function b(){$("password").style.display="inline";$("emailOrName").style.borderColor="#CCCCCC";$("submit").show();$("retrieve").hide()}this.changePassword=function(q,n,o){var m="home/changePassword.do";var p=$(q).serialize(true);new mesa.Ajax.Request(m,p,function(r){n(r)},function(r){o(r)}).send()};function a(m){$("loginError").show();$("errInfo").innerHTML=m}function i(){$("loginError").hide()}}();
