(function($){ 
	var methods = {
		init : function(){
			return this.each(function(options){
				// console.log('init');
				
				// Options
				if(options) $.extend(settings, options);
				
				// Var
				diapos = $(this).find('img');
				diaposArray = diapos.toArray();
				nbDiapos = diaposArray.length;
				
				// Style
				var pos = $(this).css('position');
				if('absolute'!=pos) $(this).css('position', 'relative');
				$(this).css('overflow', 'hidden');
				diapos.css('position', 'absolute')
					.css('top', '0px')
					.css('left', '0px');
				
				// Initialisation de l'affichage des images
				var i=nbDiapos;
				diapos.each(function(){
					$(this).css('z-index', i);
					i--;
				});
					
				status = 1;
				$(this).diaporama('start');
			});
		},
		start : function(){
			return this.each(function(){
				// console.log('start');
				timeout = setTimeout(function(){ $(this).diaporama('next'); }, settings.duration);
			});
		},
		stop : function(){
			return this.each(function(){
				if(1==status){
					// console.log('stop');
					status = 0;
				}
			});
		},
		next : function(){
			return this.each(function(){
				if(1==status){
					// console.log('next '+current);
					if((current+1)==nbDiapos){
						current=0;
						$(diaposArray[current]).fadeIn(settings.speed, function(){
							diapos.show();
						});
					}else{
						$(diaposArray[current]).fadeOut(settings.speed, function(){ // apparition de la next
							current++;
						});
					}
				}else clearTimeout(timeout);
				timeout = setTimeout(function(){ $(this).diaporama('next'); }, settings.duration);
			});
		},
		prev : function(){ alert('prev'); }
	};
	
	var settings = {
		'speed'		: 2000, // Vitesse de l'animation
		'duration'	: 5000	// Durée d'apparition de l'image
    };

	var timeout;
	var current = 0;
	var diapos;
	var diaposArray;
	var nbDiapos;
	var status;
	
	$.fn.diaporama = function(action){
		if(methods[action]){
			return methods[action].apply(this, Array.prototype.slice.call(arguments, 1));
		}else if(typeof action === 'object' || !action) {
			return methods.init.apply(this, arguments);
		}else{
			$.error('Method ' +  action + ' does not exist on jQuery.diaporama');
		}
	};
})(jQuery);
