<?php

$lastdepth
=1;
$n=0;

echo 
"<ul id=\"containerul\">\r\n";
echo 
" <li><a href=\"/\">Home</a></li>\r\n";

while((
$row = @$mainMenuQry -> fetch_assoc()) !== NULL) {
 
$depth $row['depth'];
 
$n++;
 if (
$depth == $lastdepth) {            // FOR NO DEPTH CHANGE
  
if ($n == 1) {                        // if the first list item
   
echo " <li><a href=\"/?catID=$row[catID]\">";
   echo 
"$row[Category]</a>";           // begin li, echo first list item
  
} else {
   echo 
"</li>\r\n";                    // end previous list item
   
echo str_repeat(" "2*$depth-1);    // indent this list item
   
echo "<li><a href=\"/?catID=$row[catID]\">";
   echo 
"$row[Category]</a>";           // begin li, echo first list item
  
}
 } elseif (
$depth $lastdepth) {       // FOR DEPTH INCREASE (always +1)
  
echo "\r\n";                          // don't term li yet, begin new line
  
echo str_repeat(" ",2*$depth-2);      // indent ul
  
echo "<ul>\r\n";                      // begin embedded ul
  
echo str_repeat(" ",2*$depth-1);      // indent li
  
echo "<li><a href=\"/?catID=$row[catID]\">";
  echo 
"$row[Category]</a>";            // begin li, echo list item
 
} else {                               // FOR DEPTH DECREASE (can vary)
  
$d $lastdepth;
  for (
$i = ($lastdepth $depth); $i 0$i--) {
   echo 
"</li>\r\n";                    // end previous li
   
echo str_repeat(" "2*$d-2);        // indent /ul
   
echo "</ul>\r\n";                    // close ul
   
$d--;                                // decrease depth and repeat until...
   
echo str_repeat(" "2*$d-1);        // ...we reach current depth
  
}
   echo 
"</li>\r\n";                    // close previous li
   
echo str_repeat(" ",2*$depth-1);     // indent this li
   
echo "<li><a href=\"?catID=$row[catID]\">";
   echo 
"$row[Category]</a>";           // begin li, echo list item
 
}
 
$lastdepth $depth;                   // update $lastdepth for next row
}

$mainMenuQry -> close();                // close mainMenuQry

$d $lastdepth;
for (
$i $d$i 0$i--) {
 echo 
"</li>\r\n";                      // close previous li
 
echo str_repeat(" ",2*$d-2);           // indent /ul
 
echo "</ul>\r\n";                      // close ul
 
$d--;                                  // decrease depth and repeat until...
 
if ($d 0) {                          // ...all contained ul's and li's...
  
echo str_repeat(" "2*$d-1);         // ...get closed
 
}
}

echo <<<html
<script type="text/javascript">initiate();</script>

html;

?>