var MaxOpacity = 0.8;
var MinOpacity = 0.1;
var ChangeTotalTime = 1000;
var ChangePeriod = 10;

var DisplayTime = 5000;
var HideTime = 0;

var Times = [];
 

/*This is where the fading photos go. You also have to edit the FadeAllImages() function below. */

var FileNames = new Array();
FileNames[0] = "/img/fader/all1.jpg";
FileNames[1] = "/img/fader/chorus1.jpg";
FileNames[2] = "/img/fader/people.jpg";
FileNames[3] = "/img/fader/tplTitle.png";


function FadeOutImage(OpacityLevel, Tag, FileNum){
	try{
	  var now = new Date();
	  var StartTime = Times[Tag];
	  
	  var Gradient = (MaxOpacity - MinOpacity) / ChangeTotalTime;
	  var TimePassed = now - StartTime;
	  var Value = Gradient * TimePassed;
	  Value = (MaxOpacity - MinOpacity) - Value;
	  
	  OpacityLevel = Value > MinOpacity ? Value : MinOpacity;
	  OpacityLevel = roundNumber(OpacityLevel, 2);
	  
	  document.getElementById(Tag).style.opacity = OpacityLevel;
	  document.getElementById(Tag).style.filter = "alpha(opacity=" + (OpacityLevel * 100) + ")";
	  document.getElementById(Tag).style.MozOpacity = OpacityLevel;
	  
	  if(OpacityLevel > MinOpacity){
		  setTimeout("FadeOutImage(" + OpacityLevel + ", '" + Tag + "', " + FileNum + ")", ChangePeriod);
	  }else{
		  FileNum = Random(FileNames.length);
		  document.getElementById(Tag).src = FileNames[FileNum];
		  
		  var CommandString = "Times['" + Tag + "'] = new Date();";
		  setTimeout(CommandString, HideTime);
		  setTimeout("FadeInImage(" + OpacityLevel + ", '" + Tag + "', " + FileNum + ")", HideTime);
	  }
	}catch(e){}
}

function FadeInImage(OpacityLevel, Tag, FileNum, StartTime){
	try	{
	  var now = new Date();
	  var StartTime = Times[Tag];
	  
	  var Gradient = (MaxOpacity - MinOpacity) / ChangeTotalTime;
	  var TimePassed = now - StartTime;
	  var Value = Gradient * TimePassed;
	  
	  OpacityLevel = Value < MaxOpacity ? Value : MaxOpacity;
	  OpacityLevel = roundNumber(OpacityLevel, 2);
	  
	  document.getElementById(Tag).style.opacity = OpacityLevel;
	  document.getElementById(Tag).style.filter = "alpha(opacity=" + (OpacityLevel * 100) + ")";
	  document.getElementById(Tag).style.MozOpacity = OpacityLevel;
	  
	  if(OpacityLevel < MaxOpacity){
		  setTimeout("FadeInImage(" + OpacityLevel + ", '" + Tag + "', " + FileNum + ")", ChangePeriod);
	  }else{
		  var CommandString = "Times['" + Tag + "'] = new Date();";
		  setTimeout(CommandString, DisplayTime);
		  setTimeout("FadeOutImage(" + OpacityLevel + ", '" + Tag + "', " + FileNum + ")", DisplayTime);
	  }
	}catch (e){	}
}


function FadeImage(Tag, Delay, FileNum){
	var CommandString = "Times['" + Tag + "'] = new Date();";
	setTimeout(CommandString, Delay);
	setTimeout("FadeOutImage(1.0, '" + Tag.toString() + "', " + FileNum + ")", Delay);
}


/*Add to this function with each new photo with FadeImage(Image#, Delay, FileNum)*/

function FadeAllImages(){
	FadeImage('Image1', 150, 0);
	FadeImage('Image2', 350, 1);
	FadeImage('Image3', 550, 2);
	FadeImage('Image4', 750, 3);
}

function Random(Max){
	var Multiplier = 10;
	Multiplier = Max > 10 ? 100 : Multiplier;
	Multiplier = Max > 100 ? 1000 : Multiplier;

	var Result = Math.floor((Math.random()*Multiplier));
	return Result < Max ? Result : Random(Max);
}

function roundNumber(num, dec) {
	var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
	return result;
}
