function submitForm(form)  {
  sendResult = sendForm(document.getElementById(form), 0);
  if (sendResult) {
    document.getElementById(form).submit();
  }
}

function sendForm(f, highLight)	{
  var reg1str = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
	var reg2str = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$";
	var reg3str = "[0-9]";
	var reg1 = new RegExp(reg1str);
	var reg2 = new RegExp(reg2str);
	var reg3 = new RegExp(reg3str);
	var reqFields = "";

	//style information for valid and invalid form elements
	var defStyle = "reqField";
	var altStyle = "reqFieldError";

	//array to style elements
	var labelStyle = new Array(fields.length);

	//itterate through each of the form fields to be validated
	for(i=0;i<fields.length;i++)
	{
    //for text and textarea form types perform the following validation
		if(  f.elements[fields[i]].type == "text" 
      || f.elements[fields[i]].type == "textarea" 
      || f.elements[fields[i]].type == "select-one" )
		{
			//if email, compare against regular expressions
			if(fields[i] == "email") {
				//retain the value of the email in a variable
				var strEmail = f.elements[fields[i]].value;
					//checks to make sure the email address is valid and sets appropriate style.
				if (!reg1.test(strEmail) && reg2.test(strEmail))
				{
					labelStyle[i] = defStyle;
				}
				else
				{
					labelStyle[i] = altStyle;
					reqFields += fieldInfo[i]+"\n"
				}
			}
				else if(fields[i] == "email2")
			{
				//if emailConfirm box is included, verify against email
				//retain values of email and emailConfirm in a variable
				var strEmailConfirm = f.elements[fields[i]].value;
				var strEmail = f.elements['email'].value;
        //compare email against confirmEmail pass if the same
				if(strEmailConfirm == strEmail 
          && (!reg1.test(strEmailConfirm) 
          && reg2.test(strEmailConfirm)))
        {
					labelStyle[i] = defStyle;
				}
				else
				{
					labelStyle[i] = altStyle;
					reqFields += fieldInfo[i]+"\n"
				}
			}
			else
			{
				//general form fields, just looking for a length greater than 0
				if (f.elements[fields[i]].value.length == 0)
				{
					labelStyle[i] = altStyle;
					reqFields += fieldInfo[i]+"\n";
				}
				else
				{
					labelStyle[i] = defStyle;
				}
			}
		}
	}

	//Handle required fields and display as appropriate
	if(reqFields.length > 0)
	{
		//two types of display either highLight or alert
		if(highLight == 1)
		{
			for(var i=0;i<fields.length;i++)
			{
				f.elements[fields[i]].className = labelStyle[i];
			}
		}
		alert(msg+reqFields);
		return false;
	}
	else
	{
		return true;
	}
}