diff -bwircP openbiblio/locale/de/reports.php openbiblio_new/locale/de/reports.php
*** openbiblio/locale/de/reports.php	Fri Nov  2 20:32:57 2012
--- openbiblio_new/locale/de/reports.php	Fri Nov  2 20:38:53 2012
***************
*** 108,113 ****
--- 108,115 ----
  $trans["Result Pages: "]           = "\$text = 'Ergebnis-Seiten: ';";
  $trans["&laquo;Prev"]              = "\$text = '&laquo;Zurück';";
  $trans["Next&raquo;"]              = "\$text = 'Nächster&raquo;';";
+ $trans["&laquo;First"]             = "\$text = '&laquo;Anfang';";
+ $trans["Last&raquo;"]              = "\$text = 'Ende&raquo;';";
  $trans["No results found."]        = "\$text = 'Keine Ergebnisse gefunden.';";
  $trans["Report Results:"]          = "\$text = 'Berichtsergebnis:';";
  $trans["results found."]           = "\$text = 'Ergebnisse gefunden.';";
diff -bwircP openbiblio/locale/de/shared.php openbiblio_new/locale/de/shared.php
*** openbiblio/locale/de/shared.php	Fri Nov  2 20:32:57 2012
--- openbiblio_new/locale/de/shared.php	Fri Nov  2 20:38:53 2012
***************
*** 74,79 ****
--- 74,81 ----
  $trans["biblioSearchResultPages"]  = "\$text = 'Ergebnis-Seiten';";
  $trans["biblioSearchPrev"]         = "\$text = 'zurück';";
  $trans["biblioSearchNext"]         = "\$text = 'vor';";
+ $trans["First"]         	   = "\$text = 'Anfang';";
+ $trans["Last"]         		   = "\$text = 'Ende';";
  $trans["biblioSearchResultTxt"]    = "if (%items% == 1) {
                                          \$text = '%items% Ergebnis gefunden.';
                                        } else {
diff -bwircP openbiblio/locale/en/reports.php openbiblio_new/locale/en/reports.php
*** openbiblio/locale/en/reports.php	Fri Nov  2 20:32:57 2012
--- openbiblio_new/locale/en/reports.php	Fri Nov  2 20:38:54 2012
***************
*** 108,113 ****
--- 108,115 ----
  $trans["Result Pages: "]           = "\$text = 'Result Pages: ';";
  $trans["&laquo;Prev"]              = "\$text = '&laquo;Prev';";
  $trans["Next&raquo;"]              = "\$text = 'Next&raquo;';";
+ $trans["&laquo;First"]             = "\$text = '&laquo;First';";
+ $trans["Last&raquo;"]              = "\$text = 'Last&raquo;';";
  $trans["No results found."]        = "\$text = 'No results found.';";
  $trans["Report Results:"]          = "\$text = 'Report Results:';";
  $trans["results found."]           = "\$text = 'results found.';";
diff -bwircP openbiblio/locale/en/shared.php openbiblio_new/locale/en/shared.php
*** openbiblio/locale/en/shared.php	Fri Nov  2 20:32:57 2012
--- openbiblio_new/locale/en/shared.php	Fri Nov  2 20:38:54 2012
***************
*** 74,79 ****
--- 74,81 ----
  $trans["biblioSearchResultPages"]  = "\$text = 'Result Pages';";
  $trans["biblioSearchPrev"]         = "\$text = 'prev';";
  $trans["biblioSearchNext"]         = "\$text = 'next';";
+ $trans["First"]                    = "\$text = 'First';";
+ $trans["Last"]                     = "\$text = 'Last';";
  $trans["biblioSearchResultTxt"]    = "if (%items% == 1) {
                                          \$text = '%items% result found.';
                                        } else {
diff -bwircP openbiblio/reports/run_report.php openbiblio_new/reports/run_report.php
*** openbiblio/reports/run_report.php	Fri Nov  2 20:32:57 2012
--- openbiblio_new/reports/run_report.php	Fri Nov  2 20:37:25 2012
***************
*** 44,63 ****
        return false;
      }
      echo $loc->getText("Result Pages: ");
      if ($currPage > 1) {
        echolink($currPage-1, $loc->getText("&laquo;Prev"));
        echo ' ';
      }
