var ExpandImagePath = '/images/buttons/expand.gif';
var CollapseImagePath = '/images/buttons/collapse.gif';

function Collapse(TreeId) {
  var tree = 'Tree'+TreeId;
  var image = 'ExpandCollapse'+TreeId;
  var i=1;

  el = document.getElementById(tree);
  el.style.display = 'none';
  if (!document.getElementById(image))
    return;

  document.getElementById(image).src = ExpandImagePath;
  while (document.getElementById(tree+'_'+i)) {
    Collapse(TreeId+'_'+i);
    i++;
  }
}

function ExpandCollapse(TreeId) {
  var tree = 'Tree'+TreeId;
  var image = 'ExpandCollapse'+TreeId;
  var i=1;

  while (document.getElementById(tree+'_'+i)) {
    el = document.getElementById(tree+'_'+i);
    if(el.style.display == '') {
      Collapse(TreeId+'_'+i);
      document.getElementById(image).src = ExpandImagePath;
    }
    else {
      el.style.display = '';
      document.getElementById(image).src = CollapseImagePath;
    }
    i++;
  }
}

function doExpand(TreeId) {
    var tree = 'Tree'+TreeId;
    var image = 'ExpandCollapse'+TreeId;
    var i=1;

    if (document.getElementById(image))
      document.getElementById(image).src = CollapseImagePath;

    while (document.getElementById(tree+'_'+i)) {
      el = document.getElementById(tree+'_'+i);
      el.style.display = '';
      ExpandAll(TreeId+'_'+i);
      i++;
    }
}

function ExpandAll(TreeId, Treshhold) {
  if (TreeId == '0')
    var TreeId=1;

  while (document.getElementById('ExpandCollapse'+TreeId)) {
    if (Treshhold > 0 && TreeId > Treshhold)
      return;

    doExpand(TreeId);
    TreeId++;
  }
}

function CollapseAll(Tree, Treshhold) {
  if (Tree == 0)
    Tree = 1;

  if (!document.getElementById('ExpandCollapse'+Tree))
    return;
  else
    document.getElementById('ExpandCollapse'+Tree).src = ExpandImagePath;

  var i=1;
  while (document.getElementById('Tree'+Tree+'_'+i)) {
    Collapse(Tree+'_'+i);
    i++;
  }
  if (Treshhold > 0 && Tree >= Treshhold)
    return;
  Tree++;
  CollapseAll(Tree, Treshhold);
}
