function trimValue (ptValue)
	{
	var tReturnString = ptValue.toString(); 
	while (tReturnString.charAt (tReturnString.length - 1) == " ") 
		tReturnString = tReturnString.substring(0, tReturnString.length - 1); 
	while (tReturnString.charAt(0) == " ") 
		tReturnString = tReturnString.substring (1, tReturnString.length); 
  	
  	return tReturnString;
	}
function isInteger (ptNumber)
	{
	var tNumberToChar = ptNumber.toString ();
	var regularExpression = / /g;
	tNumberToChar = tNumberToChar.replace (regularExpression, "");
	if (tNumberToChar == '') return false;
	if (!(isNaN(ptNumber)))
		{
		if (tNumberToChar.indexOf ('.') >= 0)
			return false;
		}
	else
		{
		return false;
		}
	if (tNumberToChar.length > 6)
		return false;
	else
		return true;
	}
function isLong (ptNumber)
	{
	var tNumberToChar = ptNumber.toString ();
	var regularExpression = / /g;
	tNumberToChar = tNumberToChar.replace (regularExpression, "");
	if (tNumberToChar == '') return false;
	if (!(isNaN(ptNumber)))
		{
		if (tNumberToChar.indexOf ('.') >= 0)
			return false;
		}
	else
		{
		return false;
		}
	if (tNumberToChar.length > 11)
		return false;
	else
		return true;
	}
function isSingle (ptNumber)
	{
	var tNumberToChar = ptNumber.toString();
	var regularExpression = / /g;
	tNumberToChar = tNumberToChar.replace (regularExpression, "");
	if (tNumberToChar == '') return false;
	return (!isNaN(tNumberToChar));
	}
function isDouble (ptNumber)
	{
	var tNumberToChar = ptNumber.toString();
	var regularExpression = / /g;
	tNumberToChar = tNumberToChar.replace (regularExpression, "");
	if (tNumberToChar == '') return false;
	return (!isNaN(tNumberToChar));
	}
function isMoney (ptValue)
	{
	var tNumberToChar = ptValue.toString();
	var regularExpression = / /g;
	tNumberToChar = tNumberToChar.replace (regularExpression, "");
	if (tNumberToChar == '') return false;
	if (!isNaN(tNumberToChar))
		{
		if (tNumberToChar.length > 15)
			return false;
		else
			return true;
		}
	else
		return false;
	}
function stringLength (ptValue)
	{
	var tValue = ptValue.toString();
	return tValue.length;
	}
function isSearchStringExists (ptStringToBeSearchedIn, ptStringToBeSearchedFor)
	{	
	var tStringToBeSearchedIn = ptStringToBeSearchedIn.toString();

	if (tStringToBeSearchedIn.indexOf (ptStringToBeSearchedFor) >= 0)
		return true;
	return false;
	}	
function isEmail (ptEmail)
	{
	ptEmail = ptEmail.toLowerCase();

	var checkTLD=1;

	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;

	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=ptEmail.match(emailPat);

	if (matchArray == null)
		{
		alert("Email address seems incorrect (check @ and .'s)");
		return false;
		}

	var user=matchArray[1];
	var domain=matchArray[2];

	for (i=0; i<user.length; i++)
		{
		if (user.charCodeAt(i) > 127)
			{
			alert("Ths username contains invalid characters.");
			return false;
			}
		}

	for (i=0; i<domain.length; i++)
		{
		if (domain.charCodeAt(i) > 127)
			{
			alert("Ths domain name contains invalid characters.");
			return false;
			}
		}

	if (user.match(userPat) == null)
		{
		alert("The username doesn't seem to be valid.");
		return false;
		}

	var IPArray=domain.match(ipDomainPat);
	if (IPArray != null)
		{
		for (var i=1;i<=4;i++)
			{
			if (IPArray[i]>255)
				{
				alert("Destination IP address is invalid!");
				return false;
				}
			}
		return true;
		}

	var atomPat=new RegExp("^" + atom + "$");
	var domArr=domain.split(".");
	var len=domArr.length;

	for (i=0; i<len; i++)
		{
		if (domArr[i].search(atomPat) == -1)
			{
			alert("The domain name does not seem to be valid.");
			return false;
			}
		}

	if (checkTLD && domArr[domArr.length-1].length != 2 &&
		domArr[domArr.length-1].search(knownDomsPat) == -1)
		{
		alert("The email address must end in a well-known domain or two letter " + "country.");
		return false;
		}
	if (len < 2)
		{
		alert("This email address is missing a hostname!");
		return false;
		}
	return true;
	}

function calculateNoOfCharacters (ptFormName, ptFieldName, ptFieldDescription)
	{
	var objFormField;
	var tStr;

	objFormField = eval('window.document.' + ptFormName + '.' + ptFieldName);
	tStr = new String (objFormField.value);
	alert ('Number of characters in ' + ptFieldDescription + ' : ' + tStr.length);
	objFormField.focus();
	}

function formatMoney (ptValue)
	{
	if (isMoney (ptValue))
		{
		return (formatValue (ptValue, 2));
		}
	return ptValue;
	}

function formatValue (ptValue, NumberOfDecimalPlaces) 
	{
	var calculatedValue ;

	calculatedValue = ptValue * Math.pow (10, NumberOfDecimalPlaces);
	calculatedValue = Math.round (calculatedValue);
	calculatedValue = calculatedValue / Math.pow (10, NumberOfDecimalPlaces);

	return calculatedValue;
	}
function selectComboOption (objCombo, tOptionValue, ptFunctionToBeCalled)
	{
	var noOfOptions = objCombo.options.length;
	var i;
	for (i = 0; i < noOfOptions; i++)
		{
		if (objCombo.options [i].value == tOptionValue)
			{
			objCombo.selectedIndex = i;
			}
		}
	if (ptFunctionToBeCalled != null)
		eval (ptFunctionToBeCalled);
	}
function IsAtLeastOneCheckBoxChecked (ptFormName, ptCheckBoxName)
	{
	if (!(eval ('window.document.' + ptFormName + '.' + ptCheckBoxName)))
		return false;

	var objCheckBox = eval ('window.document.' + ptFormName + '.' + ptCheckBoxName);

	if (eval (objCheckBox.length))
		{
		for (var i = 0; i < objCheckBox.length; i++)
			{
			if (objCheckBox [i].checked)
				return true;
			}
		}
	else
		{
		if (objCheckBox.checked)
			return true;
		}
	return false;
	}
