$(function(){
	function page(o) {
		var oSpan = o.target;
		var div = o.target ? $(oSpan).parents(".module-listOfObjects")[0] : o;
		var page = div.page;
		if (oSpan && oSpan.className && oSpan.className == "next") {
			page++;
		}
		if (oSpan && oSpan.className && oSpan.className == "prev") {
			page--;
		}
		
		var li = $("li", div);
		li.hide();
		
		var maxPage = Math.ceil(li.length / div.visible); 
		page = Math.max(1, Math.min(page, maxPage));
		div.page = page;
		
		var offset = (page - 1) * div.visible;
		for (var i = 1; i <= div.visible; i++) {
			$("li:nth-child(" + (offset + i) + ")", div).show();
		}
		$(".prev,.next").removeClass("disabled");
		if (page == 1) {
			$(".prev",div).addClass("disabled");
		}
		if (page == maxPage) {
			$(".next",div).addClass("disabled");
		}
		$("span.currentPage", div).html(page + " / " + maxPage);
	}
	$(".module-listOfObjects.paginate").each(function(){
		var data = this.moduleProperties;
		this.page = 1;
		this.visible = data.objects;
		$("span.prev,span.next", this).click(page);
		page(this);
	});
});
