(function($){
	$.fn.rolar = function(options) {
		var opts 	= $.extend({},$.fn.rolar.defaults, options);
		var parent	= this;
		
		$(parent).each(function(){
			var self	= this;
			var ul 		= $('> div > ul',this);
			var lis		= $('> div > ul > li',this);
			var width 	= 0;
			var atual	= 0;
			var total 	= lis.length;
			var p		= new Array;
			var paginas = {
				init :function(self){
					var pags 	= $(document.createElement('ul'));
					var count	= 1;
					pags.addClass('rolar-paginas');
					$('> div > ul > li',self).each(function(){
						var li 	= $(document.createElement('li'));
						var a 	= $(document.createElement('a'));
						if(count++ == 1) li.addClass('rolar-pag-ativo');
						a.text('');
						a.attr('href','#');
						li.append(a);
						pags.append(li);
					});	
					$('> div > ul > li:first',self).addClass('rolar-ativo');
					$(self).append(pags);
				},
				pag : function(p){
					var li = $('ul.rolar-paginas > li',self);
					li.removeClass('rolar-pag-ativo');
					li.eq(p).addClass('rolar-pag-ativo');
				},
				
			};
			
			lis.each(function(){ width += $(this).outerWidth(); }).width((width / lis.length - ($('.rolar-prev').outerWidth() + $('.rolar-next').outerWidth())));
			ul.width(width);
			
			if(opts.isPag)	paginas.init(this);
			
			/*Acoes*/
			$('.rolar-prev',this).click(function(){
				var w = lis.eq(atual).prev().width();
				if(atual > 0){
					$('.rolar-next',self).removeClass('rolar-next-block');
					$('> div > ul:not(:animated)',self).animate({left: '+='+w},500,function(){
						if((atual) > 0) paginas.pag( --atual );	
						if((atual-1) < 0)  $('.rolar-prev',self).addClass('rolar-prev-block');
					});
				}else $(this).addClass('rolar-prev-block');
				paginas.pag( atual );	
				return false;
			});
			$('.rolar-next',this).click(function(){
				var w = lis.eq(atual).next().width();
				if (w != null && atual < total){
					$('.rolar-prev',self).removeClass('rolar-prev-block');
					$('> div > ul:not(:animated)',self).animate({left: '-='+w},500,function(){
						if((atual+1) < total) paginas.pag( ++atual );
						if((atual+2) > total) $('.rolar-next',self).addClass('rolar-next-block');
					});
				}else $(this).addClass('rolar-next-block');
				
				return false;	
			});
			
		}).addClass('rolar-texto');
	};
	$.fn.rolar.defaults = {
		isPag: true
	};
})(jQuery);
