// Check for a valid select option
function checkSelect(objSelect, strName) {
	
	var strMsg = strName;
	var i = objSelect.selectedIndex;
	if (objSelect.options[i].value == '') {
		alert(strMsg);
		return false;
	} else
		return true;
}

// Check for a NONE select option
function checkSelectNONE(objSelect, strName) {
	
	var strMsg = strName;
	var i = objSelect.selectedIndex;
	if (objSelect.options[i].value == 'NONE') {
		alert(strMsg);
		return false;
	} else
		return true;
}

// Check for a ST - STATE NOT ANSWERED select option
function checkSelectST(objSelect, strName) {
	
	var strMsg = strName;
	var i = objSelect.selectedIndex;
	if (objSelect.options[i].value == 'ST') {
		alert(strMsg);
		return false;
	} else
		return true;
}

// Check for a blank select option
function checkSelectBlank(objSelect, strName) {
	
	var strMsg = strName;
	var i = objSelect.selectedIndex;
	if (objSelect.options[i].value == 'blank') {
		alert(strMsg);
		return false;
	} else
		return true;
}

// Check for a valid select option
function checkSelectDefaultValue(objSelect, strName, strExclude) {
	
	var strMsg = strName;
	var i = objSelect.selectedIndex;
	if (objSelect.options[i].value == '0') {
		alert(strMsg);
		return false;
	} else
		return true;
}

//Validate entry in text boxes.  Is the given field blank?
function checkBlank(objField, strName, strExclude) {
	
	var strMsg = 'Please enter ' + strName + '.';
	
	if (strExclude != '') {
		if (objField.value == strExclude) {
			alert(strMsg);
			return false;
		}
	}

	if (matchPatternInField(objField, '(^\[ \t]*$)', strMsg, false))
		return true;
	else
		return false;
}

//Validate the Zip Code (5 or 9 digit).
function checkZipCode(objField) {

	var strMsg = 'Please enter a Zip Code.';
	
	if (matchPatternInField(objField, '\\D\\S', strMsg, false))
			if (matchPatternInField(objField, '\\d{5}', strMsg, true))
				return true;
			else
				return false;
	else
		return false;
}

//Validate that the email email address is properly formatted.
//The email can still be invalid
  function checkEmail(objField) {
  	var strMsg='Please enter a valid email address.';
  	if (!objField.value.length == 0) {
  	
  		if (matchPatternInField(objField, '([^\\s])[A-Z0a-z0-9.-_]+@([A-Za-z0-9.-_]+)[\\.][A-Za-z]{2,3}', strMsg, true))
  			return true;
  		else
  			return false;
  	}
  	else {
  		alert(strMsg);
  		return false;
  	}
  }

// Validate that the Field contains only digits of a specified length
function checkNumberOnly(objField, intLength, strName)  {

	var strMsg, strPattern;
	
	if (intLength > 0) {
		strMsg = 'Please enter a ' + intLength + ' digit ' + strName + '.';
		strPattern = '\\d{' + intLength + '}';
	}
	else {
		strMsg = 'Please enter a ' + strName + '.';
		strPattern = '\\d';
	}		
	
	if (matchPatternInField(objField, '\\D\\S', strMsg, false))
			if (matchPatternInField(objField, strPattern, strMsg, true))
				return true;
			else
				return false;
	else
		return false;
}

// Find a given pattern in a given field (or the lack of)
// bolNegate (if true then check for NO occurences of the pattern)
function matchPatternInField(objField, strPattern, strErr, bolNegate) {
			
	var objRE = new RegExp(strPattern); 
	if (bolNegate) {
		if (!objRE.test(objField.value)) {
			alert(strErr);
			return false;		
		} else
			return true;
	} else {
		if (objRE.test(objField.value)) {
			alert(strErr);
			return false;		
		} else
			return true;	
	}
}