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();

/*
1 / Načtení kopií řádků do pole virtualni_radky, načtení obsahu buněk do
    vícerozměrného pole udaje
*/
    
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;
    }    
}
     
/*
2 / Funkce srovnej, kterou používá metoda sort (viz. níže).
*/
          
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); 
  }
}
    
/*
3 / Funkce serad, provádí vlastní seřazení a výpis pro daný sloupec. První
    argument je číslo sloupce podle kterého se má tabulka řadit (první sloupec je 0),
    druhý pak metoda pro řazení (0 - abedecní české, 1 - celočíselné) 
*/
   
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); 
}
