
// pokud browser nepodporuje pridavani Eventu
// menu zustane rozbalene a obsah stranky se posune niz o vysku menu
evCheck = 'jo';

function evJo() {
	/*if (evCheck != 'ne') {
	   document.getElementById('cont').style.top = '160px';
	   evCheck = 'ne';
	}*/
}

function addEvent(obj, evType, fn){
	// for NN and Mozilla
	if (obj.addEventListener){
		obj.addEventListener(evType, fn, true);
		if (evType == 'mouseover') {
			evJo();
		}
		return true;
	// for MSIE
	} else if (obj.attachEvent){
		var r = obj.attachEvent("on"+evType, fn);
		if (evType == 'mouseover') {
			evJo();
		}
		return r;
	} else {
		alert("Handler could not be attached");
		return false;
	}
}

addEvent(window, "load", init);

elementy = new Array();	// pole obsahujici ID elementu a k nemu ID Timeoutu
showhide = new Array();	// pole obsahujici ID elementu a k nim info o mouseOver a mouseOut

function init() {
	// inicializace polozek menu
	var m = document.getElementById('navigace').getElementsByTagName('UL')[0].getElementsByTagName('LI');
	
	for (var i = 0; i < m.length; i++) {	
		addEvent(m[i], "mouseover", swapMenu);
		addEvent(m[i], "mouseout", swapMenu);
	}
	
	// lis - pole obsahujici elementy LI vnorene v prvnim elementu UL pod DIV s ID "navigace"
	lis = document.getElementById('navigace').getElementsByTagName('UL')[0].getElementsByTagName('LI');
	lisleng = lis.length;	// pocet UL
	l = 0;
	while (l < lisleng) {
		// kontrola onmouseoveru i na vnorenych elementech LI
		// pres parentNode se dostavame smerem nahoru, na LI s IDckem, podle ktereho pak skryvame
		// patricne UL
		if ((lis[l].getAttribute('id') == null) || (lis[l].getAttribute('id') == '')) {
			idli = lis[l].parentNode.parentNode.getAttribute('id');
			var right = false;
		} else {
			idli = lis[l].getAttribute('id');			
			elementy[idli] = idli;			
			showhide[idli] = '';			
			var right = true;
		}

		// pokud se jedna o spravny element LI najdeme si v nem UL, ktery schovame		
		if (right == true) {
			if (document.getElementById(idli).getElementsByTagName('UL')[0]) {
				if (document.getElementById(idli).getElementsByTagName('UL')[0].style.display == '') {
					document.getElementById(idli).getElementsByTagName('UL')[0].style.display = 'none';
				}
			}
		}
		l++;
	}
//	alert('init');
}

