rem: console.debug(b.l, b.t, t.x, t.y, n.scrollLeft, n.scrollTop); 
context: dojo.dnd.autoScrollNodes = function(e){	// summary: a handler for onmousemove event, which scrolls the first avaialble Dom element,	//	it falls back to dojo.dnd.autoScroll()	// e: Event: onmousemove event	for(var n = e.target; n;){		if(n.nodeType == 1 && (n.tagName.toLowerCase() in dojo.dnd._validNodes)){			var s = dojo.getComputedStyle(n);			if(s.overflow.toLowerCase() in dojo.dnd._validOverflow){				var b = dojo._getContentBox(n, s), t = dojo._abs(n, true);				console.debug(b.l, b.t, t.x, t.y, n.scrollLeft, n.scrollTop);				b.l += t.x + n.scrollLeft;				b.t += t.y + n.scrollTop;				var w = Math.min(dojo.dnd.H_TRIGGER_AUTOSCROLL, b.w / 2), 					h = Math.min(dojo.dnd.V_TRIGGER_AUTOSCROLL, b.h / 2),					rx = e.pageX - b.l, ry = e.pageY - b.t, dx = 0, dy = 0;				if(rx > 0 && rx < b.w){					if(rx < w){						dx = -dojo.dnd.H_AUTOSCROLL_VALUE;					}else if(rx > b.w - w){						dx = dojo.dnd.H_AUTOSCROLL_VALUE;					}				}				//console.debug("ry =", ry, "b.h =", b.h, "h =", h);				if(ry > 0 && ry < b.h){					if(ry < h){						dy = -dojo.dnd.V_AUTOSCROLL_VALUE;					}else if(ry > b.h - h){						dy = dojo.dnd.V_AUTOSCROLL_VALUE;					}				}				var oldLeft = n.scrollLeft, oldTop = n.scrollTop;				n.scrollLeft = n.scrollLeft + dx;				n.scrollTop  = n.scrollTop  + dy;				if(dx || dy) console.debug(oldLeft + ", " + oldTop + "\n" + dx + ", " + dy + "\n" + n.scrollLeft + ", " + n.scrollTop);				if(oldLeft != n.scrollLeft || oldTop != n.scrollTop){ return; }			}		}		try{			n = n.parentNode;		}catch(x){			n = null;		}	}	dojo.dnd.autoScroll(e);};
meta: 4497	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/4497/bf4aacd05b0042232da5408aa05fec6bbca2e21f/autoscroll.js/clean/dnd/autoscroll.js