
	<!--
	// String Handling JavaScript Functions Written by:
	//    Scott Mitchell
	//    mitchell@4guysfromrolla.com
	//    http://www.4GuysFromRolla.com
	
	function Len(str)
	/***
			IN: str - the string whose length we are interested in
	
			RETVAL: The number of characters in the string
	***/
	{
		return String(str).length;
	}
	
	function LTrim(str)
	/***
			PURPOSE: Remove leading blanks from our string.
			IN: str - the string we want to LTrim
	
			RETVAL: An LTrimmed string!
	***/
	{
			var whitespace = new String(" \t\n\r");
	
			var s = new String(str);
	
			if (whitespace.indexOf(s.charAt(0)) != -1) {
				// We have a string with leading blank(s)...
	
				var j=0, i = s.length;
	
				// Iterate from the far left of string until we
				// don't have any more whitespace...
				while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
					j++;
	
	
				// Get the substring from the first non-whitespace
				// character to the end of the string...
				s = s.substring(j, i);
			}
	
			return s;
	}
	
	function RTrim(str)
	/***
			PURPOSE: Remove trailing blanks from our string.
			IN: str - the string we want to RTrim
	
			RETVAL: An RTrimmed string!
	***/
	{
			// We don't want to trip JUST spaces, but also tabs,
			// line feeds, etc.  Add anything else you want to
			// "trim" here in Whitespace
			var whitespace = new String(" \t\n\r");
	
			var s = new String(str);
	
			if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
				// We have a string with trailing blank(s)...
	
				var i = s.length - 1;       // Get length of string
	
				// Iterate from the far right of string until we
				// don't have any more whitespace...
				while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
					i=i-1;
	
	
				// Get the substring from the front of the string to
				// where the last non-whitespace character is...
				s = s.substring(0, i+1);
			}
	
			return s;
	}
	
	function Trim(str)
	/***
			PURPOSE: Remove trailing and leading blanks from our string.
			IN: str - the string we want to Trim
	
			RETVAL: A Trimmed string!
	***/
	{
			return RTrim(LTrim(str));
	}
	
	function IsNumeric(sText)
	{
	   var ValidChars = "0123456789";
	   var IsNumber=true;
	   var Char;
	 
	   for (i = 0; i < sText.length && IsNumber == true; i++) 
		  { 
		  Char = sText.charAt(i); 
		  if (ValidChars.indexOf(Char) == -1) 
			 {
			 IsNumber = false;
			 }
		  }
	   return IsNumber;
	}

	function JLeft(str, n)
	{
		if (n <= 0)
			return '';
		else if (n > String(str).length)
			return str;
		else
			return String(str).substring(0,n);
	}
	
	function JRight(str, n)
	{
		if (n <= 0)
		{
		   return '';
		}
		else if (n > String(str).length)
		{
		   return str;
		}
		else 
		{
		   var iLen = String(str).length;
		   return String(str).substring(iLen, iLen - n);
		}
	}

	function isMoney(str) {
	  var pattern = "0123456789,." 
	  var i = 0; 
	  do {
		var pos = 0; 
		for (var j=0; j<pattern.length; j++) 
		  if (str.charAt(i)==pattern.charAt(j)) {
	pos = 1; 
			break; 
		  } 
		i++; 
	  } while (pos==1 && i<str.length) 
	  if (pos==0) 
		return false; 
	
	  // now make sure that the decimal point, if any, 
	  // only appears one and at the (str.length-3) 
	  // position, so that the valid format is xxx.yy 
	  // the following statement also returns 
	  // false if there are 2 or more decimal points 
	 pos = str.indexOf("."); 
	  if (pos!=-1 && pos!=str.length-3) 
		return false 
	
	  // now check that if comma exists, the 
	  // format must be xxx,xxx,xxx,...,xxx 
	  if (pos==-1) 
		pos = str.length; 
	
	
	  while (str.lastIndexOf(",", pos-1) != -1) {
		if (str.lastIndexOf(",", pos-1) != pos-4) 
		  return false; 
		else 
		  pos -= 4; 
	  } 
	  return true; 
	} 

	function removeComma(str) {
	  var result = ""; 
	  for (var i=0; i<str.length; i++) 
		if (str.charAt(i)!=",") 
		  result += str.charAt(i); 
	  return result; 
	}
	-->
