var slideNum = 1;

var slideshow_callback_count = 0 ;
var slideshow_ids_as_string = ':' ;
var slideshow = new Array() ;

function slideshow_init(ids,s,root) {
	for ( var i=0; i<ids.length; i++ ) {
		var id = ids[i] ;
		var src = root + getUrlStubFromId(id,'','jpg') ;
		// need to add timestamp to URL to make this work with the back button
		var timestamp = (new Date()).getTime() ;
		src += '?'+timestamp ;
		addImageToSlideshow(ids,s,src,id) ;
	}
}
function addImageToSlideshow(ids,s,src,id) {
	var img = new Image();
	img.src = src ;
	img.onload = function(){
		slideshow_ids_as_string += id+':' ;
		s[s.length] = 1 ;
		slideshow_callback_count++ ;
		if (slideshow_callback_count == ids.length) {
			slideshowCallback(s);
		}
	} ;
	img.onerror = function(){
		slideshow_callback_count++ ;
		if (slideshow_callback_count == ids.length) {
			slideshowCallback(s);
		}
	}
} ;
function slideshowCallback(s) {
	if ( document.getElementById("slideWrapper") ) {
		var success = 0 ;
		var failure = 0 ;
		var dls = document.getElementById("slideWrapper").getElementsByTagName("div")[1].getElementsByTagName("dl") ;
		for (var i=0; i<dls.length; i++) {
			var dl = dls[i] ;
			var id = dl.getElementsByTagName("span")[0].id ;
			if ( slideshow_ids_as_string.match(':'+id+':') ) {
				success++ ;
				if ( success == 1 ) {
					dl.className = "slideOn" ;
				}
				dl.id = "layer"+success ;
			} else {
				failure++ ;
				dl.id = "slideshow_failure"+failure ;
			}
		}

		// final actions
		if ( success ) {
			if ( success == 1 ) {
				document.getElementById('btn_prev').innerHTML = "&nbsp;&nbsp;Previous&nbsp;&nbsp;";
				document.getElementById('btn_prev').style.color = "#333";
				document.getElementById('btn_next').innerHTML = "&nbsp;&nbsp;Next&nbsp;&nbsp;";
				document.getElementById('btn_next').style.color = "#333";
			} else {
				document.getElementById('btn_prev').innerHTML = "&nbsp;&nbsp;Previous&nbsp;&nbsp;";
				document.getElementById('btn_prev').style.color = "#333";
			}
			document.getElementById("slideWrapper").style.display = 'block' ;
		}
	}
}
function getSlideNums(){
	return slideshow.length;
}
function navButton(){
	if(slideNum > 1 && slideNum < getSlideNums()){
		document.getElementById('btn_prev').innerHTML = '&nbsp;&nbsp;<a href="javascript:void(goPrev())" id="prev_nav" class="prev_nav_grey" style="text-decoration:none;">Previous</a>&nbsp;&nbsp;';
		document.getElementById('btn_next').innerHTML = '&nbsp;&nbsp;&nbsp;&nbsp;<a href="javascript:void(goNext())" id="next_nav" style="text-decoration:none;">Next</a>&nbsp;&nbsp;&nbsp;&nbsp;';
		document.getElementById('prev_nav').className = "prev_nav_on";
		document.getElementById('next_nav').className = "prev_nav_on";
	} else if(slideNum == 1){
		document.getElementById('btn_prev').innerHTML = "&nbsp;&nbsp;Previous&nbsp;&nbsp;";
		document.getElementById('btn_next').innerHTML = '&nbsp;&nbsp;&nbsp;&nbsp;<a href="javascript:void(goNext())" id="next_nav" style="text-decoration:none;">Next</a>&nbsp;&nbsp;&nbsp;&nbsp;';
		document.getElementById('next_nav').className = "prev_nav_on";
	} else if(slideNum == getSlideNums()) {
		document.getElementById('btn_prev').innerHTML = '&nbsp;&nbsp;<a href="javascript:void(goPrev())" id="prev_nav" class="prev_nav_grey" style="text-decoration:none;">Previous</a>&nbsp;&nbsp;';
		document.getElementById('btn_next').innerHTML = '&nbsp;<a href="javascript:void(goFirst())" id="next_nav" style="text-decoration:none;">Start Over</a>&nbsp;';
		document.getElementById('next_nav').className = "prev_nav_on";
		document.getElementById('prev_nav').className = "prev_nav_on";
	}
}
function goThere(on,off){
	var img ;
	if ( typeof hasOpacityMethodsLoaded != 'undefined' && hasOpacityMethodsLoaded ) {
		img  = ((document.getElementById('layer'+on)).getElementsByTagName('div')[0]).getElementsByTagName('img')[0] ;
		setOpacity(img,oTRANSPARENT);
	}

	document.getElementById('layer'+on ).className = "slideOn";
	document.getElementById('layer'+off).className = "slideOff";

	if ( on == 1 ) slideNum = 1 ;
	else if ( on > off ) slideNum++ ;
	else if ( on < off ) slideNum-- ;

	navButton();

	if ( typeof hasOpacityMethodsLoaded != 'undefined' && hasOpacityMethodsLoaded )
		ripenOpacity(img,oSLIDESHOW);
}
function goNext(){
	goThere(slideNum+1,slideNum);
}
function goPrev(){
	goThere(slideNum-1,slideNum);
}
function goFirst(){
	goThere(1,slideNum);
}