<!--	
var errorexists;
var error_message;

function checkcheckboxes(currform)
{
	var checkboxarray = currform.valid_checkbox.value.split(',');
	var minarray = currform.valid_checkbox_min.value.split(',');
	var maxarray = currform.valid_checkbox_max.value.split(',');
	var fieldnames = currform.valid_checkbox_name.value.split(',');
	for (var x = 0; x < checkboxarray.length; x++)
	{
		if (eval("currform." + checkboxarray[x]))
		{
			var currmin = parseInt(minarray[x]);
			var currmax = parseInt(maxarray[x]);		
		
			var numselected = 0;
			for (var y = 0; y < currform.length; y++)
			{
				if ((currform.elements[y].name == checkboxarray[x]) && (currform.elements[y].checked))
					numselected ++;
			}
			if ((currmin > 0) && (numselected < currmin))
			{
				error_message += "\n\nYou must choose at least " + currmin + " for " + fieldnames[x] + ".";
				errorexists = 1;
			}
			if ((currmax > 0) && (numselected > currmax))
			{
				error_message += "\n\nYou must choose no more than " + currmax + " for " + fieldnames[x] + ".";
				errorexists = 1;
			}
		}
	}
	return true;
}

function checkfields(currform,fieldlist,namelist,reg_exp,formattext)
//currform = form to check
//fieldlist = list of fields to validate
//namelist = user-friendly names of fields
//reg_exp = regular expression used to test each field
//formattext = text instructing user in which format the field should be in
{
	var fields = fieldlist.value.split(',');
	var names = namelist.value.split(',');
	var currfield;
	for (var x = 0 ; x < fields.length ; x++)
	{
		currfield = eval("currform." + fields[x]);
		if (currfield && (currfield.value.length != 0) && (currfield.value.search(reg_exp) == -1))
		{
			error_message += "\n\nInvalid " + names[x] + ":\n" + formattext;
			errorexists = 1;
		}
	}
	return true;
}

function check(currform)
{		
	var testexp;
	var formatmsg;
	error_message = "";
	errorexists = 0;
		//check for required fields
		if (currform.valid_required.value != "")
		{
			var reqarray = currform.valid_required.value.split(",");
			var names = currform.valid_required_name.value.split(",");
			for (var x = 0 ; x < reqarray.length ; x ++)
			{
				var currfield = eval("currform." + reqarray[x]);
				if (currfield && (currfield.value == ""))
				{
					error_message += "\n\nThe " + names[x] + " field is required.";
					errorexists = 1;
				}
			}
		}
		
		/*======EMAIL ADDRESS======*/
		if ((currform.valid_email) && (currform.valid_email.value != ""))
		{
			testexp = /^([A-Z]|[a-z])+([A-Z]|[a-z]|[0-9]|\.|\_|\-)*@(([A-Z]|[a-z]|[0-9])+([A-Z]|[a-z]|[0-9]|\-|\_)*([A-Z]|[a-z]|[0-9])+\.)+([a-z]|[A-Z]){2,4}$/;
			formatmsg = "Must be in 'someone@somewhere.com' format.";
			checkfields(currform,currform.valid_email,currform.valid_email_name,testexp,formatmsg);
		}
		
		/*======PHONE NUMBER======*/		
		if ((currform.valid_phone) && (currform.valid_phone.value != ""))
		{
			testexp = /^[0-9]{3,3}\-[0-9]{3,3}\-[0-9]{4,4}$/;
			formatmsg = "Must be in 123-456-7890 format.";
			checkfields(currform,currform.valid_phone,currform.valid_phone_name,testexp,formatmsg);
		}
		
		/*======FLOATING-POINT NUMBER======*/		
		if ((currform.valid_number) && (currform.valid_number.value != ""))
		{
			testexp = /^([0-9]*\.[0-9]+)|[0-9]+$/;
			formatmsg = "This field must only contain numbers and possibly a decimal point.";
			checkfields(currform,currform.valid_number,currform.valid_number_name,testexp,formatmsg);
		}
		
		/*======INTEGER======*/	
		if ((currform.valid_integer) && (currform.valid_integer.value != ""))
		{
			testexp = /^[0-9]+$/;
			formatmsg = "This field must be a whole number.";
			checkfields(currform,currform.valid_integer,currform.valid_integer_name,testexp,formatmsg);
		}

		/*======DATE======*/
		if ((currform.valid_date) && (currform.valid_date.value != ""))
		{
			testexp = /^((0?[1-9])|(1[0-2]))\/((0?[1-9])|([1-2][0-9])|(3[0-1]))\/[1-2][0-9]{3,3}$/;
			formatmsg = "Must be in MM/DD/YYYY format.";
			checkfields(currform,currform.valid_date,currform.valid_date_name,testexp,formatmsg);
		}
		
		/*======ZIP CODE======*/
		if ((currform.valid_zip) && (currform.valid_zip.value != ""))
		{
			testexp = /^((\d{5})|(\d{5}-\d{4})|(([A-Za-z]){1}\d{1}([A-Za-z]){1}\s\d{1}([A-Za-z]){1}\d{1})){1}$/;
			formatmsg = "Must be in 12345 or 12345-6789 or A9A 9A9 (Canadian) format.";
			checkfields(currform,currform.valid_zip,currform.valid_zip_name,testexp,formatmsg);
		}
		
		/*======CHECK BOXES / RADIO BUTTONS======*/
		if ((currform.valid_checkbox) && (currform.valid_checkbox.value != ""))
			checkcheckboxes(currform);
				
	// if all functions pass, or none of them need to be called, the form submits itself
		if (errorexists)
		{
			alert("The following problems exist with your form:" + error_message);
			return false;
		}
		else
		{
			currform.submit();
		}
		
	return true;
}
//-->