// Rev. 09/07/2003

function Toggle(item, folderPict, openfolderPict, bgcolor) {
   obj=document.getElementById(item);
     //if the object is not found 
   if(!obj) 
   {
      return;
      }
   visible=(obj.style.display!="none");
   mykey=document.getElementById("x" + item);
   if (visible) {
     obj.style.display="none";
     mykey.innerHTML="<img src='"+ folderPict+"'   hspace='0' vspace='0' border='0'>";
   } else {
      //close all others
      CollapseButParent(obj, folderPict);
      obj.style.display="block";
      mykey.innerHTML="<img src='"+ openfolderPict+"'  hspace='0' vspace='0' border='0'>";
   }
 /* if(bgcolor.length>0) 
  {
  document.bgColor=bgcolor; 
  }
  else //default is white
  document.bgColor='White';
  */
}

function Expand(openfolderPict) {
   divs=document.getElementsByTagName("DIV");
   for (i=0;i<divs.length;i++) {
     divs[i].style.display="block";
     key=document.getElementById("x" + divs[i].id);
     key.innerHTML="<img src='"+openfolderPict+"'   hspace='0' vspace='0' border='0'>";
   }
}

/**
expan this item and the parents
*/
function ExpandParent(item, openfolderPict, bgcolor)
{
   obj=document.getElementById(item);
   if(obj == null) return;
  // alert('hello');
   divs=document.getElementsByTagName("DIV");
   for (i=0;i<divs.length;i++) {
     if(divs[i].id != item && !isParent(obj, divs[i])) continue;
     divs[i].style.display="block";
     key=document.getElementById("x" + divs[i].id);
     if(key!=null)
        key.innerHTML="<img src='"+openfolderPict+"'  hspace='0' vspace='0' border='0'>";
   }
   // document.bgColor = bgcolor;
}

function Collapse(pict) {
   divs=document.getElementsByTagName("DIV");
   for (i=0;i<divs.length;i++) {
     divs[i].style.display="none";
     key=document.getElementById("x" + divs[i].id);
     key.innerHTML="<img src='"+pict+"'  hspace='0' vspace='0' border='0'>";
   }
}


/**
collapse all other trees except the tree this branch is in
*/
function CollapseButParent(item, pict)
{
 divs=document.getElementsByTagName("DIV");
    var reg = new RegExp("mydiv", "i");
   for (i=0;i<divs.length;i++) {
      //alert('processing ' + divs[i].id + ' item clicked ' + item.id);
      if(divs[i].id == item.id)
        //alert(item.id + ' is clicked ');
        continue;
      if(! reg.test(divs[i].id))
       {
      // alert('no mydiv in the tag');
        continue;
       }

      if(isParent(item, divs[i]))
      {
     // alert(divs[i].id +  ' is parent');
      
      continue;
      }
     //  alert(divs[i].id + ' is clapsed ');
     divs[i].style.display="none";
     key=document.getElementById("x" + divs[i].id);
     key.innerHTML="<img src='images/folder_close.jpg'  hspace='0' vspace='0' border='0'>";
   }

}

/* redefine the contains function which is not supported by firfox */
/*
 HTMLElement.prototype.contains = function (testElement)
            {
                for(var el=testElement;el!=null;el=el.parentNode)
                    if(el == this)
                        return true;
                return false;

            }
*/

/* getParent - unkown author setParentTR - unknown author - modified by Richard Standbrook */
function isParent(item, parent) 
{ 
       for(var el = item; el!=null; el=el.parentNode)
          if(el == parent) return true;
       
       return false;
 // return parent.contains(item);
}

