            getLocation=function(node) {
                var loc = {"width":node.offsetWidth,"height":node.offsetHeight };
            	var left=node.offsetLeft;
            	var top =node.offsetTop;
            	while(node.offsetParent) {
            		node=node.offsetParent;
            		left+=node.offsetLeft;
            		top +=node.offsetTop;
            	}
                loc.left=left;
                loc.top=top;
            	return loc;
            }
 
            addOpacityChangeEffect=function(node, min, max) {
                node.oo = document.createElement("div");
                node.oo.realNode = node;
                node.oo.style.backgroundColor="white";
                node.oo.style.position="absolute";
                // Opacité minimum (maximum -100: arrière-plan masqué)
                // (souvent 0:transparent ou -15:masque éclaircissant)
                node.oo.maxOpacity=max;
                // Opacité maximum (maximum 100: arrière-plan masqué)
                // (souvent p: trnasparent ou 15:masque noircissant)
                node.oo.minOpacity=min;
                node.oo.opacity=node.oo.maxOpacity;
                node.oo.opacityModifier=0; // A laisser à 0 par défaut, taux de modification de l'opacité en [%/cs]
                node.oo.onmouseover=function(e) {
                    try {
                    this.opacityModifier=-3; // L'opacité diminue de 1% chaque centième de secconde
                    this.realNode.onmouseover(e)
                    } catch (err) {}
                }
                node.oo.onmouseout=function(e) {
                    try {
                    this.opacityModifier=1; // L'opacité se renforce de 1% chaque centième de secconde
                    this.realNode.onmouseout(e)
                    } catch (err) {}
                }
                node.oo.onclick=function(e) {
                    try {
                    this.realNode.onclick(e)
                    } catch (err) {}
                }
                node.oo.onmouseup=function(e) {
                    try {
                    this.realNode.onmouseup(e)
                    } catch (err) {}
                }
                node.oo.onmousedown=function(e) {
                    try {
                    this.realNode.onmousedown(e)
                    } catch (err) {}
                }
                node.oo.onmouseenter=function(e) {
                    try {
                    this.realNode.onmouseenter(e)
                    } catch (err) {}
                }
                node.oo.onmouseleave=function(e) {
                    try {
                    this.realNode.onmouseleave(e)
                    } catch (err) {}
                }
                node.oo.update=function(node) {
                    try {
                    // Place le div au bon endroit
                    var loc=getLocation(node);
                    this.style.left=loc.left+"px";
                    this.style.width=loc.width+"px";
                    this.style.top=loc.top+"px";
                    this.style.height=loc.height+"px";
                    // Effectue le changement d'opacité (valeur)
                    this.opacity+=this.opacityModifier; 
                    if (this.opacity>this.maxOpacity) {this.opacity=this.maxOpacity;}
                    if (this.opacity<this.minOpacity) {this.opacity=this.minOpacity;}
                    // Détermine si il s'agit d'un éclaircicement ou d'un noirciement
                    var realOpacity = this.opacity
                    if (this.opacity<0) {
                        this.style.backgroundColor = "white"
                        realOpacity = (-realOpacity)
                    }
                    else {
                        this.style.backgroundColor = "black"
                    }
                    // Effectue le changement d'opacité (style)
                    this.style.opacity=(realOpacity/100); // FF
                    this.style.filter="alpha(opacity="+realOpacity+")" // IE
                    // Place le div au dessus de l'image
                    var zi = parseInt(node.style.zIndex);
                    if (zi < 0) { zi = 0 }
                    zi+=1;
                    this.style.zIndex=zi;
                    } catch (err) {}
                }
                setInterval(function() { node.oo.update(node); }, 10);
                document.body.appendChild(node.oo);
            }

