var base = "menu";
var maxMenuItem = 10;
var timer;
var visible = 0;
var curr_index;
var ids = new Array();
function collapseMenu() {
for (var i=0; i<ids.length; i++) {
var div = document.getElementById(base).getElementsByTagName('div')[2*i+1];
div.style.visibility = "hidden";
var ul = document.getElementById(base).getElementsByTagName('div')[2*i+1].getElementsByTagName('ul')[0];
ul.style.display = "none";
var item = document.getElementById(ids[i]);
item.className = ""; 
}
visible = 0;
}
function showMenu() {
var index = 0;
while (index<ids.length && document.getElementById(ids[index])!=this) {index++}
if (!visible) {
curr_index = index;
timer = setTimeout("writeMenu('"+index+"')",250);
} 
else {	
if (timer) {
clearTimeout(timer);
if (curr_index == index) 
visible = 1;
else {
curr_index = index;
writeMenu(index);
}
}
}
}		
function hideMenu() {
if (visible) {
timer = setTimeout("collapseMenu()",500);
}
else if (timer) {
clearTimeout(timer);
visible = 0;
}
}
function writeMenu(index) {
var el = document.getElementById(base).getElementsByTagName('div')[2*index+1].getElementsByTagName('ul')[0];
if (el.init==null) {
el.init = true;
el.inc = 1;
el.size = -maxMenuItem;
collapseMenu();
el.style.display = "block";
document.getElementById(base).getElementsByTagName('div')[2*index+1].style.visibility = "visible";
document.getElementById(ids[index]).className = "select";
visible = 1;
}
el.style.top = el.size+"em";
el.size += el.inc;
if (el.size<=0)
setTimeout("writeMenu('"+index+"')",50);
else  el.init = null;
}
function focusMenu() {
var index = 0;
while (index<ids.length && document.getElementById(ids[index])!=this) {index++}
curr_index = index;
writeMenu(index);
} 
window.onload = function() {
if (document.getElementById) {
var links = document.getElementById(base).getElementsByTagName('a');
var divs = document.getElementById(base).getElementsByTagName('div');
for (var i=0, j=0; i<links.length; i++) 
if (links[i].getAttribute('id')) {
ids[j] = links[i].getAttribute('id'); j++;  
}
collapseMenu();
for (var i=0; i<links.length; i++) 
if (links[i].getAttribute('id')) {
links[i].onmouseover = showMenu;
links[i].onfocus = focusMenu;
links[i].onmouseout = hideMenu;
} else  links[i].onclick = function() {collapseMenu(); return true;};
for (var i=0; i<2*ids.length; i+=2) {
divs[i+1].getElementsByTagName('ul')[0].onmouseover = function() {if (visible) clearTimeout(timer);}	
divs[i+1].getElementsByTagName('ul')[0].onmouseout = hideMenu;
}	
links[links.length-1].onblur = hideMenu;
}
}
