var num_slides;
var num_photos;
var current_slide = 0;
var max_color = 239;
var color = max_color;
var direction = 1;

function nextSlide()
{
	current_slide++;
	var holder = document.getElementById("slide_holder");
	var photo_holder = document.getElementById("photo_holder");
	var slide = document.getElementById("slide" + (current_slide % num_slides));
	var photo_slide = document.getElementById("slide_photo" + (current_slide % num_photos));
	if(holder && slide) holder.innerHTML = slide.innerHTML;
	if(photo_holder && photo_slide) photo_holder.src = photo_slide.src;
}

function setPColor(id, color)
{
	var obj = document.getElementById(id);
	if(obj)
	{
		var tags = obj.getElementsByTagName("*"); 
		for(var i=0; i<tags.length; i++)
		{
			if(tags[i].style) tags[i].style.color = "rgb("+color+","+color+","+color+")";
			else tags[i].color = "rgb("+color+","+color+","+color+")";
		}
	} 
}

function setAlpha(id, alpha)
{
	var obj = document.getElementById(id);
	if(obj)
	{
		if(obj.style)
		{
			obj.style.filter = "alpha(opacity="+(100*alpha)+")";
			obj.style.MozOpacity = alpha*0.99;
		} else {
			obj.filter = "alpha(opacity="+(100*alpha)+")";
			obj.MozOpacity = alpha*0.99;
		}
	} 
}

function fadeNextSlide()
{
	if(direction == 0 && color > 0)
	{
		// fade in
		color -= 1; if(color < 0) color = 0;
		setPColor('slide_holder', color);
		setAlpha('photo_holder', 1.0 - color/max_color);
	    fadeNextSlide();
	} else if(direction == 0) {
		// wait
		direction = 1;
	    setTimeout("fadeNextSlide()", 8000);
	} else if(direction == 1 && color < max_color) {
		// fade out
		color += 1; if(color > max_color) color = max_color;
		setPColor('slide_holder', color);
		setAlpha('photo_holder', 1.0 - color/max_color);
	    fadeNextSlide();
	} else {
		// flip slide
		nextSlide();
		direction = 0;
	    fadeNextSlide();
	}
}
