function Trim(sValue) {
	var objRegExp = /^(\s*)$/;
	if(objRegExp.test(sValue)) {
		sValue = sValue.replace(objRegExp, '');
		if(sValue.length == 0) {
			return sValue;
		}
	}
	objRegExp = /^(\s*)([\W\w]*)(\b\s*$)/;
	if(objRegExp.test(sValue)) {
		sValue = sValue.replace(objRegExp, '$2');
	}
	return sValue;
}

function checkEmail(sEmail) {
	if (sEmail != "" ) {
		var validChars = "\[^\\s\\(\\)<>@,;:\\\\\\\"\\.\\[\\]\]+"
		var quotedUser = "(\"[^\"]*\")"
		var atom = validChars
		var word = "(" + atom + "|" + quotedUser + ")"
		var userPat = new RegExp("^" + word + "(\\." + word + ")*$")
		var domainPat = new RegExp("^" + atom + "(\\." + atom +")*$")
		var emailPat = /^(.+)@(.+)$/
		var matchArray = sEmail.match(emailPat)
		if (matchArray == null) {
			return "Your Email Address seems incorrect (check @ AND .'s)"
		}
		var user = matchArray[1]
		var domain = matchArray[2]
		if (user.match(userPat) == null) {
			return "Your Email Address doesn't seem to be valid."
		}
		var ipDomainPat = /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
		var IPArray = domain.match(ipDomainPat)
		if (IPArray != null) {
			for (var i=1;i<=4;i++) {
				if (IPArray[i] > 255) {
					return "Destination IP address is invalid."
				}
			}
			return ""
		}
		var domainArray = domain.match(domainPat)
		if (domainArray == null) {
			 return "The domain name doesn't seem to be valid."
		}
		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 "The address must end in a three-letter domain, or two letter country."
		}
		if (len<2) {
			return "This address is missing a hostname."
		}
	}
	return ""
}
