/* --------------------------------
** FUNCTION:
**   fnNumberList
** DESCRIPTION:
**   This function numbers each element of a string list
**   allowing for various parameters such as the
**   increment value, the frequency of lines to number etc
** DEPENDENCIES:
**   none.
** DATE:
** 
   -------------------------------- */

function fnNumberList(
  sList,
  sDivisor, iStartValue, iIncrementValue,
  iStartLine, iLineModulus)
{
  var sReturn = new String("");
  var iNumber = 0;

  if (sList == null)
  {
    var sErrorMessage =
      "ERROR:      \n" +
      "------      \n" +
      "  function:  fnNumberList                 \n" +
      "  Parameter: sList                      \n\n" +
      "    A required parameter was omitted from \n" +
      "    the function.                         \n";
    document.write(sErrorMessage);
    return -1;
  } //-- if

  if (sDivisor == null)
    { sDivisor = "\n"; }

  if ((iLineModulus == null) || (iLineModulus < 1))
    { iLineModulus = 1; }

  var aaList  = sList.split(sDivisor);

  if (iStartLine == null)
    { iStartLine = 0; }

  if (iIncrementValue == null)
    { iIncrementValue = 1; }

  if (iStartLine > aaList.length)
    { iStartLine = aaList.length; }

  if (iStartValue == null)
    { iStartValue = 1; }

  iNumber = iStartValue;
  for (var ii = 0; ii < iStartLine; ii++)
  {
    sReturn += " " + aaList[ii] + sDivisor; 
  }

  // iLineModulus = 1;
  for (ii = iStartLine; ii < aaList.length; ii++)
  {
    if ((ii % iLineModulus) == 0)
    {
      sReturn += iNumber + " " + aaList[ii] + sDivisor;
      iNumber = parseInt(iNumber);
      iNumber += parseInt(iIncrementValue);
    }
    else
    {
      sReturn += " " + aaList[ii] + sDivisor; 
    } //-- if, else
  } //--for 

  return sReturn;

} //-- fnNumberList