/*******************************************************************************
Pour rappel : j'ai été obligé de faire ce script car je me trouvais dans une 
impasse : il est possible de faire des menus tout en css qui passent par dessus
des zones en position relative mais je ne suis pas arrivé à faire en sorte que
la taille des menus 1 s'adaptent à leur contenu...
Le principe de ce script est de repérer si l'internaute navigue avec IE7, 
laisser la liste déroulante s'afficher en dessous de la zone en position 
relative, la copier dans un nouvel élément qui s'en va lorsque la souris 
passe au dessus de la zone du bas du site...
*******************************************************************************/

var ie = navigator.appVersion;
/* Pour IE 7 *********************************/
Expression = /MSIE 7/;
if (Expression.test(ie)) Event.observe(this,'load',gereMenu);

/* Pour IE 6 *********************************/
Expression = /MSIE 6/;
if (Expression.test(ie)) Event.observe(this,'load',gereMenu);
function gereMenu(event){

  // récupère toutes les menus de niveau 2
  $$('#nav_horizontale ul li ul').each(function(menu_item){
     Event.observe(menu_item,'mouseover',gereMenu2);
	});
}

//-- 
function gereMenu2(event){
 var ul_event = Event.findElement(event,'#nav_horizontale ul li ul');

 //-- position du menu déroulant
 initial_position = getTotalPosition(ul_event);
 nouveau_ul = ul_event.innerHTML;
 

 // teste si l'élément "moo" existe 
 if (!$('moo')){
 	$("body_accueil").insert(new Element("ul", { id: "moo" }))
  $('moo').style.position="absolute";
 }
 
 $('moo').innerHTML=nouveau_ul;


 $('moo').style.top=initial_position[1]+30+"px"; 
 $('moo').style.left=initial_position[0]-30+"px";
 $('moo').setStyle({
            zIndex: 9999
 });

 /*$('moo').style.z-index="99999";*/
  
 
 if ($('moo')) $('moo').show();
 
 Event.observe('div_center_bottom_accueil', 'mouseover', function(event) {
  $('moo').hide();
 });
 
}

function getTotalPosition(element)
{
	var left = 0;
	var top = 0;
	/*On récupère l'élément*/
	var e = element;
	/*Tant que l'on a un élément parent*/
	while (e.offsetParent != undefined && e.offsetParent != null)
	{
		/*On ajoute la position de l'élément parent*/
		left += e.offsetLeft + (e.clientLeft != null ? e.clientLeft : 0);
		top += e.offsetTop + (e.clientTop != null ? e.clientTop : 0);
		e = e.offsetParent;
	}
	return new Array(left,top);
}
