/* JavaScript Document
* Author: Philip Hardegen
* NFWS Website 
* 09-2010
*/

// Variables for Slideshow Functionality
var opacity = 1;
var opacity2 = 0;
var iSlide = 1;
var numSlides;

var elShowing = document.getElementById("slide"+iSlide);
var elBehind = document.getElementById("slide"+(iSlide+1));
var TOPLAYER = 5;
var BEHINDLAYER = 4;
var HIDDENLAYER = 3;
var FRAMERATE = 50;
var OPACITYSTEP = .05;

// Variables for Gallery Viewer
var viewerImage;

//Browser Checking Functionality
function browserCheck()
{
	var el = document.getElementById("browserWarning");
	if(navigator.appName == "Microsoft Internet Explorer") {
		el.style.display = "inline";
	}
}
function jsCheck() //hides the javascript warning. If JS is not enabled, it will show
{
	var el = document.getElementById("jsWarning");
	el.style.display = "none";
}
//Slideshow Functionality
function SlideShow(t)
{
	elShowing = document.getElementById("slide"+iSlide);
	elBehind = document.getElementById("slide"+(iSlide+1));
	if(elShowing) {
		numSlides = document.getElementById("numSlides").value
		if(numSlides > 1) {
			resetSlides();
			fade(t);
		} else {
			showElement(elShowing);
		}
	}
}
function fade(t) // fades the current showing element
{
	if(opacity > 0 ){ // if image is still visible
		opacity -= OPACITYSTEP;
		opacity2 += OPACITYSTEP;
		setOpacity(elShowing, opacity);
		setOpacity(elBehind, opacity2);
		setTimeout("fade('" + t + "')", FRAMERATE);
	} else {
		hideElement(elShowing);
		opacity=1;
		opacity2=0;
		cycleSlides();
		wait(t);
	}
}
function setOpacity(el, op)
{
	var alpha = op*100
	el.style.opacity = op;
	el.style.filter = "alpha(opacity=" + alpha + ")";
}
function showElement(el)
{
	el.style.visibility = "visible";
	setOpacity(el,1);
}
function hideElement(el)
{
	el.style.visibility = "hidden";
}
function setZIndex(el, zIndex)
{
	el.style.zIndex = zIndex;
}
function cycleSlides()
{
	if(iSlide < numSlides-1){
		iSlide ++;
		elShowing = document.getElementById("slide"+iSlide);
		elBehind = document.getElementById("slide"+(iSlide+1));
	}
	else if(iSlide == numSlides-1){
		iSlide ++;
		elShowing = document.getElementById("slide"+iSlide);
		elBehind = document.getElementById("slide"+(1));
	} else {
		iSlide = 1;
		elShowing = document.getElementById("slide"+iSlide);
		elBehind = document.getElementById("slide"+(iSlide+1));
	}
	
	elShowing.style.zIndex = TOPLAYER;
	elBehind.style.zIndex = BEHINDLAYER;
	showElement(elShowing);
	showElement(elBehind);
	setOpacity(elBehind,0);
}
function resetSlides() {
	iSlide = 1;
	var top_pos = 0;
	for(var i = 1; i<=numSlides; i++){
		var el = document.getElementById("slide"+i);
		//el.style.position = "relative";
		//el.style.top = top_pos +"px";
		el.style.zIndex = HIDDENLAYER;
		hideElement(el);
		top_pos-= el.offsetHeight;
	}
elShowing = document.getElementById("slide"+iSlide);
elBehind = document.getElementById("slide"+(iSlide+1));
	elShowing.style.zIndex = TOPLAYER;
	elBehind.style.zIndex = BEHINDLAYER;
	showElement(elShowing);
	showElement(elBehind);
}

function wait(t){
	setTimeout("fade('" + t + "')",t);
}

//Gallery Functionality

/**
 * Displays an image in the gallery viewer pane
 * @param image The id of the image to be displayed in the veiwer pane
 * @param setImage whether to set the passed image permanently
 *
 */
function viewerDisplay(image, setImage)
{
	el = document.getElementById(image + "_");
	hideElement(viewerImage);
	if(setImage == true)
	{
		viewerImage = el;
	}
	showElement(el);
	setZIndex(el,TOPLAYER);
	
}
/**
 * Updates the thumbnail border color
 * @param box The id of the box associated with the image
 * @param image The id of the image to be updated
 * @param color The string hex code of the border color to update to
 *
 */
function updateThumbnail(id, color)
{
	checkBox = document.getElementById(id);
	idNumber = id.match(/\d+/)[0];
	thumb = document.getElementById("gallery_img_" + idNumber);
	if(checkBox.checked == true) //box is checked
		thumb.style.border = "4px solid #" + color;
	else
		thumb.style.border = "2px solid #AAAAAA";
}