!     $i = max(1, $currPage-OBIB_SEARCH_MAXPAGES/2);
!     $maxPg = OBIB_SEARCH_MAXPAGES + $i;
!     if ($i > 1) {
!       echo "... ";
!     }
!     for (;$i <= $pageCount; $i++) {
!       if ($i == $maxPg) {
!         echo "... ";
!         break;
!       }
        if ($i == $currPage) {
          echo "<b>".$i."</b> ";
        } else {
--- 44,62 ----
        return false;
      }
      echo $loc->getText("Result Pages: ");
+     if ($currPage > 6) {
+       echolink(1, $loc->getText("&laquo;First"));
+       echo ' ';
+     }
      if ($currPage > 1) {
        echolink($currPage-1, $loc->getText("&laquo;Prev"));
        echo ' ';
      }
!     $start = $currPage - 5;
!     $end = $currPage + 5;
!     if ($start<1) $start=1;
!     if ($end>$pageCount) $end=$pageCount;
!     for ($i = $start ;$i <= $end; $i++) {
        if ($i == $currPage) {
          echo "<b>".$i."</b> ";
        } else {
***************
*** 69,74 ****
--- 68,77 ----
        echolink($currPage+1, $loc->getText("Next&raquo;"));
        echo ' ';
      }
+     if ($currPage < $pageCount-5) {
+       echolink($pageCount, $loc->getText("Last&raquo;"));
+       echo ' ';
+     }
    }
  
    if (!$_REQUEST['type']) {
diff -bwircP openbiblio/shared/biblio_search.php openbiblio_new/shared/biblio_search.php
*** openbiblio/shared/biblio_search.php	Fri Nov  2 20:32:57 2012
--- openbiblio_new/shared/biblio_search.php	Fri Nov  2 20:35:23 2012
***************
*** 47,70 ****
        return false;
      }
      echo $loc->getText("biblioSearchResultPages").": ";
!     $maxPg = OBIB_SEARCH_MAXPAGES + 1;
      if ($currPage > 1) {
        echo "<a href=\"javascript:changePage(".H(addslashes($currPage-1)).",'".H(addslashes($sort))."')\">&laquo;".$loc->getText("biblioSearchPrev")."</a> ";
      }
!     for ($i = 1; $i <= $pageCount; $i++) {
!       if ($i < $maxPg) {
          if ($i == $currPage) {
            echo "<b>".H($i)."</b> ";
          } else {
            echo "<a href=\"javascript:changePage(".H(addslashes($i)).",'".H(addslashes($sort))."')\">".H($i)."</a> ";
          }
-       } elseif ($i == $maxPg) {
-         echo "... ";
-       }
      }
      if ($currPage < $pageCount) {
        echo "<a href=\"javascript:changePage(".($currPage+1).",'".$sort."')\">".$loc->getText("biblioSearchNext")."&raquo;</a> ";
      }
    }
  
    #****************************************************************************
--- 47,75 ----
        return false;
      }
      echo $loc->getText("biblioSearchResultPages").": ";
!     if ($currPage > 6) {
!       echo "<a href=\"javascript:changePage(".H(addslashes(1)).",'".H(addslashes($sort))."')\">&laquo;".$loc->getText("First")."</a> ";
!     }
      if ($currPage > 1) {
        echo "<a href=\"javascript:changePage(".H(addslashes($currPage-1)).",'".H(addslashes($sort))."')\">&laquo;".$loc->getText("biblioSearchPrev")."</a> ";
      }
!     $start = $currPage - 5;
!     $end = $currPage + 5;
!     if ($start<1) $start=1;
!     if ($end>$pageCount) $end=$pageCount;
!     for ($i = $start; $i <= $end; $i++) {
          if ($i == $currPage) {
            echo "<b>".H($i)."</b> ";
          } else {
            echo "<a href=\"javascript:changePage(".H(addslashes($i)).",'".H(addslashes($sort))."')\">".H($i)."</a> ";
          }
      }
      if ($currPage < $pageCount) {
        echo "<a href=\"javascript:changePage(".($currPage+1).",'".$sort."')\">".$loc->getText("biblioSearchNext")."&raquo;</a> ";
      }
+     if ($currPage < $pageCount-5) {
+       echo "<a href=\"javascript:changePage(".H(addslashes($pageCount)).",'".H(addslashes($sort))."')\">".$loc->getText("Last")."&raquo;</a> ";
+     }
    }
  
    #****************************************************************************
