function trim(s) {
  while (s.substring(0,1) == ' ') {
	s = s.substring(1,s.length);
  }
  while (s.substring(s.length-1,s.length) == ' ') {
	s = s.substring(0,s.length-1);
  }
  return s;
}

  
function isValidEmail(email, required) {
if (required==undefined) {   // if not specified, assume it's required
	required=true;
}
if (email==null) {
	if (required) {
		return false;
	}
	return true;
}
if (email.length<5) {  
	if (required) {
		return false;
	}
	return true;
}
if (! allValidChars(email)) {  // check to make sure all characters are valid
	return false;
}
if (email.indexOf("@") < 1) { //  must contain @, and it must not be the first character
	return false;
} else if (email.lastIndexOf(".") <= email.indexOf("@")) {  // last dot must be after the @
	return false;
} else if (email.indexOf("@") == email.length) {  // @ must not be the last character
	return false;
}

return true;
}

function allValidChars(email) {
  var parsed = true;
  var validchars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@_.-";
  for (var i=0; i < email.length; i++) {
    var letter = email.charAt(i);
    if (validchars.indexOf(letter) != -1)
      continue;
    parsed = false;
    break;
  }
  return parsed;
}
