
function toggle() {
	if (this.innerHTML == '+') {
		// Show
		this.innerHTML = '-';
		getNextSiblingOfType(this.parentNode,"DD").style.display = 'block';
	} else {
		// Hide
		this.innerHTML = '+';
		getNextSiblingOfType(this.parentNode,"DD").style.display = 'none';
	}
}

function getNextSiblingOfType(now, type) {
	var next = now.nextSibling;
	if (!next) return 0;
	if (next.nodeName==type) return next;
	return getNextSiblingOfType(next, type);
}

function setupToggles() {
	var list = document.getElementsByTagName('DT');

	var toggleObject=document.createElement("A");
	toggleObject.innerHTML = '+';
	toggleObject.href = 'javascript:void(0);';
	toggleObject.className = 'toggle';

	var i;
	for (i=0; i<list.length; i++) {
		if (list[i].parentNode.className != "expanding") {
			continue;
		}
		var t = toggleObject.cloneNode(true);
		t.onclick = toggle;
		list[i].insertBefore(t, list[i].firstChild);
	}

	// Hide DDs
	list = document.getElementsByTagName('DD');
	for (i=0; i<list.length; i++) {
		if (list[i].parentNode.className != "expanding") {
			continue;
		}
		list[i].style.display = 'none';
	}
}

// Attempt to limit the code to being run by capable browsers
function dlInit() {
	if (document.getElementsByTagName) {
		setupToggles();
	}
}
