function Trim(value)
{
	return LTrim(RTrim(value)).toString();
}

function RTrim(value)
{
	return RTrimChars(value, " \t\r\n");
}

function LTrim(value)
{
	return LTrimChars(value, " \t\r\n");
}


function TrimChars(value, chars) {
	return LTrimChars(RTrimChars(value, chars), chars);
}

function LTrimChars(value, chars) {
	var sOut = new String(value.toString());
	var nPos = new Number();
	
	for (nPos=0;nPos<sOut.length;nPos++)
	{
		var sTest = new String(sOut.substring(nPos,nPos+1));
		var bFoundChar = new Boolean(false);
		for (var i=0;i<chars.length;i++) {
			if (typeof(chars)=="string") {
				if (sTest.toString().toLowerCase() == chars.substring(i, i+1).toLowerCase()) {
					bFoundChar = true;
				}
			} else {
				if (sTest.toString().toLowerCase() == chars[i].toString().toLowerCase()) {
					bFoundChar = true;
				}
			}
		}
		
		if (bFoundChar == false) {
			sOut = sOut.substring(nPos, sOut.length);
			break;
		}
	
	}
	
	return sOut.toString();
}


function RTrimChars(value, chars) {
	var sOut = new String(value.toString());
	var nPos = new Number();
	
	for (nPos=sOut.length-1;nPos>-1;nPos--)
	{
		var sTest = new String(sOut.substring(nPos,nPos+1));
		var bFoundChar = new Boolean(false);
		for (var i=0;i<chars.length;i++) {
			if (typeof(chars)=="string") {
				if (sTest.toString().toLowerCase() == chars.substring(i, i+1).toLowerCase()) {
					bFoundChar = true;
				}
			} else {
				if (sTest.toString().toLowerCase() == chars[i].toString().toLowerCase()) {
					bFoundChar = true;
				}
			}
		}
		
		if (bFoundChar == false) {
			sOut = sOut.substring(0, nPos+1);
			break;
		}
	
	}
	
	return sOut.toString();
}

function PadLeft(value, paddingChar, length) {
	var ch = new String();
	if ((paddingChar == null)||(paddingChar.toString().length==0)) {
		return value;
	}
	ch = paddingChar.toString().substring(0,1);
	
	var output = new String();
	var i = new Number();
	
	for (i=0;i<(parseInt(length, 10) - value.toString().length);i++) {
		output += ch;
	}
	
	if (value != null) {
		output += value.toString();
	}
	
	return output;
}

function PadRight(value, paddingChar, length) {
	var ch = new String();
	if ((paddingChar == null)||(paddingChar.toString().length==0)) {
		return value;
	}
	ch = paddingChar.toString().substring(0,1);
	
	var output = new String();
	var i = new Number();
	
	if (value != null) {
		output += value.toString();
	}
	
	for (i=0;i<(parseInt(length, 10) - value.toString().length);i++) {
		output += ch;
	}
	
	return output;
}


function ToCharArray(value) {
	var sValue = new String(value.toString());
	var i = new number();
	var arr = new Array();
	
	for (i=0;i<sValue.length;i++) {
		arr[i] = sValue.substring(i, i+1);
	}
	
	return arr;
}