var Slides = {
	// define interval between images, in milliseconds
	interval: 2000,		// milliseconds between fades
	fadeSpeed: 50, 	// milliseconds between fade frames
	intervalID: null,	// keep track of interval
	currentImage: new Array(),	// index of currently displayed image in images[]
	currentSlide: 0,
	images: new Array(), 
	
	start: function() {
		if (!document.getElementById || !document.createElement) { return; }
		
		css = document.createElement("link");
		css.setAttribute("href", "css/xfade.css");
		css.setAttribute("rel", "stylesheet");
		css.setAttribute("type", "text/css");
		document.getElementsByTagName("head")[0].appendChild(css);
		
		Slides.sets = document.getElementsByClassName("slides");
		if (Slides.sets && Slides.sets.length > 0) {
			for (i=0; i<Slides.sets.length; i++) { 
				Slides.sets[i].images = Slides.sets[i].getElementsByTagName("img"); 
				for (j=1; j<Slides.sets[i].images.length; j++) { 
					Slides.sets[i].images[j].xOpacity = 0; 
				}
				Slides.sets[i].images[0].style.display = "block";
				Slides.sets[i].images[0].xOpacity = .99;
				Slides.currentImage[i] = 0;
			}
			
			setTimeout(Slides.xfade, Slides.interval);
		}
	},
	
	xfade: function() {
		var i = Slides.currentSlide;
		
		var cOpacity = Slides.sets[i].images[Slides.currentImage[i]].xOpacity;
		var nIndex = Slides.sets[i].images[Slides.currentImage[i] + 1] ? Slides.currentImage[i] + 1 : 0;
		var nOpacity = Slides.sets[i].images[nIndex].xOpacity;
		
		cOpacity -= .05; nOpacity += .05;
		
		Slides.sets[i].images[nIndex].style.display = "block";
		Slides.sets[i].images[Slides.currentImage[i]].xOpacity = cOpacity;
		Slides.sets[i].images[nIndex].xOpacity = nOpacity;
		
		Slides.setOpacity(Slides.sets[i].images[Slides.currentImage[i]]); 
		Slides.setOpacity(Slides.sets[i].images[nIndex]);

		if (cOpacity <= 0) {
			Slides.sets[i].images[Slides.currentImage[i]].style.display = "none";
		}
		
		if (cOpacity <= 0) {
			Slides.currentSlide++;
			if (Slides.currentSlide == Slides.sets.length) {
				Slides.currentSlide = 0;
			}
			Slides.currentImage[i] = nIndex;
			setTimeout(Slides.xfade, Slides.interval);
			
		} else {
			setTimeout(Slides.xfade, Slides.fadeSpeed);
		}
	},
	
	setOpacity: function(obj) {
		if (obj.xOpacity > .99) {
			obj.xOpacity = .99;
			return;
		}
		obj.style.opacity = obj.xOpacity;
		obj.style.MozOpacity = obj.xOpacity;
		obj.style.filter = "alpha(opacity=" + (obj.xOpacity * 100) + ")";
	}
}
window.addEventListener ? 
	window.addEventListener("load", Slides.start, false) :
	window.attachEvent("onload", Slides.start);