
/* Slide Show */

var ss_cur_slide = 0;
var ss_num_slides = 0;
var ss_t = "";
var ss_rt = "";
var ss_delay = 8000; // 1000 = 1 second
var ss_loop = true;
var ss_enlarge_url = "photos/";
var ss_enlarge_var = "image";
var ss_enlarge_opt = false;
var ss_controls_div = 'ss_controls_top';

function ss_init () {

	ss_stop();

	if ($('ss_main')) {
		ss_root = document.getElementById("ss_all_slides");
		for (i=0; i<ss_root.childNodes.length; i++) {
			node = ss_root.childNodes[i];
			if (node.nodeName=="LI") {
				ss_num_slides++;
			}
		}	
		
		var query = window.location.search.substring(1);
		query = query.toQueryParams();
		
		if (query[ss_enlarge_var]) {
			ss_get_image(query[ss_enlarge_var]);
		} else {
			ss_get_image(0);
			ss_play();
		}
	}

}

function ss_get_image (i) {

	ss_cur_slide = i;
	
	var ss_next = i + 1;
	var ss_prev = i - 1;
	
	if (ss_next >= ss_num_slides) {
		ss_next = 0;
	}
	
	if (ss_prev < 0) {
		ss_prev = ss_num_slides - 1;
	}
	
	$('ss_current').innerHTML = "";
	$('ss_current').innerHTML += "<img src=\"" + $('ss_slide_' + i).src + "\" />";	
	
	$(ss_controls_div).innerHTML = '<a href="#" onClick="ss_pick_image(' + ss_prev + '); return false;" title="Previous" class="ss_nav ss_prev">Previous</a>';
	$(ss_controls_div).innerHTML += '<a href="#" onClick="ss_stop(); return false;" title="Pause" class="ss_nav ss_pause">Pause</a>';	
	$(ss_controls_div).innerHTML += '<a href="#" onClick="ss_play(); return false;" title="Play" class="ss_nav ss_play">Play</a>';		
	$(ss_controls_div).innerHTML += '<a href="#" onClick="ss_pick_image(' + ss_next + '); return false;" title="Next" class="ss_nav ss_next">Next</a>';
	
	if (ss_enlarge_opt == true) {
		$(ss_controls_div).innerHTML += '<a href="#" onClick="ss_enlarge(this);" id="ss_enlarge" title="Enlarge Photo" class="ss_nav">Enlarge</a>';
	}

}

function ss_pick_image (i) {
	ss_stop();
	ss_get_image(i);
}

function ss_enlarge (o) {
	ss_stop();
	$('ss_enlarge').href = ss_enlarge_url + "?" + ss_enlarge_var + "=" + ss_cur_slide + "#slideshow";
	return true;
}

function ss_timer () {
	ss_cur_slide++;
	
	if (ss_loop == true && ss_cur_slide >= ss_num_slides) {
		ss_cur_slide = 0;
	}	

	if (!chk_image(ss_cur_slide)) {
		ss_stop();
		retry_image();
	} else {
		ss_get_image(ss_cur_slide);
		ss_play();
	}
}

function ss_play () {
	ss_t  = setTimeout("ss_timer()", ss_delay);
}

function ss_stop () {
	if(ss_t) {
   		clearTimeout(ss_t);
   		ss_t = "";
	}
}

function retry_image () {
	var chk = chk_image(ss_cur_slide);
	if (chk) {
   		clearTimeout(ss_rt);
   		ss_rt = "";	
		ss_get_image(ss_cur_slide);
		ss_play();		
	} else {
		ss_rt  = setTimeout("retry_image()", 500);
	}
}

function chk_image (i) {
	var img = $('ss_slide_' + i);
	if (!img.complete) {
		return false;
	}

	if (typeof img.naturalWidth != "undefined" && img.naturalWidth == 0) {
		return false;	
	}
	
	return true;
}

/* Nav-Related */

startList = function() {
	if (document.all&&document.getElementById) {
		navRoot = document.getElementById("nav");
		for (i=0; i<navRoot.childNodes.length; i++) {
			node = navRoot.childNodes[i];
			if (node.nodeName=="LI") {
				node.onmouseover=function() {
					this.className+=" over";
				}
				node.onmouseout=function() {
					this.className=this.className.replace(" over", "");
				}
			}
		}
	}
}

window.onload=startList;
