var oUls = document.getElementsByTagName("UL");

var n = 0;
for (var i = 0; i < oUls.length; i++) {
	var oUl = oUls[i];
	var oPrevElement = _getPrevElement(oUl);

	if (!oPrevElement) continue;
	if (!oPrevElement.nodeName == "H2") continue;
	if (oPrevElement.firstChild.nodeType != 3) continue;

	var parentNodeClass = oUl.parentNode.getAttribute("class");
	var parentNodeClassName = oUl.parentNode.getAttribute("className");
	if (!(parentNodeClass == "sidebar" || parentNodeClassName == "sidebar")) continue;

	oUl.setAttribute("id", "sidebar-ul-" + n);
	var oAnchor = document.createElement("A");
	oAnchor.setAttribute("id", "sidebar-h2-" + n);
	oAnchor.setAttribute("href", "#extend-list");
	oAnchor.onclick = function() { extend(this); };
	oAnchor.appendChild(document.createTextNode("+"));
	var oH2 = oPrevElement;
	var oChilds = oH2.childNodes;
	var oSpan = document.createElement("SPAN");
	for (var j = 0; j < oChilds.length; j++) {
		var oChild = oChilds[j];
		if (oChild.nodeType != 3) break;
		oSpan.appendChild(oChild);
	}
	oAnchor.appendChild(oSpan);
	if (oH2.firstChild) {
		oH2.insertBefore(oAnchor, oH2.firstChild);
	} else {
		oH2.appendChild(oAnchor);
	}
	oUl.style.display = "none";
	n++;
}

function _getPrevElement(oRefElement) {
	var oPrev = oRefElement.previousSibling;
	while (oPrev) {
		if (oPrev.nodeType == 1) {
			return oPrev;
			break;
		}
		oPrev = oPrev.previousSibling;
	}
	return false;
}

function extend(oAnchor) {
	var idA = oAnchor.getAttribute("id");
	var idUl = idA.replace("h2", "ul");
	var oUl = document.getElementById(idUl);
	oUl.style.display = "block";
	oAnchor.removeChild(oAnchor.firstChild);
	oAnchor.insertBefore(document.createTextNode("-"), oAnchor.firstChild);
	oAnchor.setAttribute("href", "#fold-list");
	oAnchor.onclick = function() { fold(this); };
}

function fold(oAnchor) {
	var idA = oAnchor.getAttribute("id");
	var idUl = idA.replace("h2", "ul");
	var oUl = document.getElementById(idUl);
	oUl.style.display = "none";
	oAnchor.removeChild(oAnchor.firstChild);
	oAnchor.insertBefore(document.createTextNode("+"), oAnchor.firstChild);
	oAnchor.setAttribute("href", "#extend-list");
	oAnchor.onclick = function() { extend(this); };
}


