Fx.Move=new Class({Extends:Fx.Morph,options:{relativeTo:document.body,position:"center",edge:false,offset:{x:0,y:0}},start:function(a){var c=this.element.getStyles("top","left");if(c.top=="auto"||c.left=="auto"){var f;if(!Browser.Engine.trident){var b=this.element.getParent();f=(b.getComputedStyle("position")!="static"?b:b.getOffsetParent())}var e=this.element.getPosition(f);var d=this.element.getStyles("margin-top","margin-left");if(c.top=="auto"){this.element.setStyle("top",e.y-d["margin-top"].toInt())}if(c.left=="auto"){this.element.setStyle("left",e.x-d["margin-left"].toInt())}}return this.parent(this.element.position($merge(this.options,a,{returnPos:true})))}});Element.Properties.move={set:function(a){var b=this.retrieve("move");if(b){b.cancel()}return this.eliminate("move").store("move:options",$extend({link:"cancel"},a))},get:function(a){if(a||!this.retrieve("move")){if(a||!this.retrieve("move:options")){this.set("move",a)}this.store("move",new Fx.Move(this,this.retrieve("move:options")))}return this.retrieve("move")}};Element.implement({move:function(a){this.get("move").start(a);return this}});