var context_menus;
var timer_in;
var timer_out;
var displayTime = 100;
var hideTime = 1000;
var jsa;

function getElementsByClass(searchClass, domNode, tagName) {
	if (domNode == null) domNode = document;
	if (tagName == null) tagName = '*';
	var el = new Array();
	var tags = domNode.getElementsByTagName(tagName);
	var tcl = " "+searchClass+" ";
	for(i=0,j=0; i<tags.length; i++) {
		var test = " " + tags[i].className + " ";
		if (test.indexOf(tcl) != -1)
			el[j++] = tags[i];
	}
	return el;
}

function hideAll() {
	jscm = document.getElementById("sidebar");
	jscb = jscm.getElementsByTagName("a");
	for(i=0; i<jscb.length; i++) {
		if (jscb[i].rel != "") {
			document.getElementById(jscb[i].rel).style.visibility = "hidden";
		}
	}
}

function hideAllExcept(button) {
	menus = getElementsByClass("cm_in", document.getElementById("sidebar"));
	for(i=0; i<menus.length; i++) {
		found = false;
		jsas = menus[i].getElementsByTagName("a");
		for(j=0; j<jsas.length; j++) {
			if (jsas[j] == button) {
				found = true;
				break;
			}
		}
		if (!found) {
			menus[i].style.visibility = "hidden";
		}
	}
}

function displayMenu(buttonid) {
	jsbutton = document.getElementById(buttonid);
	hideAllExcept(jsbutton);
	if (jsbutton.rel != "") document.getElementById(jsbutton.rel).style.visibility = "visible";
}

function inContextButton() {
	clearTimeout(timer_out);
	timer_in = setTimeout("displayMenu(\""+this.id+"\")", displayTime);
}

function outContextButton() {
	clearTimeout(timer_in);
	timer_out = setTimeout("hideAll()", hideTime);
}

function init_context_menu() {
	jssidebar = document.getElementById("sidebar");
	jsa = jssidebar.getElementsByTagName("a");
	for(i=0; i<jsa.length; i++) {
		if (jsa[i].className.match("cm_btn")) {
			jsa[i].onmouseover = inContextButton;
			jsa[i].onmouseout = outContextButton;
		}
	}
}
