/** 
 * Just straight up taken from 
 * http://www.switchonthecode.com/tutorials/javascript-tutorial-simple-fade-animation
 */ 

var TimeToFade = 800.0;
var slideInterval = 2800.0;
var curIndex = 1;

var prevIndex = 0;
var lastIndex = 0;
var linkIndex = 0;

function doClick(){
	switch(linkIndex) {
	case 1:
		location.href = "";//"/about/locations.php";
		break;
	case 2:
		location.href = "";//"/about/news.php";
		break;
	case 3:
		location.href = "";//"/about/news.php";
		break;
	case 4:
		location.href = "";
		break;
	default: 
	}
	
}

function goBack(){
	
}

function goNext(){
	
}

function fade(eid)
{
  var element = document.getElementById(eid);
  if(element == null)
    return;
    
  if(element.FadeState == null)
  {
    if(element.style.opacity == null || element.style.opacity == '' 
       || element.style.opacity == '1'){
    	element.FadeState = 2;
    }
    else {
      element.FadeState = -2;
    }	
  }
    
  if(element.FadeState == 1 || element.FadeState == -1)
  {
    element.FadeState = element.FadeState == 1 ? -1 : 1;
    element.FadeTimeLeft = TimeToFade - element.FadeTimeLeft;
  }
  else
  {
    element.FadeState = element.FadeState == 2 ? -1 : 1;
    element.FadeTimeLeft = TimeToFade;
    setTimeout("animateFade(" + new Date().getTime() + ",'" + eid + "')", 3);
  }  
}

function animateFade(lastTick, eid)
{  
  var curTick = new Date().getTime();
  var elapsedTicks = curTick - lastTick;
  
  var element = document.getElementById(eid);
 
  if(element.FadeTimeLeft <= elapsedTicks)
  {
    element.style.opacity = element.FadeState == 1 ? '1' : '0';
    element.style.filter = 'alpha(opacity = ' + (element.FadeState == 1 ? '100' : '0') + ')';
    element.FadeState = element.FadeState == 1 ? 2 : -2;
    
    linkIndex = curIndex;
    setTimeout("rotateImage()", slideInterval);
    return;
  }
 
  element.FadeTimeLeft -= elapsedTicks;
  var newOpVal = element.FadeTimeLeft/TimeToFade;
  if(element.FadeState == 1)
    newOpVal = 1 - newOpVal;

  element.style.opacity = newOpVal;
  element.style.filter = 'alpha(opacity = ' + (newOpVal*100) + ')';
  
  setTimeout("animateFade(" + curTick + ",'" + eid + "')", 3);
}


function fade2(eid, eid2)
{
  var element = document.getElementById(eid);
  var element2 = document.getElementById(eid2);
 
  element.FadeState = element.FadeState == 2 ? -1 : 1;
  element.FadeTimeLeft = TimeToFade;
  element2.FadeState = element2.FadeState == 2 ? -1 : 1;
  element2.FadeTimeLeft = TimeToFade;
    
  setTimeout("animateFade2(" + new Date().getTime() + ",'" + eid + "','" + eid2 + "')", 10);
}

function animateFade2(lastTick, eid, eid2)
{  
  var curTick = new Date().getTime();
  var elapsedTicks = curTick - lastTick;
  
  var element = document.getElementById(eid);
  var element2 = document.getElementById(eid2);
  
  if(element.FadeTimeLeft <= elapsedTicks)
  {
    element.style.opacity = element.FadeState == 1 ? '1' : '0';
    element.style.filter = 'alpha(opacity = ' + (element.FadeState == 1 ? '100' : '0') + ')';
    element.FadeState = element.FadeState == 1 ? 2 : -2;
    
    element2.style.opacity = element2.FadeState == 1 ? '1' : '0';
    element2.style.filter = 'alpha(opacity = ' + (element2.FadeState == 1 ? '100' : '0') + ')';
    element2.FadeState = element2.FadeState == 1 ? 2 : -2;
 
    linkIndex = curIndex;
    setTimeout("rotateImage()", slideInterval);
    return;
  }
 
  element.FadeTimeLeft -= elapsedTicks;
  var newOpVal = element.FadeTimeLeft/TimeToFade;
  if(element.FadeState == 1) {
    newOpVal = 1 - newOpVal;
  }

  element.style.opacity = newOpVal;
  element.style.filter = 'alpha(opacity = ' + (newOpVal*100) + ')';
  
  //element.innerHTML = newOpVal;
  
  element2.FadeTimeLeft -= elapsedTicks;
  var newOpVal2 = element2.FadeTimeLeft/TimeToFade;
  if(element2.FadeState == 1)
    newOpVal2 = 1 - newOpVal2;

  element2.style.opacity = newOpVal2;
  element2.style.filter = 'alpha(opacity = ' + (newOpVal2*100) + ')';
  
  //element2.innerHTML = newOpVal2;
  
  setTimeout("animateFade2(" + new Date().getTime() + ",'" + eid + "','" + eid2 + "')", 10);
}

 
function rotateImage() {
	prevIndex = curIndex;
	curIndex++;
	if (curIndex > lastIndex){
		curIndex = 1;
	}
	fade2("slide" + curIndex, "slide" + prevIndex);
}

function start(){
	var i=1;
	for (i=1; i<=100; i++)
	{
		var element = document.getElementById('slide' + i);
		if (element == null){
			i--;
			break;
		}
		element.FadeState = -2;
	}
	lastIndex = i;
	
	var randomStartIndex = Math.floor(Math.random()*(lastIndex)) + 1;
	curIndex = randomStartIndex;
	linkIndex = curIndex;
	fade("slide" + curIndex);
}
