var divStartPos = 0;  
var destPos = 0;  
var divSpeed = 10;
var ende; 
var divContainerWidth = 0; 
var divID;

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);
  }
});		

function moveDivLeft()
{						
	//alert("cur: "+document.getElementById(divID).style.left+" to: "+(page-1)*divContainerWidth);
	new Effect.LeloMove(document.getElementById(divID),{x:((page-1)*divContainerWidth), y:0, mode:"absolute", duration:1});
	hidePfeile();
}	 

function moveDivRight()
{								 
	//alert("cur: "+document.getElementById(divID).style.left+" to: "+(page+1)*divContainerWidth);
	new Effect.LeloMove(document.getElementById(divID),{x:((page+1)*divContainerWidth), y:0, mode:"absolute", duration:1});
	hidePfeile();
}	

function hidePfeile()
{
	document.getElementById("pfeil_links").style.visibility = "hidden";
	document.getElementById("pfeil_rechts").style.visibility = "hidden";
}

function setPfeilVisibility()
{
	if (parseInt(document.getElementById(divID).style.left) >= 0) 
		document.getElementById("pfeil_links").style.visibility = "hidden";
	else
		document.getElementById("pfeil_links").style.visibility = "visible";

	if (parseInt(document.getElementById(divID).style.left) <= (divContainerWidth-parseInt(document.getElementById(divID).style.width))) 
		document.getElementById("pfeil_rechts").style.visibility = "hidden";
	else
		document.getElementById("pfeil_rechts").style.visibility = "visible";
}  

function initDivMovement(id,containerWidth)
{							
	divID = id;			 
	divContainerWidth = containerWidth;
	divStartPos = parseInt(document.getElementById(divID).style.left);
	destPos = divStartPos; 
	setPfeilVisibility();
}

function updatePosition(x,y)
{	
	left = parseInt(document.getElementById(divID).style.left);
	if (left == (page+1)*divContainerWidth) { page++; setPfeilVisibility(); }
	if (left == (page-1)*divContainerWidth) { page--; setPfeilVisibility(); }
	
}

