// requer pagination.js para as funcoes de slide
$.fn.slideShow = function(options) {
	var options = typeof options != 'undefined' ? options : {};
	
	var playing = true;
	var slideshowContainer = $(this);
	var progressElement = $(this).find('.slideshow-progress > div');
	var duration = options.duration || 9000;
	var numPages = slideshowContainer.find('.pagination-control[rel|=page]').length;
	
	var irProximaPagina = function(){
		var page = parseInt((slideshowContainer.find('.page-selected').attr('rel')).replace('page-', ''));
		page %= numPages;
		setTimeout(function() { slideshowContainer.find('.pagination-control:eq('+page+')').click(); }, 1);
	};
	
	slideshowContainer.find('[rel=play-pause]').click(function(e){
		if(playing) {
			progressElement.stop();
			playing = false;
			$(this).addClass('paused');
		} else {
			var percentage = 1 - ((progressElement.width()) / progressElement.parent().width());
			progressElement.animate({width: '100%'}, percentage * duration, 'linear', irProximaPagina);
			playing = true;
			$(this).removeClass('paused');
		}
	});
	
	var resetAnimation = function() {
		progressElement.stop().width(0).animate({width: '100%'}, duration, 'linear', irProximaPagina);
		playing = true;
		slideshowContainer.find('[rel=play-pause]').removeClass('paused');
	};
	
	slideshowContainer.find('.pagination-control').bind('click', function(e){ 
		resetAnimation();
	});
	
	resetAnimation();
	
	return this;
};
