function DoSort(index,headerflag)
{ sortindex = index; /* sortindex is global */
  MainArray.sort(ArrStrCompare);
  var reccount = MainArray.length;
  var numcols=2;
  var collength = parseInt(reccount / numcols);
  collength = reccount - collength; /* first col should be longest */
  var plug = ""; /* this should make subclassifications like alphabetical */
  var insert = "";
  if(cat2 != "")
    insert = " colspan=2";
  if(headerflag==0)
    kopje = "<table cellspacing=0 width=100% class=block><tr bgcolor=#ffffcc style=\'font-size:120%\'><td width=305>";
  else
    kopje = "<table cellpadding=0 cellspacing=0 width=100%><tr><td width=305>";
  kopje += "<a href=javascript:DoSort(0,1) class=top><b>Name</b></a>/<a href=javascript:DoSort(2,1) class=top><b>Genre</b></a>/<a href=javascript:DoSort(3,1) class=top><b>Year</b></a>/<a href=javascript:DoSort(9,0) class=top><b>Popularity</b></a></td><td align=right "+insert+"><a href=javascript:DoSort(6,0) class=top><b>"+cat1+"</b></a></td>";
  /* later to add <a href=javascript:DoSort(5,0) title="sort by popularity" class=top><b>Pop</b></a> */
  if(cat2 != '')
    kopje += "<td align=right><a href=javascript:DoSort(7,0) class=top><b>"+cat2+"</b></a></td>";
  kopje +=  "</tr>";
  var filler=kopje;
  var col=1;
  var firstincol = 1;
  var numr = "";
  for(j=0; j<reccount; j++)
  { if(headerflag == 1)
    { if(index==0)
        test = (MainArray[j][0].charAt(0)).toUpperCase();
      else
        test = MainArray[j][index];
      if(plug != test)
      { plug = test;
        if(firstincol==0)
          filler=filler+"</table>&nbsp;";
	if((index==3) && (test==9999)) /* unknown year */
	  hname = "unknown";
	else
	  hname = test;
        filler = filler + "<table cellspacing=0 class=block><tr class=kop><td colspan=5><a name="+test+"></a><b>"+hname+"</b></td></tr>";
      }
      else if(firstincol==1)
        filler += "<table cellspacing=0 class=block><tr class=kop><td colspan=5><b>"+hname+" (continued)</b></td></tr>";
    }
    if(index==9)
      numr = (j+1)+". ";
    filler = filler + "<tr><td>"+numr+"<a href="+sortoffset + MainArray[j][1] + ".htm>" + MainArray[j][0] + "</a> <i>("+MainArray[j][4]+";"+MainArray[j][8]+"m)</i></td><td align=right>";
    if(MainArray[j][6].substr(0,1) != "x")
      filler = filler + MainArray[j][6];
    if(cat2 != '')
      filler += "</td><td>&nbsp;</td><td align=right><font color=#119155>" + MainArray[j][7]+"</font>";
    filler += "</td></tr>";
    firstincol = 0; /* wel spatie voor kopje als het niet op de eerste regel staat */
    if((j+1 >= (col * collength)) && (col < numcols)) /* column change */
    { filler = filler+"</table>";
      divElt =  document.getElementById("div"+col);
      col++; 
      divElt.innerHTML = filler;
      firstincol=1;
      filler = kopje;
    }
 }
 divElt =  document.getElementById("div"+col);
 divElt.innerHTML = filler;
}

function ArrStrCompare(a,b)
{ if( a[sortindex].toUpperCase() > b[sortindex].toUpperCase())
   return 1;
  else if( a[sortindex].toUpperCase() < b[sortindex].toUpperCase())
   return -1;
  return 0;
}
