	function valsignup() {
		var frm = document.forms['frmsignup'];
		if (frm.elements['full_name'].value=="") {
			alert("Please check that you have entered your name.");
			return false;
		}
		if (!emailCheck(frm.elements['email_address'].value)) {
			// alert("Please check that you have entered your e-mail address.");
			return false;
		} 
		if (frm.elements['password1'].value!=frm.elements['password2'].value || frm.elements['password1'].value=="" || frm.elements['password2'].value=="") {
			alert("Your passwords did not match.");
			return false;
		}
		if (frm.elements['security_code'].value=="" || frm.elements['security_code'].value.length!=6) {
			alert("The security code you entered appears to be invalid.");
			return false;
		}
		return true;
	}

	function valcontact() {
		var frm = document.forms['frmcontact'];
		if (!emailCheck(frm.elements['sender_address'].value)) {
			// alert("Please check that you have entered your e-mail address.");
			return false;
		} 
		if (frm.elements['security_code'].value=="" || frm.elements['security_code'].value.length!=6) {
			alert("The security code you entered appears to be invalid.");
			return false;
		}
		return true;
	}

	function checkMaxInput(form) {
		var maxLen = 500;
		var warnLen = 475;
		if (form.comments.value.length > maxLen) { 
			alert('You have reached the maximum number of characters allowed.');
			form.comments.value = form.comments.value.substring(0, maxLen);
		} else { 
			form.remLen.value = maxLen - form.comments.value.length;
		}
		if (form.comments.value.length > warnLen) { 
			form.remLen.style.color = '#FF0000';
		} else {
			form.remLen.style.color = '#000000';
		}
	}

	function emailCheck (emailStr) {
		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=emailStr.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 true;
		}
		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;
		}
		return true;
	}

	function ajaxFunction(){
		var ajaxRequest;  // The variable that makes Ajax possible!
		try{
			// Opera 8.0+, Firefox, Safari
			ajaxRequest = new XMLHttpRequest();
		} catch (e){
			// Internet Explorer Browsers
			try{
				ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try{
					ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e){
					// Something went wrong
					alert("Your browser broke!");
					return false;
				}
			}
		}
		// Create a function that will receive data sent from the server
		ajaxRequest.onreadystatechange = function(){
			if(ajaxRequest.readyState == 4){
				document.myForm.time.value = ajaxRequest.responseText;
			}
		}
		ajaxRequest.open("GET", "serverTime.php", true);
		ajaxRequest.send(null); 
	}
