﻿var _isIE8 = fnCheckVersionIE();

function fnCheckVersionIE() {
    var strUserAgent;
    var nFindMSIE
    strUserAgent = new String();
    strUserAgent = window.navigator.userAgent;
    if ((nFindMSIE = strUserAgent.indexOf("MSIE", 0)) > 0) {
        var nPos, strVersion;
        nPos = strUserAgent.indexOf(";", nFindMSIE);
        strVersion = strUserAgent.substr(nFindMSIE + 5, nPos - (nFindMSIE + 5));
        //Récupère les chiffres avant le 1er point
        nPos = strVersion.indexOf(".", 0);
        strVersion = strVersion.substr(0, nPos);
        if (strVersion >= "8")
            return true;
    }

    return false;
}

function poplink(evt, contenu) {
    var content = "<div style=\"background-color:#FFFFFF; width:250px; border-style:solid; border-width:1px;\">" + contenu + "<div>";

    var box = document.getElementById("popbox");

    if (box && box.style.visibility != "visible") {
        var elt = evt;
        var constTop;
        var left, top;

        box.innerHTML = content;
        box.style.visibility = "visible";

        //box.clientHeight retourne la hauteur du div qui va être affiché, ainsi il sera toujours affiché au dessus de la souris
        var boxHeight = box.clientHeight; 
        
        if (elt.x) {//Cas IE
            left = elt.x + 10;
            //sert à remonter le div
            constTop = 10;
            if (_isIE8)
                top = elt.y - boxHeight - constTop;
            else
                top = elt.y + document.documentElement.scrollTop - boxHeight - constTop;
        }
        else {
            elt = evt.target;
            //target permet d'obtenir l'objet qui a émis l'évènement
            //evt.target = span
            //evt.target.offsetParent = TD
            //offsetLeft = le nombre de pixel du bord gauche par rapport au parent
            //offsetTop = le nombre de pixel du bord haut par rapport au parent
            
            //Calcul des bords gauche et haut des éléments parents du span
            var oElt = evt.target.offsetParent;
            var nValTop=0, nValLeft = 0;
            var bContinue = true;

            //On remonte jusqu'au BODY pour avoir l'emplacement en nombre de pixel des bordsde chaque élément 
            //depuis notre élément qui a émis l'évènement
            while (bContinue) {
                //parseInt transforme une string en nombre en base indiquée, soit 10 ici.
                nValTop += parseInt(oElt.offsetTop, 10);
                nValLeft += parseInt(oElt.offsetLeft, 10);
                if ((oElt.tagName == "BODY") || (oElt == null))
                //On est au niveau du BODY alors on arrête
                    bContinue = false;
                else
                //Sinon on prend le parent
                    oElt = oElt.offsetParent;
            }

            //nTop =
            // nValTop : la valeur calculée précédemment, soit le total des bords haut de chaque parent depuis le body jusqu'à la cellule
            // + evt.target.offsetTop : le bord haut de l'élément par rapport à son parent
            //Ceci nous permet de placer l'élément juste au dessus
            nTop = nValTop + elt.offsetTop - boxHeight - 10;

            //nLeft =
            nLeft = elt.offsetLeft  + nValLeft;

            left = nLeft + "px";
            top = nTop + "px";
        }

        box.style.left = left;
        box.style.top = top;
    }
}

function closepopup() {
    var box = document.getElementById("popbox");

    if (box)
        box.style.visibility = "hidden";
}
