/************************* SIGN UP ***************************/
function resetErrors()
{
	// reset error messages to 'display: none;'
	var err_elements = Array("errors",
		"err_nicknameBlank",
		"err_nickname",
		"err_emailUsed",
		"err_emailFormat",
		"err_emailMatch",
		"err_password",
		"err_passwordLength",
		"err_passwordMatch",
		"err_validationQuestion",
		"err_validationAnswer",
		"err_firstName",
		"err_lastName",
		"err_state",
		"err_zipCode");
	for(e = 0 ; e < err_elements.length ; e++)
	{
		var elem = err_elements[e];
		document.getElementById(elem).style.display = 'none';
	}
	// reset row background color to default
	var row_elements = Array("row_nickname",
		"row_email",
		"row_emailConfirm",
		"row_password",
		"row_passwordConfirm",
		"row_firstName",
		"row_lastName",
		"row_state",
		"row_zipCode",
		"row_validationQuestion",
		"row_validationAnswer");
	for(e = 0 ; e < row_elements.length ; e++)
	{
		var elem = row_elements[e];
		resetDefaultBgColor(elem);
	}
}

function resetDefaultBgColor(row)
{
	// calculates default background color and resets row
	var dflt_bgColor = "";
	document.getElementById(row).style.backgroundColor = dflt_bgColor;
}

function validateSignUp_p1(action)
{
	// reset all error messages to hidden
	resetErrors();
	// set values to be used for error checking.
	var errors      = 0;
	var nickname    = document.getElementById("nickname").value;
	var email1      = document.getElementById("email").value;
	var password1   = document.getElementById("password1").value;
	var password2   = document.getElementById("password2").value
	var firstName   = document.getElementById("firstName").value;
	var lastName    = document.getElementById("lastName").value;
	var zipCode     = document.getElementById("zipCode").value;
	var countryID   = document.getElementById("country").value;
	var valQuestion = document.getElementById("validationQuestion").value;
	var valAnswer   = document.getElementById("validationAnswer").value;
	// set state based on selected country
	if ( countryID ==  226 ) state = document.getElementById("us").value;
	else if ( countryID ==  38 ) state = document.getElementById("canada").value;
	else state = document.getElementById("world").value;

	var email_re = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	// invalidate any nickname containing the following
	var nickname_re = /kaango/i;

	if (!nickname)
	{
		errors++;
		document.getElementById("err_nicknameBlank").style.display = 'block';
		document.getElementById("row_nickname").style.backgroundColor = "#fff9c3" ;
	}
	if (nickname.match(nickname_re))
	{
		errors++;
		document.getElementById("err_nickname").style.display = 'block';
		document.getElementById("row_nickname").style.backgroundColor = "#fff9c3" ;
	}
	if (!email1.match(email_re))
	{
		errors++;
		document.getElementById("err_emailFormat").style.display = 'block';
		document.getElementById("row_email").style.backgroundColor = "#fff9c3" ;
		document.getElementById("row_emailConfirm").style.backgroundColor = "#fff9c3" ;
	}
	switch(action)
	{
		case 'new':
			var email2      = document.getElementById("email_1").value;
			if (email1 != email2)
			{
				errors++;
				document.getElementById("err_emailMatch").style.display = 'block';
				document.getElementById("row_email").style.backgroundColor = "#fff9c3" ;
				document.getElementById("row_emailConfirm").style.backgroundColor = "#fff9c3" ;
			}
			if(!password1 || !password2)
			{
				errors++;
				document.getElementById("err_password").style.display = 'block';
				document.getElementById("row_password").style.backgroundColor = "#fff9c3" ;
				document.getElementById("row_passwordConfirm").style.backgroundColor = "#fff9c3" ;
			}
			if(password1.length < 5)
			{
				errors++;
				document.getElementById("err_passwordLength").style.display = 'block';
				document.getElementById("row_password").style.backgroundColor = "#fff9c3" ;
				document.getElementById("row_passwordConfirm").style.backgroundColor = "#fff9c3" ;
			}
			else if(password1 != password2)
			{
				errors++;
				document.getElementById("err_passwordMatch").style.display = 'block';
				document.getElementById("row_password").style.backgroundColor = "#fff9c3" ;
				document.getElementById("row_passwordConfirm").style.backgroundColor = "#fff9c3" ;
			}
			break;
		case 'edit':
			if(password1.length < 5 && password1.length >0)
			{
				errors++;
				document.getElementById("err_passwordLength").style.display = 'block';
				document.getElementById("row_password").style.backgroundColor = "#fff9c3" ;
				document.getElementById("row_passwordConfirm").style.backgroundColor = "#fff9c3" ;
			}
			else if(password1 != password2)
			{
				errors++;
				document.getElementById("err_passwordMatch").style.display = 'block';
				document.getElementById("row_password").style.backgroundColor = "#fff9c3" ;
				document.getElementById("row_passwordConfirm").style.backgroundColor = "#fff9c3" ;
			}
			break;
	}
	if(!firstName)
	{
		errors++;
		document.getElementById("err_firstName").style.display = 'block';
		document.getElementById("row_firstName").style.backgroundColor = "#fff9c3" ;
	}
	if(!lastName)
	{
		errors++;
		document.getElementById("err_lastName").style.display = 'block';
		document.getElementById("row_lastName").style.backgroundColor = "#fff9c3" ;
	}
	if(!state)
	{
		errors++;
		document.getElementById("err_state").style.display = 'block';
		document.getElementById("row_state").style.backgroundColor = "#fff9c3" ;
	}
	if(!zipCode)
	{
		errors++;
		document.getElementById("err_zipCode").style.display = 'block';
		document.getElementById("row_zipCode").style.backgroundColor = "#fff9c3" ;
	}
	if(!valQuestion)
	{
		errors++;
		document.getElementById("err_validationQuestion").style.display = 'block';
		document.getElementById("row_validationQuestion").style.backgroundColor = "#fff9c3" ;
	}
	// check if errors found and process
	if(!valAnswer)
	{
		errors++;
		document.getElementById("err_validationAnswer").style.display = 'block';
		document.getElementById("row_validationAnswer").style.backgroundColor = "#fff9c3" ;
	}
	// check if errors found and process
	if(errors)
	{
		document.getElementById("errors").style.display = 'block';
		return false;
	}
	else
	{
		// check nickname and email for dupes, submits form if OK
		makeAvailabilityRequest();
		return false;
	}
}
