
Pseudio = {};

Pseudio.SlideShow = function(id)
{
	this.id = id;
	this.slideImages = new Array();
	this.curIndex = 0;
	this.timer = null;
	this.element = document.getElementById("slidecontent");
	this.speed = 20;
	this.maxOpacity = 10; //maximum settings. 
	this.minimumOpacity = 0; //minimum setting.
	this.currentOpacity = 10; //fully visible- defaults to max.
	this.interval = .50; //the percentage by which to chanage the opacity.
	this.duration = 3000;
	this.passcomplete = false;
	this.faded = false;

	this.initImages();
	this.start();   
}

Pseudio.SlideShow.prototype = {
	"initImages" : function()
	{
		var images = document.getElementById("preload").getElementsByTagName("img");
		
		for(var i = 0; i < images.length; i++)
		{
			this.slideImages.push(images[i].src);
		}
	}, 
	"start" : function()
	{
		this.element.innerHTML = '';
		this.nextImage();
		if(this.slideImages.length > 1)
			window.setTimeout(this.id + ".doTransition()", this.duration);
	}, 
	
   "nextImage" : function()
   {
		this.element.style.backgroundImage = "url(" + this.slideImages[this.curIndex] + ")";
		this.curIndex++;
		if(this.curIndex == this.slideImages.length)
		{
			this.curIndex = 0;
		}
   }, 
   
   "doTransition" : function()
   {
		this.passcomplete = false;
		this.faded = false;
		this.timer = window.setInterval(this.id + ".trans();", this.speed);
   }, 
   
   "trans" : function()
   {
		if(!this.passcomplete)
		{
			if(this.currentOpacity > this.minimumOpacity && !this.faded)
			{
				this.element.style.opacity = (this.currentOpacity - this.interval) / 10;
				this.element.style.filter = "alpha(opacity= "+ (this.currentOpacity - this.interval) * 10  +");"
				this.currentOpacity = this.currentOpacity - this.interval;
				
				if(this.currentOpacity == this.minimumOpacity)
				{
					this.faded = true;
					this.nextImage();
				}
				return false;
			}
			else if(this.currentOpacity < this.maxOpacity)
			{
				this.element.style.opacity = (this.currentOpacity + this.interval) / 10;
				this.element.style.filter = "alpha(opacity= "+ (this.currentOpacity - this.interval) * 10  +");"
				this.currentOpacity = this.currentOpacity + this.interval;
				
				if(this.currentOpacity == this.maxOpacity)
				{
					this.passcomplete = true;
				}
				return false;
			}
		}
		else
		{
			clearInterval(this.timer);
			window.setTimeout(this.id + ".doTransition()", this.duration);
			return true;
		}
   }	
}
