var sloupec, metoda_trideni;
var tabulka = document.getElementById("tb");
var telo_tabulky = tabulka.getElementsByTagName("tbody")[0];
var radky = telo_tabulky.getElementsByTagName("tr");
var pocetradku = radky.length;
var pocetsloupcu = radky[0].getElementsByTagName("td").length;
var smer_trideni = new Array();
for (var i=0;i<pocetsloupcu;i++) smer_trideni[i] = -1;

var udaje = new Array();
var virtualni_radky = new Array();

for (var i=0;i<pocetradku;i++) {
  virtualni_radky[i] = radky[i].cloneNode(true);
  var bunky = virtualni_radky[i].getElementsByTagName("td");
  udaje[i] = new Array();
  udaje[i][0] = i;
  for (var j=0;j<pocetsloupcu;j++) {
    udaje[i][j+1] = bunky[j].firstChild.data;
  }
}

function srovnej(i,j) {
  var hodnota1 = i[sloupec+1];
  var hodnota2 = j[sloupec+1];
  switch (metoda_trideni) {
    case 0: return smer_trideni[sloupec]*hodnota1.localeCompare(hodnota2);
    case 1: return smer_trideni[sloupec]*(hodnota1-hodnota2);
  }
}

function serad(s,m) {
  var j;
  sloupec = s;
  metoda_trideni = m;
  smer_trideni[sloupec] = -smer_trideni[sloupec];
  udaje.sort(srovnej);
  var nove_telo_tabulky = document.createElement("tbody");
  for (var i=0;i<pocetradku;i++) {
    j = udaje[i][0];
    nove_telo_tabulky.appendChild(virtualni_radky[j]);
  }
  tabulka.removeChild(tabulka.getElementsByTagName("tbody")[0]);
  tabulka.appendChild(nove_telo_tabulky);
}
