//****************************************************************** // Page Functions - used with Filemaker Pro to display page links // for database searches. // // Written by: James Reynolds (jameser@crosswinds.net) // The following functions might as well be released to the public // domain (since there isn't much I can do to stop it). //****************************************************************** // Variables for page links var FoundCount = [FMP-CurrentFoundCount]; var Skip = [FMP-CurrentRecordNumber]; var Max = [FMP-CurrentMax]; var PageLink = "[FMP-Link: k]"; function WritePageTags(CurrentPage, FirstPage, LastPage) { var j; for (var i = FirstPage; i <= LastPage; i++) { pageNumber = i + ""; if (CurrentPage == i) { if(i != FirstPage) { document.write(" - "); FirstTime = false; } document.write(pageNumber); } else { if(i != FirstPage) { document.write(" - "); } document.write(pageNumber.link(PageLink + "&-skip=" + ((i-1) * Max))); } } } function PrintPageTags() { // Change these variables to change the pages shown before and after a current page. var MaxNumberOfPagesBeforeCurrentPage = 4; var MaxNumberOfPagesAfterCurrentPage = 4; // Always displays the first and last page. Always displays MaxNumberOfPagesAfterCurrentPage + MaxNumberOfPagesBeforeCurrentPage + 2 pages. // Do not change these. var Pages = Math.floor((FoundCount/Max) + 1); var CurrentPage = Math.floor((Skip/Max) + 1); var pageNumber; // alert(CurrentPage); // alert(Pages); document.write ("
Pages: "); if (Pages <= MaxNumberOfPagesBeforeCurrentPage + MaxNumberOfPagesAfterCurrentPage + 2) { // pages == 1,2,3,4,5,6,7,8,9,10 WritePageTags(CurrentPage, 1, Pages); // "1 to (Pages)" } else { if (CurrentPage <= MaxNumberOfPagesBeforeCurrentPage + 1) { // current page == 1,2,3,4,5,6,7 and pages == 13,14,15,etc. // "1 2 3 4 5 6 7 8 9 10 11...(Pages)" WritePageTags(CurrentPage, 1, MaxNumberOfPagesBeforeCurrentPage + MaxNumberOfPagesAfterCurrentPage + 2); document.write ("---"); pageNumber = (Pages + ""); document.write(pageNumber.link(PageLink + "&-skip=" + ((Pages - 1) * Max))); } else { // current page == 8,9,10,etc. and pages == 13,14,15,etc. if ((Pages - CurrentPage) < MaxNumberOfPagesAfterCurrentPage + 1) { // if pages == 13 then current page == 8,9,10,11,12,13 pageNumber = "1"; document.write(pageNumber.link(PageLink + "&-skip=0")); // "1...(Pages-11) to (Pages)" document.write ("---"); WritePageTags(CurrentPage, Pages - MaxNumberOfPagesBeforeCurrentPage - MaxNumberOfPagesAfterCurrentPage - 1, Pages); } else { // if pages == 20 then current page == 8,9,10,11,12,13,14 pageNumber = "1"; // "1...(CurrentPage-5) (CurrentPage) (CurrentPage+5)...(Pages)" document.write(pageNumber.link(PageLink + "&-skip=0")); document.write ("---"); WritePageTags(CurrentPage, CurrentPage - MaxNumberOfPagesBeforeCurrentPage, CurrentPage + MaxNumberOfPagesAfterCurrentPage); document.write ("---"); pageNumber = (Pages + ""); document.write(pageNumber.link(PageLink + "&-skip=" + ((Pages - 1) * Max))); } } } }