var compute = dojo.getComputedStyle; 
dojox.fx.slideBy = function(/* Object */args){	// summary: Returns an animation to slide a node by a defined offset.	//	// description:	//	Returns an animation that will slide a node (args.node) from it's	//	current position to it's current posision plus the numbers defined	//	in args.top and args.left. standard dojo.fx mixin's apply. 	//		// example:	// |	// slide domNode 50px down, and 22px left	// |	dojox.fx.slideBy({ 	// |		node: domNode, duration:400, 	// |		top: 50, left: -22 	// |	}).play();	var node = (args.node = dojo.byId(args.node));		var compute = dojo.getComputedStyle;	var top = null; var left = null;	var init = (function(){		var innerNode = node;		return function(){			var pos = compute(innerNode,'position');			top = (pos == 'absolute' ? node.offsetTop : parseInt(compute(node, 'top')) || 0);			left = (pos == 'absolute' ? node.offsetLeft : parseInt(compute(node, 'left')) || 0);			if(pos != 'absolute' && pos != 'relative'){				var ret = dojo.coords(innerNode, true);				top = ret.y;				left = ret.x;				innerNode.style.position="absolute";				innerNode.style.top=top+"px";				innerNode.style.left=left+"px";			}		}	})();	init();	var _anim = dojo.animateProperty(dojo.mixin({		properties: {			// FIXME: is there a way to update the _Line after creation?			// null start values allow chaining to work, animateProperty will			// determine them for us (except in ie6? -- ugh)			top: {  /* start: top, */end: top+(args.top||0) },			left: { /* start: left, */end: left+(args.left||0) }		}	}, args));	dojo.connect(_anim,"beforeBegin",_anim,init);	return _anim; // dojo._Animation};
5168	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/5168/95fbd5c1c96ba26717639535e4a4f11096b8be7b/_base.js/buggy/fx/_base.js