blob: 398d15f94a2ce28c7627d560087b0d2a64aea201 [file] [log] [blame]
/*
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["dijit._base.scroll"]){
dojo._hasResource["dijit._base.scroll"]=true;
dojo.provide("dijit._base.scroll");
dijit.scrollIntoView=function(_1,_2){
try{
_1=dojo.byId(_1);
var _3=_1.ownerDocument||dojo.doc,_4=_3.body||dojo.body(),_5=_3.documentElement||_4.parentNode,_6=dojo.isIE,_7=dojo.isWebKit;
if((!(dojo.isMoz||_6||_7)||_1==_4||_1==_5)&&(typeof _1.scrollIntoView!="undefined")){
_1.scrollIntoView(false);
return;
}
var _8=_3.compatMode=="BackCompat",_9=_8?_4:_5,_a=_7?_4:_9,_b=_9.clientWidth,_c=_9.clientHeight,_d=!dojo._isBodyLtr(),_e=_2||dojo.position(_1),el=_1.parentNode,_f=function(el){
return ((_6<=6||(_6&&_8))?false:(dojo.style(el,"position").toLowerCase()=="fixed"));
};
if(_f(_1)){
return;
}
while(el){
if(el==_4){
el=_a;
}
var _10=dojo.position(el),_11=_f(el);
with(_10){
if(el==_a){
w=_b,h=_c;
if(_a==_5&&_6&&_d){
x+=_a.offsetWidth-w;
}
if(x<0||!_6){
x=0;
}
if(y<0||!_6){
y=0;
}
}else{
var pb=dojo._getPadBorderExtents(el);
w-=pb.w;
h-=pb.h;
x+=pb.l;
y+=pb.t;
}
with(el){
if(el!=_a){
var _12=clientWidth,_13=w-_12;
if(_12>0&&_13>0){
w=_12;
if(_6&&_d){
x+=_13;
}
}
_12=clientHeight;
_13=h-_12;
if(_12>0&&_13>0){
h=_12;
}
}
if(_11){
if(y<0){
h+=y,y=0;
}
if(x<0){
w+=x,x=0;
}
if(y+h>_c){
h=_c-y;
}
if(x+w>_b){
w=_b-x;
}
}
var l=_e.x-x,t=_e.y-Math.max(y,0),r=l+_e.w-w,bot=t+_e.h-h;
if(r*l>0){
var s=Math[l<0?"max":"min"](l,r);
_e.x+=scrollLeft;
scrollLeft+=(_6>=8&&!_8&&_d)?-s:s;
_e.x-=scrollLeft;
}
if(bot*t>0){
_e.y+=scrollTop;
scrollTop+=Math[t<0?"max":"min"](t,bot);
_e.y-=scrollTop;
}
}
}
el=(el!=_a)&&!_11&&el.parentNode;
}
}
catch(error){
console.error("scrollIntoView: "+error);
_1.scrollIntoView(false);
}
};
}