addOnLoad(init_selector);
var selectors = 'selector_list';

var selectables = new Array();
var hidables = new Array();
var common_hidden = false;

function init_selector()
{
	var all = document.getElementById(selectors).getElementsByTagName('a');
	for (var i = 0; i < all.length; i++)
	{
		if (all[i].id != 'sel_all')
		{
			all[i].onclick = select_me;
			selectables[all[i].id.substr(4)] = 1;
		}
		else
			all[i].onclick = select_all;
	}
	var selected = get_selected();
	if ((selected != '') && (selectables[selected] != null)) select(selected);
}

function get_selected()
{
	return location.hash.substr(1);
}

function set_display(node, value)
{
	if (node != undefined) node.style.display = value;
}

function select_me()
{
	return select(this.id.substr(4));
}

function select_all()
{
	for (i in selectables) show(i, false);
	for (i in hidables) set_display(document.getElementById(hidables[i]), '');
	common_hidden = false;
	return false;
}

function select(id)
{
	for (i in selectables) if (i != id) hide(i);
	show(id, true);
	if (common_hidden == false)
	{
		for (i in hidables) set_display(document.getElementById(hidables[i]), 'none');
		common_hidden = true;
	}
	return false;
}

function show(id, show_sel)
{
	if (selectables[id] == 0)
	{
		selectables[id] = 1;
		document.getElementById(id).style.display = '';
	}
	if (show_sel)
		document.getElementById('sel_'+id).className = 'active';
	else
		document.getElementById('sel_'+id).className = '';
}

function hide(id)
{
	if (selectables[id] == 1)
	{
		selectables[id] = 0;
		document.getElementById(id).style.display = 'none';
		document.getElementById('sel_'+id).className = '';
	}
}
