// document.write("Load formValidator");
// create object
function formValidator()
{
	// set up array to hold error messages
	this.errorList = new Array;

	// set up object methods
	this.isEmpty = isEmpty;
	this.isNumber = isNumber;
	this.isAlphabetic = isAlphabetic;
	this.isAlphaNumeric = isAlphaNumeric;
	this.isWithinRange = isWithinRange;
	this.isWithinLength = isWithinLength;
	this.isChecked = isChecked;
	this.isEmailAddress = isEmailAddress;
	this.isProjectNo = isProjectNo;
	this.isStdDate = isStdDate;

	this.raiseError = raiseError;
	this.numErrors = numErrors;
	this.displayErrors = displayErrors;
}

// check to see if input is whitespace only or empty
function isEmpty(val)
{
	if (val.match(/^\s+$/) || val == "")
	{
		return true;
	}
	else
	{
		return false;
	}
}

// check to see if input is number
function isNumber(val)
{
	if (isNaN(val))
	{
		return false;
	}
	else
	{
		return true;
	}
}

// check to see if input is alphabetic
function isAlphabetic(val)
{
	if (val.match(/^[a-zA-Z]+$/))
	{
		return true;
	}
	else
	{
		return false;
	}
}

// check to see if input is alphanumeric
function isAlphaNumeric(val)
{
	if (val.match(/^[a-zA-Z0-9]+$/))
	{
		return true;
	}
	else
	{
		return false;
	}
}

// check to see if value is within range
function isWithinRange(val, min, max)
{
	if (val >= min && val <= max)
	{
		return true;
	}
	else
	{
		return false;
	}
}

// check to see if value is within range
function isWithinLength(val, min, max)
{
	if (val.length >= min && val.length <= max)
	{
		return true;
	}
	else
	{
		return false;
	}
}

// check to see if form value is checked
function isChecked(obj)
{
	if (obj.checked)
	{
		return true;
	}
	else
	{
		return false;
	}
}

// check to see if input is a valid email address
function isEmailAddress(val)
{
	if (val.match(/^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)+/))
	{
		return true;
	}
	else
	{
		return false;
	}
}

// check to see if input is alphanumeric
function isProjectNo(val)
{
	if (val.match(/^(19|20)\d{2}-\d{3}$/))
	{
		return true;
	}
	else
	{
		return false;
	}
}

// check to see if input is alphanumeric
function isStdDate(val)
{
	if (val.match(/^20\d{2}-[01]\d-[0-3]\d(|\.[0-2]\d[0-6]\d)$/))
	{
		return true;
	}
	else
	{
		return false;
	}
}


//  ***** REMEMBER to add new functions to the CONSTRUCTOR list at the top *****



// display all errors
// iterate through error array and print each item
function displayErrors()
{
	var strTemp = "Form Errors:\n";
	for (x=0; x<this.errorList.length; x++)
	{
		strTemp += ("- " + this.errorList[x] + "\n" );
	}
	alert(strTemp);
}

// add an error to error list
function raiseError(msg)
{
	this.errorList[this.errorList.length] = msg;
}

// return number of errors in error array
function numErrors()
{
	return this.errorList.length;
}

// end object

