var reEmail = /^(\w+[\-\.])*\w+@(\w+\.)+[A-Za-z]+$/;
var rePassword = /^[A-Za-z\d]{6,8}$/;
var reProperName = /^([A-Z][A-Za-z']+ )*[A-Z][A-Za-z']+$/;
var reInitial = /^[A-Z]$/;
var reState = /^[A-Z]{2}$/;
var rePostalUS = /^\d{5}(\-\d{4})?$/;
var reUsername = /^[A-Za-z\d]{6,15}$/;
var reILOCourseID = /^[A-Z]{3}\d{2}[a-z]$/;
var reOnsiteCourseID = /^[A-Z]{3}\d{3}$/;


/*
	Function Name: checkLength
	Arguments: TEXT,MIN?,MAX?
	Returns:
		false if TEXT has fewer than MIN characters
		false if TEXT has more than MAX characters
		true otherwise
*/
function checkLength(TEXT,MIN,MAX)
{
	if (MIN==undefined)
	{
		MIN=1;
	}
	if (MAX==undefined)
	{
		MAX=10000;
	}
	if (TEXT.length < MIN || TEXT.length > MAX)
	{
		return false;
	}
	return true;
}

/*
	Function Name: compareValues
	Arguments: VAL1, VAL2
	Returns:
		0 if two values are equal
		-1 if VAL1 is greater than VAL2
		1 if VAL2 is greater than VAL1
*/
function compareValues(VAL1,VAL2)
{
	if (VAL1 > VAL2)
	{
		return -1;
	}
	else if(VAL2 > VAL1)
	{
		return 1;
	}
	else
	{
		return 0;
	}
}

/*
	Function Name: checkEmail
	Arguments: EMAIL
	Returns:
		false if EMAIL has fewer than 6 characters
		false if EMAIL does not contain @ symbol 
		false if EMAIL does not contain a period (.)
		false if the last @ symbol comes after the last period (.)
		true otherwise
*/
function checkEmail(EMAIL)
{
	if (!checkLength(EMAIL,6))
	{
		return false;
	}
	else if (EMAIL.indexOf("@") == -1)
	{
		return false;
	}
	else if (EMAIL.indexOf(".") == -1)
	{
		return false;
	}
	else if (EMAIL.lastIndexOf(".") < EMAIL.lastIndexOf("@"))
	{
		return false;
	}
	return true;
}

/*
	Function Name: checkRadioArray
	Arguments: RA
	Returns:
		true if one of the radio buttons is checked
		false otherwise
*/
function checkRadioArray(RA)
{
	for (i=0; i < RA.length; i++)
	{
		if (RA[i].checked) return true;
	}
	return false;
}

/*
	Function Name: checkCheckBox
	Arguments: CB
	Returns:
		true if the checkbox is checked
		false otherwise
*/
function checkCheckBox(CB)
{
	if (CB.checked)
	{
		return true;
	}
	return false;
}

/*
	Function Name: checkSelect
	Arguments: SEL
	Returns:
		false if the first option is selected
		true otherwise
*/
function checkSelect(SEL)
{
	if (SEL.selectedIndex == 0)
	{
		return false;
	}
	return true;
}

/*
	Function Name: checkTextArea
	Arguments: TEXT,MIN,MAX
	Returns: nothing
	Action: alerts user if length of TEXT is greater than MAX
*/
function checkTextArea(TEXT,MAX)
{
	if (!checkLength(TEXT,0,MAX))
	{
		var numChars = TEXT.length;
		var strChopped = TEXT.substr(0,MAX);
		var strMsg = 'You typed ' + numChars + ' characters.\n';
		strMsg += 'The limit is 100.';
		strMsg += 'Your entry will be shortened to:\n\n' + strChopped;
		alert(strMsg); 
	}
}

var rePhone = /^\(?([2-9]\d\d)\)?[\-\. ]?([2-9]\d\d)[\-\. ]?(\d{4})(.*)$/;
function CleanPhone(PHONE)
{
	if (rePhone.test(PHONE))
	{
		var cleanedPhone = "(" + RegExp.$1 + ") " + RegExp.$2 + "-" + RegExp.$3 + RegExp.$4;
		return cleanedPhone;
	}
	else
	{
		//alert("Please make sure your phone is valid.  If it is, there is no need to change it.");
		return PHONE;
	}
}
