// (c) 2000 M.O'Neill - mark@i27.com
function subAwithBinC(a,b,c)
{
   var i = c.indexOf(a);
   var l = b.length;

   while (i != -1)
   {
      c = c.substring(0,i) + b + c.substring(i + a.length,c.length);
      i += l
      i = c.indexOf(a,i);
   }
   return c;
}


function Trim(theString)
{
   var i,firstNonWhite

   if (StripChars(" \n\r\t",theString).length == 0 ) return ""

   i = -1
   while (1)
   {
      i++
      if (theString.charAt(i) != " ")
         break	
   }
   firstNonWhite = i
   //Count the spaces at the end
   i = theString.length
   while (1)
   {
      i--
      if (theString.charAt(i) != " ")
         break	
   }	
   return theString.substring(firstNonWhite,i + 1)
}


function AllInRange(x,y,theString)
{
   var i, curChar
	
   for (i=0; i < theString.length; i++)
   {
      curChar = theString.charAt(i)
      if (curChar < x || curChar > y) //the char is not in range
	return false
   }
   return true
}


function reformat (s)
{
    var arg;
    var sPos = 0;
    var resultString = "";

    for (var i = 1; i < reformat.arguments.length; i++) {
       arg = reformat.arguments[i];
       if (i % 2 == 1) 
           resultString += arg;
       else 
       {
           resultString += s.substring(sPos, sPos + arg);
           sPos += arg;
       }
    }
    return resultString;
}


function StripChars(theFilter,theString)
{
   var strOut,i,curChar
   strOut = ""
   for (i=0;i < theString.length; i++)
   {		
      curChar = theString.charAt(i)
      if (theFilter.indexOf(curChar) < 0)	// if it's not in the filter, send it thru
      strOut += curChar		
   }	
   return strOut
}