	/*
	//CHECK REQUIRED INPUT FIELD FOR TEXT
	//Works for both <textarea> and <input type="text"> tags
	// checkField(obj,'reqTextInputName','nameForAlertMessage')
	if (!checkField(obj,'Name','Name')) { valid = false; return valid; }
	
	//FILE UPLOAD EXTENSION CHECKER
	//This optional version checks a file uploading field to see if it's got a correct file extension in it
	//NOTE that checkExt needs to be present, extList must be a delimited string, 
	//and you must supply the delimiter which matches the one in the string
	var extList = "PDF|PSD|AI|QXD|EPS|PS|JPG|JPEG|TIF|TIFF|ZIP|SIT|SITX|DOC|TXT|RTF";
	var checkExt = "yes";
	if (!checkField(obj,'testFileName','Upload File',checkExt,extList,"|")) { valid = false; return valid; }
	
	//OTHER TYPES OF FORM FIELDS
	// checkUSPhone(obj,'reqTextInputName','nameForAlertMessage','length of number','isAreaCode')
	if (!checkUSPhone(obj,'Name','Name',length,anything)) { valid = false; return valid; }
	// checkEMail(obj,'reqEmailFieldName','nameForAlertMessage')
	if (!checkEmail(obj,'testEmail','Email')) { valid = false; return valid; }
	// checkSelect(obj,'reqDropdownName','nameForAlertMessage')
	if (!checkSelect(obj,'testState','Please select a state.')) { valid = false; return valid; }
	// checkCheckbox(obj,'reqCheckboxName','nameForAlertMessage')
	if (!checkCheckbox(obj,'testChecky','Select the damn checkbox!')) { valid = false; return valid; }
	// checkRadio(obj,'reqRadioName','isRequired','requiredMessage','correctOption','alertMsgForCorrectOption')
	if (!checkRadio(obj,'testRadio','required','Please select one of the Yes/No/Maybe options.','Maybe','Please select "Maybe" from the options.')) { valid = false; return valid; }
	*/

function checkForm(obj) {
	valid = true;
	if (!checkField(obj,'Name','Name')) { valid = false; return valid; }
	if (!checkEmail(obj,'Email','Email')) { valid = false; return valid; }
	if (!checkField(obj,'Phone','Daytime Phone')) { valid = false; return valid; }
	if (!checkSelect(obj,'HowFound','Please select how you found this site.')) { valid = false; return valid; }
	if (!checkField(obj,'Comments','How Can We Help')) { valid = false; return valid; }
}
function checkEstForm(obj) {
	valid = true;
	if (!checkUSPhone(obj,'Phone1','Area Code',3,1)) { valid = false; return valid; }
	if (!checkUSPhone(obj,'Phone2','Phone Number Prefix',3)) { valid = false; return valid; }
	if (!checkUSPhone(obj,'Phone3','Phone Number Last 4 Digits',4)) { valid = false; return valid; }
}
function checkRecForm(obj) {
	valid = true;
	if (!checkField(obj,'YName','Your Name')) { valid = false; return valid; }
	if (!checkEmail(obj,'YEmail','Your Email')) { valid = false; return valid; }
	if (!checkField(obj,'FName','Your Friend\'s Name')) { valid = false; return valid; }
	if (!checkEmail(obj,'FEmail','Your Friend\'s Email')) { valid = false; return valid; }
}

/*
/////////////////////////////////////////////////////
NO EDITING BELOW HERE IF YOU DON'T KNOW WHAT YOU'RE DOING
/////////////////////////////////////////////////////
*/

/// STANDARD FORM FIELD CHECK FUNCTIONS

