//set variables  
var bitBlurCheckInProgress = 0

//   This function checks to see if a text variable is empty.   //
function isEmpty(str){
	if(str == "" || str == null){
		return true
	}
	else {
		return false
	}
}

//   This function strips a variable of extraneous text, down to only numeric values.   //
function stripNumeric(str, bitIncludePlaceHolders){
	if (bitIncludePlaceHolders){
		return str.replace(/[^0-9.]/g, "")
	}
	else {
		return strNumbers = str.replace(/[^0-9]/g, "")
	}
}

//    This function displays an alert message in the form of "text" + fieldname + "text."    //
function displayError(form,nField,strPreText,strPostText){
	var strCleanedFieldName = form.elements[nField].name
	var strTempName = ""

	// remove ID from the end of the field name
	if (strCleanedFieldName.substring(strCleanedFieldName.length - 2, strCleanedFieldName.length) == "ID"){
		strCleanedFieldName = strCleanedFieldName.substring(0,strCleanedFieldName.length - 2)
	}

	//loop through the field name, one character at a time
	for (i = 0; i < strCleanedFieldName.length; i++){
		//not a capitalized letter
		if (strCleanedFieldName.charCodeAt(i) < 65 || strCleanedFieldName.charCodeAt(i) > 90){
			//don't include the lowercase data type prefix before the first cap
			if (strTempName != ""){
				strTempName = strTempName + strCleanedFieldName.charAt(i)
			}
		}
		//capitalized letter
		else {
			//isoloated cap
			if (strCleanedFieldName.charCodeAt(i - 1) < 65 || strCleanedFieldName.charCodeAt(i - 1) > 90){
				strTempName = strTempName + " " + strCleanedFieldName.charAt(i)
			}
			//two caps in a row (assume acronym)
			else {
				strTempName = strTempName + strCleanedFieldName.charAt(i)
			}
		}
	}

	alert(strPreText + strTempName + " " + strPostText)
  form.elements[nField].focus()
  return false
}

//   This function validates text boxes and dropdowns in the passed form.   //
function checkForm(form, strCommonError){
	// check for concurrent onBlur process //
	if (!bitBlurCheckInProgress){
		// loop through all the elements //
		for (i = 0; i < form.elements.length; i++){
			//alert("check invalid characters")
//			if (!blockInvalidCharacters(form.elements[i].value)){
//				return displayError(form,i,"We do not accept these characters: " + invalid_characters + "\r\nPlease change your entry in the","field.")
//			}
			//alert("check for smut")
//			if (profanityFilter(form.elements[i].value)){
//				return false
//			}
			// begin check for requirement status of this field
			if ((required_fields == "all" && skipped_fields.indexOf(form.elements[i].name + ',') == -1) || required_fields.indexOf(form.elements[i].name + ',') != -1){
				// begin check for invalid text field
				if (form.elements[i].type == "text" || form.elements[i].type == "textarea" || form.elements[i].type == "password" || form.elements[i].type == "file"){
					// blank case
					if (isEmpty(form.elements[i].value)){
						if (isEmpty(strCommonError)){
							return displayError(form,i,"Please fill out the","field")
						} else {
							alert(strCommonError);
						  form.elements[i].focus()
							return false
						}
					}
				} 
				// begin check for invalid dropdown
				else if (form.elements[i].type == "select-one") {
					// begin empty (unselected) case
					if(form.elements[i].options[form.elements[i].selectedIndex].value == ""){
						if (isEmpty(strCommonError)){
							return displayError(form,i,"Please select a(n)",".")
						} else {
							alert(strCommonError);
						  form.elements[i].focus()
							return false
						}
					} 
				}
			}
		}
		return true
	}
	else {
		return false
	}
} 