function Slideshow(slideshowID)
{
	this.playing = true;
  this.opacity = 50;
	this.slideshowSpeed = 6000;
	this.slidesList;
	this.slideshow;
	this.slides;
	this.timer;
	this.fadeTimer;
	this.fadeOpacity;
	this.Initialise = Initialise;
	this.Play = Play;
	this.PlayNext = PlayNext;
	this.changeOpacity = changeOpacity;
	this.CrossFade = CrossFade;
	
	
	function Initialise()
	{
		mySlideshowRef = this;
		this.slideshow  = document.getElementById(slideshowID);
		list = this.slideshow.getElementsByTagName("UL");
		this.slidesList = list[0];
		this.slides = this.slidesList.getElementsByTagName("LI");

		for(x=0; x < this.slides.length; x++)
		{
			slide = this.slides[x];
			slide.id = this.slidesList.id + x;
			//slide.onmouseover = function(){ clearTimeout(mySlideshowRef.fadeTimer);};
			
			if (x > 0)
			{
				this.slides[x].style.display = 'none';
				this.changeOpacity(this.opacity,this.slides[x]);
			}
			else this.slides[x].style.display = 'block';
		}
	}
	
    function Play()
	{
		this.playing = true;
        this.timer = setTimeout('mySlideshowRef.PlayNext()', this.slideshowSpeed);
	}

	function PlayNext()
	{
		for(x=0; x < this.slides.length; x++)
		{
				
				if (this.slides[x].style.display == 'block'){
					nextslide = ( x == this.slides.length - 1) ? 0 : x + 1;
					this.fadeOpacity = 0;
					this.CrossFade(x,nextslide);
					return;
				}
		}
	}
	
	function Stop()
	{
		clearTimeout(this.timer);
        this.playing = false;
	}
	
	function CrossFade(fromID, toID)
	{
        if (this.fadeOpacity == 0) this.slides[toID].style.display = "block";
		this.fadeOpacity += 10;
		this.changeOpacity(this.fadeOpacity, this.slides[toID])
		this.changeOpacity(100 - this.fadeOpacity, this.slides[fromID])
		if(this.fadeOpacity < 100)
		{
			this.fadeTimer = setTimeout('mySlideshowRef.CrossFade('+fromID+', '+toID+')', 100);
		}
		else
		{
			clearOpacity(this.slides[toID]);
			this.slides[fromID].style.display = "none";
			this.changeOpacity(100, this.slides[fromID]);
            if(this.playing) this.Play();
		}
	}
	
	
	/*function ThumbnailHover(sourceElement)
	{
        itemId = sourceElement.id.replace(this.thumbnailList.id,'');
		
		for(x=0; x < this.slides.length; x++)
		{
			clearOpacity(this.slides[x]);
			if (x == itemId)
			{
				this.slides[x].style.display = 'block'
				this.changeOpacity(100,this.thumbnails[x])
			}
			else
			{
				this.slides[x].style.display = 'none';
				this.changeOpacity(this.opacity,this.thumbnails[x]);
			}
		}

	}*/
	
	function changeOpacity(opacity, object) { 
    object.style.opacity = (opacity / 100); 
    object.style.MozOpacity = (opacity / 100); 
    object.style.KhtmlOpacity = (opacity / 100); 
    object.style.filter = "alpha(opacity=" + opacity + ")"; 
	}	
	
	function clearOpacity(object) { 
    object.style.opacity = 100; 
    object.style.MozOpacity = 100; 
    object.style.KhtmlOpacity = 100; 
    object.style.filter = ""; 
	}
}