// JavaScript Document

//fader

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 addFade() {
		doBGFade(this,[255,255,0],[0,0,0],[0,0,0],75,20,4);
		doTxtFade(this,[0,0,0],[255,255,0],[255,255,0],75,20,4);
	}
function addLinkFade() {
		doBGFade(this,[255,255,0],[0,0,0],[0,0,0],75,20,4);
		doTxtFade(this,[0,0,0],[102,102,102],[102,102,102],75,20,4);
	}	
	
function doBGFade(elem,startRGB,endRGB,finalColor,steps,intervals,powr) {
	if (elem.bgFadeInt) window.clearInterval(elem.bgFadeInt);
	var actStep = 0;
	elem.bgFadeInt = window.setInterval(
		function() {
			elem.style.backgroundColor = "rgb("+
				easeInOut(startRGB[0],endRGB[0],steps,actStep,powr)+","+
				easeInOut(startRGB[1],endRGB[1],steps,actStep,powr)+","+
				easeInOut(startRGB[2],endRGB[2],steps,actStep,powr)+")";
			actStep++;
			if (actStep > steps) {
			elem.style.backgroundColor = finalColor;
			window.clearInterval(elem.bgFadeInt);
			}
		}
		,intervals)
	}
	
function doTxtFade(elem,startTxtRGB,endTxtRGB,finalTxtColor,Txtsteps,intervals,powr) {
	if (elem.TxtFadeInt) window.clearInterval(elem.TxtFadeInt);
	var actTxtStep = 0;
	elem.TxtFadeInt = window.setInterval(
		function() {
			elem.style.color = "rgb("+
				easeInOut(startTxtRGB[0],endTxtRGB[0],Txtsteps,actTxtStep,powr)+","+
				easeInOut(startTxtRGB[1],endTxtRGB[1],Txtsteps,actTxtStep,powr)+","+
				easeInOut(startTxtRGB[2],endTxtRGB[2],Txtsteps,actTxtStep,powr)+")";
			actTxtStep++;
			if (actTxtStep > Txtsteps) {
			elem.style.color = finalTxtColor;
			window.clearInterval(elem.TxtFadeInt);
			}
		}
		,intervals)
	}

