function doBGFadeMem(elem,startRGB,endRGB,steps,intervals,powr)
{
	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)
				];
			elem.style.backgroundColor = "rgb("+
				elem.currentbgRGB[0]+","+
				elem.currentbgRGB[1]+","+
				elem.currentbgRGB[2]+")";
			actStep++;
			if (actStep > steps) window.clearInterval(elem.bgFadeMemInt);
		}
		,intervals)
}

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 fadeBGColMem(key)
{	
	if (!document.getElementById("fade_button_" + key ).currentbgRGB)
		document.getElementById("fade_button_" + key ).currentbgRGB = [247,209,23];
		
	doBGFadeMem(document.getElementById("fade_button_" + key),document.getElementById("fade_button_" + key ).currentbgRGB,[120,180,240],4,20,1);
}

function fadeBGColRestore(key)
{
	if (!document.getElementById("fade_button_" + key ).currentbgRGB) return;
	
	doBGFadeMem(document.getElementById("fade_button_" + key ),document.getElementById("fade_button_" + key ).currentbgRGB,[247,209,23],12,20,1);
}

function fadeHeaderNav(key)
{	
	if (!document.getElementById("fade_button_" + key ).currentbgRGB)
		document.getElementById("fade_button_" + key ).currentbgRGB = [0,0,0];
		
	doBGFadeMem(document.getElementById("fade_button_" + key),document.getElementById("fade_button_" + key ).currentbgRGB,[247,209,23],4,20,1);
}

function restoreHeaderNav(key)
{
	if (!document.getElementById("fade_button_" + key ).currentbgRGB) return;
	
	doBGFadeMem(document.getElementById("fade_button_" + key ),document.getElementById("fade_button_" + key ).currentbgRGB,[0,0,0],12,20,1);
}

function fadeElement(elem,color)
{	
	var element	 = document.getElementById(elem), defaultColor = [0,0,0], currentColor = [0,0,0];
	var fadeToColor  = color != undefined ? [HexToR(cutHex(color)),HexToG(cutHex(color)),HexToB(cutHex(color))] : [0,0,0];
	var currentColor = !element.currentbgRGB ? defaultColor : element.currentbgRGB;
	doBGFadeMem(element, (element.currentbgRGB = currentColor), fadeToColor,4,20,1);
}