function swapMenu(e) {
	e = fixE(e);
	var t = e.type;	// typ Eventu
	var obj;
	if (e.currentTarget) {
		obj = e.currentTarget;
//		document.echo.settmout.value = 'obj IF \n'+document.echo.settmout.value;
	} else {
		obj = e.target;
//		document.echo.settmout.value = 'obj ELSE \n'+document.echo.settmout.value;
		// pokud zachytime event na jinem (vnorenem) elementu
		// pak prochazime cyklem rodicovske elementy tak dlouho, dokud nenarazime na LI
		// z neho si pak vytahneme jeho ID se kterym pracujeme dale
		while (obj.tagName != 'LI') {
			obj = obj.parentElement;
		}
//		document.echo.settmout.value = 'obj.parentElement = '+obj.parentElement.getAttribute('id')+'\n'+document.echo.settmout.value;
	}
	var elid = obj.getAttribute('id'); // a presne v tomhle je problem - v IE je ta promena prazdna ################
	// #############################################################################################################
	
	// silenej workaround pro IE - ziskani IDcka z LI
	rExp = /\w/i;
	if (!rExp.test(elid)) {	// pokud elid neni alfanumericky
//	if ((elid == null) || (elid == '')) {
		while (obj.tagName != 'UL') {
			obj = obj.parentElement;
		}
		var elid = obj.parentElement.getAttribute('id');
		
//		document.echo.settmout.value = 'e.target = '+elid+'\n'+document.echo.settmout.value;
	}
//	document.echo.settmout.value = 'objAfte '+elid+'\n'+document.echo.settmout.value;

	// substr(5) odrizne prvnich 5 znaku (tedy mouse)
	var suf = '';
	if (t.substr(5) == 'over') {
		suf = '1';
	} 
	if (t.substr(5) == 'out') {
		suf = '0';
	}
	if (t.substr(5) == 'down') {
		suf = '1';
	}		
	


	
	if (suf == '1') {
//		document.echo.settmout.value = 'suf==1 '+elid+'\n'+document.echo.settmout.value;
		if ((elid != null) && (elid != '')) {
			if (document.getElementById(elid).getElementsByTagName('UL')[0]) {
//				document.echo.settmout.value = 'suf==1 elid != null = '+elid+'\n'+document.echo.settmout.value;
				if (document.getElementById(elid).getElementsByTagName('ul')[0].style.display == 'none') {
					document.getElementById(elid).getElementsByTagName('ul')[0].style.display = '';
				
					showhide[elid] = 'over';
//					document.echo.settmout.value = 'zobrazit '+elementy[elid]+'+'+elid+'\n'+document.echo.settmout.value;
//					alert(elid+' + '+t);
				} else {

					showhide[elid] = 'over';
					if (elementy[elid] == timeoutID) {
						showhide[elid] = 'over';
						clearTimeout(timeoutID);
//						document.echo.settmout.value = 'clrTa '+timeoutID+'+'+elid+'\n'+document.echo.settmout.value;
					}
//					document.echo.tmout.value = timeoutID;
//					document.echo.settmout.value = 'clrQ '+timeoutID+'+'+elid+'\n'+document.echo.settmout.value;
				}
			}
		} else {
//			document.echo.settmout.value = 'vyjimka!!!!!!!!'+elid+'\n'+document.echo.settmout.value;
		}
	}

// Pri kazdem onMouseOver projedeme pole vsech elementu (casti menu) a zjistime jejich stav (Hide/Show)
// Vsechny, ktere maji Show, ale nemaji onMouseOver schovame se spozdenim pres setTimeout bez argumentu

	if (suf == '0') {
		if ((elid != null) && (elid != '')) {
			if (document.getElementById(elid).getElementsByTagName('ul')[0]) {
				if (document.getElementById(elid).getElementsByTagName('ul')[0].style.display == '') {

						timeoutID = setTimeout("hideMSIE()", 100);
//						document.echo.settmout.value = 'hideMSIEb '+timeoutID+'+'+elid+'\n'+document.echo.settmout.value;
//						timearray[timeoutID] = elid;
						elementy[elid] = timeoutID;
						showhide[elid] = 'out';
				}
			}
//			dbgQ('hiding - ' + elid);
		} else {
			//document.echo.settmout.value = 'vyjimka!!!!!'+elid+'\n'+document.echo.settmout.value;
//			dbgQ('vyjimka - ' + elid);
		}
	}
	
	return false;
}


function hideMSIE(elid) {
//	dbgQ(elid);

	lis = document.getElementById("navigace").getElementsByTagName('UL')[0].getElementsByTagName('LI');
	lisleng = lis.length;	// pocet UL
	l = 0;
	while (l < lisleng) {
		if ((lis[l].getAttribute('id') == null) || (lis[l].getAttribute('id') == '')) {
			idli = lis[l].parentNode.parentNode.getAttribute('id');
			var right = false;
		} else {
			idli = lis[l].getAttribute('id');
			var right = true;
		}
		// pokud se jedna o spravny element LI najdeme si v nem UL, ktery schovame		
		if (right == true) {
//			ulofli = document.getElementById(idli).getElementsByTagName('ul')[0];
			if ((document.getElementById(idli).getElementsByTagName('UL')[0]) && (showhide[idli] == 'out')) {
				if ((document.getElementById(idli).getElementsByTagName('UL')[0].style.display == '') && (showhide[idli] == 'out')) {
					document.getElementById(idli).getElementsByTagName('UL')[0].style.display = 'none';
//					document.echo.settmout.value = 'hideMSIE '+timeoutID+'+'+idli+'+'+showhide[idli]+'\n'+document.echo.settmout.value;
				}
			}
		}
		l++;
	}
}


function fixE(e) {
	if (!e && window.event) e = window.event;
	if (!e.target) e.target = e.srcElement;
	return e;
}
