fuzzSlideshow = new Object();
fuzzSlideshow.TYPE_IMAGE = 0;

fuzzSlideshow.currentSlides = new Object();

///CONTAINERS
function fuzzSlideshow_static_init(name){
	fuzzSlideshow.initSlideshow(name);
}

// static load time is called to make sure that the slideshow DOM is ready
function fuzzSlideshow_static_runSlideShow(name, loadTime) {
	fuzzSlideshow.runSlideShow(name);
}

fuzzSlideshow.initSlideshow = function initSlideshow(name) {
	
	
	// first check if this is already running
	if(fuzzSlideshow.currentSlides[name] && fuzzSlideshow.currentSlides[name].isRunning){
		// stop it and let it re-initialize
		fuzzSlideshow.currentSlides[name].isRunning = false;
		fuzzSlideshow.currentSlides[name].doReload = true;
		fuzzAsync.util.displayProgressDiv("fuzzSlideshow_"+name+"_view","Re-Initializing...");
		return;
	}
	
	jsonDiv = document.getElementById("fuzzSlideshow_"+name+"_json_div_id");
	fuzzAsync.util.displayProgressDiv("fuzzSlideshow_"+name+"_view","Loading...");
	
	// get the json data
	slideshowData = JSON.parse(jsonDiv.innerHTML);
	
	fuzzSlideshow.currentSlides[name] = slideshowData;
	fuzzSlideshow.currentSlides[name].currentSlide = 0;
	fuzzSlideshow.currentSlides[name].viewDiv = document.getElementById("fuzzSlideshow_"+name+"_view_div_id");
	fuzzSlideshow.currentSlides[name].viewImage = document.getElementById("fuzzSlideshow_"+name+"_view_img_id");
	fuzzSlideshow.currentSlides[name].isRunning = true
	fuzzSlideshow.currentSlides[name].hasWaitDiv = true
	fuzzSlideshow.currentSlides[name].doReload = false;
	
	// timeout to let load for a few seconds	
	YAHOO.util.Event.onContentReady("fuzzSlideshow_"+name+"_slides_div_id", fuzzSlideshow_static_runSlideShow, name);
}



fuzzSlideshow.runSlideShow = function runSlideShow(name) {
	// make sure the slideshow is still running
	
	if(! document.getElementById("fuzzSlideshow_"+name+"_view_div_id")){
		fuzzSlideshow.currentSlides[name].isRunning = false;
		return;
	}
	
	// see if we are supposed to stop
	if(! fuzzSlideshow.currentSlides[name].isRunning){
		// see if we need to reload
		if(fuzzSlideshow.currentSlides[name].doReload){
			fuzzSlideshow.initSlideshow(name);
		}
		return;
	}
	
	slideshowData = fuzzSlideshow.currentSlides[name];
	currentSlide = fuzzSlideshow.currentSlides[name].currentSlide;
	
	if(slideshowData.slides.length <= currentSlide){
		if(currentSlide == 0){
			alert("Unable to find slides.");
			return;
		}
		else{
			//restart
			fuzzSlideshow.currentSlides[name].currentSlide = 0;
			fuzzSlideshow.runSlideShow(name);
			return;
		}
		return;
	}
	else{

		slide = slideshowData.slides[currentSlide];
		if(slide.type = "image"){
			// get the img
			sImage = document.getElementById("fuzzSlideshow_"+name+"_image_"+currentSlide+"_id");
			
			fuzzSlideshow.currentSlides[name].viewImage.src = sImage.src;
			fuzzSlideshow.currentSlides[name].viewImage.style.visibility = 'hidden';
			//showElement(fuzzSlideshow.currentSlides[name].viewImage);
			fuzzSlideshow.currentSlides[name].viewImage.style.display = "inline";
			// hide the wait div
			if(fuzzSlideshow.currentSlides[name].hasWaitDiv){
				fuzzSlideshow.currentSlides[name].hasWaitDiv = false;
				fuzzAsync.util.hideProgressDiv("fuzzSlideshow_"+name+"_view");
			}
			
			fuzzSlideshow.drawImage(name);
		}
		
	}
	
}

fuzzSlideshow.drawImage = function drawImage(name) {
	fuzzSlideshow.setOpacity(fuzzSlideshow.currentSlides[name].viewImage, 0);
	fuzzSlideshow.currentSlides[name].viewImage.style.visibility = 'visible';
	fuzzSlideshow.fadeIn(name,0);
}
//fuzzSlideshow_homeSlideshow_wait_div_id

fuzzSlideshow.setOpacity = 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;
}

fuzzSlideshow.fadeIn = function fadeIn(name,opacity) {
	obj = fuzzSlideshow.currentSlides[name].viewImage;
	if (opacity <= 100) {
		//alert(fuzzSlideshow.currentSlides[name].fadeIntervalTime);
		//alert(fuzzSlideshow.currentSlides[name].opacityInterval);
		fuzzSlideshow.setOpacity(obj, opacity);
		opacity += fuzzSlideshow.currentSlides[name].opacityInterval;
		window.setTimeout("fuzzSlideshow.fadeIn('"+name+"',"+opacity+")",  fuzzSlideshow.currentSlides[name].fadeIntervalTime);
	}
	else{
		fuzzSlideshow.currentSlides[name].currentSlide++;
		// set as the background image of the main div

		fuzzSlideshow.currentSlides[name].viewDiv.style.backgroundImage = "url("+obj.src+")";
		// set to hidden
		obj.style.visibility = 'hidden';
		
		window.setTimeout("fuzzSlideshow.runSlideShow('"+name+"')", fuzzSlideshow.currentSlides[name].viewTime);
	}
}