function collapse(container) {
	var self = document.getElementById(container);
	if(self != null) {
		self.setAttribute("class", "collapsed");
		self.setAttribute("className", "collapsed");
	} else {
		alert("Could not collapse: " + container);
	}
}

function expand(container) {
	var self = document.getElementById(container);
	if(self != null) {
		self.setAttribute("class", "expanded");
		self.setAttribute("className", "expanded");
	} else {
		alert("Could not expand: " + container);
	}
}

function selectChildren(parent, tagName) {
	var children = parent.childNodes;
	var result = [];
	for(var i = 0; i < children.length; i++) {
		if(children[i].tagName != null && children[i].tagName.toLowerCase() == tagName.toLowerCase()) {
			result[result.length] = children[i];
		}
	}
	return result;
}

function collectChildren(parents, childTagName) {
	var result = [];
	for(var i = 0; i < parents.length; i++) {
		for(var j = 0; j < parents[i].childNodes.length; j++) {
			if(parents[i].childNodes[j].tagName != null && parents[i].childNodes[j].tagName.toLowerCase() == childTagName.toLowerCase()) {
				result[result.length] = parents[i].childNodes[j];
			}
		}
	}
	return result;
}


function collapse_siblings(container) {
	var self = document.getElementById(container);
	if(container != null) {
		var siblings = collectChildren(selectChildren(self.parentNode, 'li'), 'a');
		for(var i = 0; i < siblings.length; i++) {
			if(siblings[i].parentNode.id == self.id) {
				expand(siblings[i].parentNode.id);
			} else {
				collapse(siblings[i].parentNode.id);
			}
		}
		var activeElement = document.getElementById('active');
		if(activeElement) { expand(activeElement.parentNode.id); }
	} else {
		alert("No container with id " + container);
	}
}