    Position.Window = {
        //extended prototypes position to return
        //the scrolled window deltas
        getDeltas: function() {
            var deltaX =  window.pageXOffset
                || document.documentElement.scrollLeft
                || document.body.scrollLeft
                || 0;
            var deltaY =  window.pageYOffset
                || document.documentElement.scrollTop
                || document.body.scrollTop
                || 0;
            return [deltaX, deltaY];
        },
        //extended prototypes position to
        //return working window's size, 
        //copied this code from the 
        size: function() {
            var winWidth, winHeight, d=document;
            if (typeof window.innerWidth!='undefined') {
                winWidth = window.innerWidth;
                winHeight = window.innerHeight;
            } else {
                if (d.documentElement && typeof d.documentElement.clientWidth!='undefined' && d.documentElement.clientWidth!=0) {
                    winWidth = d.documentElement.clientWidth
                    winHeight = d.documentElement.clientHeight
                } else {
                    if (d.body && typeof d.body.clientWidth!='undefined') {
                        winWidth = d.body.clientWidth
                        winHeight = d.body.clientHeight
                    }
                }
            }
            return [winWidth, winHeight];
        }
    }
    //my own custom effect that basically
    //calls the Effect.Move Scriptaculous
    //effect with the correct window offsets
    Effect.KeepFixed = function(element, offsetx, offsety) {
        var _scroll = Position.Window.getDeltas();
        var _window = Position.Window.size();
        var elementDimensions = Element.getDimensions(element);
        var eWidth = elementDimensions.width;
        var eHeight = elementDimensions.height;
/*      var moveX = _window[0] - eWidth + _scroll[0] + offsetx;*/ //supprime le mouvement en X
        var moveY = _window[1] - eHeight + _scroll[1] + offsety;
        return new Effect.Move(element, {/* x: moveX, */y: moveY, mode: 'absolute' });
    }
    //the function that calls the KeepFixed effect.
    //It accepts the id, and offsets from bottom left
    function feedback() {
        new Effect.KeepFixed('menu', 0, -10);
    }
    //and endless loop that continually places the
    //fixed element in the bottom right corner of the window
    new PeriodicalExecuter(feedback, 1);
    //initially, when the element appears,
    //i want it to come up slowly and gracefully
   Effect.Appear('menu', { duration: 50, from: 0.0, to: 100 });

