/*!
	Slimbox v2.02 - The ultimate lightweight Lightbox clone for jQuery
	(c) 2007-2009 Christophe Beyls <http://www.digitalia.be>
	MIT-style license.
*/

(function($) {

	// Variables globales de la classe
	var
		_sizes = new Array(),
		_styles = new Array(),
		_diapos = new Array(),
		
		i = 0,
		current = 0,
		periodical_exec = "null",
		period = 5000;	
	
	/*
		Initialization
	*/

	$(function() {
	});


	/*
		API
	*/

	// Open Slimbox with the specified parameters
	$.visionneuse = function() {
		
	};
	
	$.fn.visionneuse = function() {
	
		_sizes[ 'stage_width' ] = $( '.diaporama ul' ).width();
		_sizes[ 'stage_height' ] = $( '.diaporama ul' ).height();
		
		_styles[ 'show' ] = 'fade_in';
		_styles[ 'hide' ] = 'fade_out';
		_styles[ 'transition' ] = 'slow';
		
		$( '.diaporama li' ).each( function( intIndex ){
	    	_diapos[ i ] = $( this );
	    	_diapos[ i ].hide();
	    	align_diapo( i );
	    	i++;
	    });
	    
	    visibility( _styles[ 'show' ], 0 );
	    start_visioneuse();
	};


	/*
		Internal functions
	*/

	function align_diapo( element ){
		var width = _diapos[ element ].width();
		var height = _diapos[ element ].height();
		var left = ( _sizes[ 'stage_width' ]-width )/2;
		var top = ( _sizes[ 'stage_height' ]-height )/2;
		
		_diapos[ element ].css( "top", top );
		_diapos[ element ].css( "left", left );
	}//	align_diapo()
	
	function start_visioneuse(){
		periodical_exec = setInterval( next_diapo, period );
	};//	start_visioneuse()
	
	function next_diapo(){
		var next;
	    if( current == _diapos.length-1 ){
	    	next = 0;
	    }else
	    	next = current+1;	
	    visibility( _styles[ 'hide' ], current );
	    visibility( _styles[ 'show' ], next );
	    current = next;    
	};//	next_diapo()
	
	function visibility( op, element ){
		switch ( op ){
		
			case 'fade_in':
				$( _diapos[ element ] ).fadeIn( _styles[ 'transition' ] );
				break;
				
			case 'fade_out':
				$( _diapos[ element ] ).fadeOut( _styles[ 'transition' ] );
				break;
				
			case 'slide_down':
				$( _diapos[ element ] ).slideDown( _styles[ 'transition' ] );
				break;
				
			case 'slide_up':
				$( _diapos[ element ] ).slideToggle( _styles[ 'transition' ] );
				break;
				
			case 'slide_toggle':
				$( _diapos[ element ] ).slideUp( _styles[ 'transition' ] );
				break;
				
			default:
				alert( 'La transition '+op+' n\'est pas gérée par la visionneuse ! ' );
				break;
		}
		
	}//	visibility();

})(jQuery);
