function toggleMenu(elem) {
    classOn = elem.id+ "-ovr";
    classOff = elem.id+ "-off";
    elemDrop = elem.id+ "-drop";
    var obj;
    var obj2;
    if (document.getElementById(elemDrop)) {
        obj = document.getElementById(elemDrop);
        if (obj.style.visibility != "visible" || obj.style.display == "none") {
            obj.style.visibility = "visible";
            obj.style.display = "block";
            obj.parentNode.className = classOn;
        } 
        else { 
            obj.style.visibility = "hidden";
            obj.style.display = "none";
            obj.parentNode.className = classOff;
//            obj.style.height = "0px";
        }
    } else {
        obj2 = document.getElementById(elem.id);
        if (obj2.className != classOn) {
            obj2.className = classOn;
        } else obj2.className = classOff;
    }
}

// Get maxlength of longest linkname in the unordered list and resize the list -->
function resizeList() { 
    var maxLength = 0;
    var lists = document.getElementsByTagName("ul"); 
    for (x = 0; x < lists.length; x++) { 
        var list = lists[x]; 
		if (list.getAttribute("class") == "linkList" || list.getAttribute("className") == "linkList") { 
            maxLength = 0;
            parentDiv = list.parentNode.parentNode.parentNode;
            var listitems = list.childNodes;
			for (j = 0; j < listitems.length; j++) {
				node = listitems[j];
                if (node.nodeName == "LI") {
					linkitems = node.childNodes;
                    for (k = 0; k < linkitems.length; k++) {
						linkitem = linkitems[k];
		                if (linkitem.nodeName == "SPAN") {
                            subHeader = linkitem.childNodes[0].nodeValue;
							if ((subHeader.length*1.5) > maxLength) { 
                                maxLength = subHeader.length * 1.5;
                            }
                        }
                        if (linkitem.nodeName == "UL") {
                            reallist = linkitem.childNodes;
                            for (f = 0; f < reallist.length; f++) {
                                reallistitems = reallist[f];
                                if (reallistitems.nodeName == "LI") { 
                                    reallistlinks = reallistitems.childNodes;
                                    for (g = 0; g < reallistlinks.length; g++) {
                                        reallink = reallistlinks[g];
                                        if (reallink.nodeName == "A") { 
                                            linkValue = reallink.childNodes[0].nodeValue;
                                            if (linkValue.length > maxLength) {
                                                maxLength = linkValue.length;
                                            }
                                        }
                                    }
                                }
                            }
                        }
					}
	            }
            }
        if (maxLength > parentDiv.style.width) parentDiv.style.width = ((maxLength/5)*2+2) + "em";
		}
    } 
}

addEvent(window, 'load', resizeList);