rem: if (parentNode.parentNode) { parentNode = parentNode.parentNode; } else { parentNode = null; } } 
add: if (parentNode.parentNode) { parentNode = parentNode.parentNode; } else { parentNode = null; } } 
context:       getXY: function(el) {         var f = function(el) {         // has to be part of document to have pageXY            if (el.offsetParent === null || this.getStyle(el, 'display') == 'none') {               return false;            }            var parentNode = null;            var pos = [];            var box;            if (el.getBoundingClientRect) { // IE               box = el.getBoundingClientRect();               var doc = document;               if ( !this.inDocument(el) && parent.document != document) {// might be in a frame, need to get its scroll                  doc = parent.document;                  if ( !this.isAncestor(doc.documentElement, el) ) {                     return false;                  }               }               var scrollTop = Math.max(doc.documentElement.scrollTop, doc.body.scrollTop);               var scrollLeft = Math.max(doc.documentElement.scrollLeft, doc.body.scrollLeft);               return [box.left + scrollLeft, box.top + scrollTop];            }            else { // safari, opera, & gecko               pos = [el.offsetLeft, el.offsetTop];               parentNode = el.offsetParent;               if (parentNode != el) {                  while (parentNode) {                     pos[0] += parentNode.offsetLeft;                     pos[1] += parentNode.offsetTop;                     parentNode = parentNode.offsetParent;                  }               }               if (isSafari && this.getStyle(el, 'position') == 'absolute' ) { // safari doubles in some cases                  pos[0] -= document.body.offsetLeft;                  pos[1] -= document.body.offsetTop;               }            }            if (el.parentNode) { parentNode = el.parentNode; }            else { parentNode = null; }            while (parentNode && parentNode.tagName.toUpperCase() != 'BODY' && parentNode.tagName.toUpperCase() != 'HTML')            { // account for any scrolled ancestors               if (util.Dom.getStyle(parentNode, 'display') != 'inline') { // work around opera inline scrollLeft/Top bug                  pos[0] -= parentNode.scrollLeft;                  pos[1] -= parentNode.scrollTop;               }               if (parentNode.parentNode) { parentNode = parentNode.parentNode; }               else { parentNode = null; }            }            return pos;         };         return util.Dom.batch(el, f, util.Dom, true);      },
meta: 4707	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/4707/50c3492c4c3c825dbd3401e134a19ed46799c456/dom.js/clean/www/resources/yui/dom/dom.js