/* # Tivipro -  Menu Déroulant Transparent      # */
/* # Création : Julien K. 29 Juin 2009          # */
/* # Fonction : Activation des menus déroulants # */

/* Position d'un élément */
function FindPosition(elt) {
  var x = 0, y = 0;
  while (elt != null){
    x += elt.offsetLeft;
    y += elt.offsetTop;
    elt = elt.offsetParent;
   }
   return {x:x,y:y};
}

/* Retourne true si la souris est sur l'élément donné en argument */
function IsIn(elt, px, py) {
 var eltPos = FindPosition(elt);
 var eltWidth = elt.offsetWidth;
 var eltHeight = elt.offsetHeight;
 if ( ( (px >= eltPos.x) && (py >= eltPos.y) && (px <= (eltPos.x + eltWidth)) && (py <= (eltPos.y + eltHeight-1)) ) ) 
  return true;
 return false;
}

/* Retourne true si la souris est sur l'élément donné en argument */
function IsIn2(elt, px, py) {
 var eltPos = FindPosition(elt);
 var eltWidth = 212;// 200 + padding?
 var eltHeight = elt.offsetHeight;
 if ( ( (px >= eltPos.x) && (py >= eltPos.y) && (px <= (eltPos.x + eltWidth)) && (py <= (eltPos.y + eltHeight-1)) ) ) 
  return true;
 return false;
}

/* Retourne le bon Body */
function ietruebody() { 
 return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body;
}

function getIEVersionNumber() {
 var ua = navigator.userAgent;
 var MSIEOffset = ua.indexOf("MSIE ");
    
 if (MSIEOffset == -1) {
  return 0;
 } else {
    return parseFloat(ua.substring(MSIEOffset + 5, ua.indexOf(";", MSIEOffset)));
   }
}

