// detect browser
var NS4 = (document.layers) ? 1 : 0;
var IE4 = (document.all) ? 1 : 0;
// W3C stands for the W3C standard, implemented in Mozilla (and Netscape 6) and IE5
var W3C = (document.getElementById) ? 1 : 0;

var sousmenu_rand = Math.random();
var sousmenu_id_display = 0;

function premierparent(obj,tag)
{
	while(obj.tagName!=tag && obj.tagName!='BODY')
		obj=obj.parentNode;
	return obj;
}

function scrollHaut()
{
	if (window.innerHeight)
	{
		pos = window.pageYOffset
	}
	else if (document.documentElement && document.documentElement.scrollTop)
	{
		pos = document.documentElement.scrollTop
	}
	else if (document.body)
	{
		pos = document.body.scrollTop
	}
	return pos;
}

function scrollGauche()
{
	if (window.innerWidth)
	{
		pos = window.pageXOffset
	}
	else if (document.documentElement && document.documentElement.scrollLeft)
	{
		pos = document.documentElement.scrollLeft
	}
	else if (document.body)
	{
		pos = document.body.scrollLeft
	}
	return pos;
}

function offsetHaut(obj)
{
	haut=0;
	while(obj.tagName!="BODY")
	{
		haut += obj.offsetTop;
		obj = obj.offsetParent;
	}
	return haut;
}

function offsetGauche(obj)
{
	gauche=0;
	while(obj.tagName!="BODY")
	{
		gauche += obj.offsetLeft;
		obj = obj.offsetParent;
	}
	return gauche;
}
function menu_rollover(obj)
{
	if (obj.className!='')
	{
		obj.className += '_over';
		var div = document.getElementById(obj.getAttribute("id") + "Container");
		if (div)
		{
			if (IE4)
			{
				// Boggue IE4 avec position:fixed !!!!
				div.style.position="absolute";
				div.style.left = offsetGauche(obj);
				div.style.top = offsetHaut(obj)+obj.offsetHeight;
			}
			else
			{
				div.style.left = (offsetGauche(obj)-scrollGauche())+"px";
				div.style.top = (offsetHaut(obj)+obj.offsetHeight-scrollHaut())+"px";
			}
		}
		else
		{
			div = premierparent(obj,'DIV');
			//alert(div.id);	
		}
		sousmenu_on(div);
	}
}
function menu_rollout(obj)
{
	var reg=/(_over)$/;
	if (reg.test(obj.className))
	{
		var div = document.getElementById(obj.getAttribute("id")+ "Container");
		obj.className = obj.className.replace(reg, '');
		if (div)
			sousmenu_off(div);
	}
}
function menu_click(obj)
{
	if (obj.className!='')
	{
		var ahref = obj.getElementsByTagName('A')[0];
		if (ahref)
			eval(ahref.getAttribute('onclick'));
	}
}


function menu(id)
{
	var obj=document.getElementById(id);

	if (obj.className.substr(0,4)!="menu")	return false;

	// body
	var tbody=obj.getElementsByTagName('TBODY')[0];
	var trs=obj.getElementsByTagName('TR');
	for(var num_tr=0; num_tr<trs.length; num_tr++)
	{
		var tds=trs[num_tr].getElementsByTagName('TD');
		for(var num_td=0; num_td<tds.length; num_td++)
		{
			if (tds[num_td].id!="")
			{
				var div = document.getElementById(tds[num_td].id + "Container");
				if (IE4)
				{
					tds[num_td].onmouseover = function () { menu_rollover(this); };
					tds[num_td].onmouseout  = function () { menu_rollout(this);  };
					tds[num_td].onclick     = function () { menu_click(this);    };
				}
	
				if (!IE4 && W3C)
				{
					tds[num_td].addEventListener('mouseover',function () { menu_rollover(this); },true);
					tds[num_td].addEventListener('mouseout', function () { menu_rollout(this);  },true);
					tds[num_td].addEventListener('click',    function () { menu_click(this);    },true);
				}

				if (div)
				{

					if (IE4)
					{
						div.onmouseover = function () { sousmenu_on(this); };
						div.onmouseout  = function () { sousmenu_off(this);  };
						//div.onclick     = function () { menu_click(this);    };
					}
		
					if (!IE4 && W3C)
					{
						div.addEventListener('mouseover',function () { sousmenu_on(this); },true);
						div.addEventListener('mouseout', function () { sousmenu_off(this);  },true);
						//div.addEventListener('click',    function () { menu_click(this);    },true);
					}
					var tds_div = div.getElementsByTagName('TD');
					for(num_td_div=0; num_td_div<tds_div.length; num_td_div++)
					{
						if (IE4)
						{
							tds_div[num_td_div].onmouseover = function () { menu_rollover(this); };
							tds_div[num_td_div].onmouseout  = function () { menu_rollout(this);  };
							tds_div[num_td_div].onclick     = function () { menu_click(this);    };
						}
		
						if (!IE4 && W3C)
						{
							tds_div[num_td_div].addEventListener('mouseover',function () { menu_rollover(this); },true);
							tds_div[num_td_div].addEventListener('mouseout', function () { menu_rollout(this);  },true);
							tds_div[num_td_div].addEventListener('click',    function () { menu_click(this);    },true);
						}
					}
				}
			}
		}
	}
	
}

function sousmenu_on(obj)
{
	if (obj.id != sousmenu_id_display)
	{
		// si un autre menu est affiché, on le cache
		if (sousmenu_id_display!=0 && document.getElementById(sousmenu_id_display))
			document.getElementById(sousmenu_id_display).style.display = 'none';

		// et on affiche de nouveau
		obj.style.display = '';
		sousmenu_id_display=obj.id;
	}
	sousmenu_rand = Math.random();
}
function sousmenu_off(obj,rand)
{
	if (rand==sousmenu_rand)
	{
		if (document.getElementById(obj))
			document.getElementById(obj).style.display = 'none';
		else
			obj.style.display = 'none';
		sousmenu_id_display=0;
	}
	if (rand==undefined)
	{
		sousmenu_rand = Math.random();
		window.setTimeout("sousmenu_off('"+obj.id+"',"+sousmenu_rand+");",500);
	}
}
