<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -707,21 +707,23 @@
    *  Returns the X/Y coordinates of element relative to the viewport.
   **/
   function viewportOffset(forElement) {
-    var valueT = 0, valueL = 0;
+    var valueT = 0, valueL = 0, docBody = document.body;
 
     var element = forElement;
     do {
       valueT += element.offsetTop  || 0;
       valueL += element.offsetLeft || 0;
       // Safari fix
-      if (element.offsetParent == document.body &amp;&amp;
+      if (element.offsetParent == docBody &amp;&amp;
         Element.getStyle(element, 'position') == 'absolute') break;
     } while (element = element.offsetParent);
 
-    element = forElement;    
-    var tagName = element.tagName, O = Prototype.Browser.Opera;
+    element = forElement;
     do {
-      if (!O || tagName &amp;&amp; tagName.toUpperCase() === 'BODY') {
+      // Opera &lt; 9.5 sets scrollTop/Left on both HTML and BODY elements.
+      // Other browsers set it only on the HTML element. The BODY element
+      // can be skipped since its scrollTop/Left should always be 0.
+      if (element != docBody) {
         valueT -= element.scrollTop  || 0;
         valueL -= element.scrollLeft || 0;
       }</diff>
      <filename>src/dom/layout.js</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>093c0cce4bbb89b88b0af20356faa83906b3aafa</id>
    </parent>
  </parents>
  <author>
    <name>Andrew Dupont</name>
    <email>prototype@andrewdupont.net</email>
  </author>
  <url>http://github.com/sstephenson/prototype/commit/62d0430f3b98153af49b01f7972e75cf2264ce13</url>
  <id>62d0430f3b98153af49b01f7972e75cf2264ce13</id>
  <committed-date>2009-11-06T08:56:01-08:00</committed-date>
  <authored-date>2009-11-06T08:56:01-08:00</authored-date>
  <message>Fix Element.viewportOffset on nested elements in Opera &lt; 9.5 and remove browser sniff.
(cherry picked from commit 0d2d18fb7297fb945ca6983b843c5bcf367c721c)</message>
  <tree>490d1bd859003c46088fbbe9e412ea48f936d06a</tree>
  <committer>
    <name>Andrew Dupont</name>
    <email>prototype@andrewdupont.net</email>
  </committer>
</commit>
