/*
 * 	author: 	http://jnesis.com
 *      version: 	1.0
 *      requires:	- prototype javascript library (prototype-1.6.0.3.js during dev)
 *			- scriptaculous javascript library
 *			
 *      changelog:
 *      		1.0 - jnesis.slideshow, tested on IE7, FF3
 *
 * 	example:
 *			var imgSrcTab = new Array(
 *				'01.png',
 *				'02.png',
 *				'03.png',
 *				'04.png',		
 *			);
 *			new JnesisSlideshow('my-element-id',imgSrcTab,6); 
 */


function JnesisSlideshow(elementId, imgSrcTab, speed)
{
	//tab containing img src for slideshow
	var _imgSrcTab = imgSrcTab;

	//seconds between each slide
	var _speed = speed;

	//current image index
	var _currentImgIndex = 0;

	//id of the element on which changing background image
	var _elementBack = $('a#'+elementId)
	var _elementFront = $('a#'+elementId+' div');
	var _nextIsBack = true;

	_elementBack.css({'zIndex' : '1'});
	_elementFront.css('zIndex' , '2');
	
	//load the next image (should be the hidden one, based on double buffering principle)
	var loadNextImage = function() {

		if(_currentImgIndex >= _imgSrcTab.length)
		{
			_currentImgIndex = 0;
		}		
		if(_nextIsBack)
		{
			_elementFront.css({
				background: 'url('+_imgSrcTab[_currentImgIndex]+')'
			});	
		}
		else
		{
                        _elementBack.css({
				background: 'url('+_imgSrcTab[_currentImgIndex]+')'
			});
		}
			
		_currentImgIndex ++;	
		_nextIsBack = !_nextIsBack;	
	}

	//show next slide using transition
	function nextSlide() {
		if(_nextIsBack)
		{
			_elementFront.fadeOut('slow', function(){
                               loadNextImage();
                           });
		}
		else
		{
			_elementFront.fadeIn('slow', function(){
                               loadNextImage();
                        });
                }
	}

	//load the background and foreground images
	loadNextImage();
	loadNextImage();

        setInterval(function(){
            nextSlide();
        },
        _speed*1000);
}
	


