
var currentNode="";
    currentLeaf="";

function collapse(id){
  if (id=="") return false;
  document.getElementById(id+"_ico").className="navi_plus";
  document.getElementById(id+'_node').style.display='none';
}

function collapseToRoot(id){
  var elements = id.split('_');
  var obj_name = '';
  for (var i = 0; i < elements.length; i++) {
    if (i > 0){
      obj_name = obj_name + '_' + elements[i]
    } else{
      obj_name = elements[i];
    }
    collapse(obj_name);
  }
  return false;
}

function commonNode(id){
  if (currentNode=='') return '';
  var node1 = id.split('_');
  var node2 = currentNode.split('_');
  var n = "";
  var m = "";
  for (var i=0; i<Math.min(node1.length, node2.length); i++){
    if (n + '_' + node1[i] != m + '_' + node2[i]) {
      break;
    }
    if (i > 0){
      n = n + '_' + node1[i]
      m = m + '_' + node2[i]
    } else{
      n = node1[i];
      m = node2[i];
    }
    
  }
  return n;
}

function isNodeExpanded(id){
  if (id=='') return false;
  var elements = id.split('_');
  var obj_name = '';
  for (var i=0; i<elements.length; i++){
    if (i > 0){
      obj_name = obj_name + '_' + elements[i]
    } else{
      obj_name = elements[i];
    }
    var obj = document.getElementById(obj_name+"_node");
    if ((obj.style.display=="none") || (obj.style.display=="")) return false;
  }
  return true;
}

function expand(obj) {
  if (obj==null) return;
  id = obj.id;
  var elements = id.split('_');
  var levels = elements.length;
  var node = id + '_node';
  var d = document.getElementById(node);
  if (d == null) return;
  if (isNodeExpanded(id)){
    collapse(currentNode);
    collapse(id);
    elements.pop();
    currentNode = elements.join('_');
  } else {

    if (currentNode!=''){
      collapseToRoot(currentNode);
    }

    var obj_name = '';
    for (var i = 0; i < levels; i++) {
      if (i > 0){
        obj_name = obj_name + '_' + elements[i]
      } else{
        obj_name = elements[i];
      }
      document.getElementById(obj_name+"_ico").className="navi_minus";
      document.getElementById(obj_name+'_node').style.display='block';
    }
    currentNode=obj_name;
  }

  return false;
}

function deSelect(id){
  var level=id.split('_').length;
  var leaf = document.getElementById(id);
  var cElem = leaf.className.split('_');
  var image = "";
  if (leaf.className=="large"){
    image = "navi_bg2"
  } else {
    image = "navi_bg";
  }
  image = image + "_lev_" + level + "_out.gif";
  leaf.style.backgroundImage = 'url(images/page_layout/navigation_frame/' + image + ')';
}

function select(id){
  expand(document.getElementById(id));
  if ((id==null)||(id=='')) return;
  if ((currentLeaf!=null) && (currentLeaf!='')) {
    deSelect(currentLeaf);
  }
  var elements=id.split('_');
  var level=elements.length;
  if (elements.length>1){
    elements.pop();
    var node = elements.join('_');
    var obj = document.getElementById(node);
    expand(obj);
  }
  var leaf = document.getElementById(id);
  var cElem = leaf.className.split('_');
  var image = "";
  if (leaf.className=="large"){
    image = "navi_bg2"
  } else {
    image = "navi_bg";
  }
  image = image + "_lev_" + level + "_sel.gif";
  leaf.style.backgroundImage = 'url(images/page_layout/navigation_frame/' + image + ')';
  currentLeaf=id;
}

