//Check required fields functions

function checkRequiredFields(input)
   {
   var fieldsNeeded = "Sorry, you must enter a value \nin the following fields:\n\n";
	var fieldCheck   = true;
	var fieldName    = "";
	var fieldFocus   = "";
	var requiredField = getRequiredField();

	// Loop through every field in the form
	for (count = 0; count < input.length ; count++)
		{
		// Get current element
		var element = input.elements[count];
		// Check to ensure that field is required
		if (element.name.substring(0,requiredField.length) == requiredField)
			{
			// If field is a text field check for a value
			if ((element.type == "text") || (element.type == "textarea") || (element.type == "password"))
				{
				if ((element.value == "") || (element.value.substring(0,1) == " "))
					{
					if (fieldFocus == "")
						{
						fieldFocus = element.name;
						}
					fieldsNeeded += alterName(element.name) + "\n";
					fieldCheck    = false;
					}
  				}
  			// =================================================================================
			// If field is a select box, check for a value
			// selected options with a value of "" are not valid values
			if ((element.type == "select-one") || (element.type == "select-mltiple"))
				{
				if (getListValue(element) == "")
					{
					if (fieldFocus == "")
						{
						fieldFocus = element.name;
						}
					fieldsNeeded += alterName(element.name) + "\n";
					fieldCheck    = false;
					}
				}
         // ==================================================================================
			// If field is a radio button, ensure that a value is checked
			// Loop through all radio objects
			if (element.type == "radio")
				{
				var nonChecked = true;
				// Radio buttons must be in consecutive order on the form
				while (element.name == input.elements[count +1].name)
					{
					//alert(input.elements[count+ 1].name + " " + input.elements[count+ 1].checked + " " + input.elements[count + 1].value + "\n");
					if (input.elements[count + 1].checked == true)
						{
						nonChecked = false;
						}
					count++;
					}
				
				if (element.checked == true)  // checks for the first element.
					{
					nonChecked = false;
					}
				
				if (nonChecked)
					{
					fieldsNeeded += alterName(element.name) + "\n";
					fieldCheck    = false;
					}
				}
         // ======================================================================================		
			// If field is a checkbox, ensure that a value is checked
			if (element.type == "checkbox")
				{
				if (element.checked == false)
					{
					fieldsNeeded += alterName(element.name) + "\n";
					fieldCheck    = false;
					}
				}
			}
		} // end of for loop
	// ==============================================================================================
	// If all required fields have a value
	if (fieldCheck == true)
		{
		return true;
		}
	else
		{
		alert(fieldsNeeded);
		// If required field is testual or a select list, give it focus
		if (fieldFocus != "")
			{
			input[fieldFocus].focus();
			}
		return false;
		}
	} // end of function checkRequiredFields()
// *********************************************************************************************
// Submit the form (after checking for required fields)
function submitForm(form)
	{
	if (checkRequiredFields(form))
		{
		cleanNames(form);
		form.submit();
		}
	}
// ********************************************************************************************
function getRequiredField()
	{
	var requiredField = "req_";
	return requiredField;
	}
// ********************************************************************************************
// Return the value for the currently selected item
function getListValue(list)
	{
	var listValue = "";
	if (list.selectedIndex != -1)
		{
		listValue = list.options[list.selectedIndex].value;
		}
	return (listValue);
	}
// ********************************************************************************************
// Clean field names prior to form submission
function cleanNames(input)
	{
	var requiredField = getRequiredField();
	for (count = 0; count < input.length; count++)
		{
		currentField = input.elements[count].name;
		if (currentField.indexOf(requiredField) != -1)
			{
			var tempString = currentField.substring(0,currentField.indexOf(requiredField));
			tempString += currentField.substring(currentField.indexOf(requiredField) + requiredField.length,currentField.length);
			input.elements[count].name = tempString;
			}
		}
	}
// ******************************************************************************************
// Format field name (for required fields display)
function alterName(inString)
	{
	var newString = "";
	var ch        = "";
	var requiredField = getRequiredField();
	// Remove any required field indicators from the field name
	if (inString.indexOf(requiredField) != -1)
		{
		var tempString = inString.substring(0,inString.indexOf(requiredField));
		tempString = inString.substring(inString.indexOf(requiredField) + requiredField.length-1,inString.length);
		inString = tempString;
		}
	
	// Loop through the field removing all underscores,
	// adding spaces, and Capitalizing words
	for (i = 0; i < inString.length; i++)
		{
		ch = inString.substring(i,i+1);
		// Remove underscores
		if (ch == "_")
			{
			i++;
			ch = inString.substring(i,i+1);
			newString += " " + ch.toUpperCase();
			}
		
		// Add uppercasing to the first word
		else if (i == 0)
			{
			ch = ch.toUpperCase();
			}

		// Add spaces for field names such as "firstName"
		else if (ch == ch.toUpperCase())
			{
			newString += " " + ch;
			}
		else
			{
			newString += ch;
			}
		}
	return newString;
	}
// ******************************************************************************************

				