function checkRequiredFields(reqFields)
{
	var pass = true;
	for (var i in reqFields)
	{		
		if (reqFields[i] == null)
			break;
			
		var value = $("input#" + reqFields[i]).val();
		if ((value == null) || (value == ''))
		{
			pass = false;			
			$("#" + reqFields[i] + "e").html('required');
		}
		else { $("#" + reqFields[i] + "e").html(''); }
	}
	return pass;
}

function checkFieldsMatch(fieldOne, fieldTwo)
{
	var valueOne = $("input#" + fieldOne).val();
	var valueTwo = $("input#" + fieldTwo).val();
	var pass = true;
	if (valueOne != valueTwo)
	{
		pass = false;
		$("#" + fieldOne + "e").html('these fields must match');
		$("#" + fieldTwo + "e").html('');
	}
	else
	{
		$("#" + fieldOne + "e").html('');
		$("#" + fieldTwo + "e").html('');
	}
	return pass;
}

function checkRequiredLength(lengthField, minLen)
{
	var fieldValue = $("input#" + lengthField).val();
	if ((fieldValue == null) || (fieldValue.length < minLen))
	{
		$("#" + lengthField + "e").html('please enter at least ' + minLen + ' characters');
		return false;
	}
	else
	{
		$("#" + lengthField + "e").html('');
	}
	return true;
}

function checkValidEmail(emailField)
{
	var fieldValue = $("input#" + emailField).val();
	if ((fieldValue == null) || (fieldValue == ''))
		return false;
	
	var atIdx = fieldValue.indexOf('@');
	var dotIdx = fieldValue.lastIndexOf('.');
	if ((atIdx == -1) || (dotIdx == -1) || (atIdx > dotIdx))
	{
		$("#" + emailField + "e").html('please enter a valid email');
		//alert($("#" + emailField + "e").html());
		return false;
	}
	else
	{
			$("#" + emailField + "e").html('');
	}
	return true;
}

function validateNewUserForm()
{
	var theFields = new Array("username", "first", "last", "email", "emailcon", "password", "password2", null);
	var requiredFields = checkRequiredFields(theFields);

	var requiredLength = checkRequiredLength("username", 4);
	var emailMatch = checkFieldsMatch("email", "emailcon");
	var validEmail = checkValidEmail("emailcon");

	var passMatch =  checkFieldsMatch("password", "password2");
	
	var pass = requiredFields && requiredLength && emailMatch && validEmail && passMatch;
	return pass;
}

