/* Example Javascript Animation Technique by Hesido.com;*/ 

if (document.getElementById && document.getElementsByTagName) {
	if (window.addEventListener) { 
	window.addEventListener('load', initAnims, false);
	} else if (window.attachEvent) {
 		window.attachEvent('onload', initAnims);
	}
}

function initAnims() {
 
	//	Init fade animation with memory, both directions
		var animElements = document.getElementById("fadercontainermem").getElementsByTagName("p");
		for(var i=0; i<animElements.length; i++) {
			animElements[i].onmouseover = fadeBGColMem;
			animElements[i].onmouseout = fadeBGColRestore;
	    }
	
	   	//var hed = document.getElementById("header");
	    //heightChange();
   		//hed.onmouseover = heightChange;
   		//hed.onmouseout = heightRestore;
 
		function fadeBGColMem() {
			if (!this.currentbgRGB) this.currentbgRGB = [76,76,76]; //if no mem is set, set it first;
			doBGFadeMem(this,this.currentbgRGB,[180,180,180],4,10,1);
		}

		function fadeBGColRestore() {
			if (!this.currentbgRGB) return;	//avoid error if mouseout an element occurs before the mosueover
												//(e.g. the pointer already in the object when onload)
			doBGFadeMem(this,this.currentbgRGB,[66,66,66],96,20,1);
	    }
	 
	   function heightChange() {
    		if (!hed.currentHeight) hed.currentHeight = 1000; //if no mem is set, set it first;
			doHeightChangeMem(hed,hed.currentHeight,100,100,10,1);
		} 
	   	
		function heightRestore() {
			if (!this.currentHeight) return;	//avoid error if mouseout an element occurs before the mosueover
												//(e.g. the pointer already in the object when onload)
			doHeightChangeMem(this,this.currentHeight,800,10,10,0.5);
		}
}

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)
				];
			elem.style.backgroundColor = "rgb("+
				elem.currentbgRGB[0]+","+
				elem.currentbgRGB[1]+","+
				elem.currentbgRGB[2]+")";
			actStep++;
			if (actStep > steps) window.clearInterval(elem.bgFadeMemInt);
		}
		,intervals)
}

function doHeightChangeMem(elem,startHeight,endHeight,steps,intervals,powr) {
//Height 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 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)
} 


