
function glisser(elementDeplace, evenement) {
       var debutX = evenement.clientX, debutY = evenement.clientY;

       var origX = elementDeplace.offsetLeft, origY = elementDeplace.offsetTop;
    var deltaX = debutX - origX, deltaY = debutY - origY;

    if (document.addEventListener) {  
        document.addEventListener("mousemove", gestionnaireDeplacement, true);
        document.addEventListener("mouseup", gestionnaireRelachement, true);
    }
    else if (document.attachEvent) {  
        elementDeplace.setCapture();
        elementDeplace.attachEvent("onmousemove", gestionnaireDeplacement);
        elementDeplace.attachEvent("onmouseup", gestionnaireRelachement);
        
        elementDeplace.attachEvent("onlosecapture", gestionnaireRelachement);
    }
    else {  
        var ancienGestDeplacement = document.onmousemove; 
        var ancienGestRelachement = document.onmouseup;
        document.onmousemove = gestionnaireDeplacement;
        document.onmouseup = gestionnaireRelachement;
    }

        if (evenement.stopPropagation)
        evenement.stopPropagation();          
    else evenement.cancelBubble = true;       

    if (evenement.preventDefault)
        evenement.preventDefault();           
    else evenement.returnValue = false;       

    function gestionnaireDeplacement(e) {
        if (!e) e = window.event;  
        elementDeplace.style.left = (e.clientX - deltaX) + "px";
        elementDeplace.style.top = (e.clientY - deltaY) + "px";

       
        if (e.stopPropagation) e.stopPropagation();  
        else e.cancelBubble = true;                  
    }

    function gestionnaireRelachement(e) {
        if (!e) e = window.event;  

        if (document.removeEventListener) {  
            document.removeEventListener("mouseup", gestionnaireRelachement,
                                         true);
            document.removeEventListener("mousemove", gestionnaireDeplacement,
                                         true);
        }
        else if (document.detachEvent) {     
            elementDeplace.detachEvent("onlosecapture",
                                       gestionnaireRelachement);
            elementDeplace.detachEvent("onmouseup", gestionnaireRelachement);
            elementDeplace.detachEvent("onmousemove", 
                                        gestionnaireDeplacement);
            elementDeplace.releaseCapture();
        }
        else {  
            document.onmouseup = ancienGestRelachement;
            document.onmousemove = ancienGestDeplacement;
        }

        if (e.stopPropagation) e.stopPropagation();  
        else e.cancelBubble = true;                  
    }
}