/*
* DO NOT REMOVE THIS NOTICE
*
* PROJECT:   mygosuMenu
* VERSION:   1.5.5
* COPYRIGHT: (c) 2003,2004 Cezary Tomczak
* LINK:      http://gosu.pl/dhtml/mygosumenu.html
* LICENSE:   BSD (revised)
*/

function TreeMenu(id) {

this.init = function() {
if (!document.getElementById(this.id)) {
alert("Element '"+this.id+"' does not exist in this document. TreeMenu cannot be initialized");
return;
}
this.parse(document.getElementById(this.id).childNodes, this.tree, this.id);
}

this.parse = function(nodes, tree, id) {
for (var i = 0; i < nodes.length; i++) {
		    if (nodes[i].nodeType != 1) {
		    continue;
		    }
		    if (nodes[i].tagName.toLowerCase() == "li") {
		    nodes[i].id = id + "-" + tree.length;
		    tree[tree.length] = new Array();
		    if (nodes[i].childNodes && this.hasUl(nodes[i].childNodes)) {
		    nodes[i].className = "section";
		    var a;
		    if (a = this.getA(nodes[i].childNodes)) {
		    a.id = nodes[i].id + "-a";
		    eval("document.getElementById('"+a.id+"').onclick = function() {"+
		    "self.click('"+nodes[i].id+"');"+
		    "}");
		    }
		    } else {
		    nodes[i].className = "box";
		    }
		    }
		    if (nodes[i].tagName.toLowerCase() == "ul") {
		    nodes[i].style.display = "none";
		    id = id + "-" + (tree.length - 1);
		    nodes[i].id = id + "-section";
		    tree = tree[tree.length - 1];
		    }
		    if (nodes[i].childNodes) {
		    this.parse(nodes[i].childNodes, tree, id);
		    }
		    }
		    }

		    this.hasUl = function(nodes) {
		    for (var i = 0; i < nodes.length; i++) {
					if (nodes[i].nodeType != 1) {
					continue;
					}
					if (nodes[i].tagName.toLowerCase() == "ul") {
					return true;
					}
					if (nodes[i].childNodes) {
					if (this.hasUl(nodes[i].childNodes)) {
					return true;
					}
					}
					}
					return false;
					}

					this.getA = function(nodes) {
					for (var i = 0; i < nodes.length; i++) {
							    if (nodes[i].nodeType == 1) {
							    if (nodes[i].tagName.toLowerCase() == "a") {
							    return nodes[i];
							    }
							    return false;
							    }
							    }
							    }

							    this.click = function(id) {
							    e1 = document.getElementById(id + "-section");
							    e2 = document.getElementById(id);
							    if (e1.style.display == "none") {
							    e1.style.display = "";
							    e2.className = "section-open";
							    } else {
							    e1.style.display = "none";
							    e2.className = "section";
							    }
							    }

							    var self = this;
							    this.id = id;
							    this.tree = new Array();
							    this.init();
}
