	function validatepost (addform){
		if (trim(addform.category.value) == "nogo"){
			alert ("Please select a topic.");
			addform.category.focus();
			return false;
		}
		if (trim(addform.message.value) == ""){
			alert ("Please enter a message.");
			addform.message.focus();
			return false;
		}
		return true;
	}
	
	function validateform(addform){
		if (trim(addform.firstname.value) == ""){
			alert ("Please enter your first name.");
			addform.firstname.focus();
			return false;
		}
		if (!validEmail (addform.email.value)){
			alert ("Please enter a valid email address");
			addform.email.focus();
			return false;
		}
		
		var illegalChars = /\W/;
  		// allow only letters, numbers, and underscores
  		if (illegalChars.test(trim(addform.username.value))) {
			alert ("Username may only contain letters, numbers, and underscores.");
			addform.username.focus();
			return false;
		}
  		
  		if (trim(addform.username.value) == ""){
			alert ("Username cannot be empty.");
			addform.username.focus();
			return false;
		}
		if (trim(addform.username.value.length) < 5){
			alert ("Username must be longer than 5 characters in length.");
			addform.username.focus();
			return false;
		}
		
		if (illegalChars.test(trim(addform.password.value))) {
			alert ("Password may only contain letters, numbers, and underscores.");
			addform.password.focus();
			return false;
		}
		
		if (trim(addform.password.value) == ""){
			alert ("Password cannot be empty.");
			addform.password.focus();
			return false;
		}
			
		if (trim(addform.password.value.length) < 5){
			alert ("Password must be longer than 5 characters in length.");
			addform.password.focus();
			return false;
		}
		
		if (trim (addform.password.value) != trim (addform.confpass.value)){
			alert ("Your passwords do not match.");
			addform.password.focus();
			return false;
		}
		
		return true;
	}
	function trim(inputString) {
	   // Removes leading and trailing spaces from the passed string. Also removes
	   // consecutive spaces and replaces it with one space. If something besides
	   // a string is passed in (null, custom object, etc.) then return the input.
	   if (typeof inputString != "string") { return inputString; }
	   var retValue = inputString;
	   var ch = retValue.substring(0, 1);
	   while (ch == " ") { // Check for spaces at the beginning of the string
	      retValue = retValue.substring(1, retValue.length);
	      ch = retValue.substring(0, 1);
	   }
	   ch = retValue.substring(retValue.length-1, retValue.length);
	   while (ch == " ") { // Check for spaces at the end of the string
	      retValue = retValue.substring(0, retValue.length-1);
	      ch = retValue.substring(retValue.length-1, retValue.length);
	   }
	   while (retValue.indexOf("  ") != -1) { // Note that there are two spaces in the string - look for multiple spaces within the string
	      retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); // Again, there are two spaces in each of the strings
	   }
	   return retValue; // Return the trimmed string back to the user
	} // Ends the "trim" function

	//Function to validate email addresses
	function validEmail(email){
		invalidChars = " /:,;";
		
		if (email == ""){
			return false;
		}
		
		for (i=0; i<invalidChars.length; i++){
			badChar = invalidChars.charAt(i);
			if (email.indexOf(badChar,0) > -1){
				return false;
			}
		}
		atPos = email.indexOf("@",1);
		if (atPos == -1){
			return false;
		}
		if (email.indexOf("@",atPos+1) > -1){
			return false;
		}
		periodPos = email.indexOf(".",atPos);
		if (periodPos+3 > email.length){
			return false;
		}
		return true;
	}
