var IB=new Object;
var posX=0;posY=0;
var xOffset=10;yOffset=10;

fDomOffset = function( oObj, sProp )
{ 
 // oObj : [Object] - Objet dont on désire le positionnement 
 // sProp : [String] - Propriété désirée : offsetLeft - offsetTop 
 var iVal = 0; 
 // On boucle tant que l'on n'est pas à la racine du document 
 while (oObj && oObj.tagName != 'BODY') { 
  eval('iVal += oObj.' + sProp + ';');
  oObj = oObj.offsetParent; 
 } 
 return iVal; 
}  

fSwapSelect = function( sId ) 
{ 
 oObj = document.getElementById(sId); 

 Top_Element  = fDomOffset(oObj, 'offsetTop'); 
 Left_Element  = fDomOffset(oObj, 'offsetLeft'); 
 Largeur_Element  = oObj.offsetWidth; 
 Hauteur_Element  = oObj.offsetHeight; 
 oSelects = document.getElementsByTagName('SELECT'); 
 if (oSelects.length > 0) { 
  for (i = 0; i < oSelects.length; i++) { 
   oSlt = oSelects[i]; 
   Top_Select = fDomOffset(oSlt, 'offsetTop'); 
   Left_Select = fDomOffset(oSlt, 'offsetLeft'); 
   Largeur_Select = oSlt.offsetWidth; 
   Hauteur_Select = oSlt.offsetHeight; 
   isLeft = false; 
   if ((Left_Element > (Left_Select - Largeur_Element)) && (Left_Element < (Left_Select + Largeur_Select))) { 
    isLeft = true; 
   } 
   isTop = false; 
   if ((Top_Element > (Top_Select - Hauteur_Element)) && (Top_Element < (Top_Select + Hauteur_Select))) { 
    isTop = true; 
   } 
   if (isLeft && isTop) { 
    sVis = (oObj.style.visibility == 'hidden') ? 'visible' : 'hidden'; 
    if (oSlt.style.visibility != sVis) {oSlt.style.visibility = sVis;} 
   } else { 
    if (oSlt.style.visibility != 'visible') {oSlt.style.visibility = 'visible';} 
   } 
  } 
 } 
} 

function AffBulle(texte) 
{
    contenu="<TABLE border=0 cellspacing=0 cellpadding="+IB.NbPixel+"><TR bgcolor='"+IB.ColContour+"'><TD><TABLE border=0 cellpadding=2 cellspacing=0 bgcolor='"+IB.ColFond+"'><TR><TD><FONT size='-2' face='arial' color='"+IB.ColTexte+"'>"+texte+"</FONT></TD></TR></TABLE></TD></TR></TABLE>&nbsp;";

    var finalPosX=posX-xOffset;
    if (finalPosX<0) finalPosX=0;
    if (document.layers) 
    {
        document.layers["bulle"].document.write(contenu);
        document.layers["bulle"].document.close();
        document.layers["bulle"].top=posY+yOffset;
        document.layers["bulle"].left=finalPosX;
        document.layers["bulle"].visibility="show";
    }

    if (document.all) 
    {
        bulle.innerHTML=contenu;
        document.all["bulle"].style.top=posY+yOffset;
        document.all["bulle"].style.left=finalPosX;
        document.all["bulle"].style.visibility="visible";
    }
    else if (document.getElementById) {
        document.getElementById("bulle").innerHTML=contenu;
        document.getElementById("bulle").style.top=posY+yOffset;
        document.getElementById("bulle").style.left=finalPosX;
        document.getElementById("bulle").style.visibility="visible";
    }

    fSwapSelect('bulle')    
}

function getMousePos(e) 
{
    if (document.all) 
    {
        posX=event.x+document.body.scrollLeft; 
        posY=event.y+document.body.scrollTop;
    }
    else 
    {
        posX=e.pageX; 
        posY=e.pageY; 
    }
}


function HideBulle() 
{
    if (document.layers) 
    {
        document.layers["bulle"].visibility="hide";
    }

    if (document.all) 
    {
        document.all["bulle"].style.visibility="hidden";
    }
    else if (document.getElementById)
    {
        document.getElementById("bulle").style.visibility="hidden";
    }
    fSwapSelect('bulle')    
}

