String.format = function(){ if( arguments.length == 0 )
return null; var str = arguments[0]; for(var i=1;i<arguments.length;i++){ var re = new RegExp('\\{' + (i-1) + '\\}','gm'); str = str.replace(re, arguments[i]);}
return str;}
PagingStyle = new Object(); PagingStyle.GrayBox = 0; PagingStyle.None = 1; var PagingContext = { startRow: 0, totalRows:0, currentPage:0, pageSize: 10, pagingStyle: PagingStyle.None, onClickFunction: "testPaging"
}
var PagingText = { Next: "next &raquo;", Previous: "&laquo; previous", Listing: "Listing", Of: "of", Title: { First: "go to first page", Last: "go to last page", Next: "forward 1 page", Previous: "back 1 page", BackLots: "go back {0} pages", ForwardLots: "go forward {0} pages"
}
}
function testPaging(p){ alert("go to page "+p); return false;}
function makePaging(){ var rowsPerPage = PagingContext.pageSize ; var numberOfPageLinksToShow = 5; var totalPages = Math.ceil(PagingContext.totalRows / rowsPerPage); var endRow = PagingContext.startRow + rowsPerPage - 1; var startPage = Math.max(0, PagingContext.currentPage - (PagingContext.currentPage % numberOfPageLinksToShow)); var endPage = Math.min(startPage + numberOfPageLinksToShow - 1, totalPages - 1); if (totalPages < 1)
{ return "";}
var pageLinks = new String(); if (startPage > 0)
{ PagingText.Title.BackLots = String.format( PagingText.Title.BackLots, numberOfPageLinksToShow ); pageLinks += String.format("<a href=\"#\" onclick=\"return {0}(0)\" title=\"{3}\">1</a><a href=\"#\" onclick=\"return {0}({1})\" title=\"{2}\">&lt;&lt;</a>", PagingContext.onClickFunction, startPage - 1, PagingText.Title.BackLots, PagingText.Title.First );}
var i = startPage; var stop = Math.min(totalPages, endPage); var linkClass = new String(); for (; i <= stop; i++)
{ if (i == PagingContext.currentPage)
linkClass = " class=\"current\""; else
linkClass = ""; pageLinks += String.format("<a href=\"#\" onclick=\"return {0}({1})\"{2}>{3}</a>", PagingContext.onClickFunction, i, linkClass, (i + 1));}
var totalPagesOfPages = Math.ceil(totalPages / numberOfPageLinksToShow); var myPageOfPages = Math.ceil((PagingContext.currentPage + 1) / numberOfPageLinksToShow); if (myPageOfPages < totalPagesOfPages)
{ 
Type.registerNamespace("MySpace");
PagingText.Title.ForwardLots = String.format( PagingText.Title.ForwardLots, numberOfPageLinksToShow ); pageLinks += String.format("<a href=\"#\" onclick=\"return {0}({1})\" title=\"{2}\">&gt;&gt;</a>", PagingContext.onClickFunction, endPage + 1, PagingText.Title.ForwardLots );}
pageLinks +=Resources.pager_of; if (PagingContext.currentPage != (totalPages - 1))
pageLinks += String.format("<a href=\"#\" onclick=\"return {0}({1})\" title=\"{3}\">{2}</a>", PagingContext.onClickFunction, (totalPages - 1), totalPages, PagingText.Title.Last ); else
pageLinks += totalPages; var previousNextLinks = ""; if (PagingContext.currentPage != 0)
previousNextLinks = String.format("<a href=\"#\" onclick=\"return {0}({1})\" title=\"{3}\">{2}</a> | ", PagingContext.onClickFunction, PagingContext.currentPage - 1, PagingText.Previous, PagingText.Title.Previous ); else
previousNextLinks = "<span class=\"disabled\">"+PagingText.Previous+"</span> | "; if (PagingContext.currentPage != (totalPages - 1))
previousNextLinks += String.format("<a href=\"#\" onclick=\"return {0}({1})\" title=\"{3}\">{2}</a>", PagingContext.onClickFunction, PagingContext.currentPage + 1, PagingText.Next, PagingText.Title.Next ); else
previousNextLinks += "<span class=\"disabled\">"+PagingText.Next+"</span>"; var preWrap = ""; var postWrap = ""; if (PagingContext.pagingStyle == PagingStyle.GrayBox){ preWrap = "<div class=\"grayBox\"><div><div><div>"; postWrap = "</div></div></div></div><p class=\"ieboxfix1\">.</p>";}
return String.format( "{0}<div class=\"paging\"><div class=\"listing\">{7} {1}-{2} {8} {3}</div><div class=\"pagelinks\">{4}</div><div class=\"previous_next\">{5}</div><div class=\"bottom\"><!-- lb --></div>&nbsp;</div>{6}", preWrap, PagingContext.startRow, Math.min(endRow, PagingContext.totalRows), PagingContext.totalRows, pageLinks, previousNextLinks, postWrap, PagingText.Listing, PagingText.Of );}