function checkField(obj,field,msg,checkExt,extList,extDelimiter) {
	valid = true;
	if (obj[field].value == "") {
		alert("You must fill out the " + msg + " field.");
		obj[field].focus();
		valid = false;
	} else if (checkExt) {
		if (extList && extDelimiter) {
			if (!ListFindNoCase(extList,ListLast(obj[field].value,"."),extDelimiter)) {
				alert("You have selected an invalid file type.  Please check your file type again.\n\nApproved file types are:\n" + extList);
				obj[field].focus();
				valid = false;
			}
		} else {
			alert("The form checking code for this field is incorrect. Please alert the webmaster.");
			obj[field].focus();
			valid = false;
		}
	}
	return valid;
}
function checkEmail(obj,field,msg) {
	valid = true;
	if (obj[field].value == "") {
		alert("You must fill out the " + msg + " field.");
		obj[field].focus();
		valid = false;
	} else {
		email = emailCheck(obj[field].value);
		if (!email) {
			alert("The email address you entered is not a valid format.\nPlease carefully retype your email address.");
			obj[field].focus();
			valid = false;
		}
	}
	return valid;
}
function emailCheck(addr) {
	var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
	var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/; // valid
	if (!reg1.test(addr) && reg2.test(addr)) {
		return true;
	} else {
		return false;
	}
}
function checkUSPhone(obj,field,msg,len,areacode) {
	//var reg = new RegExp("^[0-9]{"+len+"}$");
	if (len == 3) {
		if (areacode)
			var reg = /^([2-9][0-9][1-9])$/;
		else
			var reg = /^([1-9][0-9][0-9])$/;
	}
	if (len == 4)
		var reg = /^([0-9][0-9][0-9][0-9])$/;
	if (reg.test(obj[field].value)) {
		return true;
	} else {
		msg = "You must fill out the " + msg + " field with a valid " + len + "-digit number.";
		if (areacode)
			msg = msg + "\n(Note: An area code must be larger than 200.)";
		alert(msg);
		obj[field].focus();
		return false;
	}
}
function checkSelect(obj,field,msg) {
	valid = true;
	if (obj[field].options[obj[field].selectedIndex].value == "") {
		alert(msg);
		obj[field].focus();
		valid = false;
	}
	return valid;
}
function checkRadio(obj,field,req,msgSelect,correctOpt,msgIncorrect) {
	valid = true;
	notChecked = true;
	for(i=0;i<obj[field].length;i++) {
		if (obj[field][i].checked) {
			notChecked = false;
			if(correctOpt) {
				if(obj[field][i].value != correctOpt) {
					alert(msgIncorrect);
					obj[field][i].focus();
					valid = false;
				}
			}
		}
	}
	if (req && notChecked) {
		alert(msgSelect);
		valid = false;
	}
	return valid;
}
function checkCheckbox(obj,field,msg) {
	valid = true;
	if (!obj[field].checked) {
		alert("You must mark the check box called " + msg + ".");
		obj[field].focus();
		valid = false;
	}
	return valid;
}

// THESE NEXT THREE FUNCTIONS MIMIC COLDFUSION LIST FUNCTIONS IN JAVASCRIPT
function ListFind(list, value) {
	var i = 0;
	var delimiter = ',';
	var returnValue = -1;
	var _tempArray = new Array();
	if(ListFind.arguments.length == 3) {
		delimiter = ListFind.arguments[2];
	}
	_tempArray = list.split(delimiter);
	for(i = 0; i < _tempArray.length; i++) {
		if(_tempArray[i] == value) {
			returnValue = i;
			break;
		}
	}
	returnValue = (returnValue != -1) ? true : false;
	return returnValue;
}
function ListFindNoCase(list, value) {
	var i = 0;
	var delimiter = ',';
	var returnValue = -1;
	var _tempArray = new Array();
	if(ListFindNoCase.arguments.length == 3) {
		delimiter = ListFindNoCase.arguments[2].toLowerCase();
	}
	list = list.toLowerCase();
	value = value.toLowerCase();
	_tempArray = list.split(delimiter);
	for(i = 0; i < _tempArray.length; i++) {
		if(_tempArray[i] == value) {
			returnValue = i;
			break;
		}
	}
	returnValue = (returnValue != -1) ? true : false;
	return returnValue;
}
function ListLast(list) {
	var delimiter = ',';
	var returnValue = '';
	var _tempArray = new Array();
	if(ListLast.arguments.length == 2) {
		delimiter = ListLast.arguments[1].toLowerCase();
	}
	_tempArray = list.split(delimiter);
	if(_tempArray.length) {
		returnValue = _tempArray[_tempArray.length - 1];
	} else {
		returnValue = list;
	}
	return returnValue;
}

