<?php
 
+drupal_set_html_head('
+<script type="text/javascript" src="/planetlab/tablesort/tablesort.js"></script>
+<script type="text/javascript" src="/planetlab/tablesort/customsort.js"></script>
+<script type="text/javascript" src="/planetlab/tablesort/paginate.js"></script>
+<script type="text/javascript" src="/planetlab/js/plc_tables.js"></script>
+<link href="/planetlab/css/plc_tables.css" rel="stylesheet" type="text/css" />
+');
+
+
 ////////////////////////////////////////
 // table_id: <table>'s id tag
-// pagesize_init: the initial pagination size
-// pagesize_def: the page size when one clisks the pagesize reset button
-function plc_table_search_area ($table_id,$pagesize_init,$pagesize_def) {
+// headers: an associative array "label"=>"type" 
+// column_sort: the column to sort on at load-time
+// search_area : boolean
+// pagesize: the initial pagination size
+// pagesize_def: the page size when one clicks the pagesize reset button
+// max_pages: the max number of pages to display in the paginator
+function plc_table_start ($table_id, $headers, $column_sort,
+                         $search_area=true,$max_pages="10",$pagesize="25",$pagesize_def="999") {
+  if ($search_area) {
+    plc_table_search_area($table_id,$pagesize,$pagesize_def);
+  }
+  plc_table_head($table_id,$headers,$column_sort,$max_pages,$pagesize);
+}
+
+function plc_table_end () {
+  plc_table_foot();
+}
+                   
+////////////////////
+function plc_table_search_area ($table_id,$pagesize,$pagesize_def) {
   $pagesize_text_id = $table_id . "_pagesize";
   $search_text_id = $table_id . "_search";
   $search_reset_id = $table_id . "_search_reset";
 <table class='table_dialogs'> <tr>
 <td class='table_flushleft'>
 <form class='pagesize'>
-   <input class='pagesize_input' type='text' id="$pagesize_text_id" value=$pagesize_init 
-      onkeyup='plc_pagesize_set("$table_id","$pagesize_text_id", $pagesize_init);' 
+   <input class='pagesize_input' type='text' id="$pagesize_text_id" value=$pagesize 
+      onkeyup='plc_pagesize_set("$table_id","$pagesize_text_id", $pagesize);' 
       size=3 maxlength=3 /> 
   <label class='pagesize_label'> items/page </label>   
   <img class='table_reset' src="/planetlab/icons/clear.png" 
 }
 
 ////////////////////////////////////////
-// table_id: <table>'s id tag
-// headers: an associative array "label"=>"type" 
-// pagesize: the initial page
-// column_init_sort: the column to sort on at load-time
-// max_pages: the max number of pages to display in the paginator
-function plc_table_head ($table_id,$headers,$pagesize,$column_init_sort,$max_pages) {
+function plc_table_head ($table_id,$headers,$column_sort,$max_pages,$pagesize) {
   $paginator=$table_id."_paginator";
   $classname="paginationcallback-".$paginator;
   $classname.=" max-pages-" . $max_pages;
 </script>
 <br/>
 <table id="$table_id" cellpadding="0" cellspacing="0" border="0" 
-class="plc_table sortable-onload-$column_init_sort rowstyle-alt colstyle-alt no-arrow $classname">
+class="plc_table sortable-onload-$column_sort rowstyle-alt colstyle-alt no-arrow $classname">
 <thead>
 <tr>
 EOF;
 
 
 // Common functions
 require_once 'plc_functions.php';
-require_once 'plc_sorts.php';
+require_once 'plc_minitabs.php';
 require_once 'plc_tables.php';
 
 // find person roles
 $_person= $plc->person;
 $_roles= $_person['role_ids'];
 
-$header_js='
-<script type="text/javascript" src="/planetlab/tablesort/tablesort.js"></script>
-<script type="text/javascript" src="/planetlab/tablesort/customsort.js"></script>
-<script type="text/javascript" src="/planetlab/tablesort/paginate.js"></script>
-<script type="text/javascript" src="/planetlab/minitabs/minitabs.js"></script>
-<script type="text/javascript" src="/planetlab/js/plc_tables.js"></script>
-';
-
-$header_css='
-<link href="/planetlab/minitabs/minitabs.css" rel="stylesheet" type="text/css" />
-<link href="/planetlab/css/plc_style.css" rel="stylesheet" type="text/css" />
-<link href="/planetlab/css/plc_tables.css" rel="stylesheet" type="text/css" />
-';
-
-drupal_set_html_head($header_js);
-drupal_set_html_head($header_css);
-
 // -------------------- 
 $pattern=$_GET['pattern'];
 $peerscope=$_GET['peerscope'];
 
 drupal_set_title('Nodes');
 
-require_once 'plc_minitabs.php';
 $minitabs=array("Old page"=>"/db/nodes/index.php",
               "About"=>"/db/about.php",
               "Logout"=>"/planetlab/logout.php",
     $peer_hash[$peer['peer_id']]=$peer;
 }
 
-$pagesize=25;
-plc_table_search_area("nodes",$pagesize,999);
+
+
 $columns = array ("Peer"=>"string",
                  "Region"=>"string",
                  "Site"=>"string",
                  "Load"=>"int",
                  "Avg Load"=>"float");
 
-plc_table_head("nodes",$columns,$pagesize,"4",15);
+# initial sort on hostnames
+plc_table_start("nodes",$columns,4);
 
 // write rows
 $fake1=1; $fake2=3.14; $fake_i=0;
     $fake_i += 1;
 }
 
-plc_table_foot();
+plc_table_end();
 
 plc_table_notes();
 ?>