// Przygotowanie elementów kontrolki accordion
aaManageEvent(window,"load", function() {
    var divs = document.getElementsByTagName('div');

    for (var i = 0; i < divs.length; i++) {

       // Konfigurowanie kliknięcia paska tytułu
       if (divs[i].className == 'nameCollapsed') {
          aaManageEvent(divs[i],'click',Accordion.expandOrCollapse);

       // Przypisanie wysokości jako właściwości niestandardowej
       // i zwinięcie elementu
       } else if (divs[i].className == 'elements') {
 
          // IE 6.x obsługuje elementy zwrócone przez funkcję getElementsByTagName
          // w inny sposób, dlatego clientHeight nie działa; w zamian 
          // użyto funkcji offsetHeight
          var height = divs[i].offsetHeight;
          divs[i].height = height;
          if (divs[i].id == "") divs[i].id = "div" + i;
          divs[i].style.height = "0";
      }
    }
});

// Zarządzanie kontrolką accordion
var Accordion = { 

   // Dostosowanie wysokości
   adjustItem  : function(val, newItem) {
            aaElem(newItem).style.height=val + "px";
   },

   // Sprawdzanie, czy panel należy rozwinąć, czy ukryć
   expandOrCollapse : function (evnt) {
            evnt = evnt ? evnt : window.event;
            var target = evnt.target ? evnt.target : evnt.srcElement;
            if (target.className == 'nameCollapsed') 
                 Accordion.expand(target);
            else
                 Accordion.collapse(target);
   },

   // Rozwijanie panelu
   expand : function(target) {
            target.className = 'nameExpanded';
            // Zmiana sygnału
            var children = target.parentNode.childNodes;
            var panel;
            for (var i = 0; i < children.length; i++) {
              if (children[i].className == 'elements') {
                 panel = children[i];
                 break;
              }
            }
            var height = panel.height;

            // Obliczanie przyrostu poprzez podzielenie wysokości przez
            // liczbę iteracji pętli - 20
            var incr = height / 20;
            for (var i=0; i < 20; i++) {
              var val = (i+1) * incr;
              var func = "Accordion.adjustItem("+val+",'"+ panel.id +"')";
              setTimeout(func,(i+1)*30);
            }

   },
   
   // Zwijanie panelu
   collapse : function (target) {
            target.className = 'nameCollapsed';
            // Wyszukiwanie panelu
            var children = target.parentNode.childNodes;
            var panel;
            for (var i = 0; i < children.length; i++) {
              if (children[i].className == 'elements') {
                 panel = children[i];
                 break;
              }
            }
            var height = panel.height;

            // Obliczanie pomniejszenia poprzez podzielenie wysokości przez
            // liczbę iteracji pętli - 20
            var decr = height / 20;
            for (var i=0; i < 20; i++) {
              var val = height-(decr*(i+1));;
              var func = "Accordion.adjustItem("+val+",'"+ panel.id +"')";
              setTimeout(func,(i+1)*30);
            }
   }

 };


