/* 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.robot"]){ dojo._hasResource["dojo.robot"]=true; dojo.provide("dojo.robot"); dojo.experimental("dojo.robot"); dojo.require("doh.robot"); dojo.require("dojo.window"); (function(){ dojo.mixin(doh.robot,{_resolveNode:function(n){ if(typeof n=="function"){ n=n(); } return n?dojo.byId(n):null; },_scrollIntoView:function(n){ var d=dojo,dr=doh.robot,p=null; d.forEach(dr._getWindowChain(n),function(w){ d.withGlobal(w,function(){ var p2=d.position(n,false),b=d._getPadBorderExtents(n),_1=null; if(!p){ p=p2; }else{ _1=p; p={x:p.x+p2.x+b.l,y:p.y+p2.y+b.t,w:p.w,h:p.h}; } dojo.window.scrollIntoView(n,p); p2=d.position(n,false); if(!_1){ p=p2; }else{ p={x:_1.x+p2.x+b.l,y:_1.y+p2.y+b.t,w:p.w,h:p.h}; } n=w.frameElement; }); }); },_position:function(n){ var d=dojo,p=null,M=Math.max,m=Math.min; d.forEach(doh.robot._getWindowChain(n),function(w){ d.withGlobal(w,function(){ var p2=d.position(n,false),b=d._getPadBorderExtents(n); if(!p){ p=p2; }else{ var _2; d.withGlobal(n.contentWindow,function(){ _2=dojo.window.getBox(); }); p2.r=p2.x+_2.w; p2.b=p2.y+_2.h; p={x:M(p.x+p2.x,p2.x)+b.l,y:M(p.y+p2.y,p2.y)+b.t,r:m(p.x+p2.x+p.w,p2.r)+b.l,b:m(p.y+p2.y+p.h,p2.b)+b.t}; p.w=p.r-p.x; p.h=p.b-p.y; } n=w.frameElement; }); }); return p; },_getWindowChain:function(n){ var cW=dojo.window.get(n.ownerDocument); var _3=[cW]; var f=cW.frameElement; return (cW==dojo.global||f==null)?_3:_3.concat(doh.robot._getWindowChain(f)); },scrollIntoView:function(_4,_5){ doh.robot.sequence(function(){ doh.robot._scrollIntoView(doh.robot._resolveNode(_4)); },_5); },mouseMoveAt:function(_6,_7,_8,_9,_a){ doh.robot._assertRobot(); _8=_8||100; this.sequence(function(){ _6=doh.robot._resolveNode(_6); doh.robot._scrollIntoView(_6); var _b=doh.robot._position(_6); if(_a===undefined){ _9=_b.w/2; _a=_b.h/2; } var x=_b.x+_9; var y=_b.y+_a; doh.robot._mouseMove(x,y,false,_8); },_7,_8); }}); })(); }