
      	
		$(function() {
			$("table[data-serverside]").each(function() {
				var _tb = $(this);
				var pgsize = parseInt(_tb.data("serversidepagesize"));
				var totalsize = parseInt(_tb.data("serversidetotal"));
				var pages = Math.ceil(totalsize/pgsize);
				
				var bottomDiv = $('<div class="tbserver-bottom">');
				var infoDiv = $('<div class="tbserver-info">');
				$(infoDiv).text("Total " + totalsize + " | Página " + "1" + " de " + pages);
				
				var paginationHolder = $("<div class='tbserver-paginationholder'>");
				
				var selectedPage=false;
				if(GIWLib.getUrlParam("pageNumber")) selectedPage = parseInt(GIWLib.getUrlParam("pageNumber"));
				
				if(selectedPage && selectedPage != 1) {
					$("<a class='tbserver-paginationbtn tbserver-firstpage'>« Primeira</a>").click(function() {controlpagebtn($(this),_tb)}).appendTo(paginationHolder);
					$("<a class='tbserver-paginationbtn tbserver-previouspage'>139;</a>").click(function() {controlpagebtn($(this),_tb)}).appendTo(paginationHolder);
				} else {
					$("<a class='tbserver-paginationbtn tbserver-firstpage tbserver-disabledbtn'>« Primeira</a>").click(function() {controlpagebtn($(this),_tb)}).appendTo(paginationHolder);
					$("<a class='tbserver-paginationbtn tbserver-previouspage tbserver-disabledbtn'>&lt;</a>").click(function() {controlpagebtn($(this),_tb)}).appendTo(paginationHolder);
				}
				var pagesholder = $("<span class='tbserver-pagesholder'>");
				
				if(selectedPage && selectedPage != 1) {
					$("<a class='tbserver-paginationbtn tbserver-pagebtn tbserver-firstpagebtn'>1</a>").click(function() {controlpagebtn($(this),_tb)}).appendTo(pagesholder);
				} else {
					$("<a class='tbserver-paginationbtn tbserver-pagebtn tbserver-firstpagebtn tbserver-currentpage'>1</a>").click(function() {controlpagebtn($(this),_tb)}).appendTo(pagesholder);
				}
				
				$("<span class='tbserver-hadmore'>...</span>").hide().appendTo(pagesholder);
						
				for(var p =1; p < (pages-1); p++) {
					var pgbtn;
					if(selectedPage && selectedPage == (p+1)) {
						pgbtn = $("<a class='tbserver-paginationbtn tbserver-pagebtn tbserver-middlepagebtn tbserver-currentpage'>"+(p+1)+"</a>");
					} else {
						pgbtn = $("<a class='tbserver-paginationbtn tbserver-pagebtn tbserver-middlepagebtn'>"+(p+1)+"</a>");
					}
					
					pgbtn.click(function() {controlpagebtn($(this),_tb)});
					if(p>4) pgbtn.hide();
					$(pgbtn).appendTo(pagesholder);
				}
				
				if(pages > 6) {
					$("<span class='tbserver-hasmore'>...</span>").appendTo(pagesholder);
				}
				
				if(pages > 1) {
					if(selectedPage && selectedPage == pages) {
						$("<a class='tbserver-paginationbtn tbserver-pagebtn tbserver-lastpagebtn tbserver-currentpage'>"+pages+"</a>").click(function() {controlpagebtn($(this),_tb)}).appendTo(pagesholder);	
					} else {
						$("<a class='tbserver-paginationbtn tbserver-pagebtn tbserver-lastpagebtn '>"+pages+"</a>").click(function() {controlpagebtn($(this),_tb)}).appendTo(pagesholder);	
					}
				}
				$(pagesholder).appendTo(paginationHolder);
				
				if(pages > 1) {
					if(selectedPage && selectedPage == pages) {
						$("<a class='tbserver-paginationbtn tbserver-nextpage tbserver-disabledbtn'>&gt;</a>").click(function() {controlpagebtn($(this),_tb)}).appendTo(paginationHolder);
						$("<a class='tbserver-paginationbtn tbserver-lastpage tbserver-disabledbtn'>Última »</a>").click(function() {controlpagebtn($(this),_tb)}).appendTo(paginationHolder);
					} else {
						$("<a class='tbserver-paginationbtn tbserver-nextpage'>&gt;</a>").click(function() {controlpagebtn($(this),_tb)}).appendTo(paginationHolder);
						$("<a class='tbserver-paginationbtn tbserver-lastpage'>Última »</a>").click(function() {controlpagebtn($(this),_tb)}).appendTo(paginationHolder);
					}
				} else {
					$("<a class='tbserver-paginationbtn tbserver-nextpage tbserver-disabledbtn'>&gt;</a>").click(function() {controlpagebtn($(this),_tb)}).appendTo(paginationHolder);
					$("<a class='tbserver-paginationbtn tbserver-lastpage tbserver-disabledbtn'>Última »</a>").click(function() {controlpagebtn($(this),_tb)}).appendTo(paginationHolder);
				}
				
				$(infoDiv).appendTo(bottomDiv);
				$(paginationHolder).appendTo(bottomDiv);
				$(bottomDiv).insertAfter(_tb);
			});
			
			function controlpagebtn(el,_tb) {
				var _tbHolder = _tb.parent();
				if(!el.is(".tbserver-disabledbtn") && $(".tbserver-pagebtn", _tbHolder).length > 1) {
					var oldPage = parseInt($(".tbserver-currentpage",_tbHolder).text());
					if(el.is(".tbserver-pagebtn")) {		
						var newPage = $(el).text();
						$(".tbserver-currentpage",_tbHolder).removeClass("tbserver-currentpage");
						$(el).addClass("tbserver-currentpage");
					} else if(el.is(".tbserver-nextpage")) {
						var curr = $(".tbserver-currentpage",_tbHolder);
						if(curr.next().is(".tbserver-hadmore")) {
							curr.next().next().addClass("tbserver-currentpage");
						} else if(curr.next().is(".tbserver-hasmore")) {
							curr.next().next().addClass("tbserver-currentpage");
						} else {
							curr.next().addClass("tbserver-currentpage");
						}
						curr.removeClass("tbserver-currentpage");
					} else if(el.is(".tbserver-previouspage")) {
						var curr = $(".tbserver-currentpage",_tbHolder);
						if(curr.prev().is(".tbserver-hadmore")) {
							curr.prev().prev().addClass("tbserver-currentpage");
						} else if(curr.prev().is(".tbserver-hasmore")) {
							curr.prev().prev().addClass("tbserver-currentpage");
						} else {
							curr.prev().addClass("tbserver-currentpage");
						}
						curr.removeClass("tbserver-currentpage");
					} else if(el.is(".tbserver-firstpage")) {
						$(".tbserver-currentpage",_tbHolder).removeClass("tbserver-currentpage");
						$(".tbserver-firstpagebtn",_tbHolder).addClass("tbserver-currentpage");
					} else if(el.is(".tbserver-lastpage")) {
						$(".tbserver-currentpage",_tbHolder).removeClass("tbserver-currentpage");
						$(".tbserver-lastpagebtn",_tbHolder).addClass("tbserver-currentpage");
					}
					
					//Controla Exibição números
					if(!$(".tbserver-currentpage",_tbHolder).next().is(":visible")) {
						$(".tbserver-currentpage",_tbHolder).next().show();
						$(".tbserver-currentpage",_tbHolder).prev().prev().hide();
						if(!$(".tbserver-hadmore",_tbHolder).is(":visible")) $(".tbserver-hadmore",_tbHolder).next().hide();
					}
					
					if(!$(".tbserver-currentpage",_tbHolder).prev().is(":visible")) {
						$(".tbserver-currentpage",_tbHolder).prev().show();
						$(".tbserver-currentpage",_tbHolder).next().next().hide();
						if(!$(".tbserver-hasmore",_tbHolder).is(":visible")) $(".tbserver-hasmore",_tbHolder).prev().hide();
					}
					
					if(parseInt($(".tbserver-currentpage",_tbHolder).text()) < 5) {
						$(".tbserver-middlepagebtn",_tbHolder).hide();
						$(".tbserver-firstpagebtn",_tbHolder).next().next().show() //2
						$(".tbserver-firstpagebtn",_tbHolder).next().next().next().show() //3
						$(".tbserver-firstpagebtn",_tbHolder).next().next().next().next().show() //4
						$(".tbserver-firstpagebtn",_tbHolder).next().next().next().next().next().show() //4
					}
					
					if((parseInt($(".tbserver-lastpagebtn",_tbHolder).text()) - parseInt($(".tbserver-currentpage",_tbHolder).text())) < 4) {
						$(".tbserver-middlepagebtn",_tbHolder).hide();
						$(".tbserver-lastpagebtn",_tbHolder).prev().prev().show()
						$(".tbserver-lastpagebtn",_tbHolder).prev().prev().prev().show()
						$(".tbserver-lastpagebtn",_tbHolder).prev().prev().prev().prev().show()
						$(".tbserver-lastpagebtn",_tbHolder).prev().prev().prev().prev().prev().show()
					}
					
					if($(".tbserver-firstpagebtn",_tbHolder).is(".tbserver-currentpage")) {
						$(".tbserver-middlepagebtn",_tbHolder).hide();
						$(".tbserver-hadmore",_tbHolder).next().show();
						$(".tbserver-hadmore",_tbHolder).next().next().show();
						$(".tbserver-hadmore",_tbHolder).next().next().next().show();
						$(".tbserver-hadmore",_tbHolder).next().next().next().next().show();
					}	
					
					if($(".tbserver-lastpagebtn,_tbHolder").is(".tbserver-currentpage")) {
						$(".tbserver-middlepagebtn",_tbHolder).hide();
						$(".tbserver-hasmore",_tbHolder).prev().show();
						$(".tbserver-hasmore",_tbHolder).prev().prev().show();
						$(".tbserver-hasmore",_tbHolder).prev().prev().prev().show();
						$(".tbserver-hasmore",_tbHolder).prev().prev().prev().prev().show();
					}
					
					if($(".tbserver-pagebtn", _tbHolder).length <= 5) {
						$(".tbserver-hadmore",_tbHolder).hide();
						$(".tbserver-middlepagebtn",_tbHolder).show();
					}
					//Controla exibição ...
					if((parseInt($(".tbserver-lastpagebtn",_tbHolder).text()) - parseInt($(".tbserver-currentpage",_tbHolder).text())) > 3) {
						$(".tbserver-hasmore",_tbHolder).show();
					} else {
						$(".tbserver-hasmore",_tbHolder).hide();
					}
					
					if(parseInt($(".tbserver-currentpage",_tbHolder).text()) > 4) {
						$(".tbserver-hadmore",_tbHolder).show();
					} else {
						$(".tbserver-hadmore",_tbHolder).hide();
					}
					
					
					//Controla exibição de Primeiro e Anterior
					if(!$(".tbserver-firstpagebtn",_tbHolder).is(".tbserver-currentpage")) {
						$(".tbserver-firstpage",_tbHolder).removeClass("tbserver-disabledbtn");
						$(".tbserver-previouspage",_tbHolder).removeClass("tbserver-disabledbtn");
					} else {
						$(".tbserver-firstpage",_tbHolder).addClass("tbserver-disabledbtn");
						$(".tbserver-previouspage",_tbHolder).addClass("tbserver-disabledbtn");
					}
					
					//Controla exibição de Último e Próximo
					if(!$(".tbserver-lastpagebtn",_tbHolder).is(".tbserver-currentpage")) {
						$(".tbserver-nextpage",_tbHolder).removeClass("tbserver-disabledbtn");
						$(".tbserver-lastpage",_tbHolder).removeClass("tbserver-disabledbtn");
					} else {
						$(".tbserver-nextpage",_tbHolder).addClass("tbserver-disabledbtn");
						$(".tbserver-lastpage",_tbHolder).addClass("tbserver-disabledbtn");
					}
					
					if($(".tbserver-pagebtn", _tbHolder).length <= 5) {
						$(".tbserver-hadmore",_tbHolder).hide();
					}

					if(oldPage != parseInt($(".tbserver-currentpage",_tbHolder).text())) {
						//Chama Ajax;
						callServerSidePagination(parseInt($(".tbserver-currentpage",_tbHolder).text()),_tbHolder);
					}
				}
			}
			
			function callServerSidePagination(page,_tbHolder) {
				var loadingBack = $("<div class='tbserver-loadingholder'>");
				var loading = $('<span class=" tbserver-loading ps-ico-loading ps-ico-lg"></span>');
				
				//VElho Guide
				var loading = $("<div class='tbserver-loading'><img height='144px' width='144px' style='margin:0 auto;display:block' src='giw2/images/ico/map/loading2.gif' /></div>");
				
				$(_tbHolder).css("position","relative");
				
				$(loadingBack).appendTo(_tbHolder);
				$(loading).appendTo(_tbHolder);
				
				var url = GIWLib.removeParam("pageNumber",window.location.href);
				url = url.split("#")[0];
				if(url.indexOf("?") != -1) {
					url += "&pageNumber=" + page;
				} else {
					url += "?pageNumber=" + page;
				}
				
				//url += '&' + $('form').serialize();
				
				var tableId = _tbHolder.find("table").attr("id");
				$.ajax({
					url: url,
					data: "",
					dataType: "html",
					timeout: 20000,
					success: function(data){
						var tableResults = $(data).find("table[id='"+tableId+"']").find("tbody").html();
						$("#" + tableId).find("tbody").html(tableResults);
						psLib.Init(tableId);
                  GIWLib.Init("#" + tableId);
						$(loadingBack).remove();
						$(loading).remove();
					}, error: function(data) {
						$(loadingBack).remove();
						$(loading).remove();
						console.log(data);
					}
				});
            var totalsize = parseInt($(".ps-table ").attr("data-serversidetotal"));
            var pageSize = parseInt($(".ps-table ").attr("data-serversidepagesize"));
            var pageNumber = parseInt(totalsize/pageSize);
            $(".tbserver-info").text("Total " + totalsize + " | Página " + page + " de " + pageNumber);
            $(_tbHolder).css("position","static");
				
			}
		});
		
		
   