var submitcount=0;
function getParams()
{
	idx=self.document.URL.indexOf('?');
	params=new Array();
	if(idx!=-1)
	{
		pairs=self.document.URL.substring(idx+1,self.document.URL.length).split('&');
		for(i=0;i<pairs.length;i++)
		{
			nameVal=pairs[i].split('=');
			params[nameVal[0]]=nameVal[1];
		}
	}
	return params;
}
params=getParams();
function Checkform(form)
{
	Sub=unescape(params["subject"]);
	if(Sub!="undefined") form.Subject.value=Sub;
	if(form.Name.value=="")
	{
		alert("Please enter your name then re-submit this form.");
		submitcount=0;
		form.Name.focus();
		return;
	}
	if(form.Email.value=="")
	{
		alert("Please enter your email then re-submit this form.");
		submitcount=0;
		form.Email.focus();
		return;
	}
	else
	{
		var emailStr=form.Email.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)
		{
			alert("Email address seems incorrect (check @ and .'s)");
			submitcount=0;
			form.Email.focus();
			return false;
		}
		var user=matchArray[1];
		var domain=matchArray[2];
		if(user.match(userPat)==null)
		{
			alert("The username doesn't seem to be valid.");
			submitcount=0;
			form.Email.focus();
			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!");
					submitcount=0;
					form.Email.focus();
					return false;
				}
			}
			return true;
		}
		var domainArray=domain.match(domainPat);
		if(domainArray==null)
		{
			alert("The domain name doesn't seem to be valid.");
			submitcount=0;
			form.Email.focus();
			return false;
		}
		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("The address must end in a three-letter domain, or two letter country.");
			submitcount=0;
			form.Email.focus();
			return false;
		}
		if(len<2)
		{
			var errStr="This address is missing a hostname!";
			alert(errStr);
			submitcount=0;
			form.Email.focus();
			return false;
		}
	}
	if(form.Message.value=="")
	{
		alert("Please enter your message then re-submit this form.");
		submitcount=0;
		form.Message.focus();
		return;
	}
	if(submitcount==0)
	{
		submitcount++;
		form.submit();
	}
	else 
	{
		alert("This form has already been submitted. Thanks!");
		return false;
	}
}
