var lastmenuid=null;

function rmenuchange(id, newClass, clearDescendents) {
//var debug = document.getElementById("wrapper");
//debug.innerHTML += "ID: "+id+", Class: "+newClass+"<br />";
	var identity = null;
	if (id != null) {
    identity=document.getElementById(id);
	}
	var lastmenu = document.getElementById(lastmenuid);
	if (!isDescendent(lastmenu,identity) && !isDescendent(identity,lastmenu))
	{	
		var testClass = new RegExp("(^|\\s)" + "nothidden" + "(\\s|$)");
  	var elements = document.getElementsByTagName("ul");
  	var current;
  	var length = elements.length;
  	for(var i=0; i<length; i++){
  		current = elements[i];
  		if(testClass.test(current.className)){
  			current.className = "hiddenmenu";
				current.parentNode.style.zIndex="1";
  		}
  	}
	}
	if (identity != null) {
    identity.className=newClass;
		if (newClass="nothidden") {
			 lastmenuid = id;
			 identity.parentNode.style.zIndex="999";
		}
	}
	else {
		lastmenuid = null;
	}
}

function isDescendent(elem1,elem2) {
	var ret = false;
	if ((elem1 != null) && (elem2 != null)) {
  	elements = elem1.getElementsByTagName("ul");
  	if (elements != null) {
    	var length = elements.length;
    	for(var i=0; i<length; i++){
    		if (elements[i].id == elem2.id) ret = true;
    	}
  	}
	}
	return ret;
}