/* *****************************
   ****** Menu horizontal ******
   ***************************** */
var zDessus = null, zDehors = null, navimac = '';
function getObjH(chn) {
	if (document.getElementById)
		return document.getElementById(chn);
	else if (document.all)
		return document.all[chn];
	else
		return null;
}
function menuHInit() {
	obj = getObjH('horizmenu');
	obj.onmouseout = menuEvent;
	obj.onmouseover = menuEvent;
	obj.onclick = menuEvent;

	//--- Detection navigateur
	chn = navigator.userAgent.toLowerCase();
	if (chn.indexOf('safari')!=-1)
		navimac = 'saf';
	else if (chn.indexOf('opera')!=-1)
		navimac = 'opr';
	else if (chn.indexOf('konqueror')==-1 && chn.indexOf('omniweb')==-1 && chn.indexOf('webtv')==-1 && chn.indexOf('icab')==-1)
		if (chn.indexOf('msie 5')!=-1 && chn.indexOf('mac')!=-1)
			navimac = 'ie';

	//--- Creer le premier niveau
	chn = '<table class="cmshmenu0tab" cellspacing="0"><tr>';
	for (k = 0; k < zNm; k++)
		if (zTniv[k] == 0) {
			chn += '<td id="'+k+'menuopt" class="cmshmenu0"';
			chn += zTnum[k] == 0 ? ' style="cursor:default">' : '>';
			chn += zTtxt[k]+'<\/td>';
		}
	chn += '<\/tr><\/table>';
	obj.innerHTML = chn;

	//--- Gauche ou droite ?
	niv = ((self.innerWidth ? self.innerWidth : document.body.clientWidth) >> 1) + 99;
	for (g = 0; g < zNm; g++)
		if (zTniv[g] == 0) {
			obj = getObjH(g+'menuopt');
			if (obj.offsetParent)
				for (x = 0; obj.offsetParent; obj = obj.offsetParent)
					x += obj.offsetLeft;
			else
				x = obj.x;
			k = x > niv ? 'G' : 'D';
		}
		else
			if (zTeta[g] != 'X')
				zTeta[g] = k;
}
function menuEvent(evt) {
	if (! evt)
		evt = window.event;
	obj = evt.target ? evt.target : evt.srcElement;
	while (! obj.id || obj.tagName != 'TR' && obj.tagName != 'TD') {
		if (obj.id == 'horizmenu')
			return;
		obj = obj.parentNode;
	}
	k = parseInt(obj.id, 10);

	switch (evt.type) {
	case 'mouseover':
		window.clearTimeout(zDehors);
		window.clearTimeout(zDessus);
		obj.className = 'cmshmenui'+(zTniv[k] ? '1' : '0');
		zDessus = window.setTimeout('menuOuvrir('+k+')', 1);
		break;
	case 'mouseout':
		obj.className = 'cmshmenu'+(zTniv[k] ? '1' : '0');
		zDehors = window.setTimeout('menuFermer()', 200);
		break;
	case 'click':
		if (zTnum[k] != 0)
			window.location.href = 'spip.php?article='+zTnum[k];
		break;
	}
}
function menuOuvrir(k) {
	//--- Enlever les sous-menus de niveau superieur
	niv = zTniv[k];
	ozmenu = getObjH('horizmenu');
	for (g = 0; g < zNm; g++)
		if (zTniv[g] >= niv && g != k)
			if (obj = getObjH(g+'menusous'))
				ozmenu.removeChild(obj);

	if (zTeta[k] == 'X' || getObjH(k+'menusous'))
		return;

	//--- Emplacement pour deplier (variable: y == -1, y += 21)
	x = 0; y = -1;
	obj = getObjH(k+'menuopt');
	if (niv)
		obj = obj.firstChild;	//--- toujours TD

	if (niv == 0 && navimac == 'saf') {
		x += 16;
		y += 19; //--- == obj.clientHeight - bords;
	}
	if (navimac == 'ie')
		x += 16;
	if (obj.offsetParent)
		for (g = obj; g.offsetParent; g = g.offsetParent) {
			x += g.offsetLeft;
			y += g.offsetTop;
		}
	else {
		x = obj.x;
		y = obj.y - 1;
	}
	if (zTeta[k] == 'G')
		chn = 'style="left:0px;top:-999px">';
	else {
		if (niv)
			x += obj.offsetWidth + obj.nextSibling.offsetWidth;
		else
			y += 21;
		chn = 'style="left:'+x+'px;top:'+y+'px">';
	}
	//--- Creer le sous-menu
	chn = '<table id="'+k+'menusous" class="cmshmenu1tab" cellspacing="0" '+chn;
	niv++;
	for (g = k, g++; g < zNm && zTniv[g] >= niv; g++)
		if (zTniv[g] == niv) {
			chn += '<tr id="'+g+'menuopt" class="cmshmenu1';
			if (zTnum[g] == 0)
				chn += '" style="cursor:default';
			if (zTeta[g] == 'X')
				chn += '"><td colspan="2">'+zTtxt[g]+'<\/td>';
			else
				chn += '"><td>'+zTtxt[g]+'<\/td><td><img src="dist/hmenu'+zTeta[g]+'.gif" alt="" /><\/td>';
			chn += '<\/tr>';
		}
	chn += '<\/table>';
	chn = ozmenu.innerHTML + chn;
	ozmenu.innerHTML = chn;
	chn = '';

	//--- Replacer si a gauche
	if (zTeta[k] == 'G') {
		obj = getObjH(k+'menusous');
		x -= obj.offsetWidth;
		obj.style.left = x+'px';
		obj.style.top = y+'px';
	}
}
function menuFermer() {
	window.clearTimeout(zDessus);
	ozmenu = getObjH('horizmenu');
	for (k = 0; k < zNm; k++)
		if (obj = getObjH(k+'menusous'))
			ozmenu.removeChild(obj);
}