/* Fonction appelée lors d'un mouvement de souris */
function fover(e) {  

 var pX, pY;
 if (!document.all) {
/*  // scrollLeft n'est défini qu'avec Firefox (sous IE toujours = 0 ?)
    // scrollTop est défini sous IE pour le scroll vertical */
  pX = e.pageX; pY = e.pageY; } else { pX = event.clientX /*+ ietruebody().scrollLeft*/; pY = event.clientY + ietruebody().scrollTop;
 }

 var menus = document.getElementById('menu').getElementsByTagName("li"); 
 var lastmenu = 0;
 /* Pour le survol du titre d'un menu */
 for (var i = 0; i < menus.length; i++) {
  if (menus[i].className == "cat-item") {	 
   lastmenu = i;
   if (IsIn(menus[i], pX, pY)) { /* On affiche le sous menu si on survole le titre */
    var divsousmenu_act = menus[i].getElementsByTagName("div");
    if (divsousmenu_act[0]) {  /* S'il y a un sous menu */
	  /* Désactive tous les menus */
	  for (var t = 0; t < menus.length; t++) {
       if (menus[t].className == "cat-item") {
        var divsousmenu = menus[t].getElementsByTagName("div");
        if (divsousmenu[0]) {		  
 	     divsousmenu[0].style.display = 'none';	
	    }
       }
	  }
	  /* Active le menu survolé */
	 divsousmenu_act[0].style.display = 'block';	
//    alert('X : ' + pX + ' Y : ' + pY + ' scrollLeft ' + ietruebody().scrollLeft);  	 	
	}
   }
  }
 }

 /* Pour le survol du sous menu */
 for (var i = 0; i < menus.length; i++) {
  if (menus[i].className == "cat-item") {	 
   var divsousmenu = menus[i].getElementsByTagName("div");
   if (divsousmenu[0]) { /* S'il y a un sous menu */
    var eltPos = FindPosition(divsousmenu[0]);
    var eltWidth = divsousmenu[0].offsetWidth;
    var eltHeight = divsousmenu[0].clientHeight;
    var eltHeight = divsousmenu[0].clientHeight + menus[i].clientHeight;
	eltPos.y -= menus[i].clientHeight;

// if (eltWidth > 0) alert('CRD ! ' + 'X : ' + pX + ' Y : ' + pY  + ' -> EX : ' + eltPos.x + ' EY : ' +  eltPos.y + ' W : ' + eltWidth + ' H : ' + eltHeight );  
    if ( !( (pX >= eltPos.x) && (pY >= eltPos.y) && (pX <= (eltPos.x + eltWidth)) && (pY <= (eltPos.y + eltHeight)) ) ) {
 	  if (divsousmenu[0].style.display == 'block') {
	   var soussousmenu = divsousmenu[0].getElementsByTagName("div");
	   var soussousmenu_on = false;
	   for (var n = 0; n < soussousmenu.length; n++) {	  		 		  
 	    if (soussousmenu[n].style.display == 'block') {
		  if (i != lastmenu) {
		   if (IsIn(soussousmenu[n], pX, pY)) { soussousmenu_on = true;} /* on est dans un sous sous menu, ne pas effacer le sous menu ! */
		  } else
/*		     alert('oh');
		     var eltPos = FindPosition(soussousmenu[n]);
			 alert('CRD ! ' + 'X : ' + pX + ' Y : ' + pY  + ' -> EX : ' + eltPos.x + ' EY : ' +  eltPos.y + ' W : ' + eltWidth + ' H : ' + eltHeight );*/
		     if (IsIn2(soussousmenu[n], pX, pY)) { soussousmenu_on = true;} /* on est dans un sous sous menu, ne pas effacer le sous menu ! */
	    } 		
	   }
	   if (!soussousmenu_on) divsousmenu[0].style.display = 'none';
	  }
   //alert('IN ! ' + 'X : ' + pX + ' Y : ' + pY  + ' -> EX : ' + eltPos.x + ' EY : ' +  eltPos.y  );
    } else {
//			  alert('sousmenu');
  	   if (divsousmenu[0].style.display == 'block') {
		var ssssmen = divsousmenu[0].getElementsByTagName("ul");
		if(typeof( window[ssssmen] ) != "undefined")
		if (ssssmen[1].className == "children") {
 		 if (ssssmen[0].className == "children_one") { 	
          var liens = ssssmen[0].getElementsByTagName("li");	 
		  var nbo = 0, nlien = 0;
          for (var k = 0; k < liens.length; k++) {	  		 		  
		   if (((liens[k].className).indexOf("cat-item")) != -1) {
//			alert(' ' + liens[k].innerHTML);   
			var oParent = liens[k].offsetParent;   
			if (oParent) if (oParent.className == "children_one") nlien++; // Numéro du lien du sous menu   
		    var ssssmenu = liens[k].getElementsByTagName("div");
			if (ssssmenu.length > 0) {
			 nbo++; // Numéro du sous sous menu
			 if (IsIn(liens[k], pX, pY)) {			 
              ssssmenu[0].style.display = 'block';
//			  alert(liens[0].offsetHeight);
			  ssssmenu[0].style.top = ((nlien-1) * liens[1].offsetHeight) + liens[0].offsetHeight + 'px';  			  
			  ssssmenu[0].style.width = liens[k].offsetWidth + 'px';
			  ssssmenu[0].style.height = ssssmen[nbo].offsetHeight + 'px';
			  if (i != lastmenu) ssssmenu[0].style.left = liens[k].offsetWidth + 'px';
			  else {
//				  alert(liens[k].offsetWidth);
				  ssssmenu[0].style.left = (0 - (212)) + 'px'; 
			  }
//			  ssssmenu[0].style.backgroundColor = 'red';
  			  ssssmenu[0].style.position = 'absolute';
			  //alert(nbo);
			  var letd = liens[k].getElementsByTagName("td");
			  letd[0].style.color = '#fdcc00';   /* couleur hover à true sur le li */
			 } else {
			    var letd = liens[k].getElementsByTagName("td");
 			    letd[0].style.color = '#f5f5f4'; /* couleur hover à false sur le li */				 
 			    ssssmenu[0].style.display = 'none';
			   }
			}
		   } // if "cat-item"
		  } // for	 	  
		 } // if "children_one"
		} // if "children"
	   } // if "block"
  	  }
   }
  }
 } 
 
}
	   
