/**
*
*	Table Pager module by Marius ILIE
*
**/
(function($){ $.fn.addTablePager = function(options){
	return this.each(function() {
		var defaults = {
			results : 10,
			position : "bottom",
			prevBut : "Prev",
			nextBut : "Next",
			infos : "Page #1 of #2"
		};
		var opts = $.extend(defaults, options);
		var table = this;
		$(table).wrap("<div></div>");
		if(opts.position == "top")
			$(table).before("<div class='tablepager-links'></div>");
		else 
			$(table).after("<div class='tablepager-links'></div>");
		var container = $(table).parent();
		table.page = 0;
		var maxRows = $("tbody > tr", table).length;
		var totalPages = Math.ceil(maxRows / opts.results);
		pagerInfos = opts.infos.split("#1").join(table.page + 1).split("#2").join(totalPages);
		$("div.tablepager-links", container).html("<a href='#' class='tablepager-prev-but'>"+opts.prevBut+"</a> <a href='#' class='tablepager-next-but'>"+opts.nextBut+"</a> | <span class='tablepager-infos'></span>");
		$("div.tablepager-links > span.tablepager-infos", container).html(pagerInfos);
		$("tbody > tr", table).hide();
		for(var i = table.page * opts.results + 1; i <= table.page * opts.results + opts.results; i++) {
			$("tr:nth-child("+i+")", table).show();
		}
		$("a.tablepager-next-but", container).click(function(){
			if(table.page < totalPages - 1) {
				table.page++;
				pagerInfos = opts.infos.split("#1").join(table.page + 1).split("#2").join(totalPages);
				$("div.tablepager-links > span.tablepager-infos", container).html(pagerInfos);
				$("tbody > tr", table).hide();
				for(var i = table.page * opts.results + 1; i <= table.page * opts.results + opts.results; i++) {
					$("tbody > tr:nth-child("+i+")", table).fadeIn("slow");
				}
			}
			return false;
		})
		$("a.tablepager-prev-but", container).click(function(){
			if(table.page > 0) {
				table.page--;
				pagerInfos = opts.infos.split("#1").join(table.page + 1).split("#2").join(totalPages);
				$("div.tablepager-links > span.tablepager-infos", container).html(pagerInfos);
				$("tbody > tr", table).hide();
				for(var i = table.page * opts.results + 1; i <= table.page * opts.results + opts.results; i++) {
					$("tbody > tr:nth-child("+i+")", table).fadeIn("slow");
				}
			}
			return false;
		})
	});
}})(jQuery);