$.fn.paginateRender = function() {
	this.each(function() {
		var p_container = this;

		
		start = p_container.options.size*p_container.options.page_current;
		stop = start + p_container.options.size;
 
 
		$(p_container.options.children, p_container).hide(); 
		$(p_container.options.children, p_container).slice(start, stop).show(); 
		if(p_container.options.page_counter-1==p_container.options.page_current) 
		{
			$('.page_next', p_container).addClass('disabled'); 
			if(p_container.options.hide==true)
			$('.page_next', p_container).hide(); 
		}
		else 
		{
			$('.page_next', p_container).removeClass('disabled'); 
			
			if(p_container.options.hide==true)
			$('.page_next', p_container).show();
		}


		if(p_container.options.page_current==0) 
		{
			$('.page_back', p_container).addClass('disabled'); 
			if(p_container.options.hide==true)
			$('.page_back', p_container).hide(); 
		}
		else 
		{
			$('.page_back', p_container).removeClass('disabled'); 
			if(p_container.options.hide==true)
			$('.page_back', p_container).show();
		}
 


		pagination = '';
		for(xx=1; xx<=p_container.options.page_counter; xx++)
		{
			if(xx==p_container.options.page_current+1)
			pagination += ' <a href="#" class="active">'+xx+'</a> ';
			else
			pagination += ' <a href="#">'+xx+'</a> ';
		}
 
		
		
		$('.pagination .pages', p_container).html(pagination);
		pagination_width = $('.pages', p_container).width();

		$('.pagination .pages', p_container).css('marginLeft', Math.round($('.pagination', p_container).width()/2-(pagination_width/2)));

		$('.pagination .pages a', p_container).click(function() {
			p_container.options.page_current= $(this).text()-1;
			$(p_container).paginateRender();
			return false;
		});		
	});
}
 
$.fn.paginate = function(options) {
	this.each(function() {
		var p_container = this;
		
		p_container.options = new Array;

		p_container.options.size = options.size ? options.size : 5;
		p_container.options.children = options.children ? options.children : '.object';
		p_container.options.counter = $(p_container.options.children, p_container).length;
		p_container.options.page_counter = Math.ceil(p_container.options.counter/p_container.options.size);
		p_container.options.page_current = 0;
		p_container.options.text_back = options.text_back ?  options.text_back : '';
		p_container.options.text_next = options.text_next ?  options.text_next : '';

		
		if(p_container.options.counter==0) return false;
		
		p_container.options.hide = typeof options.hide!=='undefined' ? options.hide : true;

		
		$(p_container.options.children, p_container).hide().slice(0, p_container.options.size).show();
		
		if(p_container.options.page_counter>1)
		{
			$(p_container).append('<div class="pagination"><a href="#" class="btn page_back">'+p_container.options.text_back+'</a><a href="#" class="btn page_next">'+p_container.options.text_next+'</a><div class="pages"></div></div>');
			$('.page_back', p_container).click(function() {
				if($(this).hasClass('disabled')) return false;
				
				p_container.options.page_current--; 
				$(p_container).paginateRender();
				return false;
			});
			$('.page_next', p_container).click(function() {
				if($(this).hasClass('disabled')) return false;
				
				p_container.options.page_current++; 
				$(p_container).paginateRender();
				return false;
			});
		}
		$(p_container).paginateRender();
	});
};
 
