
var tbody = null;
var trows = null;

function sortByFlugnr() {
  var newrows = trows.sort(compareByFlugnr);
  var tmprows = tbody.getElementsByTagName("tr");
  for (var i=tmprows.length-1;i>=0;i--) {
    tbody.removeChild(tmprows[i]);
  }
  for (var i=0;i<trows.length;i++) {
    tbody.appendChild(newrows[i]);
  }
  colorize();
}

function sortByPos() {
  var newrows = trows.sort(compareByPos);
  var tmprows = tbody.getElementsByTagName("tr");
  // alte Zeilen löschen, neue gleich anhängen
  var l = tmprows.length;
  for (var i=l-1;i>=0;i--) {
    tbody.removeChild(tmprows[i]);
  }
  for (var i=0;i<trows.length;i++) {
    tbody.appendChild(newrows[i]);
  }
  colorize();
}

function sortByLastName() {
  var newrows = trows.sort(compareByLastName); 
  var tmprows = tbody.getElementsByTagName("tr");
  // alte Zeilen löschen, neue gleich anhängen
  var l = tmprows.length;
  for (var i=l-1;i>=0;i--) {
    tbody.removeChild(tmprows[i]);
  }
  for (var i=0;i<trows.length;i++) {
    tbody.appendChild(newrows[i]);
  }
  colorize();
}

function sortByCountry() {
  var newrows = trows.sort(compareByCountry); 
  var tmprows = tbody.getElementsByTagName("tr");
  // alte Zeilen löschen, neue gleich anhängen
  var l = tmprows.length;
  for (var i=l-1;i>=0;i--) {
    tbody.removeChild(tmprows[i]);
  }
  for (var i=0;i<trows.length;i++) {
    tbody.appendChild(newrows[i]);
  }
  colorize();
}

function compareByAge(a, b) {
  return a.getElementsByTagName("td")[4].innerHTML -
    b.getElementsByTagName("td")[4].innerHTML;
}

function compareByPos(a, b) {
  return a.getElementsByTagName("td")[0].innerHTML -
    b.getElementsByTagName("td")[0].innerHTML;
}

function compareByLastName(a, b) {
  var y = a.getElementsByTagName("td")[2].innerHTML;
  var z = b.getElementsByTagName("td")[2].innerHTML;
  if (y == z) {
    return 0;
  } else {
    var auxarr = new Array(2);
    auxarr[0] = y;
    auxarr[1] = z;
    var auxsort = auxarr.sort();
    if (auxsort[0] == y) {
      return -1;
    } else {
      return 1;
    }
  }
}

function compareByCountry(a, b) {
  var y = a.getElementsByTagName("td")[3].innerHTML;
  var z = b.getElementsByTagName("td")[3].innerHTML;
  if (y == z) {
    return 0;
  } else {
    var auxarr = new Array(2);
    auxarr[0] = y;
    auxarr[1] = z;
    var auxsort = auxarr.sort();
    if (auxsort[0] == y) {
      return -1;
    } else {
      return 1;
    }
  }
}

function colorize() { 
  var rows = tbody.getElementsByTagName("tr");
  for (var i=0;i<rows.length;i++) {
    if (i%2 < 1) {
      rows[i].className = "grey";
    } else {
      rows[i].className = "green";
    }
  }
}

function run() {
  tbody = document.getElementById("datarows");
  var tmprows = tbody.getElementsByTagName("tr");
  var headcols = document.getElementById("datahead").getElementsByTagName("tr")[0].getElementsByTagName("td");
  trows = new Array(tmprows.length);
  for (var i=0;i<tmprows.length;i++) {
    trows[i] = tmprows[i];
  }
  colorize();
  headcols[0].onclick = sortByPos;
  headcols[1].onclick = sortByLastName;
  headcols[2].onclick = sortByLastName;
  headcols[3].onclick = sortByCountry;
  headcols[4].onclick = sortByAge;
  headcols[5].onclick = sortByPos;
  
}

