	function validateJoinForm( form ){
		if ( !isValidEmailAddress( form.emailAddress.value ) ) {
			alert( 'Email address is invalid.' );
			return false;
		}
		
		if ( !isValidPassword( form.password.value ) ) {
			alert( 'Password is invalid.  Password must be between 8 and 20 characters.' );
			return false;
		}
		
		if ( !doesPasswordMatchConfirmPassword( form.password.value, form.confirmPassword.value ) ){
			alert( 'Both password fields must match.' );
			return false;
		}
		
		return true;
	}

    function isValidEmailAddress(emailAddress) {
       if (emailAddress.length == 0) {
           return false;
       }
       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=emailAddress.match(emailPat);
       if (matchArray == null) {
           return false;
       }
       var user=matchArray[1];
       var domain=matchArray[2];
       if (user.match(userPat) == null) {
           return false;
       }
       var IPArray = domain.match(ipDomainPat);
       if (IPArray != null) {
           for (var i = 1; i <= 4; i++) {
              if (IPArray[i] > 255) {
                 return false;
              }
           }
           return true;
       }
       var domainArray=domain.match(domainPat);
       if (domainArray == null) {
           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)) {
           return false;
       }
       if (len < 2) {
           return false;
       }
       return true;
    }

	function isValidPassword(password){
		if ( password.length < 8 || password.length > 20 ){
			return false;
		}
		
		return true;
	}

	function doesPasswordMatchConfirmPassword(password,confirmPassword){
		return ( password == confirmPassword );	
	}
