var fadeInInterrupt = false;
var fadeOutInterrupt = false;
var fadeOutInProgress = false;
var fadeInInProgress = false;
var curFadeInEid = false;
var curFadeOutEid = false;

function fadeout(eid, fadeTime){

	var element = document.getElementById(eid);
	if(element == null)	return;
	
	element.style.zIndex = 0;
	element.FadeTimeLeft = fadeTime;
	fadeOutInProgress = true;
	curFadeOutEid = document.getElementById(eid);
	setTimeout("animateFadeout(" + new Date().getTime() + ",'" + eid + "', " + fadeTime + ")", 33);

}

function animateFadeout(lastTick, eid, fadeTime){ 

	if (!fadeOutInterrupt) {
		var curTick = new Date().getTime();
		var elapsedTicks = curTick - lastTick;
	
		var element = document.getElementById(eid);
	
		if(element.FadeTimeLeft <= elapsedTicks){
			element.style.opacity = "0";
			element.style.filter = 'alpha(opacity = 0)';
			fadeOutInProgress = false;
			return;
		}
	
		element.FadeTimeLeft -= elapsedTicks;
		var newOpVal = element.FadeTimeLeft/fadeTime;
		
		element.style.opacity = newOpVal;
		element.style.filter = 'alpha(opacity = ' + (newOpVal*100) + ')';
		
		setTimeout("animateFadeout(" + curTick+ ",'" + eid + "'," + fadeTime + ")", 33);
	}
	else {
		fadeOutInterrupt = false;
	}
}

function fadein(eid, fadeTime){

	var element = document.getElementById(eid);
	if(element == null)	return;
	element.style.zIndex = 100;
	element.FadeTimeLeft = fadeTime;
	fadeInInProgress = true;
	curFadeInEid = document.getElementById(eid);
	setTimeout("animateFadein(" + new Date().getTime() + ",'" + eid + "'," + fadeTime + ")", 33);

}

function animateFadein(lastTick, eid, fadeTime){ 

	if (!fadeInInterrupt) {
		var curTick = new Date().getTime();
		var elapsedTicks = curTick - lastTick;
	
		var element = document.getElementById(eid);
	
		if(element.FadeTimeLeft <= elapsedTicks){
			element.style.opacity = "1";
			element.style.filter = 'alpha(opacity = 100)';
			fadeInInProgress = false;
			return;
		}
	
		element.FadeTimeLeft -= elapsedTicks;
		var newOpVal = 1 - element.FadeTimeLeft/fadeTime;
		
		element.style.opacity = newOpVal;
		element.style.filter = 'alpha(opacity = ' + (newOpVal*100) + ')';
		
		setTimeout("animateFadein(" + curTick+ ",'" + eid + "'," + fadeTime + ")", 33);
	}
	else {
		fadeInInterrupt = false;
	}
}

function interruptFadeIn() {
	if (fadeInInProgress && curFadeInEid) {
		fadeInInterrupt = true;
		curFadeInEid.style.opacity = "1";
		curFadeInEid.style.filter = 'alpha(opacity = 100)';
		fadeInInProgress = false;
		return true;
	}
	return false;
}

function interruptFadeOut() {
	if (fadeOutInProgress && curFadeOutEid) {
		fadeOutInterrupt = true;
		curFadeOutEid.style.opacity = "0";
		curFadeOutEid.style.filter = 'alpha(opacity = 0)';
		fadeOutInProgress = false;
		return true;
	}
	return false;
}


function fadeBanner(orderNo, fadeTime) {
  if (!paused && orderNo == gOrderNo) {
      var interrupted = interruptFadeIn() | interruptFadeOut();
      if (!interrupted) {
		  var nextBanner = curBanner + add;
	      if (nextBanner > bannerNumber && add > 0) nextBanner = 1;
	      else if (nextBanner < 1) nextBanner = bannerNumber;
	      fadeout('banner' + curBanner, fadeTime);
	      fadein('banner' + nextBanner, fadeTime);
	      curBanner = nextBanner;	
	  }
  	  gOrderNo++;
      setTimeout("fadeBanner(" + gOrderNo + "," + defaultFadeTime + ")", delay);
  }
}

function control(key) {
	if (key == "pause") {
		if (paused) {
			document.getElementById('controlsMiddle').src='images/splash/controls/controlsmiddle_white.png';
			paused = false; 
		}
		else {
			document.getElementById('controlsMiddle').src='images/splash/controls/controlsmiddle_red.png';
			paused = true; 	    		
		}
		fadeBanner(gOrderNo, defaultFadeTime);	
	}
	else if (key == "left") {
		var fadeTime = shortFadeTime;
		if (paused == true) {
			fadeTime = shortFadeTime;
    		paused = false;
    	}	    	
		add = -1;
		fadeBanner(gOrderNo, fadeTime);
		document.getElementById('controlsMiddle').src = "images/splash/controls/controlsmiddle_white.png";
	}
	else if (key == "right") {
		var fadeTime = shortFadeTime;
		if (paused == true) {
			fadeTime = shortFadeTime;
    		paused = false;
    	}
		add = 1;
		fadeBanner(gOrderNo, fadeTime);
		document.getElementById('controlsMiddle').src = "images/splash/controls/controlsmiddle_white.png";
	}
}

