var errmsg;

function validate() {
		var errhdr = "";
		errmsg = "";
		var errftr = "";
		
		var checkTLD=1;
		var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum|ca|travel)$/;
		var emailPat=/^(.+)@(.+)$/;
		var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
		var validChars="\[^\\s" + specialChars + "\]";
		var quotedUser="(\"[^\"]*\")";
		var atom=validChars + '+';
		var word="(" + atom + "|" + quotedUser + ")";
		var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
		var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
		var emailStr = "";
		var err=0;
		
		// document.forms. form name . field name
		
		// document.forms. form name . field name
		
		if (document.forms.postcard.to.value == '') {
			errmsg = errmsg +  "   > Please Enter Their Name\n";
		}
		if (document.forms.postcard.toemail.value == '') {
			errmsg = errmsg +  "   > Please Enter Their Email Address\n";
		}	
		if (document.forms.postcard.from.value == '') {
			errmsg = errmsg +  "   > Please Enter your Name\n";
		}
		if (document.forms.postcard.fromemail.value == '') {
			errmsg = errmsg +  "   > Please Enter Your Email Address\n";
		}	
		if (document.forms.postcard.message.value == '') {
			errmsg = errmsg +  "   > Please Enter Your Message\n";
		}


		
		 else {
				emailStr = document.forms.send.email.value;
				var matchArray=emailStr.match(emailPat);
				if (matchArray==null) {
					errmsg = errmsg + "   > Your E-mail address seems incorrect (check @ and .'s)\n";
				} else {
					var user=matchArray[1];
					var domain=matchArray[2];
					for (i=0; i<user.length; i++) {
						if ((user.charCodeAt(i) >= 0 && user.charCodeAt(i) <= 44) || (user.charCodeAt(i) == 47) || (user.charCodeAt(i) >= 58 && user.charCodeAt(i) <= 64) || (user.charCodeAt(i) >= 91 && user.charCodeAt(i) <= 94) || (user.charCodeAt(i) == 96) || (user.charCodeAt(i) >= 123)) {
							err = 1;
						}
					}
					if (err == 1) {
						errmsg = errmsg + "   > Your E-mail username contains invalid characters.\n";
						err=0;
					} 

					for (i=0; i<domain.length; i++) {
						if ((domain.charCodeAt(i) >= 0 && domain.charCodeAt(i) <= 44) || (domain.charCodeAt(i) == 47) || (domain.charCodeAt(i) >= 58 && domain.charCodeAt(i) <= 64) || (domain.charCodeAt(i) >= 91 && domain.charCodeAt(i) <= 94) || (domain.charCodeAt(i) == 96) || (domain.charCodeAt(i) >= 123)) {
							err = 1
						}
					}
					if (err==1) {
						errmsg = errmsg + "   > Your e-mail domain name contains invalid characters.\n";
						err = 0;
					}
					
					if (user.match(userPat)==null) {
							errmsg = errmsg + "   > Your e-mail username doesn't seem to be valid.\n";
					} 
					
					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) {
							err = 1;
						}
					}
					if (err == 1) {
						errmsg = errmsg + "   > Your E-mail's domain name does not seem to be valid.\n";
						err = 0;
					}
					if (checkTLD && domArr[domArr.length-1].length!=2 && 
						domArr[domArr.length-1].search(knownDomsPat)==-1) {
						errmsg = errmsg + "   > Your E-mail address must end in a well-known domain or two letter country.\n";
					}					
					if (len<2) {
						errmsg = errmsg + "   > Your E-mail address is missing a hostname!\n";
					}
				}
			}
			if (errmsg != "") {
				errhdr = "The following errors were found in the form:\n\n";
				errftr = "\nClick 'OK' to correct these errors.";
				errmsg = errhdr + errmsg + errftr;
				alert(errmsg);
				return false;
			} else {
				return true;
			}
}

function emailCheck (emailStr) {				
	// If we've gotten this far, everything's valid!
	return true;
}
