	function Trim(strTrim){
      return RTrim(LTrim(strTrim));
   }

   function LTrim(strTrim){
      while( strTrim.indexOf(' ') == 0 ){ strTrim = strTrim.substring(1) }
      return strTrim;
   }

   function RTrim(strTrim){
      while( strTrim.lastIndexOf(' ') == strTrim.length-1 && strTrim.length > 0 ){ strTrim = strTrim.substring(0,strTrim.length-1) }
      return strTrim;
   }
	function emailCheck (emailStr) {

		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("The format of the email address is incorrect.")
			return false
		}
		var user=matchArray[1]
		var domain=matchArray[2]
		if (user.match(userPat)==null) {
			 alert("The email address is invalid.")
			 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 domainArray=domain.match(domainPat)
		if (domainArray==null) {
			alert("The domain name is invalid.")
			 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.")
			return false
		}

		if (len<2) {
			var errStr="The address is missing a hostname."
			alert(errStr)
			return false
		}

		return true;
	}
	
	function check()
    {
		  var strPass = Trim(document.page.password.value);
		  var strConfirmPass = Trim(document.page.password_confirm.value);
		  var Userreg = new RegExp("[^A-Za-z0-9 ]");
		  var Passreg = new RegExp("[^A-Za-z0-9]");
		  var strEmail = emailCheck(Trim(document.page.email.value));
		  if (strPass.length < 5) {
		  		alert("Passwords must be at least 5 characters.");
				document.page.password.focus();
				return false;
		  }
		  if (strPass.length > 16) {
		  		alert("Passwords cannot be longer than 16 characters.");
				document.page.password.focus();
				return false;
		  }
		  if (Passreg.test(strPass))
		  {
		 		alert("Only alphanumeric characters are allowed in passwords.");
				document.page.password.focus();
				return false;
		  }
		  if (strPass.indexOf(" ") >= 0)
		  {
			   alert(strPass.indexOf(" "));
		  		alert("Passwords cannot contain any spaces.");
				document.page.password.focus;
				return false;
		  }
		  if (strPass != strConfirmPass)
		  {
		  		alert("Passwords do not match.");
				document.page.password.focus();
				return false;
		  }
		  if (strEmail == false)
		  {
				document.page.email.focus();
				return false;
			}
		  return true;
    }