/* authentication functions */

// login class
if(LJLogin==undefined) var LJLogin={

	initializeForm:function(frm)
	{
		frm.email.focus();
		frm.email.select();
	},
	
	isValidForm:function(frm)
	{
		//declare variables
		var returnValue=true;
		
		if(frm.email.value.length==0)
		{
			alert("Please enter your email address");
			frm.email.focus();
			returnValue=false;
		}
		else if(frm.email.value.length!=0 && !LJ.isValidEmailAddress(frm.email.value))
		{
			alert("Please enter a valid email address");
			frm.email.focus();
			frm.email.select();
			returnValue=false;
		}
		else if(frm.password.value.length==0)
		{
			alert("Please enter your password");
			frm.password.focus();
			frm.password.select();
			returnValue=false;
		}
		
		//encode password
		if(returnValue)
		{
			//md5 encode the password
			frm.passwordHash.value=hex_md5(frm.email.value+frm.password.value);
			
			//clear the entered password field before submitting form data
			frm.password.value="";
		}
		
		LJ.disableSubmit(frm,returnValue);
		return returnValue;
	}
}

if(LJAccount==undefined) var LJAccount={

	initializeForm:function(frm)
	{
		//check if form exists (doesn't exist if this page is displayed while not logged in)
		if(frm)
		{
			//set focus
			frm.password.focus();
			frm.password.select();
			this.updatePasswordClick(frm);
		}
	},
	
	isValidForm:function(frm)
	{
		//declare variables
		var returnValue=true;
		
		if(frm.password.value.length==0)
		{
			alert("Please enter your password to update your account information");
			frm.password.focus();
			frm.password.select();
			returnValue=false;
		}
		else if(frm.firstName.value.length==0)
		{
			alert("Please enter your first name");
			frm.firstName.focus();
			returnValue=false;
		}
		else if(frm.lastName.value.length==0)
		{
			alert("Please enter your last name");
			frm.lastName.focus();
			returnValue=false;
		}
		else if(frm.updatePassword.checked)
		{
			if(frm.passwordNew.value.length==0)
			{
				alert("Please enter your new password");
				frm.passwordNew.focus();
				frm.passwordNew.select();
				returnValue=false;
			}
			else if(frm.repeatPasswordNew.value.length==0)
			{
				alert("Please re-enter your new password to make sure you have entered it correctly");
				frm.repeatPasswordNew.focus();
				frm.repeatPasswordNew.select();
				returnValue=false;
			}
			else if(frm.passwordNew.value!=frm.repeatPasswordNew.value)
			{
				alert("Your new passwords do not match\nPlease re-enter your passwords");
				//clear passwords
				frm.passwordNew.value="";
				frm.repeatPasswordNew.value="";
				
				frm.passwordNew.focus();
				frm.passwordNew.select();
				returnValue=false;
			}
		}
		if(returnValue & frm.deleteAccount.checked)
		{
			if(!confirm("Are you sure you want to permanently delete your account?"))
			{
				frm.deleteAccount.checked=false;
				frm.deleteAccount.focus();
				returnValue=false;
			}
		}
		
		if(returnValue)
		{
			//md5 encode the passwords, seeded with the email address
			frm.passwordHash.value=hex_md5(frm.email.value+frm.password.value);
			frm.passwordNewHash.value=hex_md5(frm.email.value+frm.passwordNew.value);
			
			//clear the entered password fields before submitting form data
			frm.password.value="";
			frm.passwordNew.value="";
			frm.repeatPasswordNew.value="";
		}
		
		LJ.disableSubmit(frm,returnValue);
		return returnValue;
	},
	
	updatePasswordClick:function(frm)
	{
		if(frm.updatePassword.checked)
		{
			frm.passwordNew.disabled=false;
			frm.repeatPasswordNew.disabled=false;
			frm.passwordNew.focus();
			frm.passwordNew.select();
		}
		else
		{
			frm.passwordNew.disabled=true;
			frm.repeatPasswordNew.disabled=true;
		}
	}
}

if(LJNewAccount==undefined) var LJNewAccount={

	initializeForm:function(frm)
	{
		//check if form exists (doesn't exist if this page is displayed while logged in)
		if(frm)
		{
			//set focus
			frm.firstName.focus();
			frm.firstName.select();
		}
	},
	
	isValidForm:function(frm)
	{
		//declare variables
		var returnValue=true;
		
		if(frm.firstName.value.length==0)
		{
			alert("Please enter your first name");
			frm.firstName.focus();
			returnValue=false;
		}
		else if(frm.lastName.value.length==0)
		{
			alert("Please enter your last name");
			frm.lastName.focus();
			returnValue=false;
		}
		else if(frm.email.value.length==0)
		{
			alert("Please enter your email address");
			frm.email.focus();
			returnValue=false;
		}
		else if(frm.email.value.length!=0 && !LJ.isValidEmailAddress(frm.email.value))
		{
			alert("Please enter a valid email address");
			frm.email.focus();
			frm.email.select();
			returnValue=false;
		}
		else if(frm.password.value.length==0)
		{
			alert("Please enter your password");
			frm.password.focus();
			frm.password.select();
			returnValue=false;
		}
		else if(frm.repeatPassword.value.length==0)
		{
			alert("Please re-enter your password to make sure you have entered it correctly");
			frm.repeatPassword.focus();
			frm.repeatPassword.select();
			returnValue=false;
		}
		else if(frm.password.value!=frm.repeatPassword.value)
		{
			alert("Your passwords do not match\nPlease re-enter your passwords");
			//clear passwords
			frm.password.value="";
			frm.repeatPassword.value="";
			
			frm.password.focus();
			frm.password.select();
			returnValue=false;
		}
		
		if(returnValue)
		{
			//md5 encode the password, seeded with the email address
			frm.passwordHash.value=hex_md5(frm.email.value+frm.password.value);
			
			//clear the entered password fields before submitting form data
			frm.password.value="";
			frm.repeatPassword.value="";
		}
		
		LJ.disableSubmit(frm,returnValue);
		return returnValue;
	}
}