/* Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. Available via Academic Free License >= 2.1 OR the modified BSD license. see: http://dojotoolkit.org/license for details */ if(!dojo._hasResource["dojo.dnd.autoscroll"]){ dojo._hasResource["dojo.dnd.autoscroll"]=true; dojo.provide("dojo.dnd.autoscroll"); dojo.dnd.getViewport=function(){ var d=dojo.doc,dd=d.documentElement,w=window,b=dojo.body(); if(dojo.isMozilla){ return {w:dd.clientWidth,h:w.innerHeight}; }else{ if(!dojo.isOpera&&w.innerWidth){ return {w:w.innerWidth,h:w.innerHeight}; }else{ if(!dojo.isOpera&&dd&&dd.clientWidth){ return {w:dd.clientWidth,h:dd.clientHeight}; }else{ if(b.clientWidth){ return {w:b.clientWidth,h:b.clientHeight}; } } } } return null; }; dojo.dnd.V_TRIGGER_AUTOSCROLL=32; dojo.dnd.H_TRIGGER_AUTOSCROLL=32; dojo.dnd.V_AUTOSCROLL_VALUE=16; dojo.dnd.H_AUTOSCROLL_VALUE=16; dojo.dnd.autoScroll=function(e){ var v=dojo.dnd.getViewport(),dx=0,dy=0; if(e.clientXv.w-dojo.dnd.H_TRIGGER_AUTOSCROLL){ dx=dojo.dnd.H_AUTOSCROLL_VALUE; } } if(e.clientYv.h-dojo.dnd.V_TRIGGER_AUTOSCROLL){ dy=dojo.dnd.V_AUTOSCROLL_VALUE; } } window.scrollBy(dx,dy); }; dojo.dnd._validNodes={"div":1,"p":1,"td":1}; dojo.dnd._validOverflow={"auto":1,"scroll":1}; dojo.dnd.autoScrollNodes=function(e){ 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.position(n,true); 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-t.x,ry=e.pageY-t.y,dx=0,dy=0; if(dojo.isWebKit||dojo.isOpera){ rx+=dojo.body().scrollLeft,ry+=dojo.body().scrollTop; } if(rx>0&&rxb.w-w){ dx=w; } } } if(ry>0&&ryb.h-h){ dy=h; } } } var _1=n.scrollLeft,_2=n.scrollTop; n.scrollLeft=n.scrollLeft+dx; n.scrollTop=n.scrollTop+dy; if(_1!=n.scrollLeft||_2!=n.scrollTop){ return; } } } try{ n=n.parentNode; } catch(x){ n=null; } } dojo.dnd.autoScroll(e); }; }