//=================== CONTEXT MENU ==========================
//Permet de faire 2 choses :
//1) faire apparaître un menu juste en dessous d'un lien (texte ou image) --> il faut alors se servir de contextMenuOn() (indiquer menu en 5e variable), de contextMenuIn() et de contextMenuOff()
//2) faire apparaître un calque où on veut : placer une balise <a> où on veut voir apparaître le calque --> Il suffit de se servir de contextMenuOn() (indiquer aide en 5e variable) et de contextMenuOff() sur le lien
// Dans les deux cas :
//- Indiquer id="id_de_l_ancre" (pour ie4 et dom) et name="nom_de_l_ancre" dans la balise du lien
//- Variables à passer dans le déclencheur (dans l'ordre): 'id_de_l_ancre','nom_de_l_ancre','id_du_calque_que_l_on_veut_faire_apparaître', décalage horizontal,décalage vertical [du calque en pixels (decal vertical à régler pour ns4 pour un menu)], 'aide' ou 'menu'

var ns4 = (document.layers)? true:false;   //NS 4
var ie4 = (document.all && !document.getElementById)? true:false;   //IE 4
var dom = (document.getElementById)? true:false;   //DOM (ns6)
function getLeft(MyObject){//A VERIFIER ABSOLUMENT DANS IE4 POUR MAC !!!!! (offset... fonctionne bizarrement sous mac)
//position d'un objet par rapport au bord gauche de la page.
//Cet objet peut être à l'intérieur d'un autre objet.

    if (MyObject.offsetParent)
        return (MyObject.offsetLeft + getLeft(MyObject.offsetParent));
    else
        return (MyObject.offsetLeft);
}
function getTop(MyObject){//A VERIFIER ABSOLUMENT DANS IE4 POUR MAC !!!!!
//position d'un objet par rapport au bord haut de la page.
//Cet objet peut être à l'intérieur d'un autre objet.
    if (MyObject.offsetParent)
        return (MyObject.offsetTop + getTop(MyObject.offsetParent));
    else
        return (MyObject.offsetTop);
}
var menuActif='';
function contextMenuPos(ID_Anchor,Name_Anchor,calque,decalX,decalY,aideOuMenu) {//OnMouseOver du lien affichant le calque contextuel
        var DivLeft = 0;
        var DivTop = 0;
        if (dom){
        pos = document.getElementById(ID_Anchor);
        AnchorHeight=pos.offsetHeight;
        newX = getLeft(pos)+ decalX;
        newY = (aideOuMenu=='menu')? getTop(pos)+ AnchorHeight : getTop(pos) + decalY;
        document.getElementById(calque).style.left = 0;
        document.getElementById(calque).style.top = 0;
        }
        else
        if (ie4) {
        pos = document.all[ID_Anchor];
        AnchorHeight=pos.offsetHeight;
        newX = getLeft(pos) + decalX;
        newY = (aideOuMenu=='menu')? getTop(pos)+ AnchorHeight : getTop(pos) + decalY;
        document.all[calque].style.posLeft = 0;
        document.all[calque].style.posTop = 0;
        }
            else if (ns4){
        pos = document.anchors[Name_Anchor];
        newX = pos.x + decalX;
        newY = pos.y + decalY;
        document.layers[calque].pageX = 0;
        document.layers[calque].pageY = 0;
        }
}

//========== Partie du script à utiliser (éventuellement)
//========== pour un sous menu à placer dans le layer positionné par contextMenuPos

function contextMenuOn(ID_Anchor,Name_Anchor,calque,decalX,decalY,aideOuMenu){//onMouseOver du lien affichant le menu contextuel
        contextMenuPos(ID_Anchor,Name_Anchor,calque,decalX,decalY,aideOuMenu);
        MM_showHideLayers(calque,'','show');
        menuActif=calque;
}
function contextMenuOff(calque){//onMouseOut du lien dans le menu, onMouseOut du lien affichant le calque contextuel
        menuActif='';
        timerID = setTimeout("contextMenuHide('"+calque+"')",300);
}
function contextMenuIn(calque){//onMouseOver du lien DANS le menu contextuel
        menuActif=calque;
}
function contextMenuHide(calque){
        if(menuActif!=calque){
        MM_showHideLayers(calque,'','hide');
        }
}
