/*
javascript de gestion des menus
*/

/*
fonction 
*/
var tab_menu = new Array();
  
function getMousePos(evt) {
        if (document.all) {
        
            mouseX = parseInt(event.clientX) + parseInt(document.body.scrollLeft) - parseInt(document.body.clientLeft);
            mouseY = parseInt(event.clientY) + parseInt(document.body.scrollTop) - parseInt(document.body.clientTop);
            // window.status = event+ " " + document.body.scrollLeft +" " + document.body.clientLeft;
            
        } else { 
            mouseX = evt.pageX;
            mouseY = evt.pageY;

        }
      
     var i = 0,j=0,k=0;;
    while (i < tab_menu.length)        
    {
        
        menu =  tab_menu[i];
        var menu_div = document.getElementById(menu.menu_id);
        if(!isOver(mouseX,mouseY,menu_div)) {
            hideMenu(menu.menu_id);
        }
        i++;
    }
         
      
    }
    
    function posSouris(evt) {
        getMousePos(evt);
   }
document.onmousemove = posSouris;


function isOver(x,y,obj)
{
    if(obj.active_zone) {
        var zone = obj.active_zone;
        
        if((x > zone.x1 ) && (x < zone.x2)&&(y > zone.y1) && ( y< zone.y2 )) {
            return true;
            
        } else {
            return false
        }
    } 
    
    return true;
    
}

function Chargement()
{
    // il faut definir quelque part la liste des menu et l'orientation de ces menus 
    var menu,clear,righter,bottomer;
    var i = 0,j=0,k=0;max_h=0,max_w=0;
    
    while (i < tab_menu.length)        
    {
        
        menu =  tab_menu[i];
        div_menu = document.getElementById(menu.menu_id);
       // objExplorer(menu);
        if(menu.orientation  == 'hor') { // menu horizontaux 
            // recherche du nombre de d'element du mnu ( compt� les P)
            menu_elmts = div_menu.getElementsByTagName('p');
            j = 0;
            while (j <  menu_elmts.length)
            {
                
              //  menu_elmts[j].style.cssText='float:left;';
              
                menu_elmts[j].style.display='inline';
                      
                j++;
            }
          
            hideMenu(menu.menu_id);
            
           // reglage d'autre parametre des sous menu 
            sous_menus = div_menu.getElementsByTagName('ul');
            j = 0;
            while (j < sous_menus.length)
            {
                
                sous_menus[j].style.position='absolute'; // pour pas qu'il intervienne dans le flux et qu'il soit au dessus du reste 
                sous_menus[j].style.zIndex='1000'; // pour etre devant le maximum de chose 
                //il faut aussi les aligner par rapport a la position du menu parent
                
                j++;
            }

      
               // pour les menus horizontaux il faut que les p soit cote a cote donc display:bloc avec float:left
            // il faut donc ajouter une balise            clear a la fin des p pour agrandir la div du menu a la taille normale
           // clear = document.createElement('div');
          //  setClass(clear,'clear');
          //   div_menu.appendChild(clear);
         
        } 
        if(menu.orientation  == 'ver') { // menu verticaux
            
           hideMenu(menu.menu_id);
        } 
        i++;
        div_menu.style.display = "block";
    }
    //affiche le menu a la fin du chargement
    
    
}


function showMenu(menu_id,sous_menu_id,menu)
{
    var div_menu = document.getElementById(menu_id);
    if(!div_menu.active_zone) {
            div_menu.active_zone = new Object();
            var area = FindXYWH(div_menu);        
            div_menu.active_zone.x1 = area.x;
            div_menu.active_zone.y1 = area.y;
            div_menu.active_zone.x2 = area.x + area.w;
            div_menu.active_zone.y2 = area.y + area.h;
    }
    //objExplorer(menu);
    var pos = FindXYWH(menu);
    hideMenu(menu_id);  
    ssmenu = document.getElementById(sous_menu_id);
    offset = FindXYWH(ssmenu.parentNode);
          
    
    ssmenu.style.left = (pos.x +1 ) +'px';
    var top =   pos.y  + pos.h +1 ;
    ssmenu.style.top =  top +'px';
    ssmenu.style.display="";
    if(is_ie5_5) {
     // pour IE il faut deplacer l'objet de 17px vers la gauche pour compenser l'absence de l'image de liste si le style de position des liste est inside
     ssmenu.style.left = parseInt(ssmenu.style.left) - 17 + "px";
    }
   temp = FindXYWH(ssmenu);
   if((temp.x+temp.w) > div_menu.active_zone.x2 ) {
    // righter =  sous_menus[j];
       div_menu.active_zone.x2 = temp.x+temp.w;
    }
    if((temp.y+temp.h) > div_menu.active_zone.y2) {
       // bottomer =  sous_menus[j];
        div_menu.active_zone.y2 = temp.y+temp.h;
        
    }

    //objExplorer(div_menu.active_zone);
}

function hideMenu(menu_id)
{
  
   var div_menu = document.getElementById(menu_id);
    // on peu cache tous les sous menu

    sous_menus = div_menu.getElementsByTagName('ul');
    j = 0;
    while (j < sous_menus.length)
    {
        
        sous_menus[j].style.display='none';
        j++;
    }

}

//document.onmousemove = posSouris;