function trim(text)
{
var trimmed

	trimmed = text
	if (trimmed.length == 0)
	{
		return trimmed
	}

	while (trimmed.charAt(trimmed.length - 1) == ' ')
	{
		trimmed = trimmed.substr(0, trimmed.length - 1)
	}

	while (trimmed.charAt(0) == ' ')
	{
		trimmed = trimmed.substr(1)
	}

	return trimmed
}

function ValidateEmail(sInput)
{
var ch;
var CountAts = 0;
var CountDots = 0;
var i;

	if (sInput.length < 5)
	{
		alert("Email address invalid:\n" + sInput + "\n\nInsufficient characters to be an email address");
		return false;
	}
      	
	sInput = sInput.toLowerCase();

	for (i = 0;  i < sInput.length;  i++)
	{
		ch = sInput.charCodeAt(i);
		// 97-112 a-z  48-57 0-9 38& 45_ 46. 64@ 95-
		if ((ch >= 97 && ch <= 122) || (ch >= 48 && ch <= 57) || ch == 38 || ch == 45 || ch == 46 || ch == 64 || ch == 95)
		{
			if (ch == 64)
			{
				CountAts++;
				if (i == 0 || i == (sInput.length - 1))
				{
					alert("Email address invalid:\n" + sInput + "\n\nAn email address cannot start or end with the @ symbol");
				return false;
				}
				if (sInput.charCodeAt(i - 1) == 46)
				{
					alert("Email address invalid:\n" + sInput + "\n\nImproper use of dots and @ symbol");
				return false;
				}
			}
			if (ch == 46)
			{
				CountDots++;
				if (i == 0 || i == (sInput.length - 1))
				{
					alert("Email address invalid:\n" + sInput + "\n\nAn email address cannot start or end with a dot");
				return false;
				}
				if (sInput.charCodeAt(i - 1) == 46 || sInput.charCodeAt(i - 1) == 64)
				{
					alert("Email address invalid:\n" + sInput + "\n\nImproper use of dots and/or @ symbol");
				return false;
				}
			}
		}
		else
		{
			alert("Email address invalid:\n" + sInput + "\n\nDisallowed characters: only letters, numbers and @._-& characters are permitted");
			return false;
		}
	}

	if (CountAts != 1)
	{
		alert("Email address invalid:\n" + sInput + "\n\nAn email address must contain exactly one @ symbol");
		return false;
	}

	if (sInput.substring(0, 4) == "www.")
	{
		alert("Your appear to be confusing your email address with a web address, by starting it with www.\n\nPlease remove the www and try again.");
		return false;
	}

	if (CountDots == 0)
	{
		alert("Email address invalid:\n" + sInput + "\n\nAn email address must contain at least one dot")
		return false;
	}

      return true;

}

//=======================================================================
function ValidatePlainText(t, bAllowSpaces, sFieldName)
{
var ch
var msg

	t = t.toLowerCase()

	for (i = 0;  i < t.length;  i++)
	{
		ch = t.charCodeAt(i)
		// 97-112 a-z  48-57 0-9
		if ((ch >= 97 && ch <= 122) || (ch >= 48 && ch <= 57) || (ch == 32 && bAllowSpaces == true))
		{
		}
		else
		{
			msg = sFieldName + " can only contain letters and numbers"
			if (bAllowSpaces == true)
			{
				msg = msg + " and spaces"
			}
			alert(msg)
			return false
		}
	}

	return true
}
