#!/usr/local/bin/perl
#This program will show data to browser.
#It is designed for BookClub website.(Event1.html people1.txt)
#Written by Kung-Ming Fung at Yam Digital Technology Co.,Ltd..
#Date:1999/05/31

$DocRoot = "books/";
$Header = "header.html";
$Footer = "footer.html";

#######

print "Content-type: text/html\n\n";

open (IN,"<$Header") or die ("Can't open $Header.\n");
while (<IN>) { print; }
close (IN);

print << "END";
<blockquote>
<center>
<h2><font color="#a76fc0">罔讀網讀好書推薦</font></h2>
</center>
<p>
<font color="#1B4000" size=2>
　　給各位網讀愛書人的最佳獻禮
<p>
愛書的朋友有福了，看「好書到網讀」的時代已經來了！<br>
網讀罔讀讀書會在一周歲的的今天，推出大家期待已久的「好書推薦」，不論你是愛書人、出書人、借書人、還是印書人！只要你有好書想和大家分享，都歡迎你到這裡來！好東西和好朋友分享雖然已經流行很久，但卻仍然是不變的真理喔！<br>
還有一件事情要先說明白，「好書推薦」和「網讀主題書」並沒有什麼必然的關連！<br>
<p>
為了增加推薦的品質，因此網讀決定維持對於「推薦」的潔癖，所以在推薦的表格中，我們希望每個欄位都有確實的資料及你的高見！而每一筆資料也都將經過網讀工作人員的確定資料詳細無誤之後，才會刊登於網讀好書推薦！
</font>
<p>
END

&GetForm();

$StartNo = $WWWForm{"no"};

if (($StartNo eq "") || ($StartNo == 0)) { $StartNo = 1; }
 
#show result to browser

opendir (DOCROOT,$DocRoot);
@files = readdir (DOCROOT);
closedir (DOCROOT);

foreach $item (@files)
       {
        if ((!(-d $DocRoot.$item)) && ($item !~ /.usr/)) 
          {
           open (IN,"<$DocRoot$item.usr") or die ("Can't open file.\n");
           while (<IN>)
                {
                 chomp ($_);
                 ($key,$value) = split (/: /,$_);
                 $data{$key} = $value;
                } 
           if ($data{"Online"} eq "Y")
             {
              push (@filelist,$item); 
             }
          }
       }

@filelist = sort {$b <=> $a} (@filelist);
$TotalList = @filelist;
$EndNo = $StartNo + 9;
if ($EndNo > $TotalList) { $EndNo = $TotalList; }

#print "<p align=\"center\">\n";
#print "共有<b><font color=\"red\" size=+1>$TotalList</font></b>";
#print "筆，每頁<b><font color=\"red\" size=+1>10</font></b>筆留言\n";

print << "END";
<table border=0 align="center" bgcolor="#FFFFFF" cellpadding="6" cellspacing=5>
<tr>
<td align="center" bgcolor="#d7f4cd">
   <font color="#1B4000">書名</font></td>
<td align="center" bgcolor="#d7f4cd">
   <font color="#1B4000">出版社</font></td>
<td bgcolor="#d7f4cd" align="center">
   <font color="#1B4000">價格</font></td>
<td bgcolor="#d7f4cd" align="center">
   <font color="#1B4000">推薦人</font></td>
<td bgcolor="#d7f4cd" align="center">
   <font color="#1B4000">備註</font>
</td>
</tr>
END

$i=1;
foreach $item (@filelist)
       {
        if (($StartNo <= $i) && ($i <= $EndNo) )
          {
           $itemf = "$DocRoot$item.usr";
           open (DATA,"<$itemf");
           while (<DATA>)
                {
                 chomp ($_);
                 ($key,$value) = split (/: /,$_);
                 $UsrData{$key} = $value;
                }
           close (DATA);
           print "<tr>\n<td bgcolor=\"#d7f4cd\">";
#           $UsrData{"BookName"} = &AddBr ($UsrData{"BookName"},20);
           print "$UsrData{\"BookName\"}</td>\n";
           print "<td bgcolor=\"#d7f4cd\">";
#           $UsrData{"Publisher"} = &AddBr ($UsrData{"Publisher"},20);
           print "$UsrData{\"Publisher\"}</td>\n";
           print "<td bgcolor=\"#d7f4cd\">";
           print "$UsrData{\"BookCharge\"}</td>\n";
           print "<td bgcolor=\"#d7f4cd\">";
#           $UsrData{"UserName"} = &AddBr ($UsrData{"UserName"},10);
           print "$UsrData{\"UserName\"}</td>\n";
           print "<td bgcolor=\"#d7f4cd\" align=\"center\">";
           print "<a href=\"show.cgi?no=$item\"><font size=2>詳細<br>資料</font></a></td>\n";
           print "</tr>\n";
          }
        $i += 1;
       }

$OldNo = $StartNo;
$StartNo += 10;
if ($StartNo > $TotalList) { $StartNo = $OldNo; }
$StartNo1 = $StartNo - 20;
if ($StartNo1 <= 0) { $StartNo1 = 1; }

print "</table>\n";
print "<br>\n";
print "<table align='center' width=450>\n";
print "<tr>\n";
print "<td width=150>\n";
print "<a href=\"index.cgi?no=$StartNo1\"><font size=2>上10筆</font></a>\n";
print "</td>\n";
print "<td width=150>\n";
print "<a href=\"index.cgi?no=$StartNo\"><font size=2>下10筆</font></a>\n";
print "</td>\n";
print "<td width=150></td></tr>\n";
print "</tr>\n<tr>\n";
print "<td width=150>\n";
print "<a href=\"suggest.html\"><font size=2>我也要推薦</font></a>\n";
print "</td></tr>\n<tr>";
print "<td width=150>\n";
print "<a href=\"../index.html\"><font size=2>回罔讀首頁</font></a>\n";
print "</td>\n</tr>\n";
print "</table>\n";
print "</blockquote>\n";

open (IN,"<$Footer") or die ("Can't open $Footer.\n");
while (<IN>) { print; }
close (IN);

exit;

#end of program

#subroutine start

sub GetForm()
   {
    local ($fields,$name,$value,$data);
    $data = $ENV{"QUERY_STRING"};
    @fields = split (/&/,$data);

    foreach $item (@fields)
           {
            ($name,$value) = split (/=/,$item);
            $name = &UnEscapeString ($name);
            $value = &UnEscapeString ($value);
            $WWWForm{$name} = $value;
           }
   }

sub UnEscapeString ()
   {
    local($s) = $_[0];
    local($pos,$ascii);
    $s =~ s/\+//g;
    $pos = 0;
    while (($pos = index($s,"%",$pos)) != -1)
         {
          $ascii = hex(substr($s,$pos+1,2));
          substr ($s,$pos,3) = pack ("c",$ascii);
         }
    return $s;
   }

sub AddBr ()
   {
    local ($temp,$i,$len,$j,$Data,$Limit); 

    $Data = @_[0];
    $Limit = @_[1];
    
    $temp = "";
    $len = length($Data);

    if ($len <= $Limit) { return $Data; }

    for ($i=0;$i<$len;$i++)
       {
        for ($j=0;$j<$Limit;$j++)
           {
            $temp = $temp.substr($Data,$i,1);
            $i++;
            if ($i >= $len) { last; }
           }
        if ($i >= $len) { last; }
        $temp = $temp."<br>";
       }

    return $temp;
   }
