// usage: <form method="POST" action="one.asp" onsubmit="return formCheck(this,fieldsRequired);">
//~~~~~~~~~~~~~~~~~~~~~~~~~
function formCheck(formobj,fieldRequired)
{
	var alertMsg = "Please complete the following fields:\n";
	var lenMsg = alertMsg.length; // original msg length (later to see if changed)
	for (var i = 0; i < fieldRequired.length; i++)
	{
		var obj = formobj.elements[fieldRequired[i]];
		if (obj)
		{
			if (obj.type == null)
			{
				var blnchecked = false;
				for (var j = 0; j < obj.length; j++)
				{
					if (obj[j].checked)
					{
						blnchecked = true;
					}
				}
				if (!blnchecked)
				{
					alertMsg += " - " + fieldRequired[i] + "\n";
				}
				continue;
			}

			switch(obj.type)
			{
  			case "select-one":
  				if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == "")
  				{
  					alertMsg += " - " + fieldRequired[i] + "\n";
  				}
  				break;
  			case "select-multiple":
  				if (obj.selectedIndex == -1)
  				{
  					alertMsg += " - " + fieldRequired[i] + "\n";
  				}
  				break;
  		  case "checkbox":
  		    if (obj.checked == false)
  		    {
  					alertMsg += " - " + fieldRequired[i] + "\n";
  		    }
  		    break;
  			case "text":
  			case "textarea":
  			  if (obj.name == "Email")
  			  {
  			    if (checkEmail(obj.value))
  					  alertMsg += " - " + "Invalid E-mail address." + "\n";
  			  }
  				if (obj.value == "" || obj.value == null)
  				{
  					alertMsg += " - " + fieldRequired[i] + "\n";
  				}
  				break;
  			default:
			}
		}
	}

	if (alertMsg.length == lenMsg)  // no change
	{
		return true;
	}
	else
	{
		alert(alertMsg);
		return false;
	}
}

function checkEmail(emailaddr) 
{
  if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(emailaddr))
  {
    return false;
  }
  return true;
}