function checkUsername()
{ 
	userName = document.getElementById('username').value;

	if (userName=="")
	{
		setUsernameMessage("");
		return;
	}
	
	// AJAX: Check if the username has been taken already
	isUsernameAvailable(userName);
}

function setUsernameMessage(val)
{ 
	obj = document.getElementById('userNameMsg');
	clearChildNodes(obj);
	
	if (val=="1")
	{
	  addChildTextNode(obj, "Good", "#070"); // OCO for white bg
	}
	else if (val=="0")
	{
		addChildTextNode(obj, "Username already taken", "#700"); // F33 for white bg
	}
	else if (val=="2")
	{
		addChildTextNode(obj, "Invalid", "#700");
	}

}

function checkEmail()
{	
	email = document.getElementById('email').value;
	
	if (email == "")
		return;
	
	valid = validateEmail(email);
	
	obj = document.getElementById('emailMsg');
	clearChildNodes(obj);
	if (valid)
  {
		addChildTextNode(obj, "Good", "#070");
	}
	else
	{
		addChildTextNode(obj, "Invalid", "#700");
	}
}

function validateEmail(str)
{
	str = str.replace(new RegExp(/^\s+/),""); // Remove whitespace from the start
	str = str.replace(new RegExp(/\s+$/),""); // Remove whitespace from the end
	exp = new RegExp('^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,3}$'); // validate email address
	valid = str.match(exp) ? true : false;
	return valid;
}

function checkPassword1(pass1)
{
	msg = document.getElementById('passMsg1');

	clearChildNodes(msg);

	if (pass1 == "")
		return;

  if (pass1.length < 6)
  {
   addChildTextNode(msg, "Must be at least six characters", "#700"); // F33
  }
	else
  {
   addChildTextNode(msg, "Good", "#070"); // 0C0
  }
}

function checkPassword2(pass2)
{
	msg = document.getElementById('passMsg2');
	pass1 = document.getElementById('password1').value;

	clearChildNodes(msg);

	if (pass1 == "" || pass2 == "")
		return;
	
	if (pass2 != pass1)
	 addChildTextNode(msg, "Passwords do not match", "#700");
	else
		addChildTextNode(msg, "Good", "#070");
}

function clearCaptchaMsg()
{
	msg = document.getElementById('captchaMsg');
	clearChildNodes(msg);
}

function clearChildNodes(obj)
{
 while(obj.firstChild) obj.removeChild(obj.firstChild);
}

function addChildTextNode(obj, txt, col)
{
 var newText = document.createTextNode(txt);
 obj.style.color=col;
 obj.appendChild(newText)
}
