var images = Array;
var currImg = 0;
var slideImages;
var fadeNext = true;
function initSlideshow(){
	images = document.getElementById("gallery").getElementsByTagName("div");
	if(images.length>1){
		for(var i=0; i<images.length; i++){
			setAlpha(images[i].id,100);
			images[i].style.zIndex = 1;
		}
		slideImages =  images.length;
		setFadeNext();
	}
	return;
}
//
function slideshow(){
	var prevImg = (currImg-1)%slideImages;
	if(prevImg == -1){prevImg = slideImages-1;}
	var img = document.getElementById("image"+prevImg);
	img.style.display = "none";
	img.style.zIndex = 1;
	document.getElementById("image"+currImg).style.zIndex=2;
	fadeTo("image"+currImg, 0, 4)
	currImg = (currImg+1)%slideImages;
	img = document.getElementById("image"+currImg);
	img.style.zIndex = 3;
	img.style.display = "block";
	setAlpha("image"+currImg, 0);
	fadeTo("image"+currImg, 100, 3,setFadeNext)
	return;
}
function setFadeNext(){
	setTimeout(slideshow,4000);
	return;
}
//
//fades at regular intervals
function fadeTo(name, endAlpha, speed, finish) {
	var currAlpha = getAlpha(name);
	var da=endAlpha-currAlpha;
	if(da<0) { var dir= 1;} else { var dir= -1;}
	if(Math.abs(da)<speed){
		setAlpha(name, endAlpha);
		if(finish) { finish();}
		clearTimeout(fading);
		return true;
	} else {
		currAlpha-=speed*dir;
		setAlpha(name, currAlpha);
	}
	var f = function(){fadeTo(name, endAlpha, speed, finish);}
	var fading = setTimeout(f,10);
	return false;
}
//sets something's opacity
function setAlpha(name, opacity){
	obj = document.getElementById(name);
	if (obj.style.MozOpacity!=null) {  
		// Mozilla's pre-CSS3 proprietary rule
		obj.style.MozOpacity = (opacity/100) - 0.001;
	} else if (obj.style.opacity!=null) {
		// CSS3 compatible
		obj.style.opacity = (opacity/100) - 0.001;
	} else if (obj.style.filter!=null) {
		// IE's proprietary filter
		obj.style.filter = "alpha(opacity="+opacity+")";
	}
	return;
}
//gets something's opacity
function getAlpha(name){
	obj = document.getElementById(name);
	if (obj.style.MozOpacity!=null) {  
		// Mozilla's pre-CSS3 proprietary rule 
		return (obj.style.MozOpacity*100);
	} else if (obj.style.opacity!=null) {
		// CSS3 compatible 
		return (obj.style.opacity*100);
	} else if (obj.style.filter!=null) {
		// IE's proprietary filter 
		var opac = obj.style.filter;
		var opac_array = opac.split("=");
		opac_array = opac_array[1].split(")");
		opac = parseInt(opac_array[0]);
		return (opac);
	}
}