// javascript library for string manipulations
//
//  ProtoTypes:
//
//  function IsSpace (s)
//  function IsEmpty(s)
//  function IsIntegerStr (s)
//  function IsFloat (s)
//  function FormatNum (expr, dec)
//  function TrimChar    ( myString, myChar )
//  function TrimLeadChar( myString, myChar )
//  function TrimLeadZero( myString )
//  function StripIntegers(str)
// ------------------------------------------------------------------

function IsSpace (s)
{
  var i;
  for( i = 0; i < s.length; i ++ )
  {
    var oneChar = s.charAt( i );
    if( oneChar != " " )
      return false;
  }
  return true;
}

// ------------------------------------------------------------------

function IsEmpty(s)
{
  return ((s == null) || (s.length == 0) || (IsSpace(s)) || (s == "") )
}

// ------------------------------------------------------------------

function IsIntegerStr (s)
{
	var i;

	if (IsEmpty(s))
	{
	  return false;
	}
	else
	{
	  // HERE return reInteger.test(s)
	  for( i = 0; i < s.length; i ++ )
	  {
		  var oneChar = s.charAt( i );
		  if( oneChar < "0" || oneChar > "9" )
		  {
			  return false;
		  }
	  }
	}
	return true;
}

// ------------------------------------------------------------------

function IsFloat (s)
{
	if (IsEmpty(s))
	{
	  return false;
	}

	var i;
	var alreadyDecimal = false;

	for( i = 0; i < s.length; i ++ )
	{
	  var oneChar = s.charAt( i );
	  if( oneChar < "0" || oneChar > "9" )
	  {
		  if( oneChar == "." && !alreadyDecimal )
		  {
		    alreadyDecimal = true;
		  }
		  else if( i == 0 && oneChar == "-" )
		  {
		  }
		  else
		  {
		    return false;
		  }
	  }
	}
	return true;
}

// ------------------------------------------------------------------

// takes str and removes occurances of char

function TrimChar( myString, myChar )
{
  var returnString = "";
  for( i = 0; i < myString.length; i++ )
  {
    if( myString.charAt( i ) != myChar )
    {
      returnString = returnString + myString.charAt( i );
    }
  }
  return returnString;
}

// ------------------------------------------------------------------

function TrimLeadChar( myString, myChar )
{
  var string = myString;
  while( string.charAt( 0 ) == myChar )
  {
    string = string.substring( 1 );
  }

  return string;    //mystring has leading 'mychar' removed
}


// ------------------------------------------------------------------

function TrimLeadZero( myString )
{
  var string = TrimLeadChar( myString, '0' );

  //did we remove the last zero?
  if( string.length == 0)
  {
    string = "0"
  }

  return string;
}

// ------------------------------------------------------------------

function FormatNum (expr, dec)
{
  var str = "" + Math.round(parseFloat(expr) * Math.pow(10, dec));
  while (str.length <= dec)
  {
    str = "0" + str;
  }
  var decpoint = str.length - dec;
  return str.substring(0, decpoint) + "." + str.substring(decpoint, str.length);
}

// ------------------------------------------------------------------

function StripIntegers(str)
{
  var aStr = "";
  for (var i=0; i < (str.length); i++)
  {
    if (isInteger(str[i]))
    {
      aStr += str[i];
    }
  }
  return aStr;
}


// ------------------------------------------------------------------


