function validatelogin(FormName){
	flagerror=0;
	errormessage = "The following error(s) have occured. \n _________________________________________________________\n";
			
	if (document[FormName].loginemail.value == ""){
		errormessage = errormessage + "\n Please input your e-mail address.";
		flagerror = 1;
	}			
	
	else{
		var emailPat=/^(.+)@(.+)$/;
		var specialChars="\\(\\)<>@,;:{}`~'?!#$/|%^&*=+\\\\\\\"\\.\\[\\]";
		var validChars="\[^\\s" + specialChars + "\]";
		var firstChars=validChars;
		var quotedUser="(\"[^\"]*\")";
		var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
		var atom="(" + firstChars + validChars + "*" + ")";
		var word="(" + atom + "|" + quotedUser + ")";
		var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
		var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
		var emailadd=new String(trim(document[FormName].loginemail.value));
		var matchArray=emailadd.match(emailPat);
		
		if (matchArray == null){
			errormessage = errormessage + "\n E-mail address seems incorrect (check @ and .'s)";
			flagerror = 1;	
		}
		else{
			var user=matchArray[1]
			var domain=matchArray[2]
			// See if "user" is valid 
			if (user.match(userPat)==null) {
	   		// user is not valid
				errormessage = errormessage + "\n The e-mail address entered doesn't seem to be valid, please enter your correct e-mail address.";
				flagerror = 1;	
			}
			/* if the e-mail address is at an IP address (as opposed to a symbolic
	 		 host name) make sure the IP address is valid. */
			var IPArray=domain.match(ipDomainPat)
			if (IPArray!=null) {
	    	// this is an IP address
				for (var i=1;i<=4;i++) {
					if (IPArray[i]>255) {
						errormessage = errormessage + "\n Destination IP address is invalid!";
						flagerror = 1;			
					}
				}
				return true;
			}
			// Domain is symbolic name
			var domainArray=domain.match(domainPat)
			if (domainArray==null) {
				errormessage = errormessage + "\n The e-mail address entered doesn't seem to be valid, please enter your correct e-mail address.";			
				flagerror = 1;	
			}
			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) {
	   		// the address must end in a two letter or three letter word.
				errormessage = errormessage + "\n The e-mail address must end in a three-letter domain, or two letter country.";			
				flagerror = 1;	
			}
			if (domArr[domArr.length-1].length==3 && len<2) {
				errormessage = errormessage + "\n This e-mail address is missing a hostname!";			
				flagerror = 1;	
			}			
		}
	}
	
	if (document[FormName].loginpassword.value == ""){
		errormessage = errormessage + "\n Please input your password.";
		flagerror = 1;
	}	
	else
	{
		if(document[FormName].loginpassword.value.length  < 5)
		{	
			errormessage = errormessage + "\n You password must at least be 8 characters.";
			flagerror = 1;
		}	
	}	
	if(flagerror==1)
	{
		alert(errormessage);				
		return false;
	}

}

function trim(str) {
 return str.replace(/^\s+|\s+$/g,"");
}