/* 	filename: slideshow.js 
	author: Brian Teryek
*/

function initSlideShow()
{
	
	Slideshow.items = Slideshow.totalImages();
	Slideshow.images = Slideshow.getImagesArray();
	Slideshow.addAttributes();
	Slideshow.startSlideshow();
}

var Slideshow =
{
	//properties
	id: null, //setInterval id
	speed: 4000, //in milliseconds
	animationSpeed: 1500,
	list: 'slideshow', //id where images are located
	items:  0, //default
	count: 0,
	images:  null, //default
	
	//methods
	addAttributes: function()
	{
		document.getElementById(this.list).setAttribute('style', 'position:relative;');
		
		for(i = 0; i < this.images.length; i++)
		{
			this.images.item(i).setAttribute('id', ''+this.list+'-image-'+i+'');
			this.images.item(i).setAttribute('style', 'position:absolute; top:0px');
			$('#'+this.list+'-image-'+i).css({ opacity: 0 });
		}
		
		$('#'+this.list+'-image-0').css({ opacity: 1 });
	},
	
	getImagesArray: function()
	{
		return document.getElementById(this.list).getElementsByTagName('img');
	},
	
	totalImages: function()
	{
		return document.getElementById(this.list).getElementsByTagName('img').length;
	},
	
	animate: function(image, count)
	{
		$('#'+this.list+'-image-'+count).css({ opacity: 0, display:'block'});
		$('#'+this.list+'-image-'+(count - 1)).css({ opacity: 1 });
		
		$('#'+this.list+'-image-'+count).animate({ opacity: 1 }, this.animationSpeed, function() { });
		$('#'+this.list+'-image-'+(count - 1)).animate({ opacity: 0 }, this.animationSpeed, function() { });
	
	},
	
	swapImage: function()
	{
		//alert('asfd');
		var i;
		var image = document.getElementById(this.list).getElementsByTagName('img');
		
		this.count+= 1;
		
		if(this.count == this.items)
		{
			//image.item(0).style.display = 'block';
			this.animate(image, this.count);
			this.count = 0;
		}
		
		this.animate(image, this.count);
		//console.log(this.count);
	},
	
	startSlideshow: function()
	{
		this.id = setInterval('Slideshow.swapImage()', Slideshow.speed);	
	},
	
	stopSlideshow: function()
	{
		clearInterval(this.id);	
		//alert('cleared ' + this.id);
	}
	
} //end Slideshow object
