// ------------------------------------ SliderClass ----------------------------------

// Globale variabelen
var slideArray = new Array();
var toFast = 950;

// Basis klasse van een slide div
function sliderClass()
{
	this.obj = null;	// ID van element dat slide
	this.fromX = 0;		// Start / huidige pos X
	this.toX = 0;		// Eind positie X
	this.fromY = 0;		// Start / huidige pos X
	this.toY = 0;		// Eind positie Y
	this.speed = 10;	// Snelheid in x stappen bij het einde
	this.timer = null; 
}

// Init slide classe en start de beweging
function startSlide(ele, toX, toY, speed, afterSlideCommand)
{
	// Init nieuwe klasse
	var mySlider	= new sliderClass();
	mySlider.obj	= document.getElementById(ele);
	mySlider.toX	= toX;
	mySlider.toY	= toY;
	mySlider.speed	= speed;
	mySlider.afterSlideCommand = afterSlideCommand;
	
	if (mySlider.obj != null) // Bestaat de slide wel
	{   
		// Haal begin pos op
		mySlider.fromX = Math.round((mySlider.obj.style.marginLeft).replace("px", ""));
		if (mySlider.fromX == "") mySlider.fromX = 0; // onbekend dus 0
		
		mySlider.fromY = Math.round((mySlider.obj.style.marginTop).replace("px", ""));
		if (mySlider.fromY == "") mySlider.fromY = 0; // onbekend dus 0
		
		// Als te ver weg dan stukje skippen voor X
		if (Math.abs(mySlider.fromX-mySlider.toX) > toFast) {
			if (mySlider.fromX < mySlider.toX) mySlider.fromX = mySlider.toX - toFast;
			if (mySlider.fromX > mySlider.toX) mySlider.fromX = mySlider.toX + toFast;
		}
		
		// Als te ver weg dan stukje skippen voor Y
		if (Math.abs(mySlider.fromY-mySlider.toY) > toFast) {
			if (mySlider.fromY < mySlider.toY) mySlider.fromY = mySlider.toY - toFast;
			if (mySlider.fromY > mySlider.toY) mySlider.fromY = mySlider.toY + toFast;
		}
		
		// Alleen iets doen als het nog niet gedaan is
		if (Math.round((mySlider.obj.style.marginLeft).replace("px", "")) != mySlider.toX || Math.round((mySlider.obj.style.marginTop).replace("px", "")) != mySlider.toY)
		{
			slideArray[ele] = mySlider; // Opslaan
			doSlide(ele); // Start bewegin
		}
	}
	
	mySlider = null;
}

// Laat de slider een stapje bewegen en zet timeout voor de volgende stap
function doSlide(ele)
{
	var mySlider = slideArray[ele];
	
	if (mySlider != null)
	{   
	    var xDiff = (Math.abs(mySlider.fromX - mySlider.toX));
	    var yDiff = (Math.abs(mySlider.fromY - mySlider.toY));
	    
		if (xDiff > 0.1 || yDiff > 0.1) 
		{
    		mySlider.fromX += (mySlider.toX-mySlider.fromX)/mySlider.speed;
			mySlider.fromY += (mySlider.toY-mySlider.fromY)/mySlider.speed;
			mySlider.obj.style.marginLeft = Math.round(mySlider.fromX) + 'px';
			mySlider.obj.style.marginTop  = Math.round(mySlider.fromY) + 'px';
			slideArray[ele] = mySlider;
			slideArray[ele].timer = setTimeout("doSlide('"+ele+"')", 15);
		}
		else {
			mySlider.timer = clearTimeout(mySlider.timer);
			if (mySlider.afterSlideCommand != null && mySlider.afterSlideCommand != "") eval(mySlider.afterSlideCommand);
			slideArray[ele] = null;
		}
		mySlider = null;
	}
}

// ------------------------------------ SliderClass ----------------------------------
