/* Menu, created vt 2007 */


/* 
AddEvent
elm: Element object
evType: Event type
fn: Function
useCapture: false
*/
function addEvent(elm, evType, fn, useCapture){
	if(elm.addEventListener){
		elm.addEventListener(evType, fn, useCapture);
		return true;
	}
	else if(elm.attachEvent){
		var r = elm.attachEvent('on' + evType, fn);
		return r;
	}
	else{
		elm['on' + evType] = fn;
	}
}


/*
init
Initiate the javascript's listeners and setup some values.
*/
function init(){
	if(!document.getElementsByTagName)
		return;
	if(!document.getElementById)
		return;
	
  
	var uls = document.getElementsByTagName('ul');
	for (var i = 0; i < uls.length; i++){
		var lis = uls[i].getElementsByTagName('li');
		for (var j = 0; j < lis.length; j++){
			var node = lis[j];
			
			if ((' ' + node.className + ' ').indexOf('item') != -1){
				addEvent(node, 'mouseover', getMoverFor(node), false);
				addEvent(node, 'mouseout', getMoutFor(node), false);			
			}
		}
	}

}



/*
showMenu
e: Event
Shows the selected nodes by changing the display property.
*/
function showMenu(e, targetElement){
	var el = window.event ? targetElement : e ? e.currentTarget : null;
	if (!el) return;
	for (var i = 0; i < el.childNodes.length; i++){

		var node = el.childNodes[i];
		if (node.nodeName.toLowerCase() == 'ul'){
			node.style.display = 'block';
		}
	}
}

function hideMenu(e, targetElement){
	var el = window.event ? targetElement : e ? e.currentTarget : null;
	if (!el) return;
	for (var i = 0; i < el.childNodes.length; i++){
		var node = el.childNodes[i];
		if (node.nodeName.toLowerCase() == 'ul'){
			node.style.display = 'none';
		}
	}			

}


function getMoverFor(node){
	return function(e) { showMenu(e, node); };
}

function getMoutFor(node){
	return function(e) { hideMenu(e, node); };
}




// starts the script
addEvent(window, 'load', init, false);