// formValidation.js
//
// Functions to validate forms

function formValueExists(p_formField, p_fieldLabel)
{
	var result = true;

	if (p_formField.value == "")
	{
		alert('Please enter a value for the "' + p_fieldLabel +'" field.');
		p_formField.focus();
		result = false;
	}

	return result;
}

function isValidEmail(p_emailField)
{
	var result = true;

	if (!formValueExists(p_emailField, "E-mail"))
		result = false;

	if (result && !p_emailField.value.match(/^.+@.+\..+$/))
	{
		alert("Please enter a complete email address in the form: yourname@yourdomain.com");
		p_emailField.focus();
		result = false;
	}

	return result;
}

function isValidZipCode(p_zipField)
{
	var result = true;

	if (!formValueExists(p_zipField, "Zip Code"))
		result = false;

	if (result && !p_zipField.value.match(/^\d{5}(\-\d{4}){0,1}$/))
	{
		alert("Please enter a valid zip code in the NNNNN or NNNNN-NNNN format");
		p_zipField.focus();
		result = false;
	}

	return result;
}

function isValidPhoneNumber(p_phoneField)
{
	var result = true;

	if (!formValueExists(p_phoneField, "Phone Number"))
		result = false;

	if (result && !p_phoneField.value.match(/^1{0,1}[ |-]{0,1}\({0,1}\d{3}\){0,1}[ |-]{0,1}\d{3}[ |-]{0,1}\d{4}$/))
	{
		alert("Please enter a valid phone number");
		p_phoneField.focus();
		result = false;
	}

	return result;
}

function isOnlyText(p_formField, p_fieldLabel)
{
	var result = true;

	if (!p_formField.value.match(/^[a-zA-Z\- '\.]*$/))
	{
		alert("The '" + p_fieldLabel + "' field must contain text only.");
		p_formField.focus();
		result = false;
	}

	return result;
}

function isNumbersAndSpacesOnly(p_formField, p_fieldLabel)
{
	var regExp = /[^\d ]/;
	var isValid = !regExp.test(p_formField.value);
	var result = true;
	
	if (!isValid)
	{
		alert("The '" + p_fieldLabel + "' field must contain numbers and spaces only.");
		p_formField.focus();
		result = false;
	}

	return result;
}