/***********************************************
* Sidebar Main Folder Switch Menu 
* description : Vertical menu, open/close folders
***********************************************/

function switchMenu(obj){
/* HACK FOR KEEPING ALL MAIN MENUS OPEN ALL TIME */

/*	if(document.getElementById){
		var el = document.getElementById(obj);
		var ar = document.getElementById("menu").getElementsByTagName("span");
		if(el.style.display != "block"){ 
			for (var i=0; i<ar.length; i++){
				if (ar[i].className=="submenu")
				ar[i].style.display = "none";
				}
			el.style.display = "block";
			}
		else{
			el.style.display = "none";
			}
		}
	}

if (document.getElementById){ //NS4.0 fix
document.write('<style type="text/css">\n')
document.write('.submenu{display: none;}\n')
document.write('</style>\n')*/

}


/***********************************************
* Sidebar Enhanced Bullet List
* description : from a nested list (ul), create a simple treeview menu
***********************************************/

addEvent(window, "load", makeTreesC);

// Event listener
function addEvent(obj, evType, fn){
  
  if (obj.addEventListener){obj.addEventListener(evType, fn, false);return true;}
  else if (obj.attachEvent){return obj.attachEvent("on"+evType, fn);}
  else { return false;}
}

//Check and launch build tree
function makeTreesC() {
    // We don't actually need createElement, but we do
    // need good DOM support, so this is a good check.
    if (!document.createElement) return;
    
    uls = document.getElementsByTagName("ul");
    for (uli=0;uli<uls.length;uli++) {
        ul = uls[uli];
        if (ul.nodeName == "UL" && ul.className == "aqtree3clickable") {
            processULELC(ul);
        }
    }
}

//Recursive tree build 
function processULELC(ul) {
    if (!ul.childNodes || ul.childNodes.length == 0) return;
    // Iterate LIs
    for (var itemi=0;itemi<ul.childNodes.length;itemi++) {
        var item = ul.childNodes[itemi];
        if (item.nodeName == "LI") {
            // Iterate things in this LI
            var a;
            var subul;
	    	subul = "";
            for (var sitemi=0;sitemi<item.childNodes.length;sitemi++) {
                var sitem = item.childNodes[sitemi];
                switch (sitem.nodeName) {
                    case "A": a = sitem; break;
                    case "UL": subul = sitem; 
                               processULELC(subul);
                               break;
                }
            }
            if (subul) {
                associateELC(a,subul);
            } else {
                a.parentNode.className = "aq3bullet";
            }
        }
    }
}

// Close/open function
function associateELC(a,ul) {
    if (a.parentNode.className.indexOf('aq3open') == -1)
	  /* Hack Default open at load */
      /*a.parentNode.className = 'aq3closed';*/
	  a.parentNode.className = 'aq3open';
	  
    a.onclick = function () {
        this.parentNode.className = (this.parentNode.className=='aq3open') ? "aq3closed" : "aq3open";
        return false;
    }
}

// Expands enough nodes to expose an LI with a given ID
function expandToItem(treeId,itemId) {
	var ul = document.getElementById(treeId);
	if (ul == null) { return false; }
	var ret = expandCollapseList(ul,"aq3open",itemId);
	if (ret) {
		var o = document.getElementById(itemId);
		if (o.scrollIntoView) {
			o.scrollIntoView(false);
		}
	}
}

// Performs 3 functions:
// a) Expand all nodes
// b) Collapse all nodes
// c) Expand all nodes to reach a certain ID
function expandCollapseList(ul,cName,itemId) {
	if (!ul.childNodes || ul.childNodes.length==0) { return false; }
	// Iterate LIs
	for (var itemi=0;itemi<ul.childNodes.length;itemi++) {
		var item = ul.childNodes[itemi];
		if (itemId!=null && item.id==itemId) { return true; }
		if (item.nodeName == "LI") {
			// Iterate things in this LI
			var subLists = false;
			for (var sitemi=0;sitemi<item.childNodes.length;sitemi++) {
				var sitem = item.childNodes[sitemi];
				if (sitem.nodeName=="UL") {
					subLists = true;
					var ret = expandCollapseList(sitem,cName,itemId);
					if (itemId!=null && ret) {
						item.className=cName;
						return true;
					}
				}
			}
			if (subLists && itemId==null) {
				item.className = cName;
			}
		}
	}
}



