﻿var _isIE8 = fnCheckVersionIE();
var _isWebKit = fnCheckWebKit();

function fnCheckVersionIE() {
    var strUserAgent;
    var nFindMSIE;
    
    strUserAgent = window.navigator.userAgent;
    nFindMSIE = strUserAgent.indexOf("MSIE", 0);

    if (nFindMSIE > 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 fnCheckWebKit() {
    var strUserAgent, nFindWebKit;
    strUserAgent = window.navigator.userAgent;

    nFindWebKit = strUserAgent.indexOf("AppleWebKit", 0);
    if (nFindWebKit > 0)
            return true;

    return false;
}

function poplink(evt, contenu) {
    var content = "<div style=\"background-color:#FFFFCC; width:250px; border-style:solid; border-width:2px; border-color: #5E9949; padding: 3px;\">" + 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 ou WebKit
            left = elt.x + 10;
            //sert à remonter le div
            constTop = 10;
            if (_isIE8)
               top = elt.y - boxHeight - constTop; 
            else {
                if (_isWebKit) {
                    /*left = elt.x;
                    top = elt.y - 30;
                    //top = elt.y + document.documentElement.scrollTop - boxHeight - 30;
                    var doc = document;
                    var docelt = document.documentElement;*/
                }
                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 +5;

            //nLeft =
            nLeft = elt.offsetLeft  + nValLeft;

            left = nLeft + "px";
            top = nTop + "px";
        }

        if (_isWebKit) {
            box.style.left = left + "px";
            //box.style.top = top + "px";
        }
        else {
            box.style.left = left;
            box.style.top = top;
        }
    }
}

function closepopup() {
    var box = document.getElementById("popbox");

    if (box)
        box.style.visibility = "hidden";
}

