var openMenu; //keeps track of the newest open menu
var disapearTime; //for Time til disapear
var debug = false;
function dropMenu(t) {
	clearTimeout(disapearTime);  //stop disapear timer
	while (openMenu && t.parentNode != openMenu) {
		hideMenu();
	}
	for (var i=0; i<t.childNodes.length; ++i) {
		if (t.childNodes[i].nodeName=="UL") {
			t.childNodes[i].className = "appear";
			openMenu = t.childNodes[i];
			t.onmouseover="";
			addJS(openMenu);
		}
	}
}

function hideMenu() {
	if (!openMenu) return;
	if (openMenu.parentNode.parentNode.id=="nav")
		openMenu.className="submenu";
	else
		openMenu.className = "";
	openMenu.parentNode.onmouseover=function(){dropMenu(this);};
        if (openMenu.parentNode.parentNode.id == 'nav')
          openMenu = null;
        else 
          openMenu = openMenu.parentNode.parentNode;
}

function addJS(ul) {
	log(ul.childNodes.length);
	for (var i=0; i<ul.childNodes.length; ++i) {
		if (ul.childNodes[i].nodeName=="LI") {
			log("found LI");
			ul.childNodes[i].onmouseover=function(){dropMenu(this);};
		}
	}
}

function loadMenu() {
	var nav = document.getElementById('nav');
	addJS(nav);
	nav.onmouseover=function(){clearTimeout(disapearTime);};
	nav.onmouseout=function(){disapearTime=setTimeout("offMenu()",500);};
}

function showMouseOver(node) {
  for (var i=0; i < node.childNodes.length; ++i) {
    if (node.childNodes[i].nodeType=="1") {
      showMouseOver(node.childNodes[i]);
    }
  }
}

function offMenu() {
	while (openMenu) {
		hideMenu();
	}
}

function log(message) {
	if (!debug) return;
	var box = document.getElementById('message');
    if (!box) {
    	box = document.createElement("div");
    	box.setAttribute('id','message');
    	document.body.appendChild(box);
		box = document.getElementById('message');
    }
    var logLine = document.createElement("p");
    logLine.appendChild(document.createTextNode(message));
    box.appendChild(logLine);
}
