// JavaScript validation routines

function validssn(fld)
{
	return validate(FormField, "SSN" , "Please enter a valid Social Security Number.");
}

function validUSphone(fld)
{
	return validate(FormField, "Phone" , "Please enter a valid Phone Number.");
}

function validEmail(FormField)
{
	return validate(FormField, "Email" , "Please enter a valid Email Address.");
}

function validInteger(FormField)
{
	return validate(FormField, "Integer" , "Please enter a valid Integer.");
}

function validCurrency (FormField)
{
	return validate(FormField, "Currency" , "Please enter a valid Dollar Amount.");
}

function validReal (FormField)
{
	return validate(FormField, "Real" , "Please enter a valid Decimal.");
}

//  Main validation routine
//@param FormField - the form field to be evaluated
//@param stFormat - A string representing the Data Type (Real, Integer, Email...)
//@param stErrorMsg - A String representing the error message to display if invalid
function validate(FormField, stFormat, stErrorMsg)
{

	if (stFormat == "Real")
		var reString = /^ *((\d+(\.\d*)?)|((\d*\.)?\d+)) *$/
	else if (stFormat == "Currency")
		var reString = /^ *((\d+(\.\d*)?)|((\d*\.)?\d+)) *$/
	else if (stFormat == "Integer")
		var reString = /^ *\d+ *$/
	else if (stFormat == "Email")
		var reString = /^ *[-a-zA-Z0-9_]+@[-a-zA-Z0-9_]+\\.[a-zA-Z][a-zA-Z][a-zA-Z]? *$/
	else if (stFormat == "Phone")
		var reString = /^ *\(? *([0-9][0-9][0-9]) *\)? *([0-9][0-9][0-9]) *-? *([0-9][0-9][0-9][0-9]) *$/
	else if (stFormat == "SSN")
		var reString = /^ *([0-9][0-9][0-9]) *-? *([0-9][0-9]) *-? *([0-9][0-9][0-9][0-9]) *$/

	//  If field is empty return true
	if (FormField.value == null || FormField.value == "") 
		return true;
    
    //  If validation does not fail return true, else handle error
    if (reString.test(FormField.value))
    {
		return true;
    }
    else
    {
		// Display Error Message to User
		alert(stErrorMsg);
	
		//  Set value back to original value
		FormField.value = FormField.defaultValue ;
    
		//  Set focus back to this control
		FormField.focus();
		FormField.select();

		return false;
	}
}