diff -bwircP openbiblio/circ/mbr_search.php openbiblio_new/circ/mbr_search.php
*** openbiblio/circ/mbr_search.php	Sat Nov  3 05:17:17 2012
--- openbiblio_new/circ/mbr_search.php	Sat Nov  3 05:17:34 2012
***************
*** 22,45 ****
    #****************************************************************************
    function printResultPages($currPage, $pageCount) {
      global $loc;
!     $maxPg = 21;
      if ($currPage > 1) {
        echo "<a href=\"javascript:changePage(".H(addslashes($currPage-1)).")\">&laquo;".$loc->getText("mbrsearchprev")."</a> ";
      }
!     for ($i = 1; $i <= $pageCount; $i++) {
!       if ($i < $maxPg) {
          if ($i == $currPage) {
            echo "<b>".H($i)."</b> ";
          } else {
            echo "<a href=\"javascript:changePage(".H(addslashes($i)).")\">".H($i)."</a> ";
          }
-       } elseif ($i == $maxPg) {
-         echo "... ";
-       }
      }
      if ($currPage < $pageCount) {
        echo "<a href=\"javascript:changePage(".($currPage+1).")\">".$loc->getText("mbrsearchnext")."&raquo;</a> ";
      }
    }
  
    #****************************************************************************
--- 22,50 ----
    #****************************************************************************
    function printResultPages($currPage, $pageCount) {
      global $loc;
!     if ($currPage > 6) {
!       echo "<a href=\"javascript:changePage(".H(addslashes(1)).")\">&laquo;".$loc->getText("First")."</a> ";
!     }
      if ($currPage > 1) {
        echo "<a href=\"javascript:changePage(".H(addslashes($currPage-1)).")\">&laquo;".$loc->getText("mbrsearchprev")."</a> ";
      }
!     $start = $currPage - 5;
!     $end = $currPage + 5;
!     if ($start<1) $start=1;
!     if ($end>$pageCount) $end=$pageCount;
!     for ($i = $start; $i <= $end; $i++) {
          if ($i == $currPage) {
            echo "<b>".H($i)."</b> ";
          } else {
            echo "<a href=\"javascript:changePage(".H(addslashes($i)).")\">".H($i)."</a> ";
          }
      }
      if ($currPage < $pageCount) {
        echo "<a href=\"javascript:changePage(".($currPage+1).")\">".$loc->getText("mbrsearchnext")."&raquo;</a> ";
      }
+     if ($currPage < $pageCount - 5) {
+       echo "<a href=\"javascript:changePage(".($pageCount).")\">".$loc->getText("Last")."&raquo;</a> ";
+     }
    }
  
    #****************************************************************************
diff -bwircP openbiblio/locale/de/circulation.php openbiblio_new/locale/de/circulation.php
*** openbiblio/locale/de/circulation.php	Sat Nov  3 05:17:18 2012
--- openbiblio_new/locale/de/circulation.php	Sat Nov  3 05:18:31 2012
***************
*** 79,84 ****
--- 79,86 ----
  $trans["mbrsearchResult"]         = "\$text='Ergebnisseiten: ';";
  $trans["mbrsearchprev"]           = "\$text='vor';";
  $trans["mbrsearchnext"]           = "\$text='weiter';";
+ $trans["First"]                   = "\$text='Anfang';";
+ $trans["Last"]                    = "\$text='Ende';";
  $trans["mbrsearchNoResults"]      = "\$text='Keine Ergebnisse gefunden.';";
  $trans["mbrsearchFoundResults"]   = "\$text=' Ergebnisse gefunden.';";
  $trans["mbrsearchSearchResults"]  = "\$text='Suchergebnisse:';";
diff -bwircP openbiblio/locale/en/circulation.php openbiblio_new/locale/en/circulation.php
*** openbiblio/locale/en/circulation.php	Sat Nov  3 05:17:18 2012
--- openbiblio_new/locale/en/circulation.php	Sat Nov  3 05:18:41 2012
***************
*** 79,84 ****
--- 79,86 ----
  $trans["mbrsearchResult"]         = "\$text='Result Pages: ';";
  $trans["mbrsearchprev"]           = "\$text='prev';";
  $trans["mbrsearchnext"]           = "\$text='next';";
+ $trans["First"]                   = "\$text='First';";
+ $trans["Last"]                    = "\$text='Last';";
  $trans["mbrsearchNoResults"]      = "\$text='No results found.';";
  $trans["mbrsearchFoundResults"]   = "\$text=' results found.';";
  $trans["mbrsearchSearchResults"]  = "\$text='Search Results:';";

