var sidebar_callback;

var menu_chain;
var pmenu_chain;
var active_chain;

var page_required;

var need_callback;

function pushcallback(name,func)
{
	if (!need_callback) {
		need_callback = new Array;
	}
	need_callback[name] = func;
}
function mkmenu(parent,child)
{
	var l;

	if (!menu_chain) {
		menu_chain = new Array;
		menu_chain[parent.id] = new Array;
		pmenu_chain = new Array;	// map back
	}
	l = menu_chain[parent.id];
	pmenu_chain[child.id] = parent.id;
	l[l.length] = child;
}
function gettext(e)
{
	var e = e || window.event;
	var f = e.target || e.srcElement;


	copytext(f.id,f);
}
function showhidemenu(id,what)
{
	var l;
	l = menu_chain[id];
	for(i=0;i<l.length;i++) {
		l[i].style.display = what?"block":"none";
		l[i].style.backgroundImage = "url(images/navbar_gradient.gif)";
	}
}
function goto_div(id)
{
	var d;
	d = document.getElementById(id);
	copytext(d.id,d);
}
function copytext(id,f)
{
	var nid;

	if (menu_chain) {
		if (active_chain && !menu_chain[id]) {
			if (f.className != "navbar_side_m") {
				showhidemenu(active_chain,false);
				active_chain = null;
			}
		}
		if (pmenu_chain[id]) {
			nid = pmenu_chain[id];
		} else {
			nid = id;
		}
		if (menu_chain[nid]) {
			showhidemenu(nid,true);
			active_chain = nid;
		}
	}
	var d = document.getElementById(id + "_txt");
	var n = document.getElementById("text_content");
	if (selected && f == selected) return;
	if (d && n) {
		n.innerHTML = d.innerHTML;
		if (need_callback && need_callback[d.id]) {
			need_callback[d.id]();
		}
		if (selected) selected.style.backgroundImage = "url(images/navbar_gradient.gif)";
		selected = f;
		f.style.backgroundImage = "url(images/selected_gradient.gif)";
		if (typeof(loadmini) != "undefined") loadmini(d);
		return true;
	}
	return false;
}
function sidebar_load()
{
	var t;
	var i;
	var j;
	var first;
	var cp;
	var last;

	selected = null;
	t = document.getElementsByTagName("div");
	first = null;
	for(i=0;i<t.length;i++) {
		if (t[i].className == "navbar_side" || t[i].className == "navbar_side_l" || t[i].className == "navbar_side_m") {
			if (!first) first = t[i];
			t[i].onclick = gettext;
			if (t[i].className == "navbar_side_m") {
				mkmenu(last,t[i]);
			} else {
				last = t[i];
			}
		}
	}
	buildpage(first);
	if (sidebar_callback) sidebar_callback();
}
function buildpage(first,value)
{
	s = getparam("page");
	if (s == "clients" && !value) {
		force_callback = function(t) { var z=first; buildpage(null,true); }
	} else {
		if (s == "" && page_required != "") s = page_required;
		cp = false;
		if (s != "") cp = copytext(s,document.getElementById(s));
		if (!cp && first) cp = copytext(first.id,first);
	}
}
if (window.onload) sidebar_callback = window.onload;
page_required = "";
window.onload = sidebar_load;
