//set variables  
//var invalid_characters = "<>\"%;)(&+|'"
  var bVer = parseInt(navigator.appVersion)
  var blur_check_in_progress = 0

/////////////////////////////////////////////////////////////////////////////////////////
//                                                                                     //
//  This function limits the number of boxes you can check, if they all have the same  //
// field name.                                                                         //
//                                                                                     //
/////////////////////////////////////////////////////////////////////////////////////////

  function check_limit (field,limit,number_of_fields) {
   entries = 0
   temp_value = field.value
   field_name_root = field.name
   //!isNaN(field_name_root.charAt(field_name_root.length))
   while (!isNaN(field_name_root.charAt(field_name_root.length - 1))){
    field_name_root = field_name_root.substring(0, field_name_root.length - 1)
   }
   for (i = 1; i <= number_of_fields; i++){
    if (eval("document.form1." + field_name_root + i + ".checked")){
     entries = ++entries
    }
   }
   if (entries > limit){
    alert("Please select only " + limit + " items. To choose another item, first uncheck one of your current selections.")
    field.focus()
    return false
   }
   else {
    return true
   }
  }

/////////////////////////////////////////////////////////////////////////////////////////
//                                                                                     //
//  This function is used in text fields to keep the Enter button from triggering form //
// submission.                                                                         //
//                                                                                     //
/////////////////////////////////////////////////////////////////////////////////////////

  function noenter(field) {
   if (window.event && window.event.keyCode == 13){
 		 field.focus()
    return false
			}
			else return true 
  }
		
/////////////////////////////////////////////////////////////
//                                                         //
//  This function keeps users from using vulgar language.  //
//                                                         //
/////////////////////////////////////////////////////////////

 /* The "cmp" string should be comprised only
   of words you don't wish to appear in postings or
   submissions at YOUR Web Site. (Some folks use this
   function to "bleep out" competitor's names) 
   Don't forget a space after the last word in your own
   list of "forbidden" words. */ 

  function find_smut(text) {
   cmp="shit fuck damn cunt prick pecker asshole twat bitch tits "
  	+"suck dick piss dong chism jism muff pussy boobs sex "
  	+"boob horny boner whore bastard diddle fag bugger cock ";
   while (cmp != ""){
    pos=cmp.indexOf(" ");
    wrd=cmp.substring(0,pos);
    wrdl=wrd.length
    cmp=cmp.substring(pos+1,cmp.length);
    if (text.indexOf(wrd)>-1){
     alert ("Please do not use profanity on this website.")
  			return true
    }
   }
			return false
  }

////////////////////////////////////////////////////////////////////////////////
//                                                                            //
//   This function runs a password comparision before handing the process off //
//  to the regular data validation script.                                    //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////

  function password_check_form(form){
   if (document.user_info_form.password){
    if (document.user_info_form.password.value == document.user_info_form.password2.value){
     if (document.user_info_form.password.value.length >= 4 && document.user_info_form.username.value.length >= 4){
      return check_form(form)
     }
     else{
      alert("Login and password must be at least 4 characters.")
      return false
     }
    }
    else {
     alert("Password fields do not match, please try again.")
     return false
    }
   }
  }

/////////////////////////////////////////////////////////////////////////////////////////
//                                                                                     //
//   This function checks for and rejects characters that could screw up ColdFusion.   //
//                                                                                     //
/////////////////////////////////////////////////////////////////////////////////////////

  function check_for_invalid_characters(input_string){
   if (input_string != null){
    for (j = 0; j < invalid_characters.length; j++){
     if (input_string.indexOf(invalid_characters.charAt(j)) != -1){
   	  return false
   	 }
   	}
   }
   return true
  }

//////////////////////////////////////////////////////////////////
//                                                              //
//   This function checks to see if a text variable is empty.   //
//                                                              //
//////////////////////////////////////////////////////////////////

  function text_is_empty(string){
   if(string == "" || string == null){
   	return true
   }
   else {
    return false
   }
  }

