
function validateUsername()
{var user_name=$F('user_name');if(user_name.length==0)
{displayProblem('Please choose a username for your account.','user_name');return false;}
else if(user_name.length<4)
{displayProblem('Your username must be at least 4 characters long.','user_name');return false;}
else if(user_name.length>255)
{displayProblem('Your username must be at most 255 characters long.','user_name');return false;}
else if(!(/^[a-z][a-z0-9_\\.]*$/i.test(user_name)))
{displayProblem('Your username must start with a-z and may consist of a-z, 0-9, underscores, and dots.','user_name');return false;}
return true;}
function validateForm()
{if(!validateUsername())
return false;var user_name=$F('user_name');var real_name=$F('real_name');var password=$F('password');var password2=$F('password2');var email=$F('email');if(password!=password2)
{displayProblem('Your password entries did not match.','password2');return false;}
else if(password.length==0)
{displayProblem('Please choose a password.','password');return false;}
else if(password.length<6)
{displayProblem('Your password must be at least 6 characters long.','password');return false;}
else if(password.length>32)
{displayProblem('Your password must be at most 32 characters long.','password');return false;}
else if((user_name.indexOf(password)>=0)||(password.indexOf(user_name)>=0))
{displayProblem('Your password is too similar to your username.','password');return false;}
else if((real_name.length!=0)&&((real_name.indexOf(password)>=0)||(password.indexOf(real_name)>=0)))
{displayProblem('Your password is too similar to your name.','password');return false;}
if(email.length==0)
{displayProblem('Please enter your email address.','email');return false;}
else if(email.length>50)
{displayProblem('Your email address must be at most 50 characters long.','email');return false;}
else if(!(/^[\_]*([a-z0-9]+(\.|\_*)?)+@([a-z][a-z0-9\-]+(\.|\-*\.))+[a-z]{2,6}$/i.test(email)))
{displayProblem('Please enter a valid email address.','email');return false;}
if(!captcha_validated)
{var captcha=$F('captcha');if(captcha.length!=5)
{displayProblem('Please type the letters shown to verify your registration.','captcha');return false;}}
return true;}
function usernameChanged()
{$('check_user_name').disabled=($F('user_name').length==0);}
function checkUsername()
{if(!validateUsername())
return false;var stat_ok='ok';var stat_fail='fail';var _un='user_name';$(_un).disabled=true;$('check_user_name').disabled=true;var user_name=$F(_un);var _unavailable="The username '"+user_name+"' is unavailable.";var _failed='Failed checking username availability';new Ajax.Request('/api',{method:'get',parameters:{method:'qyouare.people.getInfo',format:'json',magic:__g_sm,username:user_name},onSuccess:function(transport)
{try
{var response=evalResponse(transport.responseText);if(response)
{if(response.stat==stat_fail)
{switch(response.code)
{case 1:displayInfo("The username '"+user_name+"' is available.",_un);break;case 2:case 3:displayProblem(_unavailable,_un);break;default:displayProblem(_failed+' ('+response.code+').',_un);}}
else if(response.stat==stat_ok)
{displayProblem(_unavailable,_un);}
else
{displayProblem(_failed+' ('+response.stat+').',_un);}}
else
{displayProblem(_failed+'.',_un);}}
catch(e)
{displayProblem(_failed+' ('+e.message+').',_un);}},onFailure:function()
{displayProblem(_failed+'.',_un);},onException:function(transport,e)
{displayProblem(_failed+' ('+e.message+').',_un);},onComplete:function()
{$(_un).disabled=false;usernameChanged();}});}