/* Active les menus déroulants */
function menu_hover_on()
{
 var paddingLeft = 12; 
 // récupère la taille du span d'id "menuspace" avec le pipe
 var menuspace_width = document.getElementById('menuspace').offsetWidth;

 var menuvspace_height = document.getElementById('menuvspace').offsetHeight; // la taille n'a pas l'air identique sous IE
 var menus = document.getElementById('menu').getElementsByTagName("li");

 var first_menu = -1; last_menu = 0, menus_width = 0, nb_menus = 0;
 for (var z = 0; z < menus.length; z++) {
  if (menus[z].className == "cat-item") {

   if (first_menu == -1) first_menu = z;  
   last_menu = z;	   /* Le dernier menu */
   menus_width += menus[z].offsetWidth;
   nb_menus++;
   /*alert(menus[z].offsetWidth);*/
   /*alert(menus[z].innerHTML.indexOf('finalistes'));*/
    if(menus[z].innerHTML.indexOf('Finalistes')>-1)
	   {
		/* TIVIPRO_201109 : menu niveau 0 Finaliste non cliquable */
		var lien = menus[z].getElementsByTagName("a"); 
		lien[0].href = "#";
		lien[0].className="navt_clinkn";
		}
    if(menus[z].innerHTML.indexOf('inscription')>-1)
	{
		/* TIVIPRO_020909 : menu niveau 0 non cliquable */
		var lien = menus[z].getElementsByTagName("a"); 
		lien[0].href = "http://www.prixparisinnovation.com/inscription/";
	}    
  }
 }
 menus = document.getElementById('menu').getElementsByTagName("li");

 var pipe_menu = last_menu;
 
 if (document.all) if (getIEVersionNumber() > 7) pipe_menu = first_menu;

 menus_width -= menus[pipe_menu].offsetWidth;
 
 /* Enlever le pipe du dernier menu (tout le menuspace) */
 // menus[pipe_menu].innerHTML = menus[pipe_menu].innerHTML.replace('|', '');
 var spanstart = menus[pipe_menu].innerHTML.toLowerCase().indexOf('<span');
 var spanend = menus[pipe_menu].innerHTML.toLowerCase().indexOf('span>') + 5;

 menus[pipe_menu].innerHTML = menus[pipe_menu].innerHTML.substring(0, spanstart) + menus[pipe_menu].innerHTML.substring(spanend)

 menus_width += menus[pipe_menu].offsetWidth;
// alert(menus_width);
var espace = (990 - menus_width) / (nb_menus-1);
 if (document.all) 	 if (getIEVersionNumber() > 7) espace = (982 - menus_width) / (nb_menus-1);

 /* -1 car le dernier n'a plus de menuspace */
 if (document.all) if (getIEVersionNumber() > 7) espace += (nb_menus-2); // car sous ie8 le caractère pipe est plus fin ?
 if (document.all) if (getIEVersionNumber() == 7) { document.getElementById("menu").style.width="1040px"; document.getElementById("menu").style.padding="25px 0px 0px 2px"; }

// alert(espace + ' mwidth ' + menus_width + ' ' + nb_menus);

 var sp1 = espace / 2;
 var sp2 = espace - sp1;

//alert(sp1 + ' ' + sp2);
 
 for (var z = 0; z < menus.length; z++) {
  if (menus[z].className == "cat-item") {	  
  if (document.all) if (getIEVersionNumber() == 7) menus[z].style.padding = "0px 0px 15px 0px";
   var span = menus[z].getElementsByTagName('span');	 
   if (span[0]) {
	if (document.all) if (getIEVersionNumber() > 7) span[0].id = "menuspaceie"; /* Si c'est ie8, on change la classe du span */	
	span[0].style.paddingLeft = sp1 + 'px';
	span[0].style.paddingRight = sp2 + 'px';
   }
  }
 }

 for (var i = 0; i < menus.length; i++) {
  if (menus[i].className == "cat-item") {
   /* Initialisation des sous menus et du div contenant les sous menus */
	
   var sousmenus = menus[i].getElementsByTagName("ul");
   var le_div_parent = menus[i].getElementsByTagName("div");
   for (var j = 0; j < sousmenus.length; j++) { 
    if (sousmenus[j].className == "children_one") {
	 
	 var liens = sousmenus[j].getElementsByTagName("a");
	 
     /* Ajustement de la largeur d'un sous menu :
	    On prend comme référence : la largeur du lien du sous menu ayant le plus grand nom */
	  var sslarg = 0, sshaut = 0;
	  for (var x = 0; x < liens.length; x++) {	 
	   var oParent = liens[x].parentNode.parentNode;	  
	   if (oParent) 
	    if (oParent.className == "children_one") {
		 if (sslarg < liens[x].offsetWidth) {
		  sslarg = liens[x].offsetWidth;	
		 }
	    }
	  }
	 var menutitrelarg = (menus[i].offsetWidth - paddingLeft - menuspace_width);
	 if (sslarg == 0) sslarg = menutitrelarg;
	 if (sslarg < menutitrelarg) sslarg = menutitrelarg;
	 sslarg += 35; /* Largeur des liens A, +35 Pour l'image de la flèche */	 
	 sshaut = 28;  /* Taille du LI d'un sous menu */
	 var nb_ssmenus = 0;
     for (var k = 0; k < liens.length; k++) {	 
	  var oParent = liens[k].parentNode.parentNode;	  
	  if (oParent) if (oParent.className == "children_one") {
	   nb_ssmenus++;	  
	   liens[k].style.width = sslarg + 'px';// (menus[i].offsetWidth - paddingLeft - menuspace_width) + 'px';	 
 	   liens[k].style.paddingLeft = paddingLeft + 'px';	 
  	   liens[k].style.paddingRight = '0px';	 	   
       var li_avec_ssssmenu = liens[k].parentNode;
	   li_avec_ssssmenu.style.height = sshaut + 'px';
//	   alert(li_avec_ssssmenu.innerHTML);
	   liens[k].style.height = 11 + 'px';
	  } else {		      
  	      liens[k].style.height = 11 + 'px';
	      /* ajout de la flèche pour dire qu'il y a un sous sous menu */
		  var a_li_avec_ssssmenu = (liens[k].parentNode.parentNode.parentNode.parentNode.getElementsByTagName("a"))[0];
		  if (i != last_menu) {
 		   if (a_li_avec_ssssmenu.innerHTML.indexOf('item_fleche.png') == -1) {
 		    a_li_avec_ssssmenu.innerHTML = '<table cellspacing="0" style="width:' + (sslarg-5) + 'px;"><tr><td style="width:80%;">'+ a_li_avec_ssssmenu.innerHTML + '</td><td style="width:20%;text-align:right;"><img src="/wp-content/themes/simplelabob/images/item_fleche.png" border="0"/></td></tr></table>';		   
 		   }		   
		  } else {
 		     if (a_li_avec_ssssmenu.innerHTML.indexOf('item_fleche.png') == -1) {
 		    a_li_avec_ssssmenu.innerHTML = '<table cellspacing="0" style="width:' + (sslarg-5) + 'px;"><tr><td style="width:20%;text-align:left;"><img src="/wp-content/themes/simplelabob/images/item_fleche_l.png" border="0"/></td><td style="width:80%;">'+ a_li_avec_ssssmenu.innerHTML + '</td></tr></table>';		   
 		     }		   			  
		    }
		  liens[k].style.paddingLeft = paddingLeft + 'px';
		  liens[k].style.paddingRight = '0px';
          liens[k].style.width = /*(liens[k].offsetWidth + 20 )*/200+  'px';//////////////////// taille pour les sous sous menus	     
		  var li_avec_ssssmenu = liens[k].parentNode;
	      li_avec_ssssmenu.style.height = sshaut + 'px';
	     } 
	 }
     /* Ajustement de la taille du div parent englobant les sous menus */
	 if (le_div_parent) {
	  if (liens.length > 0) {
	   le_div_parent[0].style.height = ((nb_ssmenus * liens[0].parentNode.offsetHeight) + menuvspace_height) +'px';
	   le_div_parent[0].style.position = 'absolute';
       le_div_parent[0].style.width = (sslarg + paddingLeft) +'px'; //(menus[i].offsetWidth - menuspace_width) + 'px';  ////////
//  	   le_div_parent[0].style.backgroundColor = 'red';
  	   le_div_parent[0].style.display = 'none';
	  }
	 }
	} // fin if == "children" 
   } // fin for sousmenus      
   
  } // fin if == "cat-item"
 } // fin for menus

 ietruebody().onmousemove=fover;
}