// j'ai modifié la variable "main" par "top" pour la référence pour le positionnement

function getPos(el) {
       var r = { x: el.offsetLeft, y: el.offsetTop, w: el.offsetWidth, h: el.offsetHeight};

       if (el.offsetParent) {
               var tmp = getPos(el.offsetParent);
               r.x += tmp.x;
               r.y += tmp.y;
       }
       return r;
};


function Menu(elm){
          try{
            var uls = elm.getElementsByTagName('ul')[0];
            if (uls.style.display == 'block') return;
          }
          catch(e){ return; }

          //check size of container element & aline menu with it
          var top;
          try{
            top  = getPos(document.getElementById('top'));
            top  = (top.x + top.w);
          }
          catch(e){
            top  = document.body.offsetWidth;
          }
          var doc   = document.body.offsetWidth;

          if (typeof elm.onmouseout !== 'function') {
             elm.onmouseout = function(){
                 try {
                   var uls2 = this.getElementsByTagName('ul')[0];
                   if (uls2.style.display == 'none') return;
                 }catch(e){}

                 uls2.style.display = 'none';
                 uls2.style.right = 'auto';
                 var a = this.getElementsByTagName('a')[0];
                 a.className = a.className.replace(/[ ]*active/g,"");
              }
          }

          uls.style.display = 'block';
          var med   = getPos(uls);
              med   = med.x+med.w;

          //aline position
          if (top<med)
             uls.style.right = (doc-top-1)+'px'; // ancienne valeure = +10

          elm.getElementsByTagName('a')[0].className += "active";
};
