function CutString(aSubString,aString){
  var iIndex = aString.indexOf(aSubString,0);
  return (iIndex != -1) ? aString.slice(iIndex + aSubString.length): aString;
}

function GetURLFields(){
  var aFields = new Array()
  var sFields = '&' + unescape(CutString('?',location.href))
  var ampIndex, equIndex
  var iIndex = -1
  equIndex = sFields.lastIndexOf('=');
  while (equIndex != -1) {
    iIndex++;
    aFields[iIndex] = sFields.slice(equIndex + 1);
    ampIndex = sFields.lastIndexOf('&');
    sFields = sFields.slice(0,ampIndex);
    equIndex = sFields.lastIndexOf('=');
  }
  return aFields.reverse();
}

function ExtractFileName(sURL){
  var sFileName
  var iIndex = sURL.lastIndexOf('/');

  sFileName = (iIndex != -1) ? sURL.slice(iIndex + 1, sURL.length) : sURL
  iIndex = sFileName.indexOf('?');
  sFileName = (iIndex != -1) ? sFileName.slice(0, iIndex) : sFileName

  return sFileName
}

function ExtractURL(sURL){
  var sFileName
  var iIndex = sURL.lastIndexOf('/');

  sFileName = (iIndex != -1) ? sURL.slice(0, iIndex + 1) : sURL
  return sFileName + ExtractFileName(sURL)
}

function RemoveFileExt(sFile){
  var iIndex = sFile.lastIndexOf('.');
  return (iIndex != -1) ? sFile.slice(0, iIndex) : sFile;
}

function GetFileExt(sFile){
  var iIndex = sFile.lastIndexOf('.');
  return (iIndex != -1) ? sFile.slice(iIndex+1, 99) : '';
}

function LStripZeros(s){
  var i = 0

  while (i < s.length && "0".indexOf(s.charAt(i)) != -1)
    i++
  return s.substring(i, s.length)
}

function LTrim(s){
  var i = 0

  while (i < s.length && " \t\n\r".indexOf(s.charAt(i)) != -1)
    i++
  return s.substring(i, s.length)
}

function RTrim(s){
  var i = s.length -1
  while (i>=0 && " \t\n\r".indexOf(s.charAt(i)) != -1)
    i--

  return s.substring(0, i+1)
}

function Trim(s){
  return RTrim(LTrim(s))
}