/*
 * Created by Marcel Manning
 * Last modified on July 9, 2009
 * v 1.0
 */

var images = new Array();
var bufferedImages = new Array();
var titles = new Array();

images[0] = "G40708hummingbirdvine.jpg";
titles[0] = "Viewing an out of frame Hummingbird";

images[1] = "G40708indigoseed.jpg";
titles[1] = "Indigo seed";

images[2] = "G40708banannaspider.jpg";
titles[2] = "Banana Spider";

images[3] = "G40708bluetailskink.jpg";
titles[3] = "Blue-tailed Skink ";

images[4] = "G40708student.jpg";
titles[4] = "";

images[5] = "G40708skiotransport.jpg";
titles[5] = "Skidaway Institute of Oceanography Transportation";

images[6] = "G40708marshvista.jpg";
titles[6] = "Marshland";

images[7] = "G40708teacher.jpg";
titles[7] = "";

images[8] = "G40708student2.jpg";
titles[8] = "";

images[9] = "G40708suntrees.jpg";
titles[9] = "";

images[10] = "G40708periwinklespartina.jpg";
titles[10] = "Periwinkle and Spartina Grass";

images[11] = "G40708fiddlerhole.jpg";
titles[11] = "Fiddler Crab";

images[12] = "G40708malefiddler.jpg";
titles[12] = "Male Fiddler Crab";

images[13] = "G40708banannaspider2.jpg";
titles[13] = "Banana Spider";

images[14] = "G40708toplesspalms.jpg";
titles[14] = "\"Topless\" Palm Trees";

images[15] = "G40708pinecones.jpg";
titles[15] = "Pine Cones";

images[16] = "G40708oak.jpg";
titles[16] = "Oak Tree";

images[17] = "G40708floatingpelicans.jpg";
titles[17] = "Pelicans";

images[18] = "G40708southendroad.jpg";
titles[18] = "Southern Road"

images[19] = "G40708alligatorskull.jpg";
titles[19] = "Alligator skull";

images[20] = "G40708stingray.jpg";
titles[20] = "Stingray";

images[21] = "G40708skiotransport2.jpg";
titles[21] = "Heading to Ossabaw Island";

images[22] = "G40708distantboar.jpg";
titles[22] = "Distant Wild Boar";

baseUrl = "/cake/slideshow/";
//baseUrl = "http://ossabest.armstrong.edu/images/summer08/g4/";

var rotateCount = 0;
var interval = 0
var paused = new Boolean();
var rotateInterval = 4000;

function slideShow() {
	document.getElementById('ssControls').style.visibility = 'hidden'; 
	paused = false;

	preLoad();

	// Controls
	var pause = new Image();
	pause.src = baseUrl + "pause.gif";
	var back = new Image();
	back.src = baseUrl + "back.gif";
	var forward = new Image();
	forward.src = baseUrl + "forward.gif";

	document.getElementById("pause").style.backgroundImage="url("+pause.src+")";
	document.getElementById("back").style.backgroundImage="url("+back.src+")";
	document.getElementById("forward").style.backgroundImage="url("+forward.src+")";

	setOpacity(document.getElementById('banner1'), 50);
	rotateImage(false, null);
	interval = setInterval("rotateImage()",rotateInterval);
}

function pauseShow(pause) {
	if (pause) {
		// Pause
		document.getElementById("pause").style.backgroundImage="url("+baseUrl+"play.gif)";
		paused = true;					
	} else {
		if (!paused) {
			// Pause
			document.getElementById("pause").style.backgroundImage="url("+baseUrl+"play.gif)";
			paused = true;
		} else {
			// Un-pause
			document.getElementById("pause").style.backgroundImage="url("+baseUrl+"pause.gif)";
			paused = false;
		}
	}
}

function previous() {
	rotateCount -= 2;
	var prev = rotateCount % images.length;
	rotateCount = prev;
	pauseShow(true);
	rotateImage(true);
}	

function next() {
	var next = rotateCount % images.length;
	rotateCount = next;
	pauseShow(true);
	rotateImage(true);
}

function showControls(show) {
	if (show) {
		document.getElementById('ssControls').style.visibility = 'visible'; 
	} else {
		document.getElementById('ssControls').style.visibility = 'hidden'; 
	}

}

function preLoad() {
	for (i = 0; i < images.length; i++) {
		var pic = new Image();
		pic.src = baseUrl + images[i];
		bufferedImages[i] = pic.src;
	}		
}

function rotateImage(overRide) {
	if (!paused || overRide) { 
		imageTagId = 'imageShow';
		imageTag = document.getElementById(imageTagId);
		captionTag = document.getElementById('caption');

		var pic = new Image();
		// Javascript seems to have a modulus bug, so here is a workaround found online
		// http://javascript.about.com/od/problemsolving/a/modulobug.htm
		pic.src = baseUrl + images[((rotateCount % images.length) + images.length) %images.length];

		// If fully downloaded
		if (pic.complete) {
			// Swap the image
			imageTag.style.backgroundImage="url("+pic.src+")";
			captionTag.innerHTML = titles[((rotateCount % images.length) + images.length) %images.length];

			// Fade the image
		  	setOpacity(imageTag, 0);
		  	imageTag.style.visibility = 'visible';
		  	fadeIn(imageTagId,0);		
			rotateCount++;

			// Scroll the image
			// imageScroll(imageTagId, -20);
		} else {
			//rotateCount--;
			//window.setTimeout(rotateImage(false),3000);
		}
	}
	
} 

function imageScroll(objId, position) {
	if (document.getElementById && !paused) {
		obj = document.getElementById(objId);
		if (position <= 0) {
			obj.style.backgroundPosition="0 " + position;
			position += 1;
			window.setTimeout("imageScroll('"+objId+"',"+position+")", 300);	
		}
	}
}

function setOpacity(obj, opacity) {
  opacity = (opacity == 100)?99.999:opacity;
  // IE/Win
  obj.style.filter = "alpha(opacity:"+opacity+")";
  // Safari<1.2, Konqueror
  obj.style.KHTMLOpacity = opacity/100;
  // Older Mozilla and Firefox
  obj.style.MozOpacity = opacity/100;
  // Safari 1.2, newer Firefox and Mozilla, CSS3
  obj.style.opacity = opacity/100;
}

function fadeIn(objId,opacity) {
  if (document.getElementById) {
    obj = document.getElementById(objId);
    if (opacity <= 100) {
	 setOpacity(obj, opacity);
	 opacity += 10;
	 window.setTimeout("fadeIn('"+objId+"',"+opacity+")", 100);
    }
  }
}
