function easeInOut(minValue,maxValue,totalSteps,actualStep,powr) { 
    var delta = maxValue - minValue; 
    var stepp = minValue+(Math.pow(((1 / totalSteps) * actualStep), powr) * delta); 
    return Math.ceil(stepp) 
} 

function doPosChangeMem(elem,startPos,endPos,steps,intervals,powr, n) {
	
	//alert("Change: " + elem + " : " + startPos + " : " + endPos + " : " + steps + " : " + intervals + " : " + powr);
	
	if (elem.posChangeMemInt) window.clearInterval(elem.posChangeMemInt);
	var actStep = 0;
	elem.posChangeMemInt = window.setInterval(
		function() {
			elem.currentPos = [
				easeInOut(startPos[0],endPos[0],steps,actStep,powr),
				easeInOut(startPos[1],endPos[1],steps,actStep,powr)
				];
			elem.style.left = elem.currentPos[0]+"px";
			elem.style.top = elem.currentPos[1]+"px";
			actStep++;
			if (actStep > steps) {
				window.clearInterval(elem.posChangeMemInt);
				var cx = elem.currentPos[0];
				if(cx < 0) elem.currentPos[0] = 107 * (n - 1);
			}
		}
		,intervals);

}

function moveToPos(xp, id) {
	var p = document.getElementById("pointer");
	p.style.visibility = "visible";
	
	var d = document.getElementById("desc0");
	d.style.visibility = "hidden";
	d.style.display = "none";
			
	if (!p.currentPos) p.currentPos = [0,-32]; //if no mem is set, set it first;

	for(i = 1; i<4;i++) {
		var d = document.getElementById("desc" + i);
		if(i != id) {
			d.style.visibility = "hidden";
			d.style.display = "none";
		} else {
			d.style.visibility = "visible";
			d.style.display = "";
		}
	}
	
	doPosChangeMem(p,p.currentPos,[xp,-32],15,15,0.4);
}

function moveOff() {
	var p = document.getElementById("pointer");
	p.style.visibility = "hidden";
	
	var d = document.getElementById("desc0");
	d.style.visibility = "visible";
	d.style.display = "";
	
	for(i = 1; i<4;i++) {
		var d = document.getElementById("desc" + i);
		d.style.visibility = "hidden";
		d.style.display = "none";
	}
}

function doImageScroll(n) {
	for(var i = 0; i < n; i++) {
		var sid = "sp_" + i;
		var thisspeaker = document.getElementById(sid);
		
		if (!thisspeaker.currentPos) {
			var sx = 107 * i;
			thisspeaker.currentPos = [sx,0]; //if no mem is set, set it first;
		}

		var startx = thisspeaker.currentPos[0];
		var newx = startx - 107;
		
		//if(newx < -108) newx = 107 * (n - 2);
		
		doPosChangeMem(thisspeaker,[startx,10],[newx, 10],40,15,0.7, n);
	}
	startImageScroll(n);
}

function startImageScroll(n) {
	if(n >= 4) {
		setTimeout("doImageScroll(" + n + ")",6000);
	} 
}