// required: dom.js

var defaultMenu;
var currentMenu;
//var mouseInDiv = false;
var menuOpener;

//var testxf;

var startList = function() {
	if (dom_supported) {
		var navRoot = document.getElementById("mainmenu");
		//navRoot.onmouseout = function(){
			//swapMenu(defaultMenu);
			//testxf.innerHTML += "<br />out div";
		//}
		
		//navRoot.onmousemove = function(){
			//testxf.innerHTML += "<br />mousemove";
			
		//}
		
		/*navRoot.onmouseover = function(){
			testxf.innerHTML += "<br />out div";
			mouseInDiv = true
		}*/
		walkMenu(navRoot);
		
		/*var content = document.getElementById("content");
		content.onmouseover = function(){
			swapMenu(defaultMenu);
			testxf.innerHTML += "<br />content in";
		}*/
	}
}

/*function checkMousePosition(){
	// ICICICICICICICICICICICICICICICICI
	if(event){
		alert(event.screenX);
	}
}*/

function walkMenu(navRoot){
	for (var i=0; i<navRoot.childNodes.length; i++) {
		var node = navRoot.childNodes[i];
		if (node.nodeName == "LI") {
			dom_addClass(node, "off");
			node.onmouseover=function() {
				swapMenu(this);
				menuOpener = this;
			}
			node.onmouseout=function() {
				if(menuOpener == this){
					swapMenu(defaultMenu);
				}
			}
			
			// If the element has a ul
			// ICICICICICICICICICICI
			
			// If the element has "default" as it's className, it is the default menu
			if(dom_hasClass(node, "default")){
				defaultMenu = node;				
			}
		}else if(node.hasChildNodes()){
			walkMenu(node);
		}
	}
}

function swapMenu(newMenu){	
	if(currentMenu != newMenu){
		if(currentMenu != undefined){
			dom_removeClass(currentMenu, "on");
			dom_addClass(currentMenu, "off");
		}
		
		if(newMenu != undefined){
			dom_removeClass(newMenu, "off");
			dom_addClass(newMenu, "on");
		
			currentMenu = newMenu;
		}else{
			currentMenu = null;
		}
	}
}

window.onload=function(){
	startList();
	if(defaultMenu != undefined){
		dom_removeClass(defaultMenu, "default");
		swapMenu(defaultMenu);
	}
	//testxf = document.getElementById("testmessage");
	//document.onmouseover = checkMousePosition;
}