//////////////////////////////////////////////////////////////////////////////////////////
//                                                                                      //
//   This function strips a variable of extraneous text, down to only numeric values.   //
//                                                                                      //
//////////////////////////////////////////////////////////////////////////////////////////

  function stripNumeric(string){
   var numbers = ""
   if (bVer >= 4){
    numbers = string.replace(/[^0-9]/g, "")
   }
   else {
    for (j = 0; j < string.length; j++){
     if (!(string.charAt(j) < "0" || string.charAt(j) > "9")){
      numbers = numbers + string.charAt(j)
     }
   	}
   }
   return numbers
  }

////////////////////////////////////////////////////////////////////////////////
//                                                                            //
//   This function validates numeric fields.                                  //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////

  function check_numeric(field,min,max){
   var number = field.value
   blur_check_in_progress = 1

   if (number != stripNumeric(number)){
    alert("Please enter only numeric characters")
    field.focus()
    field.select()
	return false
   } 
   /*
   if (parseInt(number) > parseInt(max) || parseInt(number) < parseInt(min)){// || parseInt(number) < parseInt(min)){
    //alert(parseInt(number) + " > " + parseInt(max) + " || " + parseInt(number) + " < " + parseInt(min))
    alert("Please enter an amount less than or equal to $" + max + ".")
    field.focus()
    field.select()
	return false
   }
   */
   blur_check_in_progress = 0
   return true 
  }

////////////////////////////////////////////////////////////////////////////////
//                                                                            //
//   This function validates US phone numbers, but leaves others untouched.   //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////

  function checkPhone(text_field){
   blur_check_in_progress = 1
   if (text_field.value.length > 0){
    var phNumTemp = stripNumeric(text_field.value)
    if (phNumTemp.length == 10){
     text_field.value = phNumTemp.substring(0,3) + " " + phNumTemp.substring(3,6) + "-" + phNumTemp.substring(6,10)
     blur_check_in_progress = 0
     return true
    } 
				else if (phNumTemp.length == 7){
     text_field.value = phNumTemp.substring(0,3) + "-" + phNumTemp.substring(3,7)
     blur_check_in_progress = 0
     return true
    } 
				else if (phNumTemp.length > 7){
     blur_check_in_progress = 0
   	 return true
    } 
				else {
     alert("This is not a valid phone number.")
     text_field.focus()
     text_field.select()
     return false
	   }
   }
   else {
    blur_check_in_progress = 0
	   return true
   }
  }

////////////////////////////////////////////////////////////////////////////////
//                                                                            //
//   This function validates email addresses by matching a general pattern.   //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////

  function checkEmail(textField){
   blur_check_in_progress = 1
   if (textField.value.length > 0){
    if (bVer >= 4){
     var re = /^\s*\S+@\S+\.\S{2,5}\s*$/
     if (textField.value.search(re) == -1) {
      alert("This is not a valid email address.")
      textField.focus()
      textField.select()
      return false
     }
    }
    else if ((textField.value.indexOf("@") < 1 && textField.value.indexOf("@") >= textField.value.length - 4) || textField.value.indexOf(".") == -1){
     alert("This is not a valid email address.")
     textField.focus()
     textField.select()
     return false
    }
   }
   blur_check_in_progress = 0
   return true
  }

///////////////////////////////////////////////////////////////////////////////////////////////
//                                                                                           //
//    This function displays an alert message in the form of "text" + fieldname + "text."    //
//   It also cleans the fieldname of Webtrak mumbo jubmo such as "401_", "_ID", and "_"'s,   //
//   in general.                                                                             //
//                                                                                           //
///////////////////////////////////////////////////////////////////////////////////////////////

