/* 
Animation Techniques by EFF
*/

function fade(elem,startRGB,endRGB,finalRGB,steps,intervals,powr) {

	if (elem.bgFadeInt) window.clearInterval(elem.bgFadeInt);
	var actStep = 0;
	var actBack = 0;
	var r=0; var b=0; var g=0;

	//setOpacity(elem, 5);
	elem.bgFadeInt = window.setInterval(
		function() {
			r = easeInOut(startRGB[0],endRGB[0],steps,actStep,powr);
			g = easeInOut(startRGB[1],endRGB[1],steps,actStep,powr);
			b = easeInOut(startRGB[2],endRGB[2],steps,actStep,powr);
			if(r == undefined){ r = endRGB[0]; }
			if(g == undefined){ g = endRGB[1]; }
			if(b == undefined){ b = endRGB[2]; }
			elem.style.color = "rgb("+r+","+g+","+b+")";
			actStep++;
			if (actStep > steps) {
				r = easeInOut(finalRGB[0],endRGB[0],steps,steps-actBack,powr);
				g = easeInOut(finalRGB[1],endRGB[1],steps,steps-actBack,powr);
				b = easeInOut(finalRGB[2],endRGB[2],steps,steps-actBack,powr);
				if(r == undefined){ r = finalRGB[0]; }
				if(g == undefined){ g = finalRGB[1]; }
				if(b == undefined){ b = finalRGB[2]; }

				elem.style.color = "rgb("+r+","+g+","+b+")";
				actBack++;
				if (actBack > steps){
					window.clearInterval(elem.bgFadeInt);
				}
			}
		}
		,intervals)
}

function fadeBorder(elem,border,startRGB,endRGB,finalRGB,steps,intervals,powr) {

	if (elem.bgFadeInt) window.clearInterval(elem.bgFadeInt);
	var actStep = 0;
	var actBack = 0;
	var r=0; var b=0; var g=0;

	//setOpacity(elem, 5);
	elem.bgFadeInt = window.setInterval(
		function() {
			r = easeInOut(startRGB[0],endRGB[0],steps,actStep,powr);
			g = easeInOut(startRGB[1],endRGB[1],steps,actStep,powr);
			b = easeInOut(startRGB[2],endRGB[2],steps,actStep,powr);
			if(r == undefined){ r = endRGB[0]; }
			if(g == undefined){ g = endRGB[1]; }
			if(b == undefined){ b = endRGB[2]; }
			elem.style.border = border + "px solid rgb("+r+","+g+","+b+")";
			actStep++;
			if (actStep > steps) {
				r = easeInOut(finalRGB[0],endRGB[0],steps,steps-actBack,powr);
				g = easeInOut(finalRGB[1],endRGB[1],steps,steps-actBack,powr);
				b = easeInOut(finalRGB[2],endRGB[2],steps,steps-actBack,powr);
				if(r == undefined){ r = finalRGB[0]; }
				if(g == undefined){ g = finalRGB[1]; }
				if(b == undefined){ b = finalRGB[2]; }

				elem.style.border = border + "px solid rgb("+r+","+g+","+b+")";
				actBack++;
				if (actBack > steps){
					window.clearInterval(elem.bgFadeInt);
				}
			}
		}
		,intervals)
}

function doWidthChangeMem(elem,startWidth,endWidth,finalWidth,steps,intervals,powr) {
	if (elem.widthChangeMemInt) window.clearInterval(elem.widthChangeMemInt);
	var actStep = 0;
	var actBack = 0;
	elem.widthChangeMemInt = window.setInterval(
		function() {
			
			elem.style.left = easeInOut(startWidth,endWidth,steps,actStep,powr)+"px";
			actStep++;

			if (actStep > steps){
				elem.style.left = easeInOut(startWidth,endWidth,steps,steps-actBack,powr)+"px";
				actBack++;
				if (actBack > steps){
					window.clearInterval(elem.widthChangeMemInt);
				}
			}
		}
		,intervals)
}

