// Check user inputs to see if all required fields have proper data and sets

// up fields for generic email form handler.



function checkInput() {

	f = self.document.formNav;	

	

	//************************ SPECIAL TESTING

	// Check mailto dropdown to make sure that an office has been selected



	//************************ SPECIAL TESTING

	// Gathers the names of all the fields on the submitting form in a pipe (|) delimited string,

	// so that the field names can be displayed in the same order and grouped by sections,

	// the same manner as on the form in the email body which is created by the

	// generic mailto form handler [genericMailtoFormProc.asp]. Duplicate field names

	// are not saved (as in the case of a required group of checkboxes, etc.).

	

	var strFields = "";

	

	for (i=0; i<document.forms[0].length; i++) {

		if (((document.forms[0].elements[i].name == "Selected_Navigant_Office") ||

			(document.forms[0].elements[i].name != "mailto") ||

			(document.forms[0].elements[i].type != "hidden") || 

			(document.forms[0].elements[i].name.indexOf("**") > -1))

			&& (strFields.indexOf(document.forms[0].elements[i].name) == -1)) {

			strFields = strFields + document.forms[0].elements[i].name + "|";

		}

	}

	// Remove the trailing pipe (|) and save the string in a hidden field

	

	strFields = strFields.substr(0,strFields.length-1);

	f.fieldorder.value = strFields;

	

	// Check to make sure that there are required fields, and if not, get the string with 

	// the comma-delimited required field names from a hidden field 

	// and split it into an array at the commas

	

	if (f.required.value != "") {

		var requiredFields = f.required.value.split(",");

	

		// Check to make sure the user has entered values for the required fields based on input type

		var oneChecked = false;

		for (i=0; i<requiredFields.length; i++) {

	

		//alert("f." + requiredFields[i] + ".length="+eval("f." + requiredFields[i] + ".length")+", f." + requiredFields[i] + ".type="+eval("f." + requiredFields[i] + ".type") + ", Value='"+eval("f." + requiredFields[i] + ".value")+"'");

	

			// Check that a required field of type "text" is not empty

			if (eval("f." + requiredFields[i] + ".type") == "text") {

				if ((eval("f." + requiredFields[i] + ".value") == null) || (eval("f." + requiredFields[i] + ".value") == "")) {

					alert("Please fill out the " + requiredFields[i] + " from line.");

					eval("f." + requiredFields[i] + ".focus()");

					return false;

				}

	



			// Check that a required field of type "textarea" is not empty

			} else if (eval("f." + requiredFields[i] + ".type") == "textarea") {

				if ((eval("f." + requiredFields[i] + ".value") == null) || (eval("f." + requiredFields[i] + ".value") == "")) {

					alert("Please fill out the " + requiredFields[i] + " text area.");

					eval("f." + requiredFields[i] + ".focus()");

					return false;

				}



			// Check that for a required drop down, a value is selected		

			} else if ((eval("f." + requiredFields[i] + ".type") == "select-one") || (eval("f." + requiredFields[i] + ".type") == "select-multiple")) {

				//alert("selectedIndex=" + eval("f." + requiredFields[i]+".selectedIndex")+ ", value='"+eval("f." + requiredFields[i] + "[f." + requiredFields[i] + ".selectedIndex].value")+"'");

				if ((eval("f." + requiredFields[i] + ".selectedIndex") < 0) || 

					(eval("f." + requiredFields[i] + "[f." + requiredFields[i] + ".selectedIndex].value") == "")) {

					alert("You must enter a valid value for the " + requiredFields[i] + ".");

					eval("f." + requiredFields[i] + ".focus()");

					return false;

				}



			// Check that a required checkbox is selected						

			} else if (eval("f." + requiredFields[i] + ".type") == "checkbox") {

				if (!(eval("f." + requiredFields[i] + ".checked"))) {

					alert("You must select one of the " + requiredFields[i] + " checkboxes.");

					eval("f." + requiredFields[i] + ".focus()");

					return false;

				}

				

			// Check to see that at least one chackbox in a required group of checkboxes is selected

			} else if ((eval("f." + requiredFields[i] + ".length") > 0) && (eval("f." + requiredFields[i] + "[0].type") == "checkbox")) {

				// Loop through all the checkboxes to see if one is checked

				oneChecked = false;

				for (j=0; j<eval("f." + requiredFields[i] + ".length"); j++) {

					//alert("j="+j+", f." + requiredFields[i]+"["+j+"].value=" + eval("f." + requiredFields[i]+"["+j+"].value")+", f." + requiredFields[i]+"["+j+"].checked=" + eval("f." + requiredFields[i]+"["+j+"].checked"));

					if (eval("f." + requiredFields[i]+"["+j+"].checked")) { oneChecked = true; }

				}

				// If none are checked, notify user

				if (!oneChecked) {

					alert("You must select at least one of the " + requiredFields[i] + " checkboxes.");

					eval("f." + requiredFields[i] + "[0].focus()");

					return false;

				}



			// Check to see that a radio button in a required group of radio buttons is selected

			} else if ((eval("f." + requiredFields[i] + ".length") > 0) && (eval("f." + requiredFields[i] + "[0].type") == "radio")) {

				// Loop through all the radio buttons to see if one is checked

				oneChecked = false;

				for (j=0; j<eval("f." + requiredFields[i] + ".length"); j++) {

					if (eval("f." + requiredFields[i]+"["+j+"].checked")) { oneChecked = true; }

				}

				// If none are checked, notify user

				if (!oneChecked) {

					alert("You must select one of the " + requiredFields[i] + " radio buttons.");

					eval("f." + requiredFields[i] + "[0].focus()");

					return false;

				}

			}	

		}

	}

	// All required fields validated, so submit the form

 var where_to= confirm("Are you sure you want to send this email?");

       if (where_to== true)

        {

      return (true);

       }

      else

      {

            return (false);

        }





} // end checkInput


