// JavaScript Document
var allElements = new Array();
var allBlocksSet = false;

// set default style.display attribute and add Toggle function to each EXPAND <p> or <div> block element
function InitExpands() {
	allElements = document.getElementsByTagName("a");
	for (var i=0; i<allElements.length; i++) {
		if (allElements[i].id.match("EXPAND_ALL")) {
			allElements[i].onclick = AllExpand;
		} else if (allElements[i].id.match("EXPAND")) {
			allElements[i].onclick = ToggleExpand;
		}
	}
	idMatch = false;
	allElements = document.getElementsByTagName("p");
	if (allElements.length == 0) allElements = document.getElementsByTagName("div");
	for (var i=0; i<allElements.length; i++) {
		if (allElements[i].id.match("EXPAND")) {
			idMatch = true;
			allElements[i].style.display = "none";
		}
	}
	if (idMatch) return; // if no <p> match, search for matching <div>
	allElements = document.getElementsByTagName("div");
	for (var i=0; i<allElements.length; i++) {
		if (allElements[i].id.match("EXPAND")) {
			allElements[i].style.display = "none";
		}
	}

}

// toggle display attribute of selected EXPAND block
function ToggleExpand() {
	for (var i=0; i<allElements.length; i++) {
		if (allElements[i].id.match(this.id)) { // match anchor id with block id
			if (allElements[i].style.display == "none") {
				allElements[i].style.display = "block";
			} else if (allBlocksSet) { 
				// if show all function flag set leave display set at 'block' for this expand_block
				allElements[i].style.display = "block";
			} else {
				allElements[i].style.display = "none";
			}
		} else if (allElements[i].id.match("EXPAND")) {
			allElements[i].style.display = "none";
		}
	}
	allBlocksSet = false;
}

// expand all blocks
function AllExpand() {
	for (var i=0; i<allElements.length; i++) {
		if (allElements[i].id.match("EXPAND")) { // find all expand blocks
			if (!allBlocksSet) {
				allElements[i].style.display = "block";
			} else {
				allElements[i].style.display = "none";
			}
		}
	}
	allBlocksSet = !allBlocksSet;
}

addOnload(InitExpands);
