// String Utilities
//---------------------------------------------------------------
function trim(str)
{
  var RetVal='';
  
  if(str!=null)
  {
    if(str!='')
    {
      RetVal=str;
      RetVal=righttrim(RetVal);
      RetVal=lefttrim(RetVal);
    }
  }
  
  return(RetVal);
}

function lefttrim(str)
{
  var RetVal='';
  
  var firstRealChar=-1,counter=0;
  
  if(str!=null)
  {
    if(str!='')
    {
      RetVal=str;
      for(counter=0;counter<str.length;counter++)
      {
        if(str.charAt(counter)!='\r' && str.charAt(counter)!='\n' && str.charAt(counter)!='\t' && str.charAt(counter)!=' ')
        {
          firstRealChar=counter;
          break;
        }      
      }
      
      if(firstRealChar!=-1)
        RetVal=str.substr(firstRealChar);
      else
        RetVal='';
    }
  }
  
  return(RetVal);
}

function righttrim(str)
{  
  var RetVal='';
  
  var lastRealChar=-1,counter=0;
  
  if(str!=null)
  {
    if(str!='')
    {
      RetVal=str;
      for(counter=str.length-1;counter>0;counter--)
      {
        if(str.charAt(counter)!='\r' && str.charAt(counter)!='\n' && str.charAt(counter)!='\t' && str.charAt(counter)!=' ')
        {
          lastRealChar=counter;
          break;
        }      
      }
      
      //alert(lastRealChar);
      if(lastRealChar!=-1)
        RetVal=str.substr(0,lastRealChar+1);
    }
  }
  
  return(RetVal);
}

// returns a structure with 3 members, arrayLengths (the size of the arrays... both are the same), 
// texts (an array of select option text values) and values (an array of select option value values)
// For example, if the call var myvar=createSelectArrays(someString); were completed successfully,
// myvar  would have 3 members: myvar.arrayLengths, myvar.texts and myvar.values
function createSelectArrays(inputStr,fieldDelimiter)
{
  var workingString='';
  var workingArray;
  var arrayLengths=0;
  var counter;
  var line,idx,val;
  var dashAt;
  var texts=null,values=null;
    
  if(inputStr!=null)
  {
    if(inputStr!='')
    {
      workingString=trim(inputStr);
      if(workingString!='')
      {
        workingString=workingString.replace('\r\n','\n');
        workingArray=workingString.split('\n');
        arrayLengths=workingArray.length;
        texts=new Array(arrayLengths);
        values=new Array(arrayLengths);
        for(counter=0;counter<arrayLengths;counter++)
        {
          line=workingArray[counter];
          dashAt=line.indexOf('|');
          if(dashAt!=-1)
          {
            idx=line.substr(0,dashAt);
            val=line.substr(dashAt+1);

            if(fieldDelimiter!=null)
            {
              if(fieldDelimiter!='')
              {
                while(val.indexOf('|')>-1)
                {
                  val=val.replace('| ','|');
                  val=val.replace(' |','|');
                  val=val.replace('|',fieldDelimiter);
                }
              }
            }
            idx=trim(idx);
            val=trim(val);
            texts[counter]=val;
            values[counter]=idx;
          }
        }
      }
    }
  }
  
  return{arrayLengths:arrayLengths,texts:texts,values:values};
}
//---------------------------------------------------------------
// String Utilities


function fixLength(s, l)
{
    if (s.length <= l) return s;
    return s.substr(0, l);
}