function InitBulle(ColTexte,ColFond,ColContour,NbPixel) 
{
    IB.ColTexte=ColTexte;IB.ColFond=ColFond;IB.ColContour=ColContour;IB.NbPixel=NbPixel;
    if (document.layers) 
    {
        window.captureEvents(Event.MOUSEMOVE);window.onMouseMove=getMousePos;
        document.write("<LAYER name='bulle' top=0 left=0 visibility='hide'></LAYER>");
    }
    
    if (document.all) 
    {
        document.write("<DIV id='bulle' style='position:absolute;top:0;left:0;visibility:hidden;z-index:10'></DIV>");
        document.onmousemove=getMousePos;
    }
    else if (document.getElementById) 
    {
        document.onmousemove=getMousePos;
        document.write("<DIV id='bulle' style='position:absolute;top:0;left:0;visibility:hidden'></DIV>");
    }
}

function AffMenu(texte) 
{
    // Variables locales
    var menu = ""
    var i = 1
    var strClass=""
    var strLib=""
    var strLien=""
    var ColTexte = IB.ColTexte
    var ColFond = IB.ColFond
    var ColContour = IB.ColContour
    var NbPixel = IB.NbPixel

    //***********
            
    // Construction du tableau
    contenu='        <TABLE border=0 cellspacing=0 cellpadding=0 style="border:1.5pt outset">'
    contenu=contenu + '     <TR bgcolor="#7F97AF">'
    contenu=contenu + '         <TD>'   
    contenu=contenu + '             <TABLE border="0" bgcolor="#7F97AF">'

    menu = GetCol(texte, i, "¤")

    while (menu != "")
    {
        contenu=contenu + '             <TR>'
        contenu=contenu + '                 <TD'
        if (GetCol(texte, i+1, "¤")!="")
        {
            contenu=contenu + '                  style="border-bottom:1.5pt groove" '
        }   

        contenu=contenu + '                      onmouseover="this.style.background=\'#4F607F\'" onmouseout="this.style.background=\'#7F97AF\'">'

        strLib=GetCol(menu, 1, "")
        strLien=GetCol(menu, 2, "")

        contenu=contenu + '                     <a id="menu'+i+'" name="menu'+i+'" href="' + strLien + '" style="text-decoration:none;color:#000000;font-family:arial">' + strLib + '</a>'

        contenu=contenu + '                 </TD>'
        contenu=contenu + '             </TR>'

        i=i+1
        menu = GetCol(texte, i, "¤")
    }
    contenu=contenu + '             </TABLE>'
    contenu=contenu + '         </TD>'
    contenu=contenu + '     </TR>'
    contenu=contenu + ' </TABLE>'

    IB.ColTexte=""
    IB.ColFond=""
    IB.ColContour=""
    IB.NbPixel=0

    if (document.layers) 
    {
        document.layers["bulle"].document.write(contenu);
        document.layers["bulle"].document.close();
        document.layers["bulle"].top=posY;
        document.layers["bulle"].left=posX;
        document.layers["bulle"].visibility="show";
    }

    if (document.all) 
    {
        bulle.innerHTML=contenu;
        document.all["bulle"].style.top=posY;
        document.all["bulle"].style.left=posX;
        document.all["bulle"].style.visibility="visible";
    }
    else if (document.getElementById) {
        document.getElementById("bulle").innerHTML=contenu;
        document.getElementById("bulle").style.top=posY;
        document.getElementById("bulle").style.left=posX;
        document.getElementById("bulle").style.visibility="visible";
    }
    IB.ColTexte=ColTexte;
    IB.ColFond=ColFond;
    IB.ColContour=ColContour;
    IB.NbPixel=NbPixel;

}

function GetCol(strChaine, iCol, strSep)
{
    var j=1;    
    var strRetour=""

    if (strSep == "")
    {
        strSep = "#";
    }
    
    while (j<=iCol)
    {
        strRetour = strChaine.substring(0, strChaine.indexOf(strSep,0));
        if (strRetour=="" && strChaine!="")
        {
            if  (j==iCol)
            {
                strRetour=strChaine;
            }
            else if (strChaine.indexOf(strSep,0)!=0)
            {
                strRetour=""
                j=iCol
                }   
        }

        if (j==iCol && strChaine.indexOf(strSep,0)==0)
        {
               // Le caractére suivant étant le séparateur, on a donc une chaîne vide à renvoyer
            strRetour="";
        }

        strChaine = strChaine.substring(strChaine.indexOf(strSep,0)+1,strChaine.length);

        j=j+1;
    }

    return strRetour;
}