code: function findBoundingClientRect2(obj) {
          var offsetLeft = 0, offsetTop = 0, width = obj.offsetWidth, height = obj.offsetHeight;
          var scr = obj, fixed = false;
          while ((scr = scr.parentNode) && scr != document.body) {
              offsetLeft -= scr.scrollLeft || 0;
              offsetTop -= scr.scrollTop || 0;
              if (getStyle(scr, "position") == "fixed") fixed = true;
          }
          // You can take into account document.body.scrollLeft & document.body.scrollTop if you want to take into account global scroll of browser
          if (fixed && !window.opera) {
              var scrDist = scrollDist();
              offsetLeft += scrDist[0];
              offsetTop += scrDist[1];
          }
          do {
              offsetLeft += obj.offsetLeft;
              offsetTop += obj.offsetTop;
          } while (obj = obj.offsetParent);
          return {
              left: offsetLeft,
              top: offsetTop,
              width: width,
              height: height,
              right: offsetLeft + width - 1,
              bottom: offsetTop + height - 1
          };
      }
docs: TODO : analyze and compare to another solution found at http://www.greywyvern.com/?post=331