function display_error(form,field_number,pretext,posttext){
var cleaned_field_name = form.elements[field_number].name
 if ((cleaned_field_name.indexOf("fld_str_") == 0) || (cleaned_field_name.indexOf("fld_int_") == 0) || (cleaned_field_name.indexOf("fld_cur_") == 0)){
  cleaned_field_name = cleaned_field_name.substring(8,cleaned_field_name.length)
 } else if ((cleaned_field_name.indexOf("fld_dt_") == 0)){
  cleaned_field_name = cleaned_field_name.substring(7,cleaned_field_name.length)
 } else if ((cleaned_field_name.indexOf("str_") == 0) || (cleaned_field_name.indexOf("int_") == 0) || (cleaned_field_name.indexOf("cur_") == 0)){
  cleaned_field_name = cleaned_field_name.substring(4,cleaned_field_name.length)
 } else if ((cleaned_field_name.indexOf("dt_") == 0)){
  cleaned_field_name = cleaned_field_name.substring(3,cleaned_field_name.length)
 } 

 if (cleaned_field_name.substring(cleaned_field_name.length - 3, cleaned_field_name.length) == "_id"){
  cleaned_field_name = cleaned_field_name.substring(0,cleaned_field_name.length - 3)
 }

 if (bVer >= 4){
 	alert("Missing required data. Please fill out this field.")
  //alert(pretext + cleaned_field_name.replace(/_/g, " ") + posttext)
  form.elements[field_number].focus()
  return false
 }
 else {
  var tempName = ""
  for (j = 0; j < cleaned_field_name.length; j++){
   if (cleaned_field_name.charAt(j) != "_"){
    tempname = tempname + cleaned_field_name.charAt(j)
   }
   else {
    tempname = tempname + " "
   }
  }
  	alert("Missing data. Please fill out this field")
//  alert(pretext + tempname + posttext)
  form.elements[field_number].focus()
  return false
 }
}

//////////////////////////////////////////////////////////////////////////////
//                                                                          //
//   This function validates text boxes and dropdowns in the passed form.   //
//                                                                          //
//////////////////////////////////////////////////////////////////////////////

  function check_form(form){
   //alert("checking form")
  // begin check for concurrent onBlur process //
   if (!blur_check_in_progress){
  // begin loop through all the elements //
   //alert("loop thru form fields")
   for (i = 0; i < form.elements.length; i++){
   ///////////////////////////////////////////////////
   // BEGIN CHECK FOR INVALID COLDFUSION CHARACTERS //
   ///////////////////////////////////////////////////
    //alert("check invalid characters")
    if (!check_for_invalid_characters(form.elements[i].value)){
     return display_error(form,i,"We do not accept these characters: " + invalid_characters + "\r\nPlease change your entry in the "," field.")
    }
   // end check for invalid coldfusion characters
   
   // begin check for requirement status of this field
    //alert("check required status of field")
    if ((required_fields == "all" && skipped_fields.indexOf(form.elements[i].name) == -1) || required_fields.indexOf(form.elements[i].name) != -1){

    ///////////////////////////////
    // BEGIN TEXT BOX PROCESSING //
   	///////////////////////////////
     //alert("check field type")
     if (form.elements[i].type == "text" || form.elements[i].type == "textarea" || form.elements[i].type == "password"){
     // begin check for invalid text field
	    // blank case
   	  if (text_is_empty(form.elements[i].value)){
       return display_error(form,i,"Please fill out the "," field")
	     }
	    } 
    // end check for invalid text field 

    ////////////////////////////////
    // BEGIN DROP DOWN PROCESSING //
    ////////////////////////////////
   	 else if (form.elements[i].type == "select-one") {
	    // begin check for invalid dropdown
	    // begin empty (unselected) case
	     if(form.elements[i].options[form.elements[i].selectedIndex].value == ""){
       return display_error(form,i,"Please select a(n) ",".")
	     } 
   	 // end check for invalid dropdown
	    }
    // end drop down processing
    }
   // end check for requirement status of this field
   }
  // end loop through all the elements
   return true
  }
  else {
   return false
  }
  // end check for concurrent onBlur process
 } 
