

function treeViewInit(menu, plus, minus) {
  if (menu.nodeName == "UL") {

    var menuElementArray = menu.childNodes;
    for (var i=0; i<menuElementArray.length; i++) {
      var menuElement = menuElementArray[i];
      if (menuElement.nodeName == "LI") {
        var subMenuElementArray = menuElement.childNodes;
        var foundSubmenu = false;
        var subMenu;
        for (j=0; j<subMenuElementArray.length; j++) {
          subMenuElement = subMenuElementArray[j];
          if (subMenuElement.nodeName == "UL") {
            foundSubmenu = true;
            subMenu = subMenuElement;
          }
        }
        if (foundSubmenu) {
          var oImg = document.createElement("img");
          oImg.setAttribute('src', minus);
          oImg.setAttribute('class', 'xp');
          oImg.style.border = 'none';
		  
		  var tablecell = document.createElement("td");
          tablecell.appendChild(oImg);
		  tablerow = menuElement.childNodes[0].childNodes[0].childNodes[0];
          tablerow.insertBefore(tablecell, tablerow.childNodes[0]);

          treeViewInit(subMenu, plus, minus);
          addEvent(oImg, 'click', function(sm) {
            return function(e) {
              treeViewToggle(sm, plus, minus);
            }
          }(subMenu), false);
          if (menuElement.className.indexOf("xpand") == -1) {
            treeViewToggle(subMenu, plus, minus);
          }
          else {
            var foundSubmenuXpand = false;
            for (var k=0; k<menuElement.childNodes.length; k++) {
              if (menuElement.childNodes[k].nodeName == "UL") {
                for (var l=0; l<menuElement.childNodes[k].childNodes.length; l++) {
                  if (menuElement.childNodes[k].childNodes[l].nodeName == "LI" && menuElement.childNodes[k].childNodes[l].className.indexOf("xpand") != -1) {
                    foundSubmenuXpand = true;
                    break;
                  }
                }
                break;
              }
            }
            if (!foundSubmenuXpand) {
              menuElement.className += " active";
            }
          }
        }
        else {
          var oImg = document.createElement("img");
		  var tablecell = document.createElement("td");
          oImg.setAttribute('src', 'assets/js/no-expand.png');
          tablecell.appendChild(oImg);
		  tablerow = menuElement.childNodes[0].childNodes[0].childNodes[0];
          tablerow.insertBefore(tablecell, tablerow.childNodes[0]);

          if (menuElement.className.indexOf("xpand") != -1) {
            menuElement.className += " active";
          }
        }
      }
    }
  }
}

function getPreviousSibling(n) {
  var x = n.previousSibling;
  while (x.nodeType !=1 ) {
    x = x.previousSibling;
  }
  return x;
}

function addEvent( obj, type, fn ) {
  if ( obj.attachEvent ) {
    obj['e'+type+fn] = fn;
    obj[type+fn] = function(){obj['e'+type+fn]( window.event );}
    obj.attachEvent( 'on'+type, obj[type+fn] );
  } else
    obj.addEventListener( type, fn, false );
}



function treeViewToggle(subMenu, plus, minus) {
	if (subMenu.style.display != 'none') {
		subMenu.style.display = 'none';
    subMenu.parentNode.childNodes[0].childNodes[0].childNodes[0].childNodes[0].childNodes[0].src = plus;
	}
	else {
		subMenu.style.display = 'block';
    subMenu.parentNode.childNodes[0].childNodes[0].childNodes[0].childNodes[0].childNodes[0].src = minus;
	}
}



