function fnTrim(sString,bLCase){
	var sTrim = fnLTrim(sString);
	sTrim = fnRTrim(sTrim);
	if(bLCase)
		sTrim=sTrim.toLowerCase();
	return sTrim;
}

function fnLTrim(sString){
	while(1){
		if(sString.substring(0, 1) != " ")
			break;
		sString=sString.substring(1, sString.length);
	}
	return sString;
}

function fnRTrim(sString){
	while(1){
		if(sString.substring(sString.length-1,sString.length) != " ")
			break;
		sString=sString.substring(0, sString.length-1);
	}
	return sString;
}

function fnIsEmpty(sString){
  return ((sString == null) || (sString.length == 0))
}

function fnReplace(sSource, sSeek, sReplace){
	while(sSource.indexOf(sSeek)>-1) 
		sSource = sSource.replace(sSeek, sReplace);
	return sSource
}

function fnIsLetter (sCharacter, sOptionalCharacters) {
  if (((sCharacter >= "a") && (sCharacter <= "z")) || ((sCharacter >= "A") && (sCharacter <= "Z")))
  	return true;
  else if(sOptionalCharacters != null)
  	if (sOptionalCharacters.indexOf(sCharacter) != -1) return true; 
  return false;
}

function fnIsAlpha (sString, sOptionalCharacters) {
var nLoop, sCharacter;
  for (nLoop = 0; nLoop < sString.length; nLoop++) {
    sCharacter = sString.charAt(nLoop);
    if (!fnIsLetter (sCharacter, sOptionalCharacters)) return false;
  }
  return true;
}

function fnIsLetterNumber (sCharacter, sOptionalCharacters) {
  if ( ((sCharacter >= "a") && (sCharacter <= "z")) || ((sCharacter >= "A") && (sCharacter <= "Z")) || ((sCharacter >= "0") && (sCharacter <= "9")) )
  	return true;
  else if(sOptionalCharacters != null)
  	if (sOptionalCharacters.indexOf(sCharacter) != -1) return true; 
  return false;
}

function fnIsAlphaNumeric (sString, sOptionalCharacters) {
var nLoop, sCharacter;
  for (nLoop = 0; nLoop < sString.length; nLoop++) {
    sCharacter = sString.charAt(nLoop);
    if (!fnIsLetterNumber (sCharacter, sOptionalCharacters)) return false;
  }
  return true;
}

function fnIsDigit (sCharacter, sOptionalCharacters) {
  if ((sCharacter >= "0") && (sCharacter <= "9"))
    return true;
  else if(sOptionalCharacters != null)
  	if (sOptionalCharacters.indexOf(sCharacter) != -1) return true; 
  return false;
}
 
function fnIsNumeric (sString, sOptionalCharacters) {
var nLoop, sCharacter;
  for (nLoop = 0; nLoop < sString.length; nLoop++) {
    sCharacter = sString.charAt(nLoop);
    if (!fnIsDigit(sCharacter, sOptionalCharacters)) return false;
  }
  return true;
}

function fnContainsCharacter (sString, sCharacter){
	return (sString.indexOf(sCharacter) != -1);
}
