function initNavigation() {
	var lists = document.getElementsByTagName('ul');
	for (var i=0;i<lists.length;i++) {
		if (lists[i].className != 'menutree') continue;
		lists[i].onmouseover = navMouseOver;
		lists[i].onmouseout = navMouseOut;
		var listItems = lists[i].getElementsByTagName('li');
		for (var j=0;j<listItems.length;j++) {
			var test = listItems[j].getElementsByTagName('ul')[0];
			if (test) {
				// find out how many items are in the dropdown list
				var testChildren = test.getElementsByTagName('li');
				var itemCount = testChildren.length;
				listItems[j].firstChild.onfocus = navMouseOver;
				listItems[j].relatedItem = test;
				listItems[j].itemCount = itemCount;
			}
		}
	}
}

var currentlyOpenedMenus = new Array();
var currentlyFocusedItem;
var closeMenuTimeOut;
var openMenuTimeOut;
var evtTargetGlob;

function navMouseOver(e) {
	if (closeMenuTimeOut) {
		clearTimeout(closeMenuTimeOut);
	}
	if (openMenuTimeOut) {
		clearTimeout(openMenuTimeOut);
	}
	var evt = e || window.event;
	var evtTarget = evt.target || evt.srcElement;
	evtTargetGlob = evtTarget;
	openMenuTimeOut = setTimeout('foldMenuOut(evtTargetGlob)', 300);
}

function navMouseOut(e) {
	var evt = e || window.event;
	var relatedNode = evt.relatedTarget || evt.toElement;
	foldMenuIn(relatedNode);
}

function foldMenuIn(targetNode) {
	targetNodecur = targetNode;
	if (closeMenuTimeOut) {
		clearTimeout(closeMenuTimeOut);
	}
	closeMenuTimeOut = setTimeout('closeMenu(targetNodecur)', 600);
}

function foldMenuOut(evtTarget) {
	if (evtTarget.nodeName == 'UL') return;
	while (evtTarget.nodeName != 'LI')
		evtTarget = evtTarget.parentNode;
	closeMenu(evtTarget);
	if (evtTarget.relatedItem && !evtTarget.relatedItem.opened) {
		//evtTarget.className = 'highlight';  removed because evtTarget is a link
		// dropdown lists with less than 3 items use a different background image
		if (evtTarget.itemCount < 3) {
			evtTarget.relatedItem.className = 'lt3 fold-out';
		}
		else {
			evtTarget.relatedItem.className = 'fold-out';
		}
		evtTarget.relatedItem.opened = true;
		/*if(IE && !(IE7) && !(Opera)) {
			createIframeLayer(evtTarget.relatedItem);
		}*/
		currentlyOpenedMenus.push(evtTarget.relatedItem);
	}
}

function containsElement(obj1,obj2) {
	while (obj2.nodeName != 'HTML') {
		if (obj2 == obj1) return true;
		obj2 = obj2.parentNode;
	}
	return false;
}
//
//addEventSimple(window,"load",initNavigation);
//
//function addEventSimple(obj,evt,fn) {
//	if (obj.addEventListener)
//		obj.addEventListener(evt,fn,false);
//	else if (obj.attachEvent)
//		obj.attachEvent('on'+evt,fn);
//}
//
//function removeEventSimple(obj,evt,fn) {
//	if (obj.removeEventListener)
//		obj.removeEventListener(evt,fn,false);
//	else if (obj.detachEvent)
//		obj.detachEvent('on'+evt,fn);
//}

/** PUSH AND SHIFT FOR IE5 **/

function Array_push() {
	var A_p = 0
	for (A_p = 0; A_p < arguments.length; A_p++) {
		this[this.length] = arguments[A_p]
	}
	return this.length
}

if (typeof Array.prototype.push == "undefined") {
	Array.prototype.push = Array_push
}

function Array_shift() {
	var A_s = 0
	var response = this[0]
	for (A_s = 0; A_s < this.length-1; A_s++) {
		this[A_s] = this[A_s + 1]
	}
	this.length--
	return response
}

if (typeof Array.prototype.shift == "undefined") {
	Array.prototype.shift = Array_shift
}

//====================== These functions creates/remove an iframe 'mask' underneath dropdown lists in main nav
//====================== for internet explorer only
function createIframeLayer(menu) {
	var layer = document.createElement('iframe');
    layer.tabIndex = '-1';
    layer.src = 'javascript:false;';
	menu.parentNode.appendChild(layer);
	// make the iframe the same size and position as the dropdown
    layer.style.left = menu.offsetLeft + 'px';
    layer.style.top = menu.offsetTop + 'px';
    layer.style.width = menu.offsetWidth + 'px';
    layer.style.height = menu.offsetHeight + 'px';
}

function removeIframeLayer(menu) {
    var layers = menu.parentNode.getElementsByTagName('iframe');
    while (layers.length > 0) {
      layers[0].parentNode.removeChild(layers[0]);
    }
}
/** delay on mouseout **/
function closeMenu(targetNode) {
	if (!targetNode) return;
	var newCurrentlyOpenedMenus = new Array();
	for (var i=0;i<currentlyOpenedMenus.length;i++) {
		if (!containsElement(currentlyOpenedMenus[i],targetNode)) {

			currentlyOpenedMenus[i].className = '';
			//currentlyOpenedMenus[i].parentNode.className = '';
			currentlyOpenedMenus[i].opened = false;

			/*if(IE && !(IE7) && !(Opera)) {
				removeIframeLayer(currentlyOpenedMenus[i].parentNode);
			}*/
		}
		else
			newCurrentlyOpenedMenus.push(currentlyOpenedMenus[i]);
	}
	currentlyOpenedMenus = newCurrentlyOpenedMenus;

	}
