//addEvent(window, "load", makeTreesC);


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 == "nav") {
            processULELC(ul);
        }
    }
}

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 {
				// Sections don't have links, so check for those and double-check for sections before assuming it's a link.
				if(a) {
					if(a.parentNode.className.indexOf('section') == -1) {
						a.parentNode.className = "link";
					}
				}
            }
        }
    }
}

function associateELC(a,ul) {
	/*  default to closed */
	if (a.parentNode.className.indexOf('groupOpen') == -1)
      a.parentNode.className = 'group';

	a.onclick = function () {
		this.parentNode.className = (this.parentNode.className=='groupOpen') ? "group" : "groupOpen";
		return false;
	}
}


function expandAll() {
    // We don't actually need createElement, but we do need good DOM support, so this is a good check.
    if (!document.createElement) return;
    
    listItems = document.getElementsByTagName("li");
    for (i=0;i<listItems.length;i++) {
        it = listItems[i];
        if (it.nodeName == "LI" && it.className == "group") {
            it.className = "groupOpen"
        }
    }
}

function collapseAll() {
    // We don't actually need createElement, but we do need good DOM support, so this is a good check.
    if (!document.createElement) return;
    
    listItems = document.getElementsByTagName("li");
    for (i=0;i<listItems.length;i++) {
        it = listItems[i];
        if (it.nodeName == "LI" && it.className == "groupOpen") {
            it.className = "group"
        }
    }
}


/*              Utility functions                    */

function addEvent(obj, evType, fn){
  /* adds an eventListener for browsers which support it Written by Scott Andrew: nice one, Scott */
  if (obj.addEventListener){
    obj.addEventListener(evType, fn, true);
    return true;
  } else if (obj.attachEvent){
	var r = obj.attachEvent("on"+evType, fn);
    return r;
  } else {
	return false;
  }
}