function doHeightChangeMem(elem,startHeight,endHeight,steps,intervals,powr) {
	//alert(endHeight);
	//alert(elem);
	if (elem.heightChangeMemInt) window.clearInterval(elem.heightChangeMemInt);
	var actStep = 0;
	//alert(elem.style.pixelHeight);
	elem.heightChangeMemInt = window.setInterval(
		function() {
			//alert(easeInOut(startWidth,endWidth,steps,actStep,powr));
			elem.style.height = easeInOut(startHeight,endHeight,steps,actStep,powr)+"px";
			actStep++;

			if (actStep > steps){
				window.clearInterval(elem.heightChangeMemInt);
				//elem.style.height = '';
				

			}
		}
		,intervals)
	
}

function ZoomImageMem(d, key, elem,startWidth,startHeight,endWidth,endHeight,startTop,startLeft,endTop,endLeft,steps,intervals,powr) {
	//alert(endHeight);
	//alert(elem);
	if (elem.ZoomImageMemInt) window.clearInterval(elem.ZoomImageMemInt);
	var actStep = 0;
	//alert(elem.style.pixelHeight);
	if(d == 'in'){
		//elem.style.zIndex = key+2;
	}
	elem.ZoomImageMemInt = window.setInterval(
		function() {
			//alert(easeInOut(startWidth,endWidth,steps,actStep,powr));
			elem.style.width = easeInOut(startWidth,endWidth,steps,actStep,powr)+"px";
			elem.style.height = easeInOut(startHeight,endHeight,steps,actStep,powr)+"px";
			elem.style.top = easeInOut(startTop,endTop,steps,actStep,powr)+"px";
			elem.style.left = easeInOut(startLeft,endLeft,steps,actStep,powr)+"px";
			actStep++;

			if (actStep > steps){
				window.clearInterval(elem.ZoomImageMemInt);
				//elem.style.height = '';
				if(d == 'out'){
					//elem.style.zIndex = key-2;
				}

			}
		}
		,intervals)
	
}

function flashImage(elem,opacity_start,opacity_end,steps,intervals,powr) {

	if (elem.OpacityChangeMemInt) window.clearInterval(elem.OpacityChangeMemInt);
	var actStep = 0;
	var opacity_value = 0;
	//alert(elem.style.pixelHeight);
	elem.OpacityChangeMemInt = window.setInterval(
		function() {
			//alert(easeInOut(startWidth,endWidth,steps,actStep,powr));
			opacity_value = easeInOut(opacity_start,opacity_end,steps,actStep,powr);
			//blu(opacity_value);
			setOpacity(elem, opacity_value);		
			actStep++;

			if (actStep > steps){
				window.clearInterval(elem.OpacityChangeMemInt);
			}
		}
		,intervals)
	
}

function setOpacity(obj, value) {
	if(value == 100){
		obj.style.opacity = ''; 
		/* fuckin ie bug busted by eff */
		obj.style.filter = '';
	} else {

		obj.style.opacity = value/100;
		obj.style.filter = 'alpha(opacity='+value+')';
		//blu(obj.style.opacity);
	}
	
}
var IE = document.all?true:false;

function realfade(direction,elem,opacity_start,opacity_end,steps,intervals,powr) {

	if (elem.OpacityChangeMemInt) window.clearInterval(elem.OpacityChangeMemInt);
	var actStep = 0;
	if(direction == 'in'){
		setOpacity(elem, 0);
		elem.style.display = 'block';
	}

	elem.OpacityChangeMemInt = window.setInterval(
		function() {
			setOpacity(elem, easeInOut(opacity_start,opacity_end,steps,actStep,powr));		
			actStep++;

			if (actStep > steps){
				if(direction == 'out'){
					elem.style.display = 'none';
					
				}
				window.clearInterval(elem.OpacityChangeMemInt);
			}
		}
		,intervals)
	
}

//*******************

function doPosChangeMem(elem,startPos,endPos,steps,intervals,powr) {
	if (elem.posChangeMemInt) window.clearInterval(elem.posChangeMemInt);
	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);
		}
		,intervals)

}

function motion_fader_on_components(object, offset_start, offset_end, speed){
	
	if (object.motion_fader_memory_flag) window.clearInterval(object.motion_fader_memory_flag);
	var step = 0;
	var length = speed;
	object.motion_fader_memory_flag = window.setInterval(
		function(){
			setOpacity(object, easeInOut(offset_start,offset_end,length,step,1));		
			step++;
			if(step>length){
				window.clearInterval(object.motion_fader_memory_flag);
			}
	}, 10);
	
}

