<?php require("variables.inc"); ?>
<?php require("functions.inc"); ?>
<?php require("classes.inc");

$currentforum = new Forum;
$currentforum->loadInfo($forum);

?>
<html>
<head>
 <title><?php echo $boardname; ?>: <?php echo $currentforum->getFullName(); ?></title>
 <?php echo stylesheetLink(); ?>
</head>

<body bgcolor="#<?php echo $bgcolour; ?>" text="#<?php echo $textcolour; ?>" link="#<?php echo $linkcolour; ?>" vlink="#<?php echo $vlinkcolour; ?>" alink="#<?php echo $alinkcolour; ?>"<?php if (!$margins) { print " marginwidth=\"0\" marginheight=\"0\" leftmargin=\"0\" topmargin=\"0\""; } ?>>

<?php include("options/header.txt"); ?>

<?php echo displayHeader("<a href=\"viewforum.php3?forum=$forum\"><b>" . $currentforum->getFullName() . "</b></a>"); ?>

<div align="center">
<table border="0" cellspacing="2" cellpadding="3" width="90%">
<?php

if (accessAllowed($currentforum))
   {
   if ($currentforum->hasMessages())
      {
      // Load threads
      $filename = $forumpath . "forums/" . $forum . "/threadindex.txt";
      if (file_exists($filename))
         {
         print " <tr>\n";
         print "  <td bgcolor=\"#$main_tdbgcolor\">&nbsp;</td>\n";
         print "  <td bgcolor=\"#$main_tdbgcolor\">&nbsp;</td>\n";
         print "  <td bgcolor=\"#$main_tdbgcolor\"><font color=\"#$secondary_textcolor\"><b>Thread</b></font></td>\n";
         print "  <td bgcolor=\"#$main_tdbgcolor\" align=\"center\"><font color=\"#$secondary_textcolor\"><b>Thread started</b></font></td>\n";
         print "  <td bgcolor=\"#$main_tdbgcolor\" align=\"center\"><font color=\"#$secondary_textcolor\"><b>Posts</b></font></td>\n";
         print "  <td bgcolor=\"#$main_tdbgcolor\" align=\"center\"><font color=\"#$secondary_textcolor\"><b>Last post</b></font></td>\n";
         print " </tr>\n";

         $threadindex = new Vector;
         $threadindex = loadThreadIndex($forum);

         // Check that thread index has not become corrupt
         if ($threadindex->getSize() != $currentforum->getNumThreads())
            {
            // Rebuild thread index
            if ($ab_debug)
               {
               print "Thread index is corrupt! Rebuilding...<br>";
               }
            rebuildthreadindex($forum);

            // Reload threadindex
            unset($threadindex);
            $threadindex = loadThreadIndex($forum);
            }

         // Display threads
         if (!isset($page))
            {
            $page = 1;
            }
         $startfrom = (($page - 1) * $maxthreadsonapage);
         for ($count = $startfrom; $count < $currentforum->getNumThreads(); $count++)
            {
            if (($count - $startfrom) < $maxthreadsonapage)
               {
               $currentthread = new Thread;
               $currentthread->loadInfo($forum,$threadindex->getElementAt($count));

               print "<tr>\n";

               // Flag messages if appropriate
               if ($currentthread->hasBeenContributedTo(getMemberNumber($cookieusername)))
                  {
                  print "  <td width=\"20\"><img src=\"images/flag.gif\" width=\"20\" height=\"20\" alt=\"Flag\"></td>\n";
                  }
               else
                  {
                  print "  <td>&nbsp;</td>\n";
                  }

               if ((isset($cookieusername) == true) && ($currentthread->getTimeOfLastPost("U") != 0))
                  {
                  if ($currentthread->getTimeOfLastPost("U") > $cookieoldlastvisit)
                     {
                     if (isset($cookieoldlastvisit))
                        {
                        print "  <td width=\"20\"><a href=\"viewthread.php3?forum=";
                        echo $currentthread->getForum();
                        print "&threadid=";
                        echo $currentthread->getThreadId();
                        $currentthread->getLastPostSince($cookieoldlastvisit); // Delibrately null return
                        if ($currentthread->getPageOfLastPostSince($cookieoldlastvisit) > 1)
                           {
                           print "&page=";
                           echo $currentthread->getPageOfLastPostSince($cookieoldlastvisit);
                           }
                        print "#";
                        echo $currentthread->getLastPostSince($cookieoldlastvisit);
                        print "\"><img src=\"images/unread.gif\" width=\"20\" height=\"20\" alt=\"Go to earliest unread message\" border=\"0\"></a></td>\n";
                        }
                     else
                        {
                        print "  <td width=\"20\"><img src=\"images/unread.gif\" width=\"20\" height=\"20\" alt=\"unread\" border=\"0\"></td>\n";
                        }
                     }
                  else
                     {
                     print "  <td width=\"20\"><img src=\"images/read.gif\" width=\"20\" height=\"20\" alt=\"read\" border=\"0\"></td>\n";
                     }
                  }
               else
                  {
                  print "  <td>&nbsp;</td>\n";
                  }
               print "  <td bgcolor=\"#$secondary_tdbgcolor\"><a href=\"viewthread.php3?forum=";
               echo $currentthread->getForum();
               print "&threadid=";
               echo $currentthread->getThreadId();
               print "\">";
               echo $currentthread->getSubject();
               print "</a>";
               if ($currentthread->getNumMessages() > $maxmessagesonapage)
                  {
                  print "<br><small><b>Page</b>:";
                  $numpages = ceil($currentthread->getNumMessages()/$maxmessagesonapage);
                  if ($numpages > 6)
                     {
                     // Display links to first 3 pages
                     for ($y = 1; $y < 4; $y++)
                        {
                        print " <a href=\"viewthread.php3?forum=$forum&threadid=";
                        echo $currentthread->getThreadId();
                        print "&page=$y\">$y</a> ";
                        }

                     print " ... ";

                     // Display links to last 3 pages
                     for ($y = ($numpages - 3); $y < $numpages; $y++)
                        {
                        print " <a href=\"viewthread.php3?forum=$forum&threadid=";
                        echo $currentthread->getThreadId();
                        print "&page=$y\">$y</a> ";
                        }
                     }
                  else
                     {
                     for ($y = 0; $y < $numpages; $y++)
                        {
                        print " <a href=\"viewthread.php3?forum=$forum&threadid=";
                        echo $currentthread->getThreadId();
                        print "&page=" . ($y + 1) . "\">" . ($y + 1) . "</a> ";
                        }
                     }
                  print "</small>";
                  }
               print "</td>\n";
               print "  <td bgcolor=\"#$secondary_tdbgcolor\" align=\"center\"><small>by ";

               $startedby = new Member($currentthread->getStartedBy());
               echo $startedby->getUsername();

               print " at ";
               echo date("H:i",$currentthread->getStartedOn());
               print " on ";
               echo date("j/n/Y",$currentthread->getStartedOn());
               print "</small></td>\n";
               print "  <td bgcolor=\"#$secondary_tdbgcolor\" align=\"center\">";
               echo $currentthread->getNumMessages();
               print "</td>\n";
               print "  <td bgcolor=\"#$secondary_tdbgcolor\" align=\"center\"><small>by ";

               $lastposter = new Member($currentthread->getLastPoster());
               echo $lastposter->getUsername();

               print " at ";
               echo $currentthread->getTimeOfLastPost("H:i");
               print " on ";
               echo $currentthread->getTimeOfLastPost("j/n/Y");
               print "</small></td>\n";
               print " </tr>\n";
               }
            }
         print " <tr>\n";
         print "  <td bgcolor=\"#$main_tdbgcolor\" colspan=\"6\"><font size=\"1\">&nbsp;</font></td>\n";
         print " </tr>\n";
         if ($currentforum->getNumThreads() > $maxthreadsonapage)
            {
            print " <tr>\n";
            print "  <td colspan=\"6\" align=\"right\">";
            print "<b>Page</b>: ";
            $numpages = ceil($currentforum->getNumThreads()/$maxthreadsonapage);
            for ($x = 0; $x < $numpages; $x++)
               {
               if ($page == ($x + 1))
                  {
                  echo ($x + 1);
                  print " ";
                  }
               else
                  {
                  print "<a href=\"viewforum.php3?forum=$forum&page=" . ($x + 1) . "\">" . ($x + 1) . "</a> ";
                  }
               }
            print "</td>\n";
            print " </tr>\n";
            }
         }
      else
         {
         print "<b>Error:</b> Thread index for &quot;" . $currentforum->getFullName() . "&quot; forum not found.  Please contact the <a href=\"mailto:$adminemail\">board administrator</a>.";
         }
      }
   else
      {
      print " <tr>\n";
      print "  <td>There are no messages to display.</td>";
      print " </tr>\n";
      }
   }
else
   {
   print " <tr>\n  <td>";
   echo $ab_error_msg;
   print "  </td>\n </tr>\n";
   }
?>
</table>
</div>


<p align="center"><small>Powered by alpha board version <?php echo $versionnum; ?>.<br>
&copy; <a href="http://www.tfountain.co.uk/">Tim Fountain</a>, 2000 - <?php echo $year ?>.</small></p>

<?php include("options/footer.txt"); ?>

</body>
</html>