 var extend = new Array(); // rozbalene FOLDERy
 
 function addExtend(tableRow) {
  extend[extend.length] = tableRow;
  extend.sort(compareNumbers);
 }
 
 function compareNumbers(a,b) {return parseInt(a.rowIndex) - parseInt(b.rowIndex);}
 
 function searchExtend(rowIndex) {
   for(var i=0; i<extend.length; i++) if(extend[i].rowIndex==rowIndex) return i;
   return -1;
 }
 
 function setMenu(obj) {
   if(obj.innerHTML.toString().indexOf('group_open.gif')>-1)
     setHidden(obj);
   else {	 
     if(extend.length == 0) {
	   null;
     } else if(extend[0].rowIndex < obj.rowIndex && extend[extend.length-1].getAttribute('rowEnd',2) > obj.rowIndex) {   
	   for(var i=0; i<extend.length; i++) if(extend[i].rowIndex > obj.rowIndex) setHidden(extend[i]); 
     } else if (extend[0].rowIndex > obj.rowIndex) {
	   for(var i=0; i<extend.length; i++) if(extend[i].rowIndex > obj.rowIndex) setHidden(extend[i]);
     } else if(extend[extend.length-1].getAttribute('rowEnd',2) > obj.rowIndex) {   
	   for(var i=extend.length-1; i<extend.length; i++) setHidden(extend[extend.length-1]);
     } else if(extend[0].rowIndex <= obj.rowIndex) {
	   if(extend[0].rowIndex < obj.rowIndex || extend[0].rowIndex > obj.rowIndex) {   
 	     for(var i=0; i<extend.length; i++) if(extend[i].getAttribute('treeId',2) >= obj.getAttribute('treeId',2)) setHidden(extend[i]);
	   } else {
	     setHidden(extend[extend.length-1]);	   	   
           }
     } else {
   	   for(var i=extend.length; i<-1; i--)  if(extend.getAttribute('rowEnd',2)>obj.rowIndex) setHidden(extend[i]);
     }	   
     setVisible(obj);
   }	 
   setDefault();
 }

 function setHidden(tableRow) {
   if(tableRow.getAttribute('typ',2) != 'F') return;
   var tabulka = tableRow.parentNode;
   var rowIndex = parseInt(tableRow.rowIndex);
   var treeId = parseInt(tableRow.getAttribute('treeId',2));   
   setFolderIco(tableRow, 'group_open.gif', 'group_closed.gif');   
   var treeIdStart = treeId;
   var typ = null;
   for(i=(rowIndex+1); i<tabulka.rows.length; i++) {
     tableRow = tabulka.rows[i];
     treeId = tableRow.getAttribute('treeId',2);
     typ = tableRow.getAttribute('typ',2);
     if(treeId <= treeIdStart) break;	 	 	 
     if(typ == 'F') setFolderIco(tableRow, 'group_open.gif', 'group_closed.gif');      
     tableRow.style.display = 'none';	 	         
   }
 }

 function setVisible(tableRow) {
   var lTtabulka = tableRow;
   var tabulka = tableRow.parentNode;
   var rowIndex = parseInt(tableRow.rowIndex);
   var treeId = parseInt(tableRow.getAttribute('treeId',2));
   var treeIdP = treeId + 1;   
   var i=0;         	    
   for(i=(rowIndex+1); i<tabulka.rows.length; i++) {
     lTableRow = tabulka.rows[i];
     treeId = lTableRow.getAttribute('treeId',2);
     if(treeId < treeIdP) break;
     if(treeId == treeIdP) lTableRow.style.display = 'block';	        
   }
   setFolderIco(tableRow, 'group_closed.gif', 'group_open.gif');
   tableRow.setAttribute('rowEnd',lTableRow.rowIndex);      
 }

 function setFolderIco(tableRow, co, cim) {
   cell = tableRow.cells[0];
   cell.innerHTML =  cell.innerHTML.toString().replace(co,cim);
   if(co.indexOf('group_closed.gif') > -1)
     addExtend(tableRow);
   else {
     var result = searchExtend(tableRow.rowIndex);
     if(result > -1){
	   extend.splice(result,1);
	   extend.sort(compareNumbers);
	 }  
   }        
 }
 
 function setWait() {
   document.body.style.cursor='wait';
 }

 function setDefault() {
  document.body.style.cursor='default';
 }
