var selected_menu_item = null
var follow = false


function getElementsByClass(needle)
{
	var my_array = document.getElementsByTagName("*")
	var retvalue = new Array()
	var i
	var j
	
	for (i = 0, j = 0; i < my_array.length; i++)
	{
		var c = " " + my_array[i].className + " "
		if (c.indexOf(" " + needle + " ") != -1) {
			retvalue[j++] = my_array[i]
		}
	}
	
	return retvalue
}

function folding() {
	if (selected_menu_item) {
		if (selected_menu_item != this.childNodes[2]) {
			selected_menu_item.style.display='none'
		}
	}
	if (this.childNodes[2]) {
		if (! follow) {
			this.childNodes[2].style.display=(this.childNodes[2].style.display=='none') ? 'block' : 'none'
		}
		selected_menu_item = this.childNodes[2]
		return follow
	} else {
		return true
	}
}

// FIXME: support for more classes
function highlight() {
	classname2 = this.className.split(' ')
	if (classname2[3]) {
		this.className = classname2[0]+' '+classname2[1]+' '+classname2[2]
	} else {
		this.className = classname2[0]+' '+classname2[1]+' '+classname2[2]+' '+classname2[2]+'-selected'
	}
}

function highlighting(classname2) {
	item2 = getElementsByClass(classname2)
	for (var i in item2) {
		item2[i].onmouseover = highlight
		item2[i].onmouseout = highlight
	}			
}

function visit(e) {
	if (!e) var e = window.event;
	e.cancelBubble = true;
	if (e.stopPropagation) e.stopPropagation();

	window.location = this.childNodes[0];
}
function loadmenu() {
	menu = getElementsByClass('topitem')

	for (var i in menu) {
		if (menu[i].childNodes) { // HACK

			if (menu[i].childNodes[2]) {
				if (menu[i].childNodes[2].style.display!='block') {
					menu[i].childNodes[2].style.display = 'none'
				}
				menu[i].onclick = folding
			} else {
				if(menu[i].childNodes[0].target=='_self') {
					menu[i].onclick = visit
				}
			}
		}
		submenu = getElementsByClass('item')
		for (var i in submenu) {
			submenu[i].onclick = visit
		}
	}
	
	highlighting('topitem')
	highlighting('item')
}

function MM_jumpMenu(targ,selObj,restore) {
	eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
	if (restore) selObj.selectedIndex=0;
}