/** 
 * Fix for buggy MenuBean.js regarding duplicate prev_sibling classnames 
 * and to override menu bean open persistence.
 * @author Ben Barber (bbarber@i2rd.com)
 */
MB.SetActive = function(li, activate) {
	//log4js.logger.info("Activating: " + li.id);
	// Set the specified list item as active.
	if(!li.className.match(/over/)) {
		li.className += " over";
		var ul = MB.GetChildUL(li);
		if(false) {// Do not remember state
		//if(ul && ul.className.match("_persistent")) {
			var nodelist = MB.GetOpenState(li);
			var entry = "," + li.id;
			if(nodelist.indexOf(entry) == -1) {
				nodelist += entry;
			}
			MB.SetOpenState(li, nodelist)
		}
	}
	if(activate) {
		var top = MB.getTop(li);
		MB.SetInactiveClass(top);
		if(!li.className.match(/mi_active/)) {
			li.className = li.className.replace("mi_inactive", "");	
			li.className += " mi_active";
		}
		//log4js.logger.info("Setting node mi_active: " + li.id + " active.");
	}
	if(li.previousSibling && !li.previousSibling.className.match(/prev_sibling/)) {
        li.previousSibling.className+=" prev_sibling";
    }
	if(li.nextSibling && !li.nextSibling.className.match(/next_sibling/)) {
        li.nextSibling.className+=" next_sibling";
    }
}

MB.SetInActive = function(li) {
	if(!li.className.match(/over/))
		return;
	// Set the specified list item as active.
	//log4js.logger.info("Deactivating: " + li.id);
	li.className=li.className.replace("over", "");
	var ul = MB.GetChildUL(li);
	if(ul && ul.className.match("_persistent")) {
		var nodelist = MB.GetOpenState(li);
		nodelist = nodelist.replace("," + li.id, "");
		MB.SetOpenState(li, nodelist);
	}
    var prev = li.previousSibling;
    if (prev) {prev.className=prev.className.replace(/ prev_sibling/g, "");}
    var next = li.nextSibling;
    if (next) {next.className=next.className.replace(/ next_sibling/g, "");}
}