
var expanders = new Array();

function Expander(show_label_obj, hide_label_obj, container_obj) {

	this.show_label = show_label_obj;
	this.hide_label = hide_label_obj;
	this.container = container_obj;
}


function BuildExpanders() {

	var containers = document.getElementsByTagName('div');
	for (var i=0; i < containers.length; i++)
	{
	 	if (containers[i].className == 'expander')
			NewExpander( containers[i] );
	}

}

function findChildWithClassName(obj, name) {

	if (obj.className == name) return obj;

	var children = obj.childNodes;
	for (var i = 0; i < children.length; ++i) {
		var x = findChildWithClassName(children[i], name);
		if (x) return x;
	}

	return 0;
}

function NewExpander(expander) {

	var show_label = findChildWithClassName(expander, "show_label");
	var hide_label = findChildWithClassName(expander, "hide_label");
	var container = findChildWithClassName(expander, "container");

	if (show_label && hide_label && container ) {

		var index = expanders.length;

		show_label.onmousedown = function () { show_expander(index); };
		hide_label.onmousedown = function () { hide_expander(index); };

		show_label.style.cursor = "pointer";
		hide_label.style.cursor = "pointer";

		if (index%2 == 0) expander.style.backgroundColor = "#e0e0e0";
		expanders[index] = new Expander(show_label, hide_label, container);
		hide_expander(index);

	}

}


function show_expander (index) {

	var expander = expanders[index];
	
	expander.show_label.style.display = "none";
	expander.hide_label.style.display = "inline";
	expander.container.style.display = "block";
}

function hide_expander (index) {

	var expander = expanders[index];
	
	expander.show_label.style.display = "inline";
	expander.hide_label.style.display = "none";
	expander.container.style.display = "none";
}




