Index: extensions/NBC_UserAdvManager/trunk/admin/UAM_admin.php
===================================================================
--- extensions/NBC_UserAdvManager/trunk/admin/UAM_admin.php	(revision 6378)
+++ extensions/NBC_UserAdvManager/trunk/admin/UAM_admin.php	(revision 6399)
@@ -492,5 +492,5 @@
 // |                           Template Init                               |
 // +-----------------------------------------------------------------------+
-		$base_url = PHPWG_ROOT_PATH.'admin.php?page=user_list';
+		/*$base_url = PHPWG_ROOT_PATH.'admin.php?page=user_list';
 
     if (isset($_GET['start']) and is_numeric($_GET['start']))
@@ -501,5 +501,5 @@
     {
       $start = 0;
-    }
+    }*/
 
 // +-----------------------------------------------------------------------+
@@ -507,5 +507,5 @@
 // +-----------------------------------------------------------------------+
 
-$url = PHPWG_ROOT_PATH.'admin.php'.get_query_string_diff(array('start'));
+/*$url = PHPWG_ROOT_PATH.'admin.php'.get_query_string_diff(array('start'));
 
 $navbar = create_navigation_bar(
@@ -516,5 +516,5 @@
   );
 
-$template->assign('navbar', $navbar);
+$template->assign('navbar', $navbar);*/
 
 // +-----------------------------------------------------------------------+
