/**
 * Class for showing fading images.
 * 
 */
Header = {

	_interval: 10000,

	_images: new Array(),
			
	_activeImage: 0,
	
	_duration: 3,
	
	/**
	 * Init
	 */
	init: function()
	{
		/* check if the header-image div exists */
		if($('header-image'))
		{
			var links = $('header-image').getElementsByTagName('a');
		
			for(x = 0; x < links.length; x++)
			{
				Header._images.push(links[x]);
			}
			
			/* stop if no images exist in the header-image div */
			if(Header._images.length == 0)
			{
				return;	
			}
			
			setInterval('Header._showNextImage()', Header._interval);
		}
	},
	
	/**
	 * Shows the next image and hides the previous image
	 */
	_showNextImage: function ()
	{
		/* create the fading effect of the current image */
		var fading = new MochiKit.Visual.fade(Header._getCurrentImage(), {sync: true});
		
		//var h1 = Header._getCurrentImage().getElementsByTagName('h1');
		//new fade(h1[0], {delay: 0.1, duration: 0.2});
				
		/* set next image as current image */
		Header._setNextImage();

		/* create the appearing effect of the new image */
		var appearing = new MochiKit.Visual.appear(Header._getCurrentImage(), {sync: true});
		
		//var h2 = Header._getCurrentImage().getElementsByTagName('h1');
		//new appear(h2[0], {delay: 3.5, duration: 0.2});
		
		/* make sure the effects run in parallel */
		Parallel([fading, appearing], {duration: Header._duration});
		
	},
	
	/**
	 * Sets the index of the image that will be shown next
	 */
	_setNextImage: function()
	{
		if(Header._activeImage + 1 == Header._images.length )
		{
			Header._activeImage = 0;
		}
		else
		{
			Header._activeImage += 1;
		}
	},
	
	/**
	 * Return the currently active image
	 */
	_getCurrentImage: function()
	{
		return Header._images[Header._activeImage];
	}
	
}; // class Header


addLoadEvent(Header.init);
