function checkValid (f)
{	
	if ((f.name_5.value == '') || (f.email_5.value == ''))
	{
		alert('You must fill out your name and email.')
		f.name_5.focus();
		return false;
	}
	if (f.subject.value == '') {
		alert('Please enter a SUBJECT.');
		f.subject.focus();
		return false;
	}
	// Loop through all 4 TO emails and make sure at least one is entered
	nullcount = 0;
	for (j=1; j<5; j++)
	{
		if ((eval('f.name_' + j + '.value') == '') && (eval('f.email_' + j + '.value') == ''))
	 	{
			nullcount += 1;
		}
	}
	if (nullcount == 4) { alert('You must enter at least one person to send to'); return false; }

	// Loop through all the email fields and check for name/email insertion
	flag = 0;
	for (i=1; i < 5; i++)
	{
		if ((eval('f.name_' + i + '.value') == '') && (eval('f.email_' + i + '.value') != ''))
		{
			alert('If you are entering an email, you must associate a name with it.');
			eval('f.name_' + i + '.focus();')
			return false;
		}
		
		if (eval('f.name_' + i + '.value') != '')
		{
			flag = 1;
		}
		
		// For email validation only; flag set to 1 if either name or email column is blank
		
		if (flag == 1)
		{
			if (eval('f.email_' + i + '.value') == '')
			{
				alert('All names must be accompanied by an email.');
				eval('f.email_' + i + '.focus();')
				return false;
			}
		
			if (eval('f.email_' + i + '.value') != '')
			{
				var emailPat=/^(.+)@(.+)$/
				var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
				var validChars="\[^\\s" + specialChars + "\]"
				var quotedUser="(\"[^\"]*\")"
				var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
				var atom=validChars + '+'
				var word="(" + atom + "|" + quotedUser + ")"
				var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
				var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
				var matchArray= eval('f.email_' + i + '.value.match(emailPat)')
				if (matchArray==null) {
				alert("Email address seems incorrect (check @ and .'s)");
				eval('f.email_' + i + '.focus();')
				return false
				}
				var user=matchArray[1]
				var domain=matchArray[2]
				if (user.match(userPat)==null) {
				 alert("The email username doesn't seem to be valid.");
				 eval('f.email_' + i + '.focus();')
				   return false
				}
				var IPArray=domain.match(ipDomainPat)
				if (IPArray!=null) {
				  for (var i=1;i<=4;i++) {
				    if (IPArray[i]>255) {
				        alert("Destination IP address is invalid!");
						eval('f.email_' + i + '.focus();')
					return false
				    }
				   }
				   return true
				}
				var domainArray=domain.match(domainPat)
				if (domainArray==null) {
				alert("The domain name doesn't seem to be valid.");
				eval('f.email_' + i + '.focus();')
				   return false
				}
				var atomPat=new RegExp(atom,"g")
				var domArr=domain.match(atomPat)
				var len=domArr.length
				if (domArr[domArr.length-1].length<2 || 
				   domArr[domArr.length-1].length>3) {
				  alert("The address must end in a three-letter domain, or two letter country.");
				  eval('f.email_' + i + '.focus();')
				  return false
				}
				if (len<2) {
				  var errStr="This address is missing a hostname!"
				  alert(errStr);
				  eval('f.email_' + i + '.focus();')
				  return false
				}
				// end email parsing
			}
		
		}
	flag = 0;
	}
}