var aSlides = new Array;
var show_links = false;
var show_captions = false;
var show_more = false;
var delay = 8000;
var holder_class;
//var spinner = new Image();
//spinner.src = "images/common/spinner.gif";

function initSlideshow(source_xml, slideshow_wrapper, arg_delay, arg_show_captions, arg_show_links, arg_show_more) {
	
	if ( typeof(slideshow_wrapper) == "undefined" ) {
		holder_class = "photo_wide";
	} else {
		holder_class = slideshow_wrapper;
	}
	
	if ( typeof ( arg_show_captions ) == "undefined" ) {
		show_captions = false;
	}
	else if (arg_show_captions == true) {
		show_captions = true;
	}
	
	if ( typeof ( arg_show_links ) == "undefined" ) {
		show_links = false;
	}
	else if (arg_show_links == true) {
		show_links = true;
	}
	
	if ( typeof ( arg_show_more ) == "undefined" ) {
		show_more = false;
	}
	else if (arg_show_more == true) {
		show_more = true;
	}
	
	if ( typeof ( arg_delay ) == "undefined" ) {
		delay = 8000;
	}
	else {
		delay = arg_delay * 1000;
	}
	
// 	var image_target = document.getElementById('slideshow_image');
// 	image_target.src = spinner.src;
		Element.addClassName(holder_class, 'loading');

	var url = source_xml;
	var myAjax = new Ajax.Request(url, { method: 'get', onComplete: preloadSlideshow }); 
}

function preloadSlideshow(originalRequest) {
	var slideshow = originalRequest.responseXML;
	var slides = slideshow.getElementsByTagName('slide');
	for (i=0; i<slides.length; i++) {
		aSlides[i] = new Object;
		aSlides[i].imgfile = slides[i].getElementsByTagName('image').item(0).firstChild.nodeValue;
		if (show_captions) aSlides[i].caption = slides[i].getElementsByTagName('caption').item(0).firstChild.nodeValue;
		if (show_links) aSlides[i].link = slides[i].getElementsByTagName('link').item(0).firstChild.nodeValue;
		if (show_more) aSlides[i].more = slides[i].getElementsByTagName('more').item(0).firstChild.nodeValue;
		aSlides[i].preloaded = false;
	}
	oPL = new ImagePreloader(aSlides[0].imgfile, 0, onPreload);
}

function onPreload(index, oImage, preloaded) {
	aSlides[index].src = oImage;
	aSlides[index].preloaded = preloaded;
	
	if (index == 0) {
		doSlideshow(0);
		oPL = new ImagePreloader(aSlides[index + 1].imgfile, index + 1, onPreload);
	} else if (index < (aSlides.length - 1)) {
		oPL = new ImagePreloader(aSlides[index + 1].imgfile, index + 1, onPreload);
	}
		
}

function doSlideshow(i) {
	Element.removeClassName(holder_class, 'loading');
	if (i < aSlides.length) {
		if (aSlides[i].preloaded) {
			Element.hide('js_slideshow');
			setTimeout('showSlide(' + i + ')', 10);
			
			if (i == aSlides.length - 1) {i = 0} else {i++;}
			setTimeout('doSlideshow(' + i + ')', delay);
		} else {
			setTimeout('doSlideshow(' + i + ')', 1000);
		}
	}
	
}

function showSlide(i) {	
	var image_target = document.getElementById('slideshow_image');
	imageSrc = aSlides[i].src;  	
	image_target.src = imageSrc.src;
	
	if (show_links) {
		var link_target = document.getElementById('slideshow_link');
		link_target.href = aSlides[i].link;
		if (show_captions) link_target.title = 'Photo: ' + aSlides[i].caption;
	}

	if (show_captions) {
		var caption_target = document.getElementById('slideshow_caption');
		Element.update(caption_target, aSlides[i].caption);
		Element.show(caption_target);
	}
	
	if (show_more) {
		var more_target = document.getElementById('slideshow_more');
		Element.update(more_target, aSlides[i].more);
		Element.show(more_target);
	}
	
	Effect.Appear('js_slideshow', { duration: 2.0 });

}