
function checkFields()
{
	var result = isEmail(document.getElementById('wpnewsletter_email')); // check email
	if ( result == "" )
	{
		if (document.getElementById('wpnewsletter_name').value != "")
		{
			document.forms['download'].submit();
		}
		else
		{
			alert("Please enter your first name");
		}
	}
	else
	{
		alert(result);
	}
}

function isEmail(x) 
{ 
	var emailStr=x.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=emailStr.match(emailPat); 

	if (matchArray==null) 
	  return "the email address seems incorrect (check @ and .'s)"; 

	var user=matchArray[1]; 
	var domain=matchArray[2]; 
	if (user.match(userPat)==null) 
	   return "the email address username doesn't seem to be valid"; 

	var IPArray=domain.match(ipDomainPat); 
	if (IPArray!=null) 
	{ 
		for (var i=1;i<=4;i++) { 
		   if (IPArray[i]>255) 
				return "the email address destination IP address is invalid"; 
		} 
		return ""; 
	}

	var domainArray=domain.match(domainPat); 
	if (domainArray==null) 
		return "the email address domain name doesn't seem to be valid."; 

	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>4) 
	   return "the email address must end in a three or four letter domain, or two letter country."; 

	if (len<2) 
	   return "the email address is missing a hostname"; 

	return "";
} 


