var cache = {
   offset : 80,
   fetch : 40
};

aaManageEvent(window,"load", function() {
  var slider = YAHOO.widget.Slider.getVertSlider("sliderbg",
         "sliderthumb", 0, 400);
  slider.setValue(0,true);
  slider.subscribe("change",adjustPage);

  // Dostosowanie pozycji z uwagi na specyfikę przeglądarki Internet Explorer
  createTable();
  getRows(0);
  aaElem('inner').style.position='relative';
});

// Dostosowuje kontener na tabelę na podstawie pozycji
// i określa, czy trzeba zwiększyć pamięć podręczną
// dla bazy danych
function adjustPage(offset) {

   var inner = aaElem('inner');
   var newTop = -offset;
   inner.style.top = newTop + "px";

   // Jeśli przesunięcie jest większe niż w pamięci podręcznej,
   // należy pobrać wiersze i zaktualizować tę pamięć
   if (offset > cache.offset) {
      getRows(cache.fetch);
      cache.offset+=80;
      cache.fetch+=40;
   }
}

// Pobiera następną grupę wierszy
function getRows(start) {
   var url = 'getposts.php?start=' + start;
   var script = document.createElement('script');
   script.type = 'text/javascript';
   script.src = url + '&limit=40&callback=printRows';
   document.getElementsByTagName('head')[0].appendChild(script);
}

// Tworzy i dołącza komórkę tabeli
function createTableCell(value,tr) {

   // Tworzy element <td> 
   var cell = document.createElement("td");

   // Tworzy węzeł tekstowy
   var text = document.createTextNode(value);

   // Dołącza utworzony węzeł tekstowy do komórki <td>
   cell.appendChild(text);

   // Dołącza komórkę <td> do wiersza <tr>
   tr.appendChild(cell);

   return tr;
}

// Tworzy pustą tabelę i dodaje do strony;
// ustawia styl top kontenera
function createTable() {
   var inner = aaElem('inner');

   var table = document.createElement('table');
   table.id = 'dataTable';
   var tableBody = document.createElement("tbody");
   tableBody.id = "dataTableBody";
   table.appendChild(tableBody);
   inner.appendChild(table);
   inner.style.top = "0px";
}

// Dodaje nowo pobrane wiersze jako wiersze tabeli
function printRows(rowsObj) {

   // Usuwa stare dane 
   var tableBody = aaElem('dataTableBody');

   // Wiersze tabeli
   for(var i = 0; i < rowsObj.length; i++) {
        // Tworzy element <tr> 
        var row = document.createElement("tr");

        row = createTableCell(rowsObj[i].id, row);

        // Tworzy znacznik anchor i tytuł
        var cell = document.createElement("td");
        cell.innerHTML = "<a href='" + rowsObj[i].guid + "'>" + rowsObj[i].title + "</a>";
        row.appendChild(cell);

        row = createTableCell(rowsObj[i].comments,row);

       tableBody.appendChild(row);
       tableBody.style.overflow="hidden";
   }
}

