addEvent(window, "load", makeTrees);

function makeTrees() {
    // 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") {
            processULEL(ul);
        }
    }
}

function processULEL(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; 
                               processULEL(subul);
                               break;
                }
            }
            if (subul) {
                associateEL(a,subul);
            } else {
                a.parentNode.style.listStyleImage = "url(/lib/images/spacer.gif)";
            }
        }
    }
}

function associateEL(a,ul) {
	
	a.onfocus = function () {
		this.blur();
	}
    a.onclick = function () {	
        var display = ul.style.display;
        this.parentNode.style.listStyleImage = (display == "block") ? "url(/lib/images/spacer.gif)" : "url(/lib/images/spacer.gif)";
        ul.style.display = (display == "block") ? "none" : "block";
        return false;
    }
    a.onmouseover = function() {
        var display = ul.style.display;
        window.status = (display == "block") ? "Collapse" : "Expand";
	return true;
    }
    a.onmouseout = function() {
        window.status = "";
	return true;
    }
}

/*              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;
  }
}


function zoomIMG(imgSrc,srcW,srcH,title) {
	SB_openBrWindow('/lib/includes/bild_zoom.php?img='+escape(imgSrc)+'&title='+escape(title),'pic',SB_getWinSize(srcW,srcH,600,600));
}

function SB_getWinSize(srcW,srcH,desW,desH) {
	winW = desW;
	winH = desH;
	if (desW && (srcW < srcH)) {
		winW = (desH / srcH) * srcW;
	} else {
		winH = (desW / srcW) * srcH;
	}
	return 'width='+winW+',height='+winH;
}

function SB_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}