function doWidthChangeMem(elem,startWidth,endWidth,steps,intervals,powr) { 
//Width changer with Memory by www.hesido.com
    if (elem.widthChangeMemInt)
	window.clearInterval(elem.widthChangeMemInt);
    var actStep = 0;
    elem.widthChangeMemInt = window.setInterval(
	function() { 
	  elem.currentWidth = easeInOut(startWidth,endWidth,steps,actStep,powr);
	  elem.style.width = elem.currentWidth + "px"; 
	  actStep++;
	  if (actStep > steps) window.clearInterval(elem.widthChangeMemInt);
	} 
	,intervals)
}
function doHeightChangeMem(elem,startHeight,endHeight,steps,intervals,powr) { 
//Width changer with Memory by www.hesido.com
    if (elem.heightChangeMemInt)
	window.clearInterval(elem.heightChangeMemInt);
    var actStep = 0;
    elem.heightChangeMemInt = window.setInterval(
	function() { 
	  elem.currentHeight = easeInOut(startHeight,endHeight,steps,actStep,powr);
	  elem.style.height = elem.currentHeight + "px"; 
	  actStep++;
	  if (actStep > steps) window.clearInterval(elem.heightChangeMemInt);
	} 
	,intervals)
}
function doTopChangeMem(elem,startTop,endTop,steps,intervals,powr) { 
//Width changer with Memory by www.hesido.com
    if (elem.topChangeMemInt)
	window.clearInterval(elem.topChangeMemInt);
    var actStep = 0;
    elem.topChangeMemInt = window.setInterval(
	function() { 
	  elem.currentTop = easeInOut(startTop,endTop,steps,actStep,powr);
	  elem.style.top = elem.currentTop + "px"; 
	  actStep++;
	  if (actStep > steps) window.clearInterval(elem.topChangeMemInt);
	} 
	,intervals)
}
function doAlphaChangeMem(elem,startAlpha,endAlpha,steps,intervals,powr) { 
//Width changer with Memory by www.hesido.com
    if (elem.alphaChangeMemInt)
	window.clearInterval(elem.alphaChangeMemInt);
    var actStep = 0;
    elem.alphaChangeMemInt = window.setInterval(
	function() { 
	  elem.currentAlpha = easeInOutFloat(startAlpha,endAlpha,steps,actStep,powr);
	  setAlpha(elem,elem.currentAlpha);
	  actStep++;
	  if (actStep > steps) window.clearInterval(elem.alphaChangeMemInt);
	} 
	,intervals)
}
function doBGFadeMem(elem,startRGB,endRGB,steps,intervals,powr) {
//BG Fader with Memory by www.hesido.com
	if (elem.bgFadeMemInt) window.clearInterval(elem.bgFadeMemInt);
	var actStep = 0;
	elem.bgFadeMemInt = window.setInterval(
		function() {
			elem.currentbgRGB = [
				easeInOut(startRGB[0],endRGB[0],steps,actStep,powr),
				easeInOut(startRGB[1],endRGB[1],steps,actStep,powr),
				easeInOut(startRGB[2],endRGB[2],steps,actStep,powr)
				];
			setbgRGBMask(elem,elem.currentbgRGB);
			actStep++;
			if (actStep > steps) window.clearInterval(elem.bgFadeMemInt);
		}
		,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);
} 
function easeInOutFloat(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(100*stepp)/100;
} 