function motion_fader_on_objects(object, offset_start, offset_end, speed){
	
	if (object.motion_fader_memory_flag) window.clearInterval(object.motion_fader_memory_flag);
	var step = 0;
	var length = speed;
	object.motion_fader_memory_flag = window.setInterval(
		function(){
			setOpacity(object, easeInOut(offset_start,offset_end,length,step,5));		
			step++;
			if(step>length){
				window.clearInterval(object.motion_fader_memory_flag);
			}
	}, 10);
	
}

function scale_div_height(object, offset_start, offset_end, speed){
	
	if (object.scale_div_height_memory_flag) window.clearInterval(object.scale_div_height_memory_flag);
	var step = 0;
	var length = speed;
	var interval = 20;
	object.scale_div_height_memory_flag = window.setInterval(
		function(){
			
			object.style.height = easeInOut(offset_start,offset_end,length,step,1) + 'px';		
			step++;
			if(step>length){
				window.clearInterval(object.scale_div_height_memory_flag);
			}
	}, interval);

}

function scrollpage(object, ext){
	
	if (object.scroll_div_height_memory_flag) window.clearInterval(object.scroll_div_height_memory_flag);
	var step = 1;
	var length = 30;
	var interval = 10;
	var y;
	var target = (ext) ? ext : 111;

	if (self.pageYOffset){ // all except Explorer
		y =	self.pageYOffset;
	} else if (document.documentElement && document.documentElement.scrollTop) {// Explorer 6 Strict
		y = document.documentElement.scrollTop;
	} else if (document.body) {// all other Explorers
		y = document.body.scrollTop;
	}
	
	if((target < y) && y){	
		object.scroll_div_height_memory_flag = window.setInterval(
			function(){
				
				//easeInOut(minValue,maxValue,totalSteps,actualStep,powr)
				if(ext){ 
					window.scroll(0,easeInOut(y,y+ext,length,step,11));
				} else {
					window.scroll(0,easeInOut(y,target,length,step,11));
				}
				step++;
				if(step>length){
					window.clearInterval(object.scroll_div_height_memory_flag);
				}
		}, interval);
	}
}


function move_object(object, object_d, distance, limit, speed, cpu){
	motion_sense = true;

	var styletask = object.style;
	var control = '';
	
	switch(object_d){
		case 'top'		: control = styletask.bottom;	break;
		case 'left'		: control = styletask.right;	break;
		case 'right'	: control = styletask.right;	break;
		case 'bottom'	: control = styletask.bottom;	break;
	}
	var offset_start = (control == '') ? 0 : normalize(control);
	var offset_end = eval(distance);
	//blu(offset_start + ' -> ' + offset_end);
	

	
		if (object.move_object_memory_flag) window.clearInterval(object.move_object_memory_flag);
		var step = 0;
		var length = speed;
		var interval = cpu;
		//blu(object.id);
		object.move_object_memory_flag = window.setInterval(
			function(){
				//blu(offset_start + ' / ' + offset_end);
				object.style.right = easeInOut(offset_start,offset_end,length,step,1) + 'px';	
				//if(object_d == 'right') object.style.right = easeInOut(offset_start,offset_start-distance,length,step,1) + 'px';	
				step++;
				if(step>length){
					window.clearInterval(object.move_object_memory_flag);
					motion_sense = false;
				}
		}, interval);

}

//*******************

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 preload(id) {
if (document.getElementById) { // DOM3 = IE5, NS6
document.getElementById(id).style.visibility = 'hidden';
}
else {
if (document.layers) { // Netscape 4
document.hidepage.visibility = 'hidden';
}
else { // IE 4
document.all.hidepage.style.visibility = 'hidden';
}
}
}


var countDownInterval=15;
var countDownTime=countDownInterval;

function countDown()
{
    --countDownTime;
    if (countDownTime < 0)
    {
        countDownTime=countDownInterval;
    }
    document.all.countDownText.innerText = countDownTime;
    setTimeout("countDown()", 1000);
    if (countDownTime == 0)
    {
        location.reload();
    }
}


