// $Header: /export/home/davec/idx/js/RCS/gstring.js,v 1.1 2003/03/05 20:31:27 davec Exp $
// Description:
// String handling utility functions

//--------------------------------------------------------

function sTrim(sInString) {
	var sOutString = "";
	sOutString = sLTrim(sInString);
	sOutString = sRTrim(sOutString);
	return sOutString;
}

//--------------------------------------------------------

function sLTrim(sInString) {
	var sOutString = "" + sInString;
	var nIndex = 0;
	// if the passed string is null, set it to blank
	if (sInString == null) { sOutString = ""; }
	// new remove the leading spaces
	while (sOutString.charAt(nIndex) == " ") {
		nIndex++;
	}
	sOutString = sOutString.substring(nIndex, (sOutString.length));
	return sOutString;
}

//--------------------------------------------------------

function sRTrim(sInString) {
	var sOutString = "" + sInString;
	// if the passed string is null, set it to blank
	if (sInString == null) { sOutString = ""; }
	// first remove the trailing spaces
	while (sOutString.charAt(sOutString.length - 1) == " ") {
		sOutString = sOutString.substring(0,(sOutString.length - 1))
	}
	return sOutString;
}

//--------------------------------------------------------

function sReplaceStr(sInString, sFind, sReplace) {
	var sOutString = "";
	var sTmpString = "" + sInString;
	var nIndex = 0;
	var nFindLen = sFind.length;
	// if the passed string is null, set it to blank
	if (sInString == null) { return sOutString; }
	// if there is at least one of the requested string to replace
	if (sTmpString.indexOf(sFind) >= 0) {
		while (sTmpString.indexOf(sFind) >= 0) {
			// replace all *sFind* with "@"s
			nIndex = sTmpString.indexOf(sFind);
			sTmpString = sTmpString.substring(0, nIndex) + "@" + sTmpString.substring(nIndex + nFindLen, sTmpString.length);
		};
		while (sTmpString.indexOf("@") >= 0) {
			// replace all "@"s with *sReplace*
			nIndex = sTmpString.indexOf("@");
			sTmpString = sTmpString.substring(0, nIndex) + sReplace + sTmpString.substring(nIndex + 1, sTmpString.length);
		}
	}
	sOutString = sTmpString;
	return sOutString;
}

//--------------------------------------------------------

function sReplaceChar(sInString, sFind, sReplace) {
	var sOutString = "";
	var sTmpString = "" + sInString;
	var nIndex = 0;
	var nFindLen = sFind.length;
	// if the passed string is null, set it to blank
	if (sInString == null) { return sOutString; }
	// if there is at least one of the requested string to replace
	if (sTmpString.indexOf(sFind) >= 0) {
		while (sTmpString.indexOf(sFind) >= 0) {
			nIndex = sTmpString.indexOf(sFind);
			sTmpString = sTmpString.substring(0, nIndex) + sReplace + sTmpString.substring(nIndex + nFindLen, sTmpString.length);
		};
	}
	sOutString = sTmpString;
	return sOutString;
}

//--------------------------------------------------------

function sFilterNum(sNum) {
	// REMOVE ALL NON-NUMERIC CHARS
	var bHasDecimal = false;
	var sMinus = "";
	var sResult = "";
	var sChar = "";
	for(i=0;i<=sNum.length;i++) {
		sChar = sNum.charAt(i);
		if(sChar==".") {
			if (bHasDecimal) {
				return sMinus + sResult;
			} else {
				bHasDecimal = true;
				sResult = sResult + sChar;
			}
		} else if (sChar == "-") {
			sMinus = "-";
		} else if (sChar>="0" && sChar<="9") {
			sResult = sResult + sChar;
		}
	}
	return sMinus + sResult;
}

//--------------------------------------------------------