@@ -525,6 +525,6 @@
     foreach ($page['filtered_users'] as $num => $local_user)
     {
-/* simulate LIMIT $start, $conf['users_page'] */
-			if ($num < $start)
+// simulate LIMIT $start, $conf['users_page']
+			/*if ($num < $start)
       {
         continue;
@@ -533,5 +533,5 @@
       {
         break;
-      }
+      }*/
 
       $visible_user_list[] = $local_user;
@@ -1006,5 +1006,5 @@
 // |                           Template Init                               |
 // +-----------------------------------------------------------------------+
-		$base_url = PHPWG_ROOT_PATH.'admin.php?page=user_list';
+		/*$base_url = PHPWG_ROOT_PATH.'admin.php?page=user_list';
 
     if (isset($_GET['start']) and is_numeric($_GET['start']))
@@ -1015,5 +1015,5 @@
     {
       $start = 0;
-    }
+    }*/
 
 /* Hide radio-button if not allow to assign adviser */
@@ -1027,5 +1027,5 @@
 // +-----------------------------------------------------------------------+
 
-$url = PHPWG_ROOT_PATH.'admin.php'.get_query_string_diff(array('start'));
+/*$url = PHPWG_ROOT_PATH.'admin.php'.get_query_string_diff(array('start'));
 
 $navbar = create_navigation_bar(
@@ -1036,5 +1036,5 @@
   );
 
-$template->assign('navbar', $navbar);
+$template->assign('navbar', $navbar);*/
 
 // +-----------------------------------------------------------------------+
@@ -1049,5 +1049,5 @@
     {
 /* simulate LIMIT $start, $conf['users_page'] */
-			if ($num < $start)
+			/*if ($num < $start)
       {
         continue;
@@ -1056,5 +1056,5 @@
       {
         break;
-      }
+      }*/
 
       $visible_user_list[] = $local_user;
@@ -1440,5 +1440,5 @@
 // |                           Template Init                               |
 // +-----------------------------------------------------------------------+
-		$base_url = PHPWG_ROOT_PATH.'admin.php?page=user_list';
+		/*$base_url = PHPWG_ROOT_PATH.'admin.php?page=user_list';
 
     if (isset($_GET['start']) and is_numeric($_GET['start']))
@@ -1449,5 +1449,5 @@
     {
       $start = 0;
-    }
+    }*/
 
 /* Hide radio-button if not allow to assign adviser */
@@ -1461,5 +1461,5 @@
 // +-----------------------------------------------------------------------+
 
-$url = PHPWG_ROOT_PATH.'admin.php'.get_query_string_diff(array('start'));
+/*$url = PHPWG_ROOT_PATH.'admin.php'.get_query_string_diff(array('start'));
 
 $navbar = create_navigation_bar(
@@ -1470,5 +1470,5 @@
   );
 
-$template->assign('navbar', $navbar);
+$template->assign('navbar', $navbar);*/
 
 // +-----------------------------------------------------------------------+
@@ -1480,5 +1480,5 @@
     {
 /* simulate LIMIT $start, $conf['users_page'] */
-			if ($num < $start)
+			/*if ($num < $start)
       {
         continue;
@@ -1487,5 +1487,5 @@
       {
         break;
-      }
+      }*/
 
       $visible_user_list[] = $local_user;
Index: extensions/NBC_UserAdvManager/trunk/admin/template/ghosttracker.tpl
===================================================================
--- extensions/NBC_UserAdvManager/trunk/admin/template/ghosttracker.tpl	(revision 6378)
+++ extensions/NBC_UserAdvManager/trunk/admin/template/ghosttracker.tpl	(revision 6399)
@@ -2,4 +2,5 @@
 {known_script id="jquery.cluetip" src=$ROOT_URL|@cat:"themes/default/js/plugins/jquery.cluetip.packed.js"}
 {known_script id="jquery.tablesorter" src=$UAM_PATH|@cat:"admin/template/js/jquery.tablesorter.js"}
+{known_script id="jquery.tablesorter.pager" src=$UAM_PATH|@cat:"admin/template/js/jquery.tablesorter.pager.js"}
 
 {html_head}<link rel="stylesheet" type="text/css" href="{$UAM_PATH}admin/template/uam.css">{/html_head}
@@ -17,8 +18,7 @@
 $(document).ready(function() 
     {ldelim}
-      // extend the default setting to always sort on the fourth column 
-      $.tablesorter.defaults.sortList = [[3,0]];
-      // sorting 
-      $("#sorting").tablesorter();
+      $("#sorting")
+      .tablesorter({ldelim}sortList:[[3,1]], headers: {ldelim} 0: {ldelim} sorter: false {rdelim}{rdelim}{rdelim})
+      .tablesorterPager({ldelim}container: $("#pager"), positionFixed: false, size: 20, totalPages: 0{rdelim});
     {rdelim} 
 );
@@ -42,5 +42,4 @@
   <fieldset>
     <legend class="cluetip" title="{'UAM_gtTitle'|translate}|{'UAM_gtTitle_d'|translate}">{'GhostTracker_Title'|@translate}</legend>
-      {if !empty($navbar) }{include file='navigation_bar.tpl'|@get_extent:'navbar'}{/if}
         <table id="sorting" class="table2" width="97%" summary="">
           <thead>
@@ -73,8 +72,20 @@
         </tbody>
         </table>
-
-        {if !empty($navbar) }{include file='navigation_bar.tpl'|@get_extent:'navbar'}{/if}
+<div id="pager" class="pager">
+	<form>
+		<img src="{$UAM_PATH}admin/template/icon/first.png" class="first">
+		<img src="{$UAM_PATH}admin/template/icon/prev.png" class="prev">
+		<input type="text" class="pagedisplay">
+		<img src="{$UAM_PATH}admin/template/icon/next.png" class="next">
+		<img src="{$UAM_PATH}admin/template/icon/last.png" class="last">
+		<select class="pagesize">
+			<option  value="10">10</option>
+			<option selected="selected" value="20">20</option>
+			<option value="30">30</option>
+			<option value="40">40</option>
+		</select>
+	</form>
+</div>
         <br>
-          
 <p>
   {'target'|@translate}
Index: extensions/NBC_UserAdvManager/trunk/admin/template/js/jquery.tablesorter.pager.js
===================================================================
--- extensions/NBC_UserAdvManager/trunk/admin/template/js/jquery.tablesorter.pager.js	(revision 6399)
+++ extensions/NBC_UserAdvManager/trunk/admin/template/js/jquery.tablesorter.pager.js	(revision 6399)
@@ -0,0 +1,184 @@
+(function($) {
+	$.extend({
+		tablesorterPager: new function() {
+			
+			function updatePageDisplay(c) {
+				var s = $(c.cssPageDisplay,c.container).val((c.page+1) + c.seperator + c.totalPages);	
+			}
+			
+			function setPageSize(table,size) {
+				var c = table.config;
+				c.size = size;
+				c.totalPages = Math.ceil(c.totalRows / c.size);
+				c.pagerPositionSet = false;
+				moveToPage(table);
+				fixPosition(table);
+			}
+			
+			function fixPosition(table) {
+				var c = table.config;
+				if(!c.pagerPositionSet && c.positionFixed) {
+					var c = table.config, o = $(table);
+					if(o.offset) {
+						c.container.css({
+							top: o.offset().top + o.height() + 'px',
+							position: 'absolute'
+						});
+					}
+					c.pagerPositionSet = true;
+				}
+			}
+			
+			function moveToFirstPage(table) {
+				var c = table.config;
+				c.page = 0;
+				moveToPage(table);
+			}
+			
+			function moveToLastPage(table) {
+				var c = table.config;
+				c.page = (c.totalPages-1);
+				moveToPage(table);
+			}
+			
+			function moveToNextPage(table) {
+				var c = table.config;
+				c.page++;
+				if(c.page >= (c.totalPages-1)) {
+					c.page = (c.totalPages-1);
+				}
+				moveToPage(table);
+			}
+			
+			function moveToPrevPage(table) {
+				var c = table.config;
+				c.page--;
+				if(c.page <= 0) {
+					c.page = 0;
+				}
+				moveToPage(table);
+			}
+						
+			
+			function moveToPage(table) {
+				var c = table.config;
+				if(c.page < 0 || c.page > (c.totalPages-1)) {
+					c.page = 0;
+				}
+				
+				renderTable(table,c.rowsCopy);
+			}
+			
+			function renderTable(table,rows) {
+				
+				var c = table.config;
+				var l = rows.length;
+				var s = (c.page * c.size);
+				var e = (s + c.size);
+				if(e > rows.length ) {
+					e = rows.length;
+				}
+				
+				
+				var tableBody = $(table.tBodies[0]);
+				
+				// clear the table body
+				
+				$.tablesorter.clearTableBody(table);
+				
+				for(var i = s; i < e; i++) {
+					
+					//tableBody.append(rows[i]);
+					
+					var o = rows[i];
+					var l = o.length;
+					for(var j=0; j < l; j++) {
+						
+						tableBody[0].appendChild(o[j]);
+
+					}
+				}
+				
+				fixPosition(table,tableBody);
+				
+				$(table).trigger("applyWidgets");
+				
+				if( c.page >= c.totalPages ) {
+        			moveToLastPage(table);
+				}
+				
+				updatePageDisplay(c);
+			}
+			
+			this.appender = function(table,rows) {
+				
+				var c = table.config;
+				
+				c.rowsCopy = rows;
+				c.totalRows = rows.length;
+				c.totalPages = Math.ceil(c.totalRows / c.size);
+				
+				renderTable(table,rows);
+			};
+			
+			this.defaults = {
+				size: 10,
+				offset: 0,
+				page: 0,
+				totalRows: 0,
+				totalPages: 0,
+				container: null,
+				cssNext: '.next',
+				cssPrev: '.prev',
+				cssFirst: '.first',
+				cssLast: '.last',
+				cssPageDisplay: '.pagedisplay',
+				cssPageSize: '.pagesize',
+				seperator: "/",
+				positionFixed: true,
+				appender: this.appender
+			};
+			
+			this.construct = function(settings) {
+				
+				return this.each(function() {	
+					
+					config = $.extend(this.config, $.tablesorterPager.defaults, settings);
+					
+					var table = this, pager = config.container;
+				
+					$(this).trigger("appendCache");
+					
+					config.size = parseInt($(".pagesize",pager).val());
+					
+					$(config.cssFirst,pager).click(function() {
+						moveToFirstPage(table);
+						return false;
+					});
+					$(config.cssNext,pager).click(function() {
+						moveToNextPage(table);
+						return false;
+					});
+					$(config.cssPrev,pager).click(function() {
+						moveToPrevPage(table);
+						return false;
+					});
+					$(config.cssLast,pager).click(function() {
+						moveToLastPage(table);
+						return false;
+					});
+					$(config.cssPageSize,pager).change(function() {
+						setPageSize(table,parseInt($(this).val()));
+						return false;
+					});
+				});
+			};
+			
+		}
+	});
+	// extend plugin scope
+	$.fn.extend({
+        tablesorterPager: $.tablesorterPager.construct
+	});
+	
+})(jQuery);				
Index: extensions/NBC_UserAdvManager/trunk/admin/template/uam.css
===================================================================
--- extensions/NBC_UserAdvManager/trunk/admin/template/uam.css	(revision 6378)
+++ extensions/NBC_UserAdvManager/trunk/admin/template/uam.css	(revision 6399)
@@ -84,2 +84,6 @@
 background-image:url("./icon/asc.png");
 }
+
+.pager{
+  text-align:center;
+}
Index: extensions/NBC_UserAdvManager/trunk/admin/template/userlist.tpl
===================================================================
--- extensions/NBC_UserAdvManager/trunk/admin/template/userlist.tpl	(revision 6378)
+++ extensions/NBC_UserAdvManager/trunk/admin/template/userlist.tpl	(revision 6399)
@@ -2,4 +2,6 @@
 {known_script id="jquery.cluetip" src=$ROOT_URL|@cat:"themes/default/js/plugins/jquery.cluetip.packed.js"}
 {known_script id="jquery.tablesorter" src=$UAM_PATH|@cat:"admin/template/js/jquery.tablesorter.js"}
+{known_script id="jquery.tablesorter.pager" src=$UAM_PATH|@cat:"admin/template/js/jquery.tablesorter.pager.js"}
+
 
 {html_head}<link rel="stylesheet" type="text/css" href="{$UAM_PATH}admin/template/uam.css">{/html_head}
@@ -16,9 +18,8 @@
 
 $(document).ready(function() 
-    {ldelim} 
-      // extend the default setting to always sort on the fourth column 
-      $.tablesorter.defaults.sortList = [[3,0]];
-      // sorting 
-      $("#sorting").tablesorter();
+    {ldelim}
+      $("#sorting")
+      .tablesorter({ldelim}sortList:[[3,0]]{rdelim})
+      .tablesorterPager({ldelim}container: $("#pager"), positionFixed: false, size: 20, totalPages: 0{rdelim});
     {rdelim} 
 );
@@ -34,5 +35,4 @@
   	<legend class="cluetip" title="{'UAM_userlistTitle'|translate}|{'UAM_userlistTitle_d'|translate}">{'UserList_Title'|@translate}</legend>
 
-    {if !empty($navbar) }{include file='navigation_bar.tpl'|@get_extent:'navbar'}{/if}
       <table id="sorting" class="table2" width="97%" summary="">
   			<thead>
@@ -66,6 +66,19 @@
         </tbody>
       </table>
-
-      {if !empty($navbar) }{include file='navigation_bar.tpl'|@get_extent:'navbar'}{/if}
+<div id="pager" class="pager">
+	<form>
+		<img src="{$UAM_PATH}admin/template/icon/first.png" class="first">
+		<img src="{$UAM_PATH}admin/template/icon/prev.png" class="prev">
+		<input type="text" class="pagedisplay">
+		<img src="{$UAM_PATH}admin/template/icon/next.png" class="next">
+		<img src="{$UAM_PATH}admin/template/icon/last.png" class="last">
+		<select class="pagesize">
+			<option  value="10">10</option>
+			<option selected="selected" value="20">20</option>
+			<option value="30">30</option>
+			<option value="40">40</option>
+		</select>
+	</form>
+</div>
     	<br>
   </fieldset>
Index: extensions/NBC_UserAdvManager/trunk/admin/template/usermanager.tpl
===================================================================
--- extensions/NBC_UserAdvManager/trunk/admin/template/usermanager.tpl	(revision 6378)
+++ extensions/NBC_UserAdvManager/trunk/admin/template/usermanager.tpl	(revision 6399)
@@ -2,4 +2,5 @@
 {known_script id="jquery.cluetip" src=$ROOT_URL|@cat:"themes/default/js/plugins/jquery.cluetip.packed.js"}
 {known_script id="jquery.tablesorter" src=$UAM_PATH|@cat:"admin/template/js/jquery.tablesorter.js"}
+{known_script id="jquery.tablesorter.pager" src=$UAM_PATH|@cat:"admin/template/js/jquery.tablesorter.pager.js"}
 
 {html_head}<link rel="stylesheet" type="text/css" href="{$UAM_PATH}admin/template/uam.css">{/html_head}
@@ -17,8 +18,7 @@
 $(document).ready(function() 
     {ldelim}
-      // extend the default setting to always sort on the fourth column 
-      $.tablesorter.defaults.sortList = [[3,0]];
-      // sorting 
-      $("#sorting").tablesorter();
+      $("#sorting")
+      .tablesorter({ldelim}sortList:[[5,1]], headers: {ldelim} 0: {ldelim} sorter: false {rdelim}{rdelim}{rdelim})
+      .tablesorterPager({ldelim}container: $("#pager"), positionFixed: false, size: 20, totalPages: 0{rdelim});
     {rdelim} 
 );
@@ -32,16 +32,14 @@
   <fieldset>
   	<legend class="cluetip" title="{'UAM_usermanTitle'|translate}|{'UAM_usermanTitle_d'|translate}">{'UserManager_Title'|@translate}</legend>
-
-    {if !empty($navbar) }{include file='navigation_bar.tpl'|@get_extent:'navbar'}{/if}
       <table id="sorting" class="table2" width="97%" summary="">
   		  <thead>
     			<tr class="throw">
       			<th>&nbsp;</td>
-      			<th>&nbsp;{'Username'|@translate}&nbsp;</th>
-      			<th>&nbsp;{'User status'|@translate}&nbsp;</th>
-      			<th>&nbsp;{'Email address'|@translate}&nbsp;</th>
-      			<th>&nbsp;{'Groups'|@translate}&nbsp;</th>
-      			<th>&nbsp;{'Registration_Date'|@translate}&nbsp;</th>
-            <th>&nbsp;{'Reminder'|@translate}&nbsp;</th>
+      			<th>&nbsp;{'Username'|@translate}&nbsp;&nbsp;</th>
+      			<th>&nbsp;{'User status'|@translate}&nbsp;&nbsp;</th>
+      			<th>&nbsp;{'Email address'|@translate}&nbsp;&nbsp;</th>
+      			<th>&nbsp;{'Groups'|@translate}&nbsp;&nbsp;</th>
+      			<th>&nbsp;{'Registration_Date'|@translate}&nbsp;&nbsp;</th>
+            <th>&nbsp;{'Reminder'|@translate}&nbsp;&nbsp;</th>
     			</tr>
   			</thead>
@@ -63,6 +61,21 @@
       </tbody>
       </table>
-
-      {if !empty($navbar) }{include file='navigation_bar.tpl'|@get_extent:'navbar'}{/if}
+{if !empty($users)}
+<div id="pager" class="pager">
+	<form>
+		<img src="{$UAM_PATH}admin/template/icon/first.png" class="first">
+		<img src="{$UAM_PATH}admin/template/icon/prev.png" class="prev">
+		<input type="text" class="pagedisplay">
+		<img src="{$UAM_PATH}admin/template/icon/next.png" class="next">
+		<img src="{$UAM_PATH}admin/template/icon/last.png" class="last">
+		<select class="pagesize">
+			<option  value="10">10</option>
+			<option selected="selected" value="20">20</option>
+			<option value="30">30</option>
+			<option value="40">40</option>
+		</select>
+	</form>
+</div>
+{/if}
     	<br>
 
