text: /*
  	Copyright (c) 2004-2009, 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.clientX<dojo.dnd.H_TRIGGER_AUTOSCROLL){
  dx=-dojo.dnd.H_AUTOSCROLL_VALUE;
  }else{
  if(e.clientX>v.w-dojo.dnd.H_TRIGGER_AUTOSCROLL){
  dx=dojo.dnd.H_AUTOSCROLL_VALUE;
  }
  }
  if(e.clientY<dojo.dnd.V_TRIGGER_AUTOSCROLL){
  dy=-dojo.dnd.V_AUTOSCROLL_VALUE;
  }else{
  if(e.clientY>v.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._abs(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&&rx<b.w){
  if(rx<w){
  dx=-w;
  }else{
  if(rx>b.w-w){
  dx=w;
  }
  }
  }
  if(ry>0&&ry<b.h){
  if(ry<h){
  dy=-h;
  }else{
  if(ry>b.h-h){
  dy=h;
  }
  }
  }
  var _14=n.scrollLeft,_15=n.scrollTop;
  n.scrollLeft=n.scrollLeft+dx;
  n.scrollTop=n.scrollTop+dy;
  if(_14!=n.scrollLeft||_15!=n.scrollTop){
  return;
  }
  }
  }
  try{
  n=n.parentNode;
  }
  catch(x){
  n=null;
  }
  }
  dojo.dnd.autoScroll(e);
  };
  }
  