//*******************
// added a seventh parameter: callback...pass an inline anonymous function

function doPosChangeMem(elem,startPos,endPos,steps,intervals,powr,callback) {
//Position changer with Memory by www.hesido.com
	if (elem.posChangeMemInt){
		window.clearInterval(elem.posChangeMemInt);
		if( callback ){
			eval(callback+'()');
		}
	}
	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);
				if( callback ){
					eval(callback+'()');
				}
			}
		}
		,intervals)

}

//*******************
function easeInOut(minValue,maxValue,totalSteps,actualStep,powr) {
//Generic Animation Step Value Generator By www.hesido.com
	var delta = maxValue - minValue;
	var stepp = minValue+(Math.pow(((1 / totalSteps)*actualStep),powr)*delta);
	return Math.ceil(stepp)
}
