// ************* MENU ***************

function initMenu() {
	lastExpanded0 = null;
	lastHilited0 = null;
	lastHilited1 = null;
	lastHilited2 = null;
	hideTimeout = false;
	topLevTimeout = false;
	mouseOverDeeperLevel = false;
	expandedLevel2 = false;
	
	var i = new Image;
	i.src = '';
	
	menuParent = document.getElementById('menu');
	
	var lis = menuParent.getElementsByTagName('li');
	for (var e=0; e<lis.length; e++) {
		lis[e].onmouseover = menuMouseOver;
	}
	
	document.documentElement.onmouseover = hideMenu;
	
	// set reverse stack order
	var z=1000;
	
	var uls = menuParent.getElementsByTagName('ul');
	
	for (var u=0; u<uls.length; u++) {
		if (uls[u].className == 'level1') {

			var lists1 = uls[u].childNodes;
			for (var i=0; i<lists1.length; i++) {
				if (lists1[i].nodeName == 'LI') {
					lists1[i].style.zIndex = z;
					z--;
				}
			}
		}
	}
	
	var lists0 = menuParent.childNodes;
	for (var i=0; i<lists0.length; i++) {
		if (lists0[i].nodeName == 'LI') {
			lists0[i].style.zIndex = z;
			z--;
		}
	}
	

	bkgs = new Array();
	
	bkgs[0] = document.getElementById('bkg1');
	
	var imgs = menuParent.getElementsByTagName('img');
	
	for (var i=0;i<imgs.length;i++)
	{
		var suffix = imgs[i].src.substring(imgs[i].src.lastIndexOf('.'));
		imgs[i].number = i;
		imgs[i].title = '';
	}
	
	//initPCounter();
}


function enableShowMenu() {
	topLevTimeout = false;
	menuMouseOverExecute();
}


function menuMouseOver(e) {
	if (hideTimeout) {
		clearTimeout(hideTimeout);
		hideTimeout = false;
	}
	
	// stop bubble
	if (!e) var e = window.event;
	e.cancelBubble = true;
	if (e.stopPropagation) e.stopPropagation();
	
	menuItem = this;
	className = menuItem.className.substring(0,6);
	
	if (className == 'level0') {
		// highlight 1st level item
		hiliteTopLevelItem(menuItem);

		// start delay
		mouseOverDeeperLevel = false;
		
		itemDeHilite(lastHilited1);
		lastHilited1 = null;	
		
		if (topLevTimeout) {
			clearTimeout(topLevTimeout);
		}
		
		topLevTimeout = setTimeout('enableShowMenu()', 300);

	} else {
		menuMouseOverExecute();
	}
}



function menuMouseOverExecute() {
	if (hideTimeout) {
		clearTimeout(hideTimeout);
		hideTimeout = false;
	}

	// hide
	if (className == 'level0') {
		menuHideAll();
		lastExpanded0 = menuItem;

	} else if (className == 'level1') {
		menuHideLevel2();
		
		itemDeHilite(lastHilited2);
		lastHilited2 = null;		
	}
	
	
	// show
	var submenu = menuItem.getElementsByTagName('ul');
	if (submenu.length) {
		submenu[0].style.visibility = 'visible';
	}
	
	expandedLevel2 = false;
	
	if (className == 'level1' || className == 'level2') {
		// highlight current item
		if (className == 'level1') {
			itemDeHilite(lastHilited1);
			lastHilited1 = menuItem;
			
			mouseOverDeeperLevel = true;
		} else {
			itemDeHilite(lastHilited2);
			lastHilited2 = menuItem;
			
			expandedLevel2 = true;
		}
		itemHilite(menuItem);
		
		// check if correct 1st level item is highlighted
		if (lastExpanded0 != lastHilited0) {
			hiliteTopLevelItem(lastExpanded0);
		}
	}
}


function itemHilite(elem) {
	elem.style.backgroundImage = "url('/pliki/bg.jpg')";
}

function itemDeHilite(elem) {
	if (elem) {
		elem.style.background = "white";
	}
}



function menuHideAll() {
	var items = menuParent.getElementsByTagName('ul');
	for (var e=0; e<items.length; e++) {
		items[e].style.visibility = "hidden";
	}
	mouseOverDeeperLevel = false;
}

function menuHideLevel2() {
	var items = menuParent.getElementsByTagName('ul');
	for (var e=0; e<items.length; e++) {
		if (items[e].className == 'level2') {
			items[e].style.visibility = "hidden";
		}
	}	
}



function hideMenu() {   // event...
	if (!expandedLevel2) {
		itemDeHilite(lastHilited1);
	}
	itemDeHilite(lastHilited2);

	clearTimeout(topLevTimeout);

	var timeOut = mouseOverDeeperLevel ? 1000 : 100;
	
	if (!hideTimeout) {
		hideTimeout = setTimeout("hideMenuTimed()", timeOut);
	}
}

function hideMenuTimed() {
	menuHideAll();
	leftAllMouseOuts(-1);
	hideTimeout = false;	
}



function hiliteTopLevelItem(thisItem) {
	
	var div = thisItem.getElementsByTagName('div')[0];
	
	div.style.backgroundImage = "url('button_bkg_alt.jpg')";
	
	
	leftAllMouseOuts(div);
	lastHilited0 = thisItem;
}

function leftAllMouseOuts(ex)
{
	var nav = document.getElementById('menu');
	var bkgs = document.getElementsByTagName('div');
	for (var i=0;i<bkgs.length;i++) {
	if (bkgs[i]!=ex)
		{
			if(bkgs[i].className == "bkg")
				bkgs[i].style.backgroundImage = "none";
		}
	}
}

