/* vtgdb-treetable.js
 * @autor Thomas Mathis
 * @date  27.03.2009
 */
var imgFolder = 'url(../images/dtree/folder.gif)';
var imgFolderOpen = 'url(../images/dtree/folderopen.gif)';

var checkOpen = '/folderopen.gif';
var checkClosed = '/folder.gif';

function getFirstChildNode(node, name) {
  var childNodes = node.childNodes;
  var len = childNodes.length;  
  for (var i=0; i<len; i++) {
    //alert(i + '=' + childNodes[i].nodeName);
    if (childNodes[i].nodeName == name) {
        return childNodes[i];
    }    
  }  
  return null;
}

function toggleSubTree(row) {  
  var tbl = row.parentNode;    

  sp = getFirstChildNode(row.cells[0],'SPAN');
  if (sp) {
    // change image?
    if (sp.style.backgroundImage.indexOf(checkOpen) != -1) {
    	//alert('close');
    	sp.style.backgroundImage = imgFolder; 
        closeSubTree(tbl, row);       
    } else if (sp.style.backgroundImage.indexOf(checkClosed) != -1) {
    	//alert('open');
    	sp.style.backgroundImage = imgFolderOpen;      
        openSubTree(tbl, row);  
    } else {
    	//alert('tua nüt');
        return;
    }         
  }  

}

function openSubTree(table, row) {  
    var currPadding;
    var myPadding   = parseInt(row.cells[0].style.paddingLeft);
    var firstPadding = -1;  
    var i = row.rowIndex;
    while (table.rows[i]) { 
      currPadding = parseInt(table.rows[i].cells[0].style.paddingLeft); 
      if (firstPadding == -1) {
        firstPadding = currPadding;
      }      
      if (myPadding < currPadding) {
        if (currPadding == firstPadding) {  
      	  table.rows[i].style.display = '';   
          sp = getFirstChildNode(table.rows[i].cells[0],'SPAN');        
          if (sp) {                             
            if (sp.style.backgroundImage == imgFolderOpen) {          
              openSubTree(table, table.rows[i]);            
            }                         
          }      
        }       
      } else {        
        break;
      }   
      i++; 
    }       
}

function closeSubTree(table, row) {
	//var msg = '';
    var currPadding;
    var myPadding   = parseInt(row.cells[0].style.paddingLeft);       
    var i = row.rowIndex;
    while (table.rows[i]) { 
      currPadding = parseInt(table.rows[i].cells[0].style.paddingLeft);                  
      if (myPadding < currPadding) { 
        //msg += 'hide ' + i + '\n';  
    	table.rows[i].style.display = 'none';           
      } else {
        break;
      }    
      i++;
    }    
    //alert(msg);
}
