//--------------------------------------
//  Editable Variables
//--------------------------------------
var slideDuration_num = 10000;    // Time in milliseconds
var transitionDuration_num = 500; // Time in milliseconds


//--------------------------------------
//  Static Variables
//--------------------------------------
var fsImages_arr;
var fsNavBubbles_arr;
var fsBlurbs_arr;
var currentFSImage_num;
var nextFSImage_num;
var timer;
var timeTrackTimer;

//--------------------------------------
//  Initialization
//--------------------------------------
function initFS() {
	fsImages_arr = getElementsByClassName('feat_image');
	fsNavBubbles_arr = getElementsByClassName('feat_nav_bubble');
	fsBlurbs_arr = getElementsByClassName('feat_blurb');
	initFSImages();
	currentFSImage_num = 0;
	nextFSImage_num = 1;
	startTimer();
	updateTimeTracker();
}
function initFSImages() {
	for (var i=0; i<fsImages_arr.length; i++) {
		if (i == 0) {
			fsImages_arr[i].style.left = '0px';
			fsNavBubbles_arr[i].style.backgroundPosition = "0px 0px";
			fsBlurbs_arr[i].style.left = "20px";
			$(fsImages_arr[i]).animate({ opacity: '1' }, 20);
			$(fsBlurbs_arr[i]).animate({ opacity: '1' }, 20);
		} else {
			$(fsImages_arr[i]).animate({ opacity: '0' }, 20);
			fsNavBubbles_arr[i].style.backgroundPosition = "0px -10px";
			fsBlurbs_arr[i].style.left = "-360px";
			$(fsBlurbs_arr[i]).animate({ opacity: '0' }, 20);
		}
	}
}

//--------------------------------------
//  Timing Methods
//--------------------------------------
function startTimer() {
	timer = setTimeout(transitionToNextImage, slideDuration_num);
}
function updateTimeTracker() {
	//$('#fs_time_tracker_slider').animate({ width: '100%' }, slideDuration_num);
}

//--------------------------------------
//  Transition Methods
//--------------------------------------
function transitionToNextImage() {
	clearTimeout(timer);
	fsImages_arr[nextFSImage_num].style.left = '0px';
	$('#fs_time_tracker_slider').animate({ width: '0%' }, 20);
	fsNavBubbles_arr[currentFSImage_num].style.backgroundPosition = "0px -10px";
	fsNavBubbles_arr[nextFSImage_num].style.backgroundPosition = "0px 0px";
	$(fsBlurbs_arr[currentFSImage_num]).animate({ opacity: '0', left: '-360px' }, transitionDuration_num*0.5);
	$(fsBlurbs_arr[nextFSImage_num]).animate({ opacity: '1', left: '20px' }, transitionDuration_num*1.5);
	$(fsImages_arr[currentFSImage_num]).animate({ opacity: '0' }, transitionDuration_num);
	$(fsImages_arr[nextFSImage_num]).animate({ opacity: '1' }, transitionDuration_num, function() {
		calculateNextImage();
	});
}
function stopTransitions(imgNumber) {
	$('#fs_time_tracker_slider').stop(true, false);
	$('#fs_time_tracker_slider').animate({ width: '0%' }, 20);
	$(fsBlurbs_arr[currentFSImage_num]).stop(true, false);
	$(fsBlurbs_arr[nextFSImage_num]).stop(true, false);
	$(fsImages_arr[currentFSImage_num]).stop(true, false);
	$(fsImages_arr[nextFSImage_num]).stop(true, false);
	$(fsBlurbs_arr[currentFSImage_num]).animate({ opacity: '0', left: '-360px' }, 20);
	$(fsBlurbs_arr[nextFSImage_num]).animate({ opacity: '0', left: '-360px' }, 20);
	$(fsImages_arr[currentFSImage_num]).animate({ opacity: '0' }, 20);
	$(fsImages_arr[nextFSImage_num]).animate({ opacity: '0' }, 20, function() {
		calculateNextImage(imgNumber);
	});
}
function gotoImage(imgNumber) {
	stopTransitions(imgNumber);
}

//--------------------------------------
//  Image Calculation
//--------------------------------------
function calculateNextImage(forcedNextImage) {
	if (forcedNextImage != null) {
		if (forcedNextImage < fsImages_arr.length) {
			if (forcedNextImage > 0) {
				nextFSImage_num = forcedNextImage-1;
			} else {
				nextFSImage_num = fsImages_arr.length-1;
			}
		} else {
			nextFSImage_num = 0;
		}
	}
	fsImages_arr[currentFSImage_num].style.left = '-9999em';
	currentFSImage_num = nextFSImage_num;
	if (nextFSImage_num < fsImages_arr.length-1) {
		nextFSImage_num++;
	} else {
		nextFSImage_num = 0;
	}
	if (forcedNextImage != null) {
		transitionToNextImage();
	} else {
		startTimer();
		updateTimeTracker();
	}
}

//--------------------------------------
//  DIV Retrieval
//--------------------------------------
function getDiv(divID) {
	var r = document.getElementById(divID);
	if (!r)
		r = window.getElementById(divID);
	return r;
}

