function checkform()
{
if (document.postcard.sendmail.value=="")
	{
	alert("Please fill in your email address.\r\nA valid address is required to tell the receiver who this postcard is from!");
	document.postcard.sendmail.focus();
	return false;
	}
if (document.postcard.sendname.value== "")
	{
	alert("Please fill in your name.\r\nYour name is required to tell the receiver who this postcard is from!");
	document.postcard.sendname.focus();
	return false;
	}
if (document.postcard.getmail.value=="")
	{
	alert("Please fill in the receivers email address.\r\nA valid address is required in order to send the postcard!");
	document.postcard.getmail.focus();
	return false;
	}
if (document.postcard.getname.value== "")
	{
	alert("Please fill in your recipients name.\r\nTheir name is required to send them the postcard and to avoid them thinking this is annonymous spam!");
	document.postcard.getname.focus();
	return false;
	}
if (document.postcard.subject.value=="")
	{
	alert("A valid subject is required to send this postcard.");
	document.postcard.subject.focus();
	return false;
	}
if (document.postcard.emessage.value=="")
	{
	alert("Please write a message with this postcard!");
	document.postcard.emessage.focus();
	return false;
	}
if (document.postcard.spam.value=="")
	{
	alert("Please complete the spam prevention question in order to send this postcard!");
	document.postcard.spam.focus();
	return false;
	}
if (document.postcard.getmail.value != "")
	{
		var checkTLD=1;
		
		var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
		
		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=document.postcard.getmail.value.match(emailPat);
		
		if (matchArray==null) {
		
		alert("Email address seems incorrect (check @ and .'s)");
		 return false;
		}
		var user=matchArray[1];
		var domain=matchArray[2];
		
		for (i=0; i<user.length; i++) 	
			{
			if (user.charCodeAt(i)>127) 
				{
				alert("Ths username contains invalid characters.");
				 return false;
				}
			}
		for (i=0; i<domain.length; i++) 
			{
			if (domain.charCodeAt(i)>127) 
				{
				alert("Ths domain name contains invalid characters.");
				 return false;
				}
			}
		if (user.match(userPat)==null) 
			{
			alert("The username doesn't seem to be valid.");
			 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!");
					 return false;	
					}
				}
			 return false;
			}
		 
		var atomPat=new RegExp("^" + atom + "$");
		var domArr=domain.split(".");
		var len=domArr.length;
		for (i=0;i<len;i++) {
		if (domArr[i].search(atomPat)==-1) {
		alert("The domain name does not seem to be valid.");
			 return false;
		   }
		}
		
		
		if (checkTLD && domArr[domArr.length-1].length!=2 && 
		domArr[domArr.length-1].search(knownDomsPat)==-1) {
		alert("The address must end in a well-known domain or two letter " + "country.");
			 return false;
		}
		
		if (len<2) {
		alert("This address is missing a hostname!");
		 return false;
		}
	}
if (document.postcard.sendmail.value != "")
	{
		var checkTLD=1;
		
		var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
		
		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=document.postcard.sendmail.value.match(emailPat);
		
		if (matchArray==null) {
		
		alert("Email address seems incorrect (check @ and .'s)");
		 return false;
		}
		var user=matchArray[1];
		var domain=matchArray[2];
		
		for (i=0; i<user.length; i++) 	
			{
			if (user.charCodeAt(i)>127) 
				{
				alert("Ths username contains invalid characters.");
				 return false;
				}
			}
		for (i=0; i<domain.length; i++) 
			{
			if (domain.charCodeAt(i)>127) 
				{
				alert("Ths domain name contains invalid characters.");
				 return false;
				}
			}
		if (user.match(userPat)==null) 
			{
			alert("The username doesn't seem to be valid.");
			 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!");
					 return false;	
					}
				}
			 return false;
			}
		 
		var atomPat=new RegExp("^" + atom + "$");
		var domArr=domain.split(".");
		var len=domArr.length;
		for (i=0;i<len;i++) {
		if (domArr[i].search(atomPat)==-1) {
		alert("The domain name does not seem to be valid.");
			 return false;
		   }
		}
		
		
		if (checkTLD && domArr[domArr.length-1].length!=2 && 
		domArr[domArr.length-1].search(knownDomsPat)==-1) {
		alert("The address must end in a well-known domain or two letter " + "country.");
			 return false;
		}
		
		if (len<2) {
		alert("This address is missing a hostname!");
		 return false;
		}
	}
//emailCheck(document.postcard.getmail.value);

return true;
}

