		Effect.LeloMove = Class.create();
		Object.extend(Object.extend(Effect.LeloMove.prototype, Effect.Base.prototype), {
		  initialize: function(element) {
		    this.element = $(element);
		    var options = Object.extend({
		      x:    0,
		      y:    0,
		      mode: 'relative',
		      origX: 'null',
		      origY: 'null'
		    }, arguments[1] || {});
		    this.start(options);
		  },
		  setup: function() {
		    // Bug in Opera: Opera returns the "real" position of a static element or
		    // relative element that does not have top/left explicitly set.
		    // ==> Always set top and left for position relative elements in your stylesheets 
		    // (to 0 if you do not need them) 
		    this.element.makePositioned();
		    if (this.options.origX == "null") 
		    	this.originalLeft = parseFloat(this.element.getStyle('left') || '0');
		    else
		    	this.originalLeft = parseFloat(this.options.origX);
		    if (this.options.origY == "null") 
			    this.originalTop  = parseFloat(this.element.getStyle('top')  || '0');
			else
		    	this.originalTop = parseFloat(this.options.origY);
		    if(this.options.mode == 'absolute') {
		      // absolute movement, so we need to calc deltaX and deltaY
		      this.options.x = this.options.x - this.originalLeft;
		      this.options.y = this.options.y - this.originalTop;
		    }
		  },
		  update: function(position) {
		    this.element.setStyle({
		      left: this.options.x  * position + this.originalLeft + 'px',
		      top:  this.options.y  * position + this.originalTop  + 'px'
		    });
		  	updatePosition(this.options.x  * position + this.originalLeft,this.options.y  * position + this.originalTop);
		  }
		});		
