var bg = {
	DISPLAY_IMG_LENGTH : 5000,
	TRANSITION_TIME : 500,
	
	homepageImgArray : [],
	fall2001ImgArray : [],
	
	imgArray : [],
	currentArrayIndex : 0,
	currentImgIndex : 1,
	currImg : {},
	newImg : {},
	timer : {},
	isTransitioning : false,
	currentImgPath : "",
	
	
	init : function(imgArray) {
		
		//init the homepage image array
		bg.homepageImgArray[0] = "img/homepage/HOMEPAGE_A_FINAL.jpg";
		bg.homepageImgArray[1] = "img/homepage/HOMEPAGE_B_FINAL.jpg";
		bg.homepageImgArray[2] = "img/homepage/HOMEPAGE_C_FINAL.jpg";
		
		//init the share bg image array
		bg.fall2001ImgArray[0] = "img/background/FW11_BACKGROUND_A_FINAL.jpg";
		bg.fall2001ImgArray[1] = "img/background/FW11_BACKGROUND_B_FINAL.jpg";
		bg.fall2001ImgArray[2] = "img/background/FW11_BACKGROUND_C_FINAL.jpg";
		
		//set the image array that will be used in the slideshow
		bg.imgArray = imgArray;
		
		//$("img#bg1").hide();
		//$("img#bg2").hide();
		
		bg.populateBg();
		
		
		bg.startSlideshow();
	},
	
	populateBg : function() {
		var $bg = $("#bg");
		
		//empty any nodes currently in there
		$bg.empty();
		
		//populate bg
		for(var i=0; i < bg.imgArray.length; i++) {
			$bg.append(
				$("<img id='bg"+ i +"' src='"+ bg.imgArray[i] +"' />")
			);
		}
		
		//go thru and hide all the bg's
		$bg.find("img").each(function(index) {
			$(this).hide();
		});
	},
	
	updateImgArray : function(newImgArray) {
		imgArray = newImgArray;
	},
	
	startSlideshow : function() {
		 // Start the slideshow one second after the page is ready 
		 /*
		$("img#bg1").hide();
		bg.loadImage(1,0);
		$("img#bg2").fadeOut(0);
		bg.loadImage(2,1);
	    //setTimeout(LoadImages,2000);
		$("img#bg1").fadeIn(1000);
		bg.timer = setTimeout(bg.displayNextPicture, bg.DISPLAY_IMG_LENGTH);
		*/
		
		//NOTE: doing this will start on index 1 of the array instead of index 0
		//$("img#bg1").hide();
		//$("img#bg2").hide();
		bg.timer = setTimeout(bg.onSlideshowTimer, 100);
	},
	
	resumeSlideshow : function() {
		bg.onSlideshowTimer();
	},
	
	stopSlideshow : function () {
		clearTimeout(bg.timer);
	},
	
	hideSlideshow : function() {
		//var $bg = $("img#bg1");
		var $bg = $("#bg");
		$bg.hide();
	},
	
	showSlideshow : function() {
		var $bg = $("#bg");
		$bg.show();
	},
	
	onSlideshowTimer : function () {
		//determine next image array index
		if(bg.currentArrayIndex >= bg.imgArray.length-1) {
			bg.currentArrayIndex = 0;
		}
		else {
			bg.currentArrayIndex++;
		}
		
		//transition to the new image
		//bg.crossfadeToNewImage(bg.imgArray[bg.currentArrayIndex]);
		//alert(bg.imgArray[bg.currentArrayIndex]);
		bg.fadeInToNextImage(bg.imgArray[bg.currentArrayIndex]);
		
		//start timer
		bg.timer = setTimeout(bg.onSlideshowTimer, bg.DISPLAY_IMG_LENGTH);
	},
	
	crossfadeToNewImage : function(imagePath) {
		if(bg.isTransitioning == false) {
			bg.isTransitioning = true;
			
			var oldImgIndex = bg.currentImgIndex;
		
			//determine next image index
			if(bg.currentImgIndex == 1) {
				bg.currentImgIndex = 2;
			}
			else {
				bg.currentImgIndex = 1;
			}
			
			bg.currImg = $("img#bg"+oldImgIndex);
			bg.newImg = $("img#bg"+bg.currentImgIndex);
			
			//set to new image
			if(bg.currentImgIndex == 1) {
				bg.newImg.hide();
				bg.newImg.attr("src", imagePath);
				bg.newImg.show();
				bg.currImg.fadeOut(bg.TRANSITION_TIME, bg.onImgFadeOut);
			}
			else {
				bg.newImg.hide();
				bg.newImg.attr("src", imagePath);
				bg.newImg.fadeTo(bg.TRANSITION_TIME,1,bg.onImgFadeIn);
			}
		}
		
	},
	
	getPreviousCurrentImgIndex : function() {
		var currImgIndex = bg.currentArrayIndex;
		var prevImgIndex = currImgIndex - 1;
		if(prevImgIndex < 0) {
			prevImgIndex = bg.imgArray.length-1;	
		}
		
		return prevImgIndex;
	},
	
	fadeInToNextImage : function(imagePath) {
		var $bg = $("#bg #bg" + bg.getPreviousCurrentImgIndex());
		$bg.fadeOut(bg.TRANSITION_TIME, bg.onImgFadeOut);
		
		/*
		var $bg = $("img#bg1");
		bg.currentImgPath = imagePath;
		$bg.fadeOut(bg.TRANSITION_TIME, bg.onImgFadeOut);
		*/
		
		/*
		$bg.fadeOut(bg.TRANSITION_TIME, function() {
				$bg.attr("src", imagePath);
		});
		*/
	},
	
	onImgFadeOut : function() {
		//uncomment below for crossfade transition
		/*
		bg.currImg.attr("src", "");
		bg.isTransitioning = false;
		*/
		
		/*
		var $bg = $("img#bg1");
		$bg.attr("src", bg.currentImgPath);
		$bg.fadeIn(bg.TRANSITION_TIME);
		*/
		
		//fade in new image
		var $bg = $("#bg #bg" + bg.currentArrayIndex);
		$bg.fadeIn(bg.TRANSITION_TIME);
	},
	
	onImgFadeIn : function() {
		bg.currImg.attr("src", "");
		bg.isTransitioning = false;
	},
	
	
	loadImage : function(imgIndex, arrayIndex) {
		// Assign the new image to the background 
		$("img#bg" + imgIndex).attr("src", bg.imgArray[arrayIndex]);
	},
	
	updateToImg : function(imgIndex) {
		bg.currentArrayIndex = imgIndex;
		bg.fadeInToNextImage(bg.imgArray[bg.currentArrayIndex]);
	},
	
	updateToStaticImage : function (imagePath) {
		bg.stopSlideshow();
		//bg.crossfadeToNewImage(imagePath);
		//bg.fadeInToNextImage(imagePath);
		
		var bgIndex = 0;
		var $bg = $("#bg");
		$bg.find("img").each(function(index) {
			if($(this).attr("src") == imagePath) {
				bgIndex = index;	
			}
		});
		
		bg.updateToImg(bgIndex);
		
	}
};


