
function CheckFor(forname_here,fieldname_here,name) 
 {
     strgI = ""
	 strg = eval('document.'+forname_here+'.'+fieldname_here+'.value');
	 strglen = strg.length;
	 count = 0;
	 for(i=0;i<=strglen;i++){ 
		        strgI = strg.charAt(i);
				if(strgI.indexOf(" ") > -1){
				  count = count + 1;
				}							
		}
	 if (strglen == count){
	           alert('The '+ name +' field is blank.');
		       eval('document.'+forname_here+'.'+fieldname_here+'.focus()');
		       return false;
	    }
  return true;
}



function checkForm(formname, count)
{
	for (i=0; i < eval('document.' + formname + '.length') ; i++)
	{
		if (eval('document.' + formname + '.elements[' + i + '].type') == "text" || eval('document.' + formname + '.elements[' + i + '].type') == "textarea")
		{
	        stringer = eval('document.' + formname + '.elements[' + i + '].value');
		}
		else
		{
			stringer = "";
		}
	
		if ((stringer.indexOf("<") != -1)||(stringer.indexOf(">") != -1))
		{
			var alertString = "Sorry, but you have entered illegal characters (< or >) into this form.";
			trackFormError(count, alertString, "Email-Colleague");
			alert(alertString);
			eval('document.' + formname + '.elements[' + i + '].focus()');
			return false;
		}
		if ((stringer.indexOf("'") != -1)||(stringer.indexOf("\"") != -1))
		{
			var alertString = "Please do not enter single or double quotes into this form.";
			trackFormError(count, alertString, "Email-Colleague");
			alert('Please do not enter single or double quotes into this form.');
			eval('document.' + formname + '.elements[' + i + '].focus()');
			return false;
		}	
	}

	fromName = eval('document.' + formname + '.fromName.value');
	if (fromName == "")
	{
		var alertString = "Please enter your name.";
		trackFormError(count, alertString, "Email-Colleague");
		alert(alertString);
		eval('document.' + formname + '.fromName.focus()');
		return false;
	}
	
	onward = CheckFor(formname,'fromName','name');
		   if(!onward)
		       {
			   return false;
		       }		   
	
	var fromEmail = eval('document.' + formname + '.fromEmail.value');
	var checkFromEmail = checkEmail(formname,fromEmail,'fromEmail','your');
		
	if (checkFromEmail == false)
	{
		return false;
	}	
	
	
	toMessage = eval('document.' + formname + '.toMessage.value');
	/*
	if (toMessage == "")
	{
		alert("Please enter your message.");
		eval('document.' + formname + '.toMessage.focus()');
		return false;
	}
	*/
	
	if (toMessage.length > 999)
	{
		var alertString = "The information in your message field is too long. Please complete your message in 999 characters or less.";
		trackFormError(count, alertString, "Email-Colleague");
		alert(alertString);
		eval('document.' + formname + '.toMessage.focus()');
		return false;
	}
	
	
	//onward = CheckFor(formname,'toMessage','message')
	//	   if(!onward)
		//       {
		//	   return false;
		//       }	
	
	toName = eval('document.' + formname + '.toName.value');
	if (toName == "")
	{
		var alertString = "Please enter your colleague's name.";
		trackFormError(count, alertString, "Email-Colleague");
		alert(alertString);
		eval('document.' + formname + '.toName.focus()');
		return false;
	}
	
	onward = CheckFor(formname,'toName','colleague name');
		   if(!onward)
		       {
			   return false;
		       }	
	
	// check for valid email address
	var toEmail = eval('document.' + formname + '.toEmail.value');
	var checkToEmail = checkEmail(formname,toEmail,'toEmail','your colleague\'s');
	if (checkToEmail == false)
	{
		return false;
	}

}


function checkEmail(formname,emailVal,emailName,textName)
{
	// check for valid email address
		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 = emailVal.match(emailPat)
		
		if (emailVal == "")
		{
		alert("Please correct "+textName+" email address. Fix any symbols or spaces.");
		eval('document.' + formname + '.' + emailName + '.focus()');
		return false;
		}
		//Check for multiple @ symbols
		var i=0;
		var numberofamps = 0;
		while(i<=emailVal.length) {
	
			if (emailVal.substring(i,i+1) == "@") {
				numberofamps++;
				
			}
			
			if (numberofamps > 1){
				alert("Please correct " + textName +  " email address. There are too many '@' symbols.")
				eval('document.' + formname + '.' + emailName + '.focus()');
				return false;
			
			}
			
			i++; 
		}
		// check for @ and .
		if (matchArray == null)
		{
		alert("Please correct "+textName+" email address. Fix any symbols or spaces.")
		eval('document.' + formname + '.' + emailName + '.focus()');
		return false;
		}
		
		var user = matchArray[1]
		var domain = matchArray[2]
		var IPArray = domain.match(ipDomainPat)
		
		if (IPArray!=null) 
		{
		for (var i=1;i<=4;i++)
		{
		if (IPArray[i]>255)
			{
		    alert("Please correct "+textName+" email address. Fix any symbols or spaces.")
			eval('document.' + formname + '.' + emailName + '.focus()');
			return false;
		    }
		}
		return 
		}
		
		var domainArray=domain.match(domainPat)
		
		if (domainArray==null)
		{
		alert("Please correct "+textName+" email address. Fix any symbols or spaces.")
		eval('document.' + formname + '.' + emailName + '.focus()');
		   return false;
		}
		
		// checking for valid .com, .org, etc.
		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("Please correct "+textName+" email address. Fix any symbols or spaces.")
		eval('document.' + formname + '.' + emailName + '.focus()');
		return false;
		}
		
		if (len<2)
		{
		var errStr="This address is missing a hostname."
		alert("Please correct "+textName+" email address. Fix any symbols or spaces.")
		eval('document.' + formname + '.' + emailName + '.focus()');  
		return false;
		}
}
