rem: return mover; 
add: return mover; 
context: dojo.dnd.constrainedMover = function(fun, within){	var mover = function(node, e){		dojo.dnd.Mover.call(this, node, e);		var c = this.constraintBox = fun.call(this), m = this.marginBox;		c.r = c.l + c.w - (within ? m.w : 0);		c.b = c.t + c.h - (within ? m.h : 0);	};	dojo.extend(mover, dojo.dnd.Mover.prototype);	dojo.extend(mover, {		onMouseMove: function(e){			// summary: event processor for onmousemove			// e: Event: mouse event			var m = this.marginBox, c = this.constraintBox,				l = m.l + e.pageX, t = m.t + e.pageY;			l = l < c.l ? c.l : c.r < l ? c.r : l;			t = t < c.t ? c.t : c.b < t ? c.b : t;			dojo.marginBox(this.node, {l: l, t: t});		}	});	return mover;};
meta: 4497	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/4497/985206e9d3d63d06a3f546d5df09e23da802295e/move.js/buggy/dnd/move.js