var bannerData = new Spry.Data.XMLDataSet("assets/images/rotating_banner/banners.xml", "rotatingbanners/banner");
bannerData.setColumnType("timetodisplay", "number");

var indexOfCycle = -1;
var imagesToCycle = new Array();
var numberOfImages;
var cycleTimer = null;
var observer = {};

var playImage = "assets/images/rotating_banner/play.gif";
var playImageOver = "assets/images/rotating_banner/play_over.gif";

var pauseImage = "assets/images/rotating_banner/pause.gif";
var pauseImageOver = "assets/images/rotating_banner/pause_over.gif";

var rotatorButtonImage = pauseImage;
var rotatorButtonOverImage = pauseImageOver;

var isPlaying = true;

observer.onPostLoad = function() { 
	var rowsOfData = bannerData.getData();
	numberOfImages = rowsOfData.length
	for(i = 0;i<numberOfImages;i++) {
		var dd = new Object();
		dd.title = rowsOfData[i].title;
		dd.src = rowsOfData[i].src;
		dd.url = rowsOfData[i].url;
		dd.timetodisplay = rowsOfData[i].timetodisplay;
		if(rowsOfData[i].alt==undefined || rowsOfData[i].alt=="") {
			dd.alt = "InterferonSource"	
		} else {
			dd.alt = rowsOfData[i].alt;
		}
		dd.map = rowsOfData[i].map;
		imagesToCycle.push( dd );
	}
	cycleTimer = setTimeout("changeImage()",0);
}

function changeImage(num) {
	var imageToUse;
	
	// Clear timer
	clearInterval(cycleTimer);
	
	// If no number passed, just increase value;
	if(num==undefined) {
		if(isPlaying==false) { return; }
		indexOfCycle = indexOfCycle + 1;
	} else {
		indexOfCycle = num;
	}
	
	// Reset Cycle if out of bounds
	if(indexOfCycle>=numberOfImages || indexOfCycle<0) {
		indexOfCycle = 0;
	}
	
	imageToUse = imagesToCycle[indexOfCycle].src;
	
	if(isPlaying) {
		cycleTimer = setTimeout("changeImage()",imagesToCycle[indexOfCycle].timetodisplay * 1000);
	}
	
	window.document.rotatingBanner.src  = imageToUse;
	setAlt();
	setMap();
	setActiveText();
}

function setActiveText() {
	var textForRotator = "";
	for(i = 0;i<numberOfImages;i++) {
		// Add text for rotator
		textForRotator += "<a href='javascript:changeImage(" + i + ");' ";
		if(indexOfCycle==i) { 
			textForRotator += "style='color:#ff9900;' ";
		}
		textForRotator += ">" +  imagesToCycle[i].title + "</a>";
		if(i<numberOfImages-1) { textForRotator += " | "; }
	}
	document.getElementById('rotatorText').innerHTML = textForRotator;
}

function getLink() {
	location = imagesToCycle[indexOfCycle].url;
}

function setAlt() {
	window.document.rotatingBanner.alt = imagesToCycle[indexOfCycle].alt;
}

function setMap() {
	window.document.rotatingBanner.map = imagesToCycle[indexOfCycle].map;
}

function rotatorButtonPressed() {
	if(isPlaying) {
		pauseRotator();
	} else {
		playRotator();
	}
}

function rotatorButtonOver() {
	window.document.rotatingButton.src = rotatorButtonOverImage;
}

function rotatorButtonOut() {
	window.document.rotatingButton.src = rotatorButtonImage;
}

function pauseRotator() {
	window.document.rotatingButton.src = playImage;
	rotatorButtonImage = playImage;
	rotatorButtonOverImage = playImageOver;
	isPlaying = false;
	clearInterval(cycleTimer);
}

function playRotator() {
	window.document.rotatingButton.src = pauseImage;
	rotatorButtonImage = pauseImage;
	rotatorButtonOverImage = pauseImageOver;
	isPlaying = true;
	cycleTimer = setTimeout("changeImage()",imagesToCycle[indexOfCycle].timetodisplay * 1000);
}

bannerData.addObserver(observer);
bannerData.loadData();
