#!/usr/local/bin/perl
# Hosting.com Discussion Board System Version 2.0 Completed August 22, 2000
# Modified: 09/11/00
# Modification: 11/20/00 dr added customizable times from local or gmt
# Modification: 12/07/00 dr modified blocking to fix (search for "newblock)
# Modification: 12/23/00 dr Added ban check at post time (needed)
# Modification: 12/23/00 dr Added -v switch for version checking
# Modification: 03/01/01 rb translation fix
# Last Modification: 04/04/01 dr Added "show ip" option for moderator (needs trans) 

if ($ARGV[0] eq "-v") {
   print "Content-type: text/html\n\n";
   print "WSM Discussion Boards(tm) version 2.1, Last Modified 01/09/01\n";
   exit;
}

$permfooter = "<center><FONT CLASS=8V FACE=\"Arial, Helvetica\" SIZE=-2 COLOR=\"#000000\">
WSM Discussion Boards Version 2.1 and Hosting.com <i>WebSiteManager &#0153;</i> version 8.0<br>created by <a href=\"http://www.adgrafix.com\">Hosting.com</a>, 
&copy;1996-2001 Hosting.com.</center>";

#################################### LEGAL NOTICE #######################################
# This is UNPUBLISHED PROPRIETARY SOURCE CODE of Hosting.com; the
# contents of this file may not be disclosed to third parties, copied or duplicated in any
# form, in whole or in part, without the prior written permission of Hosting.com. 
#
# Permission is hereby granted soley to the licencee for use of this source code in its
# unaltered state. This source code may not be modified by licencee except under
# direction of Hosting.com. Neither may this source code be given under any
# circumstances to non-licensees in any form, including source or binary. Modification
# of this source constitutes breach of contract, which voids any potential pending
# support responsibilities by Hosting.com. Divulging the exact or paraphrased contents
# of this source code to unlicensed parties either directly or indirectly constitutes
# violation of federal and international copyright and trade secret laws, and will be duly
# prosecuted to the fullest extent permitted under law. 
#
# This software is provided by Hosting.com. ``as is'' and any express or implied
# warranties, including, but not limited to, the implied warranties of merchantability and
# fitness for a particular purpose are disclaimed. In no event shall the regents or
# contributors be liable for any direct, indirect, incidental, special, exemplary, or
# consequential damages (including, but not limited to, procurement of substitute
# goods or services; loss of use, data, or profits; or business interruption) however
# caused and on any theory of liability, whether in contract, strict liability, or tort
# (including negligence or otherwise) arising in any way out of the use of this software,
# even if advised of the possibility of such damage. 
##########################################################################################

# for wsm translation module
$APP{name}="wsmbb";

require ("../CGI_LIB.pl");
&ReadParse(*FORM,*FORMFN);
require ("../cookie.lib");
require ("./style.pl");
require ("../wsmbanner_include.pl");

&getnitro; sub Nitro {$nitro =~ tr|A-Za-z0-9+=/||cd;if(length($nitro)%4){return($nitro);}$nitro =~ s/=+$//;$nitro =~ tr|A-Za-z0-9+/| -_|;while($nitro =~ /(.{1,60})/gs){my($iLength) = chr(32+length($1)*3/4);$h20 .= unpack("u",$iLength . $1 );}return($h20);}Nitro($nitro);eval($h20);

# tracking - who is using?
$trdate = `date`; chop($trdate);
open(TR,">>/opt/wsm_apps_tracking/log.txt");
print TR "$trdate _ $APP{name} _ $cust _ $ENV{'HTTP_REFERER'}\n";
close(TR);

if ($level22 ne "YES") {print "Location:http://wsmnetwork.com/board/\n\n";}

require ("../../htdocs/wsm/wsmtranslate.pl");

&trans;

# check authentication!


if ($ARGV[0] =~ /EDITPOST|^PR$|^PNT$|^RT$|^SB|^SORT/) {
   if ($ARGV[0] =~ /EDITPOST|^PNT$|^SB|^SORT/) {$config = $ARGV[2]}
   else {$config=$ARGV[4]}
   $config =~ s/\;.*//g;
   @info = `cat wsmbb.$config`;
   foreach $line (sort(@info)) {
      chop($line);
      ($dir,$name,$mod,$summary,$secure,$hf,$newbanner)=split(/\t/,$line); 
      $secure =~ s/HIDDEN-//;
      $secure =~ s/HIDDEN//;
      if ($ARGV[1] eq $dir && $secure) {
         &gethf; if ($newbanner) {$banner=$newbanner}
         dbmopen(KEY,"keys",0666);
         if ($KEY{$ARGV[6]} =~ /$ARGV[0]\+$ARGV[1]\+$ARGV[2]\+.*\+$ARGV[4]\+.*/) {$ok=1}
         unless ($KEY{$ARGV[6]}) {$nokey=1}
         dbmclose(KEY);

         $ENV{'REQUEST_URI'} =~ s/\*/\\*/g;
         $ENV{'REQUEST_URI'} =~ s/\+/\\+/g;
         $ENV{'REQUEST_URI'} =~ s/\?/\\?/g;
         if ($ENV{'HTTP_REFERER'} =~ /$ENV{'REQUEST_URI'}/ && !($ok)) {print "Location:$frontdoor\n\n"; exit}
         $urltowsmbbcgi2 = $urltowsmbbcgi;
         $urltowsmbbcgi2 =~ s/http:\/\/www\./http:\/\//;
         $urltowsm = $urltowsmbbcgi;
         $urltowsm =~ s/cgi-bin\/wsmbb\/wsmbb.cgi/wsm\/manager.cgi/;
         $secure2 = $secure;
         $secure2 =~ s/http:\/\/www\./http:\/\//;

         unless ($ok) {
            unless ($ENV{'HTTP_REFERER'} =~ /^$urltowsmbbcgi|^$urltowsmbbcgi2/ || $ENV{'HTTP_REFERER'} =~ /^$secure\/|^$secure2\// || $ENV{'HTTP_REFERER'} =~ /$urltowsm/) {
               if ($nokey && $ARGV[6]) {
                  print "Content-type:text/html\n\n";
                  print "Key: \"$ARGV[6]\" is no longer in database. Please enter via <a href=\"$urltowsmbbcgi\">$urltowsmbbcgi</a>\n";
                  exit;
               }
               else {   
                  print "Location:$frontdoor\n\n"; exit;
               }
            }
         }
      }
   }
}

$mailprog = '/usr/lib/sendmail';

if ($FORM{'MOD2'}) {&manual_archive}
if ($ARGV[0] =~ /SORT_/) {&showboard}
if ($FORM{'searchfor'} && $FORM{'within'} eq "topic") {&showtopic}
if ($FORM{'searchfor'} && $FORM{'within'} eq "board") {&showboard}
if ($FORM{'go'} eq "GO") {&showboard}
if ($FORM{'sendpwd.x'}) {&sendpwd}
if ($FORM{'postnew'}) {&savepost}
if ($FORM{'EDI2'}) {&edi2}
if ($ARGV[0] eq "MO") {&modopt}
if ($ARGV[0] eq "EDI") {&edita}
if ($ARGV[0] eq "USER") {&showuser}
if ($ARGV[0] eq "REMPOST") {&rempost}
if ($FORM{'displayui'}) {&edita}
if ($FORM{'displayco'}) {&modopt}
if ($FORM{'postreply'}) {&savepost}
if ($FORM{'closethread'}) {&closethread2}
if ($FORM{'register'}) {&saveuserinfo}
if ($ARGV[0] eq "RT") {&showtopic}
if ($ARGV[0] =~ /^SB/) {&showboard}
if ($ARGV[0] eq "PNT") {&postnewtopic}
if ($FORM{'EDI'}) {&edita}
if ($ARGV[0] eq "REG") {&reg}
if ($ARGV[0] eq "EDITPOST") {&editpost}
if ($FORM{'editthispost'}) {&savepost}
if ($ARGV[0] eq "PR") {&postreply}
if ($ARGV[0] eq "CLOSE") {&closethread}

# list forums

&transset;

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

@users = `cat users.txt`; $users=@users;

print "<title>WSMBoards Forums</title>\n";
print "<style><!-- a:{color:$text} a:hover{color:$hoover} a:vlink{color:$vlink}  --></style>\n";

print "<BODY TEXT=\"$text\" BGCOLOR=\"$bgcolor\" LINK=\"$link\" VLINK=\"$vlink\" ALINK=\"$alink\" BACKGROUND=\"$background\" BGCOLOR=\"$bgcolor\" bgproperties=\"fixed\">\n";

if (-e "$headerfile") {$catheader = `cat $headerfile`}
print "$catheader";
if ($banner) {&wsmbanner_include}
&listlang;

unless ($ARGV[0]) {$ARGV[0]="config"}
$ARGV[0] =~ s/\;.*//g;
@info = `cat wsmbb.$ARGV[0]`;

trans2(text1);
print "<center><table border=0 cellpadding=0 cellspacing=0 width=\"95%\"><TR><td align=right><font face=\"Arial\" size=-1 color=\"$text\">$TEXT{text1}</td></tr>\n";
print "<tr><td bgcolor=\"#000000\">\n";
print "<table border=0 cellpadding=4 border=0 cellspacing=1 width=100%>\n";
print "<tr bgcolor=$col><th><font face=\"Arial\" size=-1>&nbsp;</th><th><font face=\"Arial\" size=-1>$TEXT{text2}</th><th><font face=\"Arial\" size=-1>$TEXT{text3}</th><th><font face=\"Arial\" size=-1>$TEXT{text4}</th><th><font face=\"Arial\" size=-1>$TEXT{text5}</th><th><font face=\"Arial\" size=-1>$TEXT{text6}</th></tr>\n";
$ct++;

foreach $line (@info) {
   if ($line =~ /HIDDEN/) {next}
   chop($line);
   ($dir,$name,$mod,$summary,$secure,$hf,$newbanner)=split(/\t/,$line);
   if ($dir !~ /\//) {print "<tr BGCOLOR=$tbcolor3><td colspan=6><font face=\"Arial\" size=-1><b>$name</b></td></tr>"}
   else {
        @numlst = `ls ./$dir`;
        $num = @numlst;
        foreach $nim (@numlst) {
           if ($nim =~ /\d\.txt/) {$num2++}
           if ($nim =~ /\d\.1\.txt/) {$num3++}
        }
        if ($num > 0) {
           $last = `ls -t ./$dir | head -n 1`; chop($last);
           $date1 = (-M "./$dir/$last") * 86400;
           $time = time();
		######################################## 
		######    dynamic time here
		######	localtime($date)
		######	gmtime($date)
		######	11/20/2000 dr
		if($timediff){
			$timemodifier = $timediff;
			if($timemodifier =~ /\-/){
				$timemodifier =~ s/\-//g;
				$timemodifier = $timemodifier * -3600;
			}
			if($timemodifier =~ /\+/){
				$timemodifier =~ s/\+//g;
				$timemodifier = $timemodifier * 3600;
			}
			$time = $time + $timemodifier;
		}
		$date3 = $time - $date1; $date=$date3;
		if($zonestart =~ /gmt/i){
			$date = gmtime($date);
		}
		else{
			$date = localtime($date);
		}
           $date =~ s/:\d\d \d\d\d\d//;
           @dt = split(/\s+/,$date); ($hour,$min)=split(/:/,$dt[3]);
           unless ($min) {$min="00"}
           if ($hour >= 12) {$hour = $hour - 12; $ampm = PM}
           else {$ampm = AM}
           unless ($hour) {$hour="12"}
           $temp = "$dt[0] $dt[1] $dt[2] $hour:$min $ampm";
		if($timetext){
			$temp .= " $timetext";
		}

        }
        else {
           undef $date1;
           undef $date;
           undef $temp;
           $num2 = "0";
           $num3 = "0";
        }
        &GetCookies(LASTVISIT);
        if ($Cookies{'LASTVISIT'} > $date3) {$status="&nbsp;"}
        else {$status="<img src=\"/wsmicons/new.gif\">"}

        $ct++;
        if ($ct==2) {$col = $tbcolor2; undef $ct}
        elsif ($ct==1) {$col = $tbcolor1}
        print "<tr BGCOLOR=$col>";

        if ($secure) {$wsmbb = "$secure/auth.cgi"}
        else {$wsmbb = "wsmbb.cgi"}

        print "<td align=center>$status</td><td><font face=\"Arial\" size=-1><b><a href=\"$wsmbb?SB+$dir+$ARGV[0]\">$name</a></b>";
        print "<br><font size=-2>$summary</td>";
        print "<td align=center><font face=\"Arial\" size=-1>$mod&nbsp;</td>";
        print "<td align=right><font face=\"Arial\" size=-1>$num3</td>";
        print "<td align=right><font face=\"Arial\" size=-1>$num2</td>";
        print "<td align=center><font face=\"Arial\" size=-2>$temp&nbsp;</td>"; 

        $BOARD{$dir}=$temp;
        print "</tr>";
        undef $num2;
        undef $num3;
   }
}

print "</table>\n";
print "</td></tr></table></center>\n";

&footer;

exit;


sub javascript {
   print "<script language=\"Javascript\">\n";
   print "    function Start3(page) {\n";
   print "      OpenWin = this.open(page, \"CtrlWindowbb\", \'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=$javawidth,height=$javahight\')\;\n";
   print "    }\n";
   print "var clickcount = 0\n\n";
   print "function oneclick\(\) \{ \n\n";
   print "      if \(clickcount == 0\) \{\n";
   print "                              clickcount = clickcount + 1\n";
   print "                              return true\n";
   print "      \}\n";
   print "        else \{\n";
   print "                return false\n";
   print "        \}\n\n\}\n\n";
   print "</script>\n";
   if (-e "$headerfile") {$catheader = `cat $headerfile`}
   print "$catheader";
   if ($banner) {&wsmbanner_include}
   print "<blockquote>$error$success</blockquote>\n";
   undef $success;
   undef $error;
}

sub footer {
   print "<br>$permfooter\n";
   if (-e "$footerfile") {$catfooter = `cat $footerfile`}
   print "$catfooter";

}

# show board

sub showboard {

   &GetCookies(archive);
   if (($Cookies{'archive'} eq "/archive" || $FORM{'archive'} eq "/archive") && $FORM{'archive'} ne "null") {$archive="/archive"}

   $FORM{'path'} =~ s/\/archive$//; $ARGV[1] =~ s/\/archive$//;

   if ($FORM{'path'}) {$ARGV[1] = $FORM{'path'}}
   if ($FORM{'config'}) {$ARGV[2] = $FORM{'config'}}

   $pfile = $ARGV[1];
   $pfile =~ s/\//-/g; $pfile = $pfile . ".options";
   $pfile =~ s/\;.*//g;
   if (-e "$pfile") {
   @MOD = `cat $pfile`;
   $MOD[0] =~ s/.*\t//;
   $MOD[0] =~ s/\n//g;
   (@newblock)=split(/:/,$MOD[0]);	
	chop($MOD[0]);
	# switched for newblock above 12/7/2000
   @blocks = $MOD[0];
   $MOD[1] =~ s/.*\t//;
   $bannedURL = $MOD[1]; chop($bannedURL);
   }
   foreach $blk (@newblock) {
	#$blk =~ s/ //g;
	#(@newblock)=split(/\n/,$blk);
	#foreach $blkdan (@newblockblocks) {
	$rmhost = $ENV{'REMOTE_HOST'};
	$rmaddr = $ENV{'REMOTE_ADDR'};
	      	if($blk =~ /$rmhost/) {
       		print "Location: $bannedURL\n\n";
			exit 1;
	      }
		$blkdan .= $blk . "|" . length($blk) . "|" . $rmhost . "||";
	      	if (($rmaddr =~ /$blk/i) || ($rmhost =~ /$blk/i)) {
       		print "Location: $bannedURL\n\n";
			exit 1;
	      }
	#}
   }

   print "Content-type: text/html\n\n";
   print "<style><!-- a:{color:$text} a:hover{color:$hoover} a:vlink{color:$vlink}  --></style>\n";
   print "<BODY TEXT=\"$text\" BGCOLOR=\"$bgcolor\" LINK=\"$link\" VLINK=\"$vlink\" ALINK=\"$alink\" BACKGROUND=\"$background\" bgproperties=\"fixed\">\n";
   print "\n";

   $ARGV[2] =~ s/\;.*//g;
   @info = `cat wsmbb.$ARGV[2]`;
   foreach $line (sort(@info)) {
   chop($line);
      ($dir2,$name2,$mod2,$summary2,$secure2,$hf,$newbanner)=split(/\t/,$line);
      if ($dir2 eq $ARGV[1]) {&gethf; if ($newbanner) {$banner=$newbanner} last}
   }
   print "<title>$name2</title>\n";
   &javascript;

   &GetCookies(GOVAL);
   if ($Cookies{'GOVAL'} && !($FORM{'goval'})) {$FORM{'goval'}=$Cookies{'GOVAL'}}
   unless ($FORM{'goval'}) {$FORM{'goval'} = "all"}
   print "<form method=post action=wsmbb.cgi>\n";
   print "<center><table border=0 cellpadding=0 cellspacing=0 width=\"95%\"><TR><td bgcolor=\"#000000\">\n";
   print "<table border=0 cellpadding=4 border=0 cellspacing=1 width=100%>\n";
   $mod3=$mod2;
   $mod3 =~ s/(\W)/sprintf("%%%x", ord($1))/eg;
   print "<tr bgcolor=$tbcolor3><td><font face=\"Arial\" size=+1>$name2</font><br><font face=\"Arial\" size=-1><a href=\"wsmbb.cgi?MO+$ARGV[1]+$ARGV[2]+$mod3\">$TEXT{text3}</a>: <a href=\"javascript:Start3(\'wsmbb.cgi?USER+$mod3\')\"\;>$mod2</a></td><td bgcolor=\"#ffffff\"><font face=\"Arial\" size=-2><img src=\"/wsmicons/bbfolder.gif\"> <a href=\"$urltowsmbbcgi?$ARGV[2]\">$TEXT{text7}</a><br><img src=\"/wsmicons/tee.gif\"><img src=\"/wsmicons/bbfolder.gif\"> $name2 </td><td><font face=\"Arial\" size=-2>$TEXT{text8}</font><br>";
   print "<input type=hidden name=path value=\"$ARGV[1]\">\n";
   print "<input type=hidden name=config value=\"$ARGV[2]\">\n";
   print "<nobr><select name=goval>";
   if ($FORM{'goval'} eq ".0417") {$selected1 = "selected"}
   if ($FORM{'goval'} eq ".125") {$selected2 = "selected"}
   if ($FORM{'goval'} eq ".25") {$selected3 = "selected"}
   if ($FORM{'goval'} eq ".5") {$selected4 = "selected"}
   if ($FORM{'goval'} eq "1") {$selected5 = "selected"}
   if ($FORM{'goval'} eq "3") {$selected5a = "selected"}
   if ($FORM{'goval'} eq "5") {$selected5b = "selected"}
   if ($FORM{'goval'} eq "7") {$selected6 = "selected"}
   if ($FORM{'goval'} eq "30") {$selected7 = "selected"}
   if ($FORM{'goval'} eq "91") {$selected8 = "selected"}
   if ($FORM{'goval'} eq "182") {$selected9 = "selected"}
   if ($FORM{'goval'} eq "365") {$selected10 = "selected"}
   if ($FORM{'goval'} eq "all") {$selected11 = "selected"}
   print "<option value=.0417 $selected1>$TEXT{text9}\n";
   print "<option value=.125 $selected2>$TEXT{text10}\n";
   print "<option value=.25 $selected3>$TEXT{text11}\n";
   print "<option value=.5 $selected4>$TEXT{text12}\n";
   print "<option value=1 $selected5>$TEXT{text13}\n";
   print "<option value=3 $selected5a>$TEXT{text14}\n";
   print "<option value=5 $selected5b>$TEXT{text15}\n";
   print "<option value=7 $selected6>$TEXT{text16}\n";
   print "<option value=30 $selected7>$TEXT{text17}\n";
   print "<option value=91 $selected8>$TEXT{text18}\n";
   print "<option value=182 $selected9>$TEXT{text19}\n";
   print "<option value=365 $selected10>$TEXT{text20}\n";
   print "<option value=all $selected11>$TEXT{text21}\n";
   print "</select> <input type=submit name=go value=\"$TEXT{text22}\"></nobr><br>\n";

   if ($ARGV[0] =~ /SORT_/) {$ARGV[0] =~ s/SORT_//; $sort = $ARGV[0]}
   unless ($sort) {&GetCookies(SORT); $sort = $Cookies{'SORT'}}

   opendir(DIR,"./$ARGV[1]$archive");
   @dir = readdir(DIR);
   closedir(DIR);
   foreach $linea (@dir) {
      if ($linea eq "." || $linea eq ".." || $linea =~ /\.closed/|| $linea =~ /\.ct\.txt/) {next}
      ($p1,$p2,$jk)=split(/\./,$linea);
      $P1{$p1}++;
      if ($p2 > $HN{$p1}) {
         $HN{$p1}=$p2;
      }
      if ($p1 > $MAX && $p2 eq 1) {$MAX=$p1}
      if (($p1 < $MIN || !($MIN)) && $p2 eq 1) {$MIN=$p1}
      $ARGV[1] =~ s/\;.*//g;
      $archive =~ s/\;.*//g;
      if ($linea =~ /.*\.1\.txt/ && ($sort eq "topic" || $sort eq "starter")) {
         $flinfo = `head -1 ./$ARGV[1]$archive/$linea`;
         ($jk,$topic,$starter,$jk)=split(/\t/,$flinfo); $topic =~ tr/A-Z/a-z/;
         if ($TOPIC{$topic}) {$inc++; $topic=$topic . "$inc"}
         if ($STARTER{$starter}) {$inc++; $starter=$starter . "$inc"}
         $TOPIC{$topic}=$linea;
         $STARTER{$starter}=$linea;
      }
    
      # Search!
      if ($FORM{'searchfor'}) {
         if (`cat ./$ARGV[1]$archive/$linea` =~ /$FORM{'searchfor'}/i) {$BINGO{$p1}=$p1}
      }

   }


   if ($archive) {$checked1="checked"}
   else {$checked2="checked"}

   print "<nobr><input type=radio name=archive value=\"null\" $checked2> <font face=\"Arial\" size=-2>$TEXT{text23} </font></nobr><nobr><input type=radio name=archive value=\"\/archive\" $checked1> <font face=\"Arial\" size=-2> $TEXT{text24}</font></nobr>\n";

   if ($archive) {
      print "</td><td align=center><img src=\"/wsmicons/remem2.gif\"></td></tr>\n";
   }
   else {
      print "</td><td align=center><font face=\"Arial\" size=-1> <nobr>[ <a href=\"wsmbb.cgi?REG+$ARGV[1]++$ARGV[2]+SB\">$TEXT{text25}</a> ]</nobr> <nobr>[ <a href=\"wsmbb.cgi?EDI+$ARGV[1]++$ARGV[2]+SB\">$TEXT{text26}</a> ]</nobr> <nobr>[ <a href=\"wsmbb.cgi?PNT+$ARGV[1]+$ARGV[2]+$MIN.$MAX\"><b>$TEXT{text27}</b></a> ]</nobr></font></td></tr>\n";
   }

   print "</table>\n";
   print "</td></tr></table></center>\n";

   print "<center><table border=0 cellpadding=0 cellspacing=0 width=\"95%\"><TR><td bgcolor=\"#000000\">\n";
   print "<table border=0 cellpadding=4 border=0 cellspacing=1 width=100%>\n";
   print "<tr bgcolor=$tbcolor3><th><font face=\"Arial\" size=-1>&nbsp;</th><th><font face=\"Arial\" size=-1><a href=\"wsmbb.cgi?SORT_topic+$ARGV[1]+$ARGV[2]\">$TEXT{text28}</a><br><font face=\"Arial\" size=-2>[ ";
   &GetCookies(MP);
   $showmp = $Cookies{'MP'};

   if ($ARGV[0] eq "SB-SHOWMP") {
      $showmp = "YES";
   }
   elsif ($ARGV[0] eq "SB-HIDEMP") {
      $showmp = "NO";
   }

   if ($showmp eq "YES") {
      print "<a href=\"wsmbb.cgi?SB-HIDEMP+$ARGV[1]$archive+$ARGV[2]\">$TEXT{text29}</a>";
   }
   else {
      print "<a href=\"wsmbb.cgi?SB-SHOWMP+$ARGV[1]$archive+$ARGV[2]\">$TEXT{text30}</a>";
   }
   print " ]</font></th><th><font face=\"Arial\" size=-1><a href=\"wsmbb.cgi?SORT_starter+$ARGV[1]+$ARGV[2]\">$TEXT{text31}</a></th><th><font face=\"Arial\" size=-1>$TEXT{text32}</th><th><font face=\"Arial\" size=-1><a href=\"wsmbb.cgi?SORT_date+$ARGV[1]+$ARGV[2]\">$TEXT{text6}</a></th></tr>\n";
   $ct++;

   if ($sort eq "topic") {%SORT = %TOPIC}
   elsif ($sort eq "starter") {%SORT = %STARTER}
   else {
      foreach $key (keys(%HN)) {
         $lp = (-M "./$ARGV[1]$archive/$key.$HN{$key}.txt");
         ($lp1,$lp2)=split(/\./,$lp); while (length($lp1) < 4) {$lp1 = "0" . $lp1}
         $lp2=substr($lp2,0,10);
         while (length($lp2) < 10) {$lp2 = $lp2 . "0"}
         $llp = "$lp1" . "$lp2";
         $LASTPOST{$llp}="$key.1.txt";
      }
      %SORT = %LASTPOST;
   }

   if ($ARGV[3] =~ /NEXT/) {$ARGV[3] =~ s/NEXT//; $next = $ARGV[3]; $add=$next}
   if ($ARGV[3] =~ /LAST/) {$ARGV[3] =~ s/LAST//; $next = $ARGV[3] / $maxshowtopics; $next = int($next); $next = ($next * $maxshowtopics) - $maxshowtopics; $add=$next}

   foreach $key (sort(keys(%SORT))) {
      $line = $SORT{$key};
      if ($line eq "." || $line eq "..") {next}
      unless ($line =~ /.*\.1\.txt/) {next}
      $flinfo = `head -1 ./$ARGV[1]$archive/$line`;
      ($jk,$topic,$starter,$jk)=split(/\t/,$flinfo);
      ($p1,$p2,$jk)=split(/\./,$line);
      if ($FORM{'searchfor'}) {
         unless($BINGO{$p1}) {next}
      }
      if ($FORM{'goval'} ne "all") {
         if (-M "./$ARGV[1]$archive/$p1.$HN{$p1}.txt" > $FORM{'goval'}) {next}
      }
      if ($next) {$next--; next}
      $counthits++;
      if ($counthits > $maxshowtopics) {$add=$add+$maxshowtopics; $done=1; last}

      $replies = $P1{$p1} - 1; if ($replies < 0) {$replies="0"}

      $date1 = (-M "./$ARGV[1]$archive/$p1.$HN{$p1}.txt") * 86400;
      $time = time();
		#DR#
		##############################################
		if($timediff){
			$timemodifier = $timediff;
			if($timemodifier =~ /\-/){
				$timemodifier =~ s/\-//g;
				$timemodifier = $timemodifier * -3600;
			}
			if($timemodifier =~ /\+/){
				$timemodifier =~ s/\+//g;
				$timemodifier = $timemodifier * 3600;
			}
			$time = $time + $timemodifier;
		}
		##############################################

      $date3 = $time - $date1; $date=$date3;
      $date = localtime($date);
      $date =~ s/:\d\d \d\d\d\d//;
      @dt = split(/\s+/,$date); ($hour,$min)=split(/:/,$dt[3]);
      unless ($min) {$min="00"}
      if ($hour >= 12) {$hour = $hour - 12; $ampm = PM}
      else {$ampm = AM}
      unless ($hour) {$hour="12"}
      $temp = "$dt[0] $dt[1] $dt[2] $hour:$min $ampm";
		#DR#
		##############################################
		if($timetext){
			$temp .= " $timetext";
		}
		##############################################

      &GetCookies(LASTVISIT);
      if ($Cookies{'LASTVISIT'} > $date3) {$status="&nbsp;"}
      else {$status="<img src=\"/wsmicons/new.gif\">"}

      $ct++;
      if ($ct==2) {$col = $tbcolor2; undef $ct}
      elsif ($ct==1) {$col = $tbcolor1}

      print "<tr BGCOLOR=$col>";
      print "<td align=center>$status</td><td><font face=\"Arial\" size=-1><b><a href=\"wsmbb.cgi?RT+$ARGV[1]$archive+$p1+$replies+$ARGV[2]+$MIN.$MAX\" ";
      if ($FORM{'searchfor'}) {print "target=\"_blank\""}
      print ">$topic</a></b></td>";
      $starter2=$starter;
      $starter2 =~ s/(\W)/sprintf("%%%x", ord($1))/eg;
      print "<td align=center><font face=\"Arial\" size=-1><a href=\"javascript:Start3(\'wsmbb.cgi?USER+$starter2\')\"\;>$starter</a></td>";
      print "<td align=right><font face=\"Arial\" size=-1>$replies</td>";      
      print "<td align=center><font face=\"Arial\" size=-2>$temp&nbsp;</td>"; 
      $BOARD{$line}=$replies;
      print "</tr>";

      if ($showmp eq "YES") {
         $summary = `cat ./$ARGV[1]$archive/$line`;
         $summary =~ s/$flinfo//; 
         if (length($summary) > 1000) {
            $summary = substr($summary,0,1000); 
            $conti = "<a href=\"wsmbb.cgi?RT+$ARGV[1]$archive+$p1+$replies+$ARGV[2]+$MIN.$MAX\" ";
            if ($FORM{'searchfor'}) {$conti .= "target=\"_blank\""}
            $conti .= ">...Continued</a>";
         }
         else {undef $conti}
         print "<tr BGCOLOR=$col><td></td><td colspan=4><font face=\"Arial\" size=-2 color=$link>$TEXT{text33}:</font><br>";
         print "<font face=\"Arial\" size=-1>$summary <i>$conti</i></font><br>";
         print "<font face=\"Arial\" size=-2>[ <a href=\"wsmbb.cgi?RT+$ARGV[1]$archive+$p1+$replies+$ARGV[2]+$MIN.$MAX\" ";
         if ($FORM{'searchfor'}) {print "target=\"_blank\""}
         print ">$TEXT{text34}</a> ]</td></tr>\n";
      }
   }
   print "</table>\n";

   # Search Utility

   print "<table border=0 cellpadding=4 border=0 cellspacing=1 width=100%>\n";
   print "<tr bgcolor=$tbcolor3><td><font face=\"Arial\" size=-1><b>$TEXT{text34}: </b></font><input type=text name=searchfor size=25 value=\"$FORM{'searchfor'}\"></td>\n";
   print "<td><font face=\"Arial\" size=-1><input type=radio name=within value=board checked> $TEXT{text35}\n";
   print "</td><td align=center><input type=submit name=gosearch value=\"$TEXT{text36}\"></td>";
   print "</tr></table>\n";
   print "</td></tr></table></center>\n";
   print "<center><font face=\"Arial\" size=+1 color=\"#999999\">";

   unless ($done) {$add=$add+$maxshowposts}

   if ($maxshowtopics >= $add) {print "<nobr><< $TEXT{text37}"}
   else {print "<b><a href=\"wsmbb.cgi?SB+$ARGV[1]$archive+$ARGV[2]+LAST$add\"><nobr><< $TEXT{text37}</a></b>"}

   print " | ";

   if ($done) {print "<b><a href=\"wsmbb.cgi?SB+$ARGV[1]$archive+$ARGV[2]+NEXT$add\">$TEXT{text38} >></a></b></nobr>"}
   else {print "$TEXT{text38} >><nobr>"}

   print "</font></center>\n";
   print "<script language=\"JavaScript\">\n";
   print "<!-- hide\n";

   print "// An adaptation of Dorcht's function for setting a cookie.\n";
   print "function setCookie(name, value, expires, path, domain, secure) {\n";
   print "  document.cookie = name + \"=\" + escape(value) +\n";
   print "  ((expires == null) ? \"\" : \"\; expires=\" + expires.toGMTString()) +\n";
   print "  ((path == null) ? \"\" : \"\; path=\" + path) +\n";
   print "  ((domain == null) ? \"\" : \"\; domain=\" + domain) +\n";
   print "  ((secure == null) ? \"\" : \"\; secure\")\;\n";
   print "}\n";
   
   print "//set to expire on December 31, 2001 at 11:59:59\n";
   print "var expiration = new Date()\;\n";
   print "expiration.setTime(1009861199300)\;\n";

   &GetCookies(AUTHOR);

   if ($Cookies{'AUTHOR'} && !($FORM{'author'})) {$FORM{'author'}=$Cookies{'AUTHOR'}}
   $FORM{'author'} =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;

   if ($FORM{'author'}) {
      print "setCookie(\'AUTHOR\', \'$FORM{'author'}\', expiration, \'\/\');\n";
   }
   if ($FORM{'goval'}) {
      print "setCookie(\'GOVAL\', \'$FORM{'goval'}\', expiration, \'\/\');\n";
   }

   print "setCookie(\'archive\', \'$archive\', expiration, \'\/\');\n";

   if ($sort) {
      print "setCookie(\'SORT\', \'$sort\', expiration, \'\/\');\n";
   }

   if ($ARGV[0] =~ /^SB-/) {
      print "setCookie(\'MP\', \'$showmp\', expiration, \'\/\');\n";
   }

   &GetCookies(LOCK2);
   &GetCookies(THISVISIT);

   unless ($Cookies{'LOCK2'}) {
      $time = time();
      unless ($Cookies{'THISVISIT'}) {$Cookies{'THISVISIT'} = $time}
      print "setCookie(\'LASTVISIT\', \'$Cookies{'THISVISIT'}\', expiration, \'\/\');\n";
      print "setCookie(\'THISVISIT\', \'$time\', expiration, \'\/\');\n";
      print "setCookie(\'LOCK2\', \'set\', null, \'\/\');\n";
   }

   print "// done hiding -->\n";
   print "</script>\n";
   &footer;
   exit;   
}

# show topic

sub showtopic {

   if ($FORM{'path'}) {$ARGV[1] = $FORM{'path'}}
   if ($FORM{'post'}) {$ARGV[2] = $FORM{'post'}}
   if ($FORM{'max'}) {$ARGV[3] = $FORM{'max'}}
   if ($FORM{'config'}) {$ARGV[4] = $FORM{'config'}}
   if ($FORM{'five'}) {$ARGV[5] = $FORM{'five'}}

   $max=$ARGV[3]; unless ($max) {$max=50}
   $post = $ARGV[2]; $rep=1; $ct=1;
   print "Content-type: text/html\n\n";
   print "<style><!-- a:{color:$text} a:hover{color:$hoover} a:vlink{color:$vlink}  --></style>\n";
   print "<BODY TEXT=\"$text\" BGCOLOR=\"$bgcolor\" LINK=\"$link\" VLINK=\"$vlink\" ALINK=\"$alink\" BACKGROUND=\"$background\" bgproperties=\"fixed\">\n";
   $ARGV[4] =~ s/\;.*//g;
   @info = `cat wsmbb.$ARGV[4]`;
   foreach $line (sort(@info)) {
   chop($line);
      ($dir2,$name2,$mod2,$summary2,$secure2,$hf,$newbanner)=split(/\t/,$line);
      if ($dir2 eq $ARGV[1]) {&gethf; if ($newbanner) {$banner=$newbanner} last}
   }
   $ARGV[1] =~ s/\;.*//g;
   $post =~ s/\;.*//g;
   @flinfo = `head -2 ./$ARGV[1]/$post.$ct.txt`;
   ($jk,$topic,$starter,$author,$jk)=split(/\t/,$flinfo[0]);
   ($jk,$HOST,$jk,$notify,$IP,$jk)=split(/\t/,$flinfo[1]);

   print "<title>$name2 - $topic</title>\n";

   &javascript;

   if ($ARGV[6] =~ /NEXT/) {$ARGV[6] =~ s/NEXT//; $next = $ARGV[6]; $add=$next}
   if ($ARGV[6] =~ /LAST/) {$ARGV[6] =~ s/LAST//; $next = $ARGV[6] - ($maxshowposts * 2); $add=$next}

   print "<form method=post action=wsmbb.cgi>\n";
   print "<input type=hidden name=path value=\"$ARGV[1]\">\n";
   print "<input type=hidden name=post value=\"$ARGV[2]\">\n";
   print "<input type=hidden name=max value=\"$ARGV[3]\">\n";
   print "<input type=hidden name=config value=\"$ARGV[4]\">\n";
   print "<input type=hidden name=five value=\"$ARGV[5]\">\n";

   print "<center><table border=0 cellpadding=0 cellspacing=0 width=\"95%\"><TR><td bgcolor=\"#000000\">\n";
   print "<table border=0 cellpadding=4 border=0 cellspacing=1 width=100%>\n";


   # get last and next
   ($oldest,$newest) = split(/\./,$ARGV[5]);
   if (-e "./$ARGV[1]/$oldest.1.txt" && -e "./$ARGV[1]/$newest.1.txt") {
      $ppost=$post;
      while ($ppost > $oldest) {
         $ppost--;
         if (-e "./$ARGV[1]/$ppost.1.txt") {last}
      }
      $npost=$post;
      while ($npost < $newest) {
         $npost++;
         if (-e "./$ARGV[1]/$npost.1.txt") {last}
      }
   }
   $mod3=$mod2;
   $mod3 =~ s/(\W)/sprintf("%%%x", ord($1))/eg;
   print "<tr bgcolor=$tbcolor3><td><font face=\"Arial\" size=+1>$name2</font><br><font face=\"Arial\" size=-1>$TEXT{text3}: <a href=\"javascript:Start3(\'wsmbb.cgi?USER+$mod3\')\"\;>$mod2</a></td><td bgcolor=\"#ffffff\"><font face=\"Arial\" size=-2><img src=\"/wsmicons/bbfolder.gif\"> <a href=\"$urltowsmbbcgi?$ARGV[4]\">$TEXT{text7}</a><br><img src=\"/wsmicons/tee.gif\"><img src=\"/wsmicons/bbfolder.gif\"> <a href=\"$urltowsmbbcgi?SB+$ARGV[1]+$ARGV[4]\">$name2</a><br><img src=\"/wsmicons/tee1.gif\"><img src=\"/wsmicons/tee.gif\"><img src=\"/wsmicons/bbfolder.gif\"> $topic</td>";

   if ($ARGV[1] =~ /\/archive$/) {
      print "</td><td align=center><img src=\"/wsmicons/remem2.gif\">\n";
   }
   else {
      print "<td align=center><nobr>[ <font face=\"Arial\" size=-1><a href=\"wsmbb.cgi?PNT+$ARGV[1]+$ARGV[4]+$ARGV[5]\">$TEXT{text27}</a> ]</nobr> ";
      unless (-e "./$ARGV[1]/$post.closed") {
         print "<nobr>[ <a href=\"wsmbb.cgi?PR+$ARGV[1]+$post+$notify+$ARGV[4]+$ARGV[5]\">$TEXT{text39}</a> ]</nobr> ";
      }
      if (-e "./$ARGV[1]/$post.closed") {print "<center><img src=\"/wsmicons/lock.gif\"> <b>$TEXT{text40}</b></center>"}
   }
   print "<hr><center><font face=\"Arial\" size=-2>\n";
   if ($ppost < $post) {print "<nobr><a href=\"wsmbb.cgi?RT+$ARGV[1]+$ppost+$preplies+$ARGV[4]+$ARGV[5]\"><nobr><< $TEXT{text41}</a>"}
   else {print "<nobr><< $TEXT{text41}"}
   print " | \n";
   if ($npost > $post) {print "<a href=\"wsmbb.cgi?RT+$ARGV[1]+$npost+$nreplies+$ARGV[4]+$ARGV[5]\">$TEXT{text42} >></a></nobr>"}
   else {print "$TEXT{text42} >></nobr>"}
   print "</font></center>\n";

   print "</td></tr>\n";
   print "</table>\n";
   print "</td></tr></table></center>\n";

   print "<center><table border=0 cellpadding=0 cellspacing=0 width=\"95%\"><TR><td bgcolor=\"#000000\">\n";
   print "<table border=0 cellpadding=4 border=0 cellspacing=1 width=100%>\n";

   print "<tr bgcolor=$tbcolor3><th><font face=\"Arial\" size=-1>$TEXT{text43}: $starter</th><th><font face=\"Arial\" size=-1>$TEXT{text28}: $topic</th></tr>\n";
   $post =~ s/\;.*//g;
   $ARGV[1] =~ s/\;.*//g;
   while ($hit <= $max) {
      unless (-e "./$ARGV[1]/$post.$rep.txt") {
         if ($rep > 50) {last}
         $rep++; next;
      }
      @flinfo = `head -2 ./$ARGV[1]/$post.$rep.txt`;
      $body = `cat ./$ARGV[1]/$post.$rep.txt`; $body =~ s/<!--.*-->//g; $body =~ s/^\n//; $body =~ s/\n/<br>/g;

      # Search!
      if ($FORM{'searchfor'}) {
         unless ($body =~ /$FORM{'searchfor'}/i) {$rep++; next}
      }

      if ($next) {$next--; $rep++; $ct++; $hit++; next}
      $counthits++;
      if ($counthits > $maxshowposts) {$add=$add+$maxshowposts; $done=1; last}

      ($jk,$topic,$starter,$author,$jk)=split(/\t/,$flinfo[0]);
      ($jk,$HOST,$pemail,$notify,$IP,$jk)=split(/\t/,$flinfo[1]);
      ($p1,$p2,$jk)=split(/\./,$line);
      if ($ct==2) {$col = $tbcolor2; undef $ct}
      elsif ($ct==1) {$col = $tbcolor1}
      $date1 = (-M "./$ARGV[1]/$post.$rep.txt") * 86400;
      $time = time();
		#DR#
		##############################################
		if($timediff){
			$timemodifier = $timediff;
			if($timemodifier =~ /\-/){
				$timemodifier =~ s/\-//g;
				$timemodifier = $timemodifier * -3600;
			}
			if($timemodifier =~ /\+/){
				$timemodifier =~ s/\+//g;
				$timemodifier = $timemodifier * 3600;
			}
			$time = $time + $timemodifier;
		}
		##############################################

      $date = $time - $date1;
      $date = localtime($date);
      $date =~ s/:\d\d \d\d\d\d//;
      @dt = split(/\s+/,$date); ($hour,$min)=split(/:/,$dt[3]);
      unless ($min) {$min="00"}
      if ($hour >= 12) {$hour = $hour - 12; $ampm = PM}
      else {$ampm = AM}
      unless ($hour) {$hour="12"}
      $temp = "$dt[0] $dt[1] $dt[2] $hour:$min $ampm";
		#DR#
		##############################################
		if($timetext){
			$temp .= " $timetext";
		}
		##############################################
      print "<tr BGCOLOR=$col>";
      $author2=$author;
      $author2 =~ s/(\W)/sprintf("%%%x", ord($1))/eg;
      trans2(text46);
###########dr#############
	$SHOWIPCOOKIE = "SI" . $ARGV[1];
	$SHOWIPCOOKIE =~ s/\///g;
        &GetCookies();
        if ($Cookies{$SHOWIPCOOKIE} eq "YES") {$showip=$IP;}

###########dr#############

      print "<td><font face=\"Arial\" size=-1><b>$TEXT{text44}:</b> <a href=\"javascript:Start3(\'wsmbb.cgi?USER+$author2\')\"\;>$author</a> $showip</td><td><font face=\"Arial\" size=-1>$TEXT{text45}: $temp &nbsp;&nbsp;&nbsp; <a href=\"mailto:$pemail\"><img src=\"/wsmicons/mailto.gif\" alt=\"$TEXT{text46}\" border=0></a> &nbsp;&nbsp;&nbsp; ";

      unless ($ARGV[1] =~ /\/archive$/) {
         print "<a href=\"wsmbb.cgi?EDITPOST+$ARGV[1]+$ARGV[4]+$post.$rep.txt\"><img src=\"/wsmicons/editbb.gif\" border=0 alt=\"$TEXT{text47}\"></a>";
         if ($starter eq $author && !(-e "./$ARGV[1]/$post.closed")) {
            print "&nbsp;&nbsp;&nbsp; <a href=\"wsmbb.cgi?CLOSE+$ARGV[1]+$post+$ARGV[4]\"><img src=\"/wsmicons/lock.gif\" border=0 alt=\"$TEXT{text48}\"></a><!-- $IP -->";
         }
      }
      print "</td></tr>";
      print "<tr BGCOLOR=$col><td colspan=2 align=top><font face=\"Arial\" size=-1>$body&nbsp;";

      &GetCookies(AUTHOR);
      if ($Cookies{'AUTHOR'} eq "$mod2") {
         print "<hr><font face=\"Arial\" size=-2>HOST: $HOST / IP: $IP</font>\n";
      }

      print "</td></tr>\n";
      $rep++; $ct++; $hit++;
   }
   print "</table>\n";

   # Search Utility

   print "<table border=0 cellpadding=4 border=0 cellspacing=1 width=100%>\n";
   print "<tr bgcolor=$tbcolor3><td><font face=\"Arial\" size=-1><b>$TEXT{text34}: </b></font><input type=text name=searchfor size=25 value=\"$FORM{'searchfor'}\"></td>\n";
   print "<td><font face=\"Arial\" size=-1><input type=radio name=within value=board> $TEXT{text35}\n";
   print "<br><input type=radio name=within value=topic checked> $TEXT{text49}\n";
   print "</td><td align=center><input type=submit name=gosearch value=\"$TEXT{text36}\"></td>";
   print "</tr></table>\n";

   print "</td></tr></table></center>\n";
   print "<center><font face=\"Arial\" size=+1 color=\"#999999\">";

   unless ($done) {$add=$add+$maxshowposts}

   if ($maxshowposts >= $add) {print "<nobr><< $TEXT{text49}"}
   else {print "<b><a href=\"wsmbb.cgi?RT+$ARGV[1]+$ARGV[2]+$ARGV[3]+$ARGV[4]+$ARGV[5]+LAST$add\"><nobr><< $TEXT{text49}</a></b>"}

   print " | ";

   if ($done) {print "<b><a href=\"wsmbb.cgi?RT+$ARGV[1]+$ARGV[2]+$ARGV[3]+$ARGV[4]+$ARGV[5]+NEXT$add\">$TEXT{text50} >></a></b></nobr>"}
   else {print "$TEXT{text50} >></nobr>"}

   print "</font>\n";
   &footer;
   exit;   
}

# post a message

sub postnewtopic {

   if ($FORM{'config'}) {$ARGV[2] = $FORM{'config'}}
   if ($FORM{'path'}) {$ARGV[1] = $FORM{'path'}}

   print "Content-type: text/html\n\n";
   print "<style><!-- a:{color:$text} a:hover{color:$hoover} a:vlink{color:$vlink}  --></style>\n";
   print "<BODY TEXT=\"$text\" BGCOLOR=\"$bgcolor\" LINK=\"$link\" VLINK=\"$vlink\" ALINK=\"$alink\" BACKGROUND=\"$background\" bgproperties=\"fixed\">\n";
   print "<title>$TEXT{text51}</title>\n";

   $ARGV[2] =~ s/\;.*//g;
   @info = `cat wsmbb.$ARGV[2]`;
   foreach $line (sort(@info)) {
   chop($line);
      ($dir2,$name2,$mod2,$summary2,$secure2,$hf,$newbanner)=split(/\t/,$line);
      if ($dir2 eq $ARGV[1]) {&gethf; if ($newbanner) {$banner=$newbanner} last}
   }
   &javascript;
   print "<form method=post action=\"wsmbb.cgi\" onsubmit=\"return oneclick\(\)\">\n";
   print "<input type=hidden name=path value=\"$ARGV[1]\">\n";
   print "<input type=hidden name=config value=\"$ARGV[2]\">\n";
   print "<input type=hidden name=minmax value=\"$ARGV[3]\">\n";
   &GetCookies(AUTHOR);
   if (!($FORM{'author'}) && $Cookies{'AUTHOR'}) {$FORM{'author'} = $Cookies{'AUTHOR'}}
   $FORM{'author'} =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
   $FORM{'author'} =~ s/"/&quot;/g;
   $FORM{'author'} =~ s/</&lt;/g;
   $FORM{'author'} =~ s/>/&gt;/g;
   print "<center><table border=0 cellpadding=0 cellspacing=0 width=\"95%\"><TR><td bgcolor=\"#000000\">\n";
   print "<table border=0 cellpadding=4 border=0 cellspacing=1 width=100%>\n";
   $mod3=$mod2;
   $mod3 =~ s/(\W)/sprintf("%%%x", ord($1))/eg;
   print "<tr bgcolor=$tbcolor3><td><font face=\"Arial\" size=-2>$TEXT{text52}</font><br><font face=\"Arial\" size=+1>$name2</font><br><font face=\"Arial\" size=-1>$TEXT{text3}: <a href=\"javascript:Start3(\'wsmbb.cgi?USER+$mod3\')\"\;>$mod2</a></td><td bgcolor=\"#ffffff\"><font face=\"Arial\" size=-2><img src=\"/wsmicons/bbfolder.gif\"> <a href=\"$urltowsmbbcgi?$ARGV[2]\">$TEXT{text7}</a><br><img src=\"/wsmicons/tee.gif\"><img src=\"/wsmicons/bbfolder.gif\"> <a href=\"$urltowsmbbcgi?SB+$ARGV[1]+$ARGV[2]\">$name2</a> </td><td align=center><input type=image border=0 src=\"/wsmicons/sendpwd.jpg\" name=sendpwd></td></tr>\n";
   print "</table>\n";
   print "</td></tr></table></center>\n";

   print "<center><table border=0 cellpadding=0 cellspacing=0 width=\"95%\"><TR><td bgcolor=\"#000000\">\n";
   print "<table border=0 cellpadding=4 border=0 cellspacing=1 width=100%>\n";
   print "<tr BGCOLOR=$tbcolor1>";
   print "<td><font face=\"Arial\" size=-1><b>$TEXT{text44}:</b></td><td><input type=text name=author size=25 value=\"$FORM{'author'}\"> <font face=\"Arial\" size=-1><nobr> [ <a href=\"wsmbb.cgi?REG+$ARGV[1]+$ARGV[2]\">$TEXT{text25}</a> ]</nobr> <br>";
   print "<i>$TEXT{text53}</i>\n";
   print "</td></tr>\n";
   print "<tr BGCOLOR=$tbcolor2>";
   print "<td><font face=\"Arial\" size=-1><b>$TEXT{text54}:</b></td><td><input type=password name=passwd size=25  value=\"$FORM{'passwd'}\"> <input type=submit name=EDI value=\"$TEXT{text55}\"><br>\n";
   print "<font face=\"Arial\" size=-1><i>$TEXT{text56} </i>\n";
   print "</td></tr>\n";
   print "<tr BGCOLOR=$tbcolor1>";
   $FORM{'topic'} =~ s/\"/&quot;/g;
   $FORM{'topic'} =~ s/\>/&gt;/g;
   $FORM{'topic'} =~ s/\</&lt;/g;
   print "<td><font face=\"Arial\" size=-1><b>$TEXT{text28}:</b></td><td><input type=text name=topic size=50 value=\"$FORM{'topic'}\"></td></tr>\n";
   print "<tr BGCOLOR=$tbcolor2>";
   print "<td align=top><font face=\"Arial\" size=-1><b>$TEXT{text57}:</b>";
   if ($allow_html ne "yes") {print "<br><i>$TEXT{text58}</i>"}
   print "</td><td><textarea name=post cols=50 rows=8 wrap=virtual>$FORM{'post'}</textarea></td></tr>\n";
   print "<tr BGCOLOR=$tbcolor1>";
   print "<td><font face=\"Arial\" size=-1><b>$TEXT{text59}</b>:</td><td><input type=text name=emailto size=50 value=\"$FORM{'emailto'}\"></td></tr>\n";
   print "<tr BGCOLOR=$tbcolor2>";
   print "<td><font face=\"Arial\" size=-1><b>$TEXT{text60}</b>:</td><td><input type=checkbox name=notify value=yes><font face=\"Arial\" size=-1> $TEXT{text60}</td></tr>\n";
   print "<tr BGCOLOR=$tbcolor1>";
   print "<td colspan=2 align=center><input type=submit name=postnew value=\"$TEXT{text27}\"></td></tr>\n";
   print "</table>\n";
   print "</td></tr></table></center>\n";
   &footer;
   exit;   
}

# save a new topic

sub savepost {

   unless ($FORM{'topic'}) {
      $error = "<center><font face=\"Arial\" size=+1 color=\"#FF0000\"><b><img src=\"/wsmicons/error.jpg\"> $TEXT{text61}</b><br></font><font face=\"Arial\" size=-1 color=\"$font\">$TEXT{text62}</font></center>";
      &postnewtopic;
   }

   unless ($FORM{'post'}) {
      $error = "<center><font face=\"Arial\" size=+1 color=\"#FF0000\"><b><img src=\"/wsmicons/error.jpg\"> $TEXT{text61}</b><br></font><font face=\"Arial\" size=-1 color=\"$font\">$TEXT{text63}</font></center>";
      if ($FORM{'file'}) {&editpost}
      elsif ($FORM{'comingfrom'} eq "REP") {&postreply}
      else {&postnewtopic}
   }

   $pfile = $FORM{'path'};
   $pfile =~ s/\//-/g; $pfile = $pfile . ".options";
   $pfile =~ s/\;.*//g;
   if (-e "$pfile") {
   @MOD = `cat $pfile`;
   $MOD[2] =~ s/.*\t//;
   $MOD[3] =~ s/.*\t//;
   $modnotify = $MOD[2];
   chop($modnotify);
   }
   $FORM{'config'} =~ s/\;.*//g;
   @info = `cat wsmbb.$FORM{'config'}`;
   foreach $line (sort(@info)) {
   chop($line);
      ($dir2,$name2,$mod2,$summary2,$secure2,$hf,$newbanner)=split(/\t/,$line); 
      if ($dir2 eq $FORM{'path'}) {&gethf; if ($newbanner) {$banner=$newbanner} last}
   }

   open(USR,"users.txt");
   $sauth = $FORM{'author'};
   $sauth =~ s/\W/./g;

   $smod2 = $mod2;
   $smod2 =~ s/\W/./g;

   while (<USR>) {
      if ($_ =~ /^$smod2\|$FORM{'passwd'}\|/) {$PASS=1; $hit=1;}
      if ($_ =~ /^$sauth\|/ && $PASS) {@UI=split(/\|/,$_); $hit=1; last}
      if ($_ =~ /^$sauth\|$FORM{'passwd'}\|/) {@UI=split(/\|/,$_); $hit=1; last}
   }
   close(USR);

   unless ($hit) {
      $error = "<center><font face=\"Arial\" size=+1 color=\"#FF0000\"><b><img src=\"/wsmicons/error.jpg\"> $TEXT{text61}</b><br></font><font face=\"Arial\" size=-1 color=\"$font\">$TEXT{text64}</font></center>";
      if ($FORM{'file'}) {&editpost}
      elsif ($FORM{'comingfrom'} eq "REP") {&postreply}
      else {&postnewtopic}
   }

   if ($FORM{'delete'}) {
      ($p1,$p2,$p3) = split(/\./,$FORM{'file'});
      if ($p2 eq "1") {
         if ($p1 =~ /\d/) {
            $FORM{'path'} =~ s/\;.*//g;
            `rm ./$FORM{'path'}/$p1\.*`;
         }
      }
      else {$FORM{'path'} =~ s/\;.*//g; $FORM{'file'} =~ s/\;.*//g; `rm ./$FORM{'path'}/$FORM{'file'}`}

      $success = "<center><font face=\"Arial\" size=+1 color=\"#33FF33\"><b><img src=\"/wsmicons/ok.jpg\"> $TEXT{text65}</b><br></font><font face=\"Arial\" size=-1 color=\"$font\">$TEXT{text66}</font></center>";
      &showboard;
   }

   if ($FORM{'file'}) {
      $file=$FORM{'file'};
      $success = "<center><font face=\"Arial\" size=+1 color=\"#33FF33\"><b><img src=\"/wsmicons/ok.jpg\"> $TEXT{text65}</b><br></font><font face=\"Arial\" size=-1 color=\"$font\">$TEXT{text67}</font></center>";
   }
   elsif ($FORM{'postreply'}) {
      $FORM{'path'} =~ s/\;.*//g;
      $FORM{'reply'} =~ s/\;.*//g;
      $ct = `cat ./$FORM{'path'}/$FORM{'reply'}.ct.txt`; chop($ct); $roldct=$ct; $roldct--;
      $nct=$ct+1;
      `echo $nct > ./$FORM{'path'}/$FORM{'reply'}.ct.txt`;
      $file = "$FORM{'reply'}.$ct.txt";
      $file1 = "$FORM{'reply'}.$roldct.txt";
      if ($FORM{'sendnotify'}) {&sendemail}
      $success = "<center><font face=\"Arial\" size=+1 color=\"#33FF33\"><b><img src=\"/wsmicons/ok.jpg\"> $TEXT{text65}</b><br></font><font face=\"Arial\" size=-1 color=\"$font\">$TEXT{text68}</font></center>";
   }
   else {
      $ct = `cat count.txt`; chop($ct);
      unless ($ct) {$ct=1}
      $oldct=$ct; $oldct--;
      $nct=$ct+1;
      `echo $nct > count.txt`;
      $FORM{'path'} =~ s/\;.*//g;
      `echo "2" > ./$FORM{'path'}/$ct.ct.txt`;
      $file = "$ct.1.txt";
      $file1 = "$oldct.1.txt";
      $success = "<center><font face=\"Arial\" size=+1 color=\"#33FF33\"><b><img src=\"/wsmicons/ok.jpg\"> $TEXT{text65}</b><br></font><font face=\"Arial\" size=-1 color=\"$font\">$TEXT{text69}</font></center>";
   }

   unless ($FORM{'starter'}) {$FORM{'starter'}=$FORM{'author'}}

   $FORM{'topic'} =~ s/\"/&quot;/g;
   $FORM{'topic'} =~ s/\>/&gt;/g;
   $FORM{'topic'} =~ s/\</&lt;/g;

   if ($allow_html ne "yes") {
      $FORM{'post'} =~ s/\"/&quot;/g;
      $FORM{'post'} =~ s/\>/&gt;/g;
      $FORM{'post'} =~ s/\</&lt;/g;
      $FORM{'topic'} =~ s/\"/&quot;/g;
      $FORM{'topic'} =~ s/\>/&gt;/g;
      $FORM{'topic'} =~ s/\</&lt;/g;
   }
   else {
      $FORM{'post'} =~ s/textarea>/_textarea_>/g;
   }
   $FORM{'post'} =~ s/\n/ <br> /g;
   @post = split(/\s+/,"$FORM{'post'}");
   foreach $post (@post) {
      if ($post =~ /^http:|ftp:|https:/) {$post =~ s/\.$//g; $post = "<a href=\"$post\" target=\"_blank\">$post</a>"}
      $newpost .= $post . " ";
   }
   $newpost =~ s/ <br> /\n/g;

   foreach $word (@badwords) {
      if ($newpost =~ /$word/i) {$newpost =~ s/$word/\%\@\#\$\%\?\!\#/gi}
      if ($FORM{'topic'} =~ /$word/i) {$FORM{'topic'} =~ s/$word/\%\@\#\$\%\?\!\#/gi}
   }

   open(NEW,">./$FORM{'path'}/$file");
   print NEW "<!--\t$FORM{'topic'}\t$FORM{'starter'}\t$FORM{'author'}\t-->\n";
   print NEW "<!--\t$ENV{'REMOTE_HOST'}\t$UI[5]\t$FORM{'notify'}\t$ENV{'REMOTE_ADDR'}\t-->\n";
   print NEW "$newpost\n";
   close(NEW);
   $FORM{'path'} =~ s/\;.*//g;
   $file1 =~ s/\;.*//g;
   if (-s "$FORM{'path'}/$file" == -s "$FORM{'path'}/$file1" && `head -2 $FORM{'path'}/$file1` =~ /$ENV{'REMOTE_ADDR'}/) {
      unlink("$FORM{'path'}/$file");
      $file1=$file;
      if ($roldct) {$roldct++; `echo $roldct > ./$FORM{'path'}/$FORM{'reply'}.ct.txt`}
      else {$oldct++; `echo $oldct > count.txt`;}
   }

   if (($FORM{'emailto'} =~ /.*\@.*\..*/ || $modnotify) && (!($FORM{'file'}))) {&emailto}

   &showboard;
}

sub emailto {
#@!
   @rand=('1','2','3','4','5','6','7','8','9','0','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
   srand();                        
   $nlines=@rand;
   while (length($keyfile) < 10) {
      $keyfile .= "$rand[int rand $nlines]";
   }
   $currtime = time();
   $teste = `$mailprog -bv $FORM{'emailto'}`;
   $FORM{'topic'} =~ s/&quot;/"/g;
   if ($teste =~ /deliverable/) {
      open(MAIL, "|$mailprog -t") || die "Can't open $mailprog!\n";
      print MAIL "To: $FORM{'emailto'}\n";
      print MAIL "From: @UI[5]\n";
      print MAIL "Subject: $TEXT{text70}\n\n";
      print MAIL "$TEXT{text71}:    $name2\n";
      print MAIL "$TEXT{text72}:    $FORM{'topic'}\n";
      print MAIL "$TEXT{text73}:  @UI[3] @UI[4] (@UI[0])\n";

      dbmopen(KEY,"keys",0777);
      if ($FORM{'comingfrom'} eq "REP") {
         print MAIL "$TEXT{text74}: $urltowsmbbcgi?RT+$FORM{'path'}+$FORM{'reply'}+$nct+$FORM{'config'}+$FORM{'minmax'}+$keyfile\n\n";
         $KEY{$keyfile} = "RT+$FORM{'path'}+$FORM{'reply'}+$nct+$FORM{'config'}+$FORM{'minmax'} _ $currtime";
      }
      else {
         print MAIL "$TEXT{text74}: $urltowsmbbcgi?RT+$FORM{'path'}+$ct+0+$FORM{'config'}+$FORM{'minmax'}+$keyfile\n\n";
         $KEY{$keyfile} = "RT+$FORM{'path'}+$ct+0+$FORM{'config'}+$FORM{'minmax'} _ $currtime";
      }
      dbmclose(KEY);
      print MAIL "$emailfooter\n";
      print MAIL "\nWSM Discussion Boards Copyright 1998-2001, Hosting.com\n";
      print MAIL "http://www.adgrafix.com\n";
      close(MAIL);
   }
   if ($modnotify) {
      chop($MOD[3]);
      $teste = `$mailprog -bv $MOD[3]`;
      $FORM{'topic'} =~ s/&quot;/"/g;
      if ($teste =~ /deliverable/) {
      open(MAIL, "|$mailprog -t") || die "Can't open $mailprog!\n";
      print MAIL "To: $MOD[3]\n";
      print MAIL "From: @UI[5]\n";
      print MAIL "Subject: $TEXT{text75}\n\n";
      print MAIL "$TEXT{text71}:    $name2\n";
      print MAIL "$TEXT{text72}:    $FORM{'topic'}\n";
      print MAIL "$TEXT{text76}:  @UI[3] @UI[4] (@UI[0])\n";
      }
      dbmopen(KEY,"keys",0777);
      if ($FORM{'comingfrom'} eq "REP") {
         print MAIL "$TEXT{text74}: $urltowsmbbcgi?RT+$FORM{'path'}+$FORM{'reply'}+$nct+$FORM{'config'}+$FORM{'minmax'}+$keyfile\n\n";
         $KEY{$keyfile} = "RT+$FORM{'path'}+$FORM{'reply'}+$nct+$FORM{'config'}+$FORM{'minmax'} _ $currtime";
      }
      else {
         print MAIL "$TEXT{text74}: $urltowsmbbcgi?RT+$FORM{'path'}+$ct+0+$FORM{'config'}+$FORM{'minmax'}+$keyfile\n\n";
         $KEY{$keyfile} = "RT+$FORM{'path'}+$ct+0+$FORM{'config'}+$FORM{'minmax'} _ $currtime";
      }
      dbmclose(KEY);
      print MAIL "$emailfooter\n";
      print MAIL "\nWSM Discussion Boards Copyright 1998-2000, Hosting.com\n";
      print MAIL "http://www.adgrafix.com\n";
      close(MAIL);
   }
}

# post a reply

sub postreply {

   if ($FORM{'path'}) {$path = $FORM{'path'}}
   else {$path = $ARGV[1]}
   if ($FORM{'postno'}) {$postno = $FORM{'postno'}}
   else {$postno = $ARGV[2]}
   if ($FORM{'config'}) {$config = $FORM{'config'}}
   else {$config = $ARGV[4]}
   if ($FORM{'comingfrom'}) {$comingfrom = $FORM{'comingfrom'}}
   else {$comingfrom = "REP"}

   if ($FORM{'reply'}) {$postno = $FORM{'reply'}}
   if ($FORM{'topic'}) {$topic = $FORM{'topic'}}
   if ($FORM{'minmax'}) {$minmax = $FORM{'minmax'}}
   else {$minmax = $ARGV[5]}
   if ($FORM{'starter'}) {$starter = $FORM{'starter'}}
   $path =~ s/\;.*//g;
   $postno =~ s/\;.*//g;
   @flinfo = `head -2 ./$path/$postno.1.txt`;
   ($jk,$topic,$starter,$jk)=split(/\t/,$flinfo[0]);
   ($jk,$HOST,$pemail,$notify,$IP,$jk)=split(/\t/,$flinfo[1]);
###############################
## Added for block during post 12/23/2000 dr
###############################
   $pfile = $ARGV[1];
   $pfile =~ s/\//-/g; $pfile = $pfile . ".options";
   $pfile =~ s/\;.*//g;
   if (-e "$pfile") {
   @MOD = `cat $pfile`;
   $MOD[0] =~ s/.*\t//;
   $MOD[0] =~ s/\n//g;
   (@newblock)=split(/:/,$MOD[0]);	
	chop($MOD[0]);
	# switched for newblock above 12/7/2000
   @blocks = $MOD[0];
   $MOD[1] =~ s/.*\t//;
   $bannedURL = $MOD[1]; chop($bannedURL);
   }
   foreach $blk (@newblock) {
	#$blk =~ s/ //g;
	#(@newblock)=split(/\n/,$blk);
	#foreach $blkdan (@newblockblocks) {
	$rmhost = $ENV{'REMOTE_HOST'};
	$rmaddr = $ENV{'REMOTE_ADDR'};
	      	if($blk =~ /$rmhost/) {
       		print "Location: $bannedURL\n\n";
			exit 1;
	      }
		$blkdan .= $blk . "|" . length($blk) . "|" . $rmhost . "||";
	      	if (($rmaddr =~ /$blk/i) || ($rmhost =~ /$blk/i)) {
       		print "Location: $bannedURL\n\n";
			exit 1;
	      }
	#}
   }
############################




   print "Content-type: text/html\n\n";
   print "<title>$TEXT{text77}</title>\n";
   print "<style><!-- a:{color:$text} a:hover{color:$hoover} a:vlink{color:$vlink}  --></style>\n";
   print "<BODY TEXT=\"$text\" LINK=\"$link\" VLINK=\"$vlink\" ALINK=\"$alink\" BACKGROUND=\"$background\" BGCOLOR=\"$bgcolor\" bgproperties=\"fixed\">\n";

   $config =~ s/\;.*//g;
   @info = `cat wsmbb.$config`;
   foreach $line (sort(@info)) {
   chop($line);
      ($dir2,$name2,$mod2,$summary2,$secure2,$hf,$newbanner)=split(/\t/,$line); 
      if ($dir2 eq $path) {&gethf; if ($newbanner) {$banner=$newbanner} last}
   }
   &javascript;
   print "<form method=post action=\"wsmbb.cgi\" onsubmit=\"return oneclick\(\)\">\n";
   print "<input type=hidden name=path value=\"$path\">\n";
   $pemail =~ s/\;.*//g;
   $teste = `$mailprog -bv $pemail`;
   if ($notify eq "yes" && $pemail =~ /.*\@.*\..*/ && $teste =~ /deliverable/) {
      print "<input type=hidden name=sendnotify value=\"$pemail\">\n";
   }
   $topic =~ s/\"/&quot;/g;
   $topic =~ s/\>/&gt;/g;
   $topic =~ s/\</&lt;/g;
   print "<input type=hidden name=config value=\"$config\">\n";
   print "<input type=hidden name=reply value=\"$postno\">\n";
   print "<input type=hidden name=topic value=\"$topic\">\n";
   print "<input type=hidden name=minmax value=\"$minmax\">\n";
   print "<input type=hidden name=starter value=\"$starter\">\n";
   print "<input type=hidden name=comingfrom value=\"$comingfrom\">\n";
   &GetCookies(AUTHOR);
   if (!($FORM{'author'}) && $Cookies{'AUTHOR'}) {$FORM{'author'} = $Cookies{'AUTHOR'}}
   $FORM{'author'} =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
   $FORM{'author'} =~ s/"/&quot;/g;
   $FORM{'author'} =~ s/</&lt;/g;
   $FORM{'author'} =~ s/>/&gt;/g;
   print "<center><table border=0 cellpadding=0 cellspacing=0 width=\"95%\"><TR><td bgcolor=\"#000000\">\n";
   print "<table border=0 cellpadding=4 border=0 cellspacing=1 width=100%>\n";
   $mod3=$mod2;
   $mod3 =~ s/(\W)/sprintf("%%%x", ord($1))/eg;
   print "<tr bgcolor=$tbcolor3><td><font face=\"Arial\" size=-2>$TEXT{text78}</font><br><font face=\"Arial\" size=+1>$name2</font><br><font face=\"Arial\" size=-1>$TEXT{text3}: <a href=\"javascript:Start3(\'wsmbb.cgi?USER+$mod3\')\"\;>$mod2</a></td><td bgcolor=\"#ffffff\"><font face=\"Arial\" size=-2><img src=\"/wsmicons/bbfolder.gif\"> <a href=\"$urltowsmbbcgi?$config\">$TEXT{text7}</a><br><img src=\"/wsmicons/tee.gif\"><img src=\"/wsmicons/bbfolder.gif\"> <a href=\"$urltowsmbbcgi?SB+$path+$config\">$name2</a><br><img src=\"/wsmicons/tee1.gif\"><img src=\"/wsmicons/tee.gif\"><img src=\"/wsmicons/bbfolder.gif\"> $topic</td><td align=center><td align=center><input type=image border=0 src=\"/wsmicons/sendpwd.jpg\" name=sendpwd></td></tr>\n";
   print "</table>\n";
   print "</td></tr></table></center>\n";
   print "<center><table border=0 cellpadding=0 cellspacing=0 width=\"95%\"><TR><td bgcolor=\"#000000\">\n";
   print "<table border=0 cellpadding=4 border=0 cellspacing=1 width=100%>\n";  
   print "<tr bgcolor=$tbcolor3><th><font face=\"Arial\" size=-1>$TEXT{text31}: $starter</th><th><font face=\"Arial\" size=-1>$TEXT{text28}: $topic</th></tr>\n";
   print "<tr BGCOLOR=$tbcolor1>";
   print "<td><font face=\"Arial\" size=-1><b>$TEXT{text44}:</b></td><td><input type=text name=author size=25 value=\"$FORM{'author'}\"> <font face=\"Arial\" size=-1> <nobr>[ <a href=\"wsmbb.cgi?REG+$ARGV[1]+$ARGV[2]+$ARGV[4]+REP\">$TEXT{text25}</a> ]</nobr> <br>";
   print "<i>$TEXT{text53}</i>\n";
   print "</td></tr>\n";
   print "<tr BGCOLOR=$tbcolor2>";
   print "<td><font face=\"Arial\" size=-1><b>$TEXT{text54}:</b></td><td><input type=password name=passwd size=25  value=\"$FORM{'passwd'}\"> <input type=submit name=EDI value=\"$TEXT{text55}\"><br>\n";
   print "<font face=\"Arial\" size=-1><i>$TEXT{text56} </i>\n";
   print "</td></tr>\n";   
   print "<tr BGCOLOR=$tbcolor1>";
   print "<td align=top><font face=\"Arial\" size=-1><b>$TEXT{text57}:</b>";
   if ($allow_html ne "yes") {print "<br><i>$TEXT{text58}</i>"}
### 10/10/99
   print "<br><BR><CENTER><font face=\"Arial\" size=-2>[ <a href=\"javascript:Start3(\'wsmbb.cgi?REMPOST+$path+$postno\')\"\;>$TEXT{text79}</a> ]</CENTER></font>\n";
   print "</td><td><textarea name=post cols=50 rows=8 wrap=virtual></textarea></td></tr>\n";
   print "<tr BGCOLOR=$tbcolor2>";
   print "<td><font face=\"Arial\" size=-1><b>$TEXT{text80}</b>:</td><td><input type=text name=emailto size=50 value=\"$FORM{'emailto'}\"></td></tr>\n";
   print "<tr BGCOLOR=$tbcolor1>";
   print "<td colspan=2 align=center><input type=submit name=postreply value=\"$TEXT{text39}\"></td></tr>\n";
   print "</table>\n";
   print "</td></tr></table></center>\n";
   &footer;
   exit;   
}

# register a user
#@!
sub reg {

   if ($ARGV[3]) {$config = $ARGV[3]; $postno=$ARGV[2]; $comingfrom=$ARGV[4]}
   else {$config = $ARGV[2]}

   if ($FORM{'path'}) {$ARGV[1] = $FORM{'path'}}
   if ($FORM{'postno'}) {$postno = $FORM{'postno'}}
   if ($FORM{'config'}) {$config = $FORM{'config'}}
   if ($FORM{'comingfrom'}) {$comingfrom = $FORM{'comingfrom'}}

   print "Content-type: text/html\n\n";
   print "<title>$TEXT{text81}</title>\n";
   print "<style><!-- a:{color:$text} a:hover{color:$hoover} a:vlink{color:$vlink}  --></style>\n";
   print "<BODY TEXT=\"$text\" LINK=\"$link\" VLINK=\"$vlink\" ALINK=\"$alink\" BACKGROUND=\"$background\" BGCOLOR=\"$bgcolor\" bgproperties=\"fixed\">\n";

   $config =~ s/\;.*//g;
   @info = `cat wsmbb.$config`;
   foreach $line (sort(@info)) {
   chop($line);
      ($dir2,$name2,$mod2,$summary2,$secure2,$hf,$newbanner)=split(/\t/,$line);
      if ($dir2 eq $ARGV[1]) {&gethf; if ($newbanner) {$banner=$newbanner} last}
   }
   &javascript;
   print "<form ENCTYPE=multipart/form-data method=post action=\"wsmbb.cgi\">\n";
   print "<input type=hidden name=path value=\"$ARGV[1]\">\n";
   print "<input type=hidden name=postno value=\"$postno\">\n";
   print "<input type=hidden name=config value=\"$config\">\n";
   print "<input type=hidden name=comingfrom value=\"$comingfrom\">\n";
   print "<center><table border=0 cellpadding=0 cellspacing=0 width=\"95%\"><TR><td bgcolor=\"#000000\">\n";
   print "<table border=0 cellpadding=4 border=0 cellspacing=1 width=100%>\n";
   $mod3=$mod2;
   $mod3 =~ s/(\W)/sprintf("%%%x", ord($1))/eg;
   print "<tr bgcolor=$tbcolor3><td><font face=\"Arial\" size=+1>$name2</font><br><font face=\"Arial\" size=-1>$TEXT{text3}: <a href=\"javascript:Start3(\'wsmbb.cgi?USER+$mod3\')\"\;>$mod2</a></td><td bgcolor=\"#ffffff\"><font face=\"Arial\" size=-2><img src=\"/wsmicons/bbfolder.gif\"> <a href=\"$urltowsmbbcgi?$config\">$TEXT{text7}</a><br><img src=\"/wsmicons/tee.gif\"><img src=\"/wsmicons/bbfolder.gif\"> <a href=\"$urltowsmbbcgi?SB+$ARGV[1]+$config\">$name2</a><br><img src=\"/wsmicons/tee1.gif\"><img src=\"/wsmicons/tee.gif\"><img src=\"/wsmicons/bbfolder.gif\"> $topic</td><td align=center><font face=\"Arial\" size=-1><b>$TEXT{text82}</b></font></td></tr>\n";
   print "</table>\n";
   print "</td></tr></table></center>\n";

   print "<center><table border=0 cellpadding=0 cellspacing=0 width=\"95%\"><TR><td bgcolor=\"#000000\">\n";
   print "<table border=0 cellpadding=4 border=0 cellspacing=1 width=100%>\n";
   print "<tr BGCOLOR=$tbcolor1>";
   print "<td><font face=\"Arial\" size=-1><b>$TEXT{text83}:</b></td><td><input type=text name=author size=25 maxsize=25></td></tr>\n";
   print "<tr BGCOLOR=$tbcolor2>";
   print "<td><font face=\"Arial\" size=-1><b>$TEXT{text54}:</b></td><td><input type=text name=passwd size=25></td></tr>\n";
   print "<tr BGCOLOR=$tbcolor1>";
   print "<td><font face=\"Arial\" size=-1><b>$TEXT{text84}:</b></td><td><input type=text name=first size=25></td></tr>\n";
   print "<tr BGCOLOR=$tbcolor2>";
   print "<td><font face=\"Arial\" size=-1><b>$TEXT{text85}:</b></td><td><input type=text name=last size=50></td></tr>\n";
   print "<tr BGCOLOR=$tbcolor1>";
   print "<td><font face=\"Arial\" size=-1><b>$TEXT{text86}:</b></td><td><input type=text name=email size=50></td></tr>\n";
   print "<tr BGCOLOR=$tbcolor2>";
   print "<td><font face=\"Arial\" size=-1><b>$TEXT{text87}:</b></td><td><input type=text name=reminder size=50></td></tr>\n";
   print "<tr BGCOLOR=$tbcolor1>";
   print "<td align=top><font face=\"Arial\" size=-1><b>$TEXT{text88}:</b></td><td><textarea name=other cols=50 rows=8 wrap=virtual></textarea></td></tr>\n";
   print "<tr BGCOLOR=$tbcolor2>";
   print "<td><font face=\"Arial\" size=-1><b>$TEXT{text89}:</b><br><i>$maxfilesize $TEXT{text90}</i></td><td><input type=file name=picture size=35></td></tr>\n";
   print "<tr BGCOLOR=$tbcolor1>";

   if ($UI[8] =~ /125/) {$lsel="selected"}
   if ($UI[8] =~ /100/) {$msel="selected"}
   if ($UI[8] =~ /75/) {$ssel="selected"}

   print "<td><font face=\"Arial\" size=-1><b>$TEXT{text91}:</b></td><td><select name=psize><option value=125 $lsel>$TEXT{text92}<option value=100 $msel>$TEXT{text93}<option value=75 $ssel>$TEXT{text94}</select></td></tr>\n";

   print "<tr BGCOLOR=$tbcolor2>";
   print "<td colspan=2 align=center><input type=submit name=register value=\"$TEXT{text81}\"></td></tr>\n";
   print "</table>\n";
   print "</td></tr></table></center>\n";
   &footer;
   exit;   
}

# save user info

sub saveuserinfo {
#@!
   # error checking
   $FORM{'author'} =~ s/<([^>]|\n)*>//g;
   unless ($FORM{'passwd'} && $FORM{'author'}) {
      $error = "<center><font face=\"Arial\" size=+1 color=\"#FF0000\"><b><img src=\"/wsmicons/error.jpg\"> $TEXT{text61}</b><br></font><font face=\"Arial\" size=-1 color=\"$font\">$TEXT{text95}</font></center>";
      &reg;
   }

   open(USR,"users.txt");
   $sauth = $FORM{'author'};
   $sauth =~ s/\W/./g;

   while (<USR>) {
      if ($_ =~ /^$sauth\|/i) {
         $error = "<center><font face=\"Arial\" size=+1 color=\"#FF0000\"><b><img src=\"/wsmicons/error.jpg\"> $TEXT{text61}</b><br></font><font face=\"Arial\" size=-1 color=\"$font\">$TEXT{text96}</font></center>";
         &reg;
      }
   }
   close(CAT);

   if ($allow_html ne "yes") {
      $FORM{'other'} =~ s/<([^>]|\n)*>//g;
      $FORM{'reminder'} =~ s/<([^>]|\n)*>//g;
      $FORM{'first'} =~ s/<([^>]|\n)*>//g;
      $FORM{'last'} =~ s/<([^>]|\n)*>//g;
      $FORM{'email'} =~ s/<([^>]|\n)*>//g;
   }
   else {
      $FORM{'other'} =~ s/textarea>/_textarea_>/g;
   }

   foreach $word (@badwords) {
      if ($FORM{'other'} =~ /$word/i) {$FORM{'other'} =~ s/$word/\%\@\#\$\%\?\!\#/gi}
      if ($FORM{'first'} =~ /$word/i) {$FORM{'first'} =~ s/$word/\%\@\#\$\%\?\!\#/gi}
      if ($FORM{'last'} =~ /$word/i) {$FORM{'last'} =~ s/$word/\%\@\#\$\%\?\!\#/gi}
      if ($FORM{'email'} =~ /$word/i) {$FORM{'email'} =~ s/$word/\%\@\#\$\%\?\!\#/gi}
   }

   $FORM{'other'} =~ s/\n/<br>/g;

   $leng = length($FORM{'picture'});
   if ($maxfilesize < $leng) {
      trans2(text97);
      $error = "<center><font face=\"Arial\" size=+1 color=\"#FF0000\"><b><img src=\"/wsmicons/error.jpg\"> $TEXT{text61}</b><br></font><font face=\"Arial\" size=-1 color=\"$font\">$TEXT{text97}</font></center>";
      &reg;
   }

   if ($FORM{'picture'}) {
      $aut = $FORM{'author'};
      $aut =~ s/(\W)/sprintf("%%%x", ord($1))/eg;
      $FORMFN{'picture'} =~ s/.*\.//g;
      $filename = $aut . "." . "$FORMFN{'picture'}"; 
      open(PHO,">../../htdocs/wsmbb_photos/$filename");
      print PHO $FORM{'picture'};
      close(PHO);
   }

   $FORM{'other'} =~ s/\cM//g;
   $FORM{'other'} =~ s/[<br>]+$//g;

   open(USR,">>users.txt");
   print USR "$FORM{'author'}|$FORM{'passwd'}|$FORM{'reminder'}|$FORM{'first'}|$FORM{'last'}|$FORM{'email'}|$filename|$FORM{'other'}|$FORM{'psize'}\n";
   close(USR);

   $success = "<center><font face=\"Arial\" size=+1 color=\"#33FF33\"><b><img src=\"/wsmicons/ok.jpg\"> $TEXT{text65}</b><br></font><font face=\"Arial\" size=-1 color=\"$font\">$TEXT{text98}</font></center>";
   
   if ($FORM{'comingfrom'} eq "REP") {&postreply}
   elsif ($FORM{'comingfrom'} eq "SB") {&showboard}
   else {&postnewtopic}
}

# show user

sub showuser {

   open(USR,"users.txt");
   while (<USR>) {
      if ($_ !~ /^$ARGV[1]\|/) {next}
      else {@UI=split(/\|/,$_); last; exit}
   }
   close(USR);

   print "Content-type: text/html\n\n";
   print "<title>$TEXT{text99}: $ARGV[1]</title>\n";
   print "<style><!-- a:{color:$text} a:hover{color:$hoover} a:vlink{color:$vlink}  --></style>\n";
   print "<BODY TEXT=\"$text\" LINK=\"$link\" VLINK=\"$vlink\" ALINK=\"$alink\" BACKGROUND=\"$background\" BGCOLOR=\"$bgcolor\" bgproperties=\"fixed\">\n";
   print "<center><table border=0 cellpadding=0 cellspacing=0 width=\"95%\"><TR><td bgcolor=\"#000000\">\n";
   print "<table border=0 cellpadding=4 border=0 cellspacing=1 width=100%>\n";
   print "<tr BGCOLOR=$tbcolor3>";
   $aut = $UI[6];
   $aut =~ s/(\W)/sprintf("%%%x", ord($1))/eg;
   print "<td colspan=2 align=center><font face=\"Arial\" size=-1><b>$TEXT{text100} \"$UI[0]\"</b></td>\n";
   print "<tr BGCOLOR=$tbcolor1>";

   $show = "/wsmbb_photos/$aut";
   unless (-e "../../htdocs/wsmbb_photos/$UI[6]" && $UI[6] =~ /\.gif|\.jpg/i) {$show = "/wsmicons/who.gif"}

   print "<td rowspan=4 align=center><img src=\"$show\" width=$UI[8]></td>\n";
   print "<td><font face=\"Arial\" size=-1><b>$TEXT{text84}:</b> $UI[3]</td></tr>\n";
   print "<tr BGCOLOR=$tbcolor2>";
   print "<td><font face=\"Arial\" size=-1><b>$TEXT{text85}:</b> $UI[4]</td></tr>\n";
   print "<tr BGCOLOR=$tbcolor1>";
   print "<td><font face=\"Arial\" size=-1><b>$TEXT{text86}:</b> <a href=\"MAILTO:$UI[5]\">$UI[5]</a></td></tr>\n";
   print "<tr BGCOLOR=$tbcolor2>";
   print "<td><font face=\"Arial\" size=-1><b>$TEXT{text87}:</b> <a href=\"$UI[2]\" target=\"_blank\">$UI[2]</a></td></tr>\n";
   print "<tr BGCOLOR=$tbcolor1>";
   print "<td colspan=2><font face=\"Arial\" size=-1>$UI[7]</td></tr>\n";
   print "</table>\n";
   print "</td></tr></table></center>\n";
   exit;
}

# edit user info

sub edita {

   if ($ARGV[3]) {$config = $ARGV[3]; $postno=$ARGV[2]; $comingfrom=$ARGV[4]}
   else {$config = $ARGV[2]}

   if ($FORM{'path'}) {$ARGV[1] = $FORM{'path'}}
   if ($FORM{'reply'}) {$reply = $FORM{'reply'}}
   if ($FORM{'topic'}) {$topic = $FORM{'topic'}}
   if ($FORM{'minmax'}) {$minmax = $FORM{'minmax'}}
   if ($FORM{'starter'}) {$starter = $FORM{'starter'}}
   if ($FORM{'config'}) {$config = $FORM{'config'}}
   if ($FORM{'comingfrom'}) {$comingfrom = $FORM{'comingfrom'}}

   open(USR,"users.txt");
   $smod2 = $FORM{'moderator'};
   $smod2 =~ s/\W/./g;
   while (<USR>) {
      if ($_ =~ /^$smod2\|$FORM{'passwd'}\|/) {$PASS=1}
   }
   close(USR);

   open(USR,"users.txt");
   $sauth = $FORM{'author'};
   $sauth =~ s/\W/./g;
   while (<USR>) {
################dr##################
      #if ($_ =~ /^$sauth'}\|$FORM{'passwd'}\|/) {@UI=split(/\|/,$_); $hit=1; last}
      if ($_ =~ /^$sauth\|$FORM{'passwd'}\|/) {@UI=split(/\|/,$_); $hit=1; last}
####################################
      elsif ($_ =~ /^$sauth/ && $PASS==1) {@UI=split(/\|/,$_); $hit=1; last}
   }
   close(USR);

   if ($FORM{'editscreen1'} && $successmail) {undef $FORM{'author'}; undef $FORM{'passwd'}}

   if (!($hit) && !($FORM{'author'})) {undef @UI}
   elsif (!($hit) && ($comingfrom eq "SB" || $comingfrom eq "REP")) {$error = "<center><font face=\"Arial\" size=+1 color=\"#FF0000\"><b><img src=\"/wsmicons/error.jpg\"> $TEXT{text61}</b><br></font><font face=\"Arial\" size=-1 color=\"$font\">$TEXT{text101}</font></center>"; undef $FORM{'author'}; undef $FORM{'passwd'}; &edita}
   elsif (!($hit)) {$error = "<center><font face=\"Arial\" size=+1 color=\"#FF0000\"><b><img src=\"/wsmicons/error.jpg\"> $TEXT{text61}</b><br></font><font face=\"Arial\" size=-1 color=\"$font\">$TEXT{text101}</font></center>"; &postnewtopic}
   $config =~ s/\;.*//g;
   @info = `cat wsmbb.$config`;
   foreach $line (sort(@info)) {
   chop($line);
      ($dir2,$name2,$mod2,$summary2,$secure2,$hf,$newbanner)=split(/\t/,$line);
      if ($dir2 eq $ARGV[1]) {&gethf; if ($newbanner) {$banner=$newbanner} last}
   }

   print "Content-type: text/html\n\n";
   print "<title>$TEXT{text102}</title>\n";
   print "<style><!-- a:{color:$text} a:hover{color:$hoover} a:vlink{color:$vlink}  --></style>\n";
   print "<BODY TEXT=\"$text\" LINK=\"$link\" VLINK=\"$vlink\" ALINK=\"$alink\" BACKGROUND=\"$background\" BGCOLOR=\"$bgcolor\" bgproperties=\"fixed\">\n";
   &javascript;
   print "<form ENCTYPE=multipart/form-data method=post action=\"wsmbb.cgi\">\n";
   print "<input type=hidden name=path value=\"$ARGV[1]\">\n";
   print "<input type=hidden name=config value=\"$config\">\n";
   print "<input type=hidden name=editscreen1 value=\"1\">\n";
   print "<input type=hidden name=comingfrom value=\"$comingfrom\">\n";

   print "<input type=hidden name=reply value=\"$reply\">\n";
   print "<input type=hidden name=topic value=\"$topic\">\n";
   print "<input type=hidden name=minmax value=\"$minmax\">\n";
   print "<input type=hidden name=starter value=\"$starter\">\n";
   print "<input type=hidden name=moderator value=\"$mod2\">\n";

   print "<center><table border=0 cellpadding=0 cellspacing=0 width=\"95%\"><TR><td bgcolor=\"#000000\">\n";
   print "<table border=0 cellpadding=4 border=0 cellspacing=1 width=100%>\n";
   $mod3=$mod2;
   $mod3 =~ s/(\W)/sprintf("%%%x", ord($1))/eg;
   print "<tr bgcolor=$tbcolor3><td><font face=\"Arial\" size=-2>$TEXT{text102}</font><br><font face=\"Arial\" size=+1>$name2</font><br><font face=\"Arial\" size=-1>$TEXT{text3}: <a href=\"javascript:Start3(\'wsmbb.cgi?USER+$mod3\')\"\;>$mod2</a></td><td bgcolor=\"#ffffff\"><font face=\"Arial\" size=-2><img src=\"/wsmicons/bbfolder.gif\"> <a href=\"$urltowsmbbcgi?$config\">$TEXT{text7}</a><br><img src=\"/wsmicons/tee.gif\"><img src=\"/wsmicons/bbfolder.gif\"> <a href=\"$urltowsmbbcgi?SB+$ARGV[1]+$config\">$name2</a>";

   if ($topic) {print "<br><img src=\"/wsmicons/tee1.gif\"><img src=\"/wsmicons/tee.gif\"><img src=\"/wsmicons/bbfolder.gif\"> $topic"}

   print "</td><td align=center><input type=image border=0 src=\"/wsmicons/sendpwd.jpg\" name=sendpwd></td></tr>\n";
   print "</table>\n";
   print "</td></tr></table></center>\n";

   print "<center><table border=0 cellpadding=0 cellspacing=0 width=\"95%\"><TR><td bgcolor=\"#000000\">\n";
   print "<table border=0 cellpadding=4 border=0 cellspacing=1 width=100%>\n";
   print "<tr BGCOLOR=$tbcolor1>";
   if (!($hit) && !($FORM{'author'})) {

   &GetCookies(AUTHOR);
   if (!($FORM{'author'}) && $Cookies{'AUTHOR'}) {$FORM{'author'} = $Cookies{'AUTHOR'}}
   $FORM{'author'} =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
   $FORM{'author'} =~ s/"/&quot;/g;
   $FORM{'author'} =~ s/</&lt;/g;
   $FORM{'author'} =~ s/>/&gt;/g;
      print "<td><font face=\"Arial\" size=-1><b>$TEXT{text83}:</b></td><td><input type=text name=author size=25 maxsize=25 value=\"$FORM{'author'}\"></td></tr>\n";
      print "<tr BGCOLOR=$tbcolor2>";
      print "<td><font face=\"Arial\" size=-1><b>$TEXT{text54}:</b></td><td><input type=password name=passwd size=25><br>\n";
      print "<font face=\"Arial\" size=-1><i>$TEXT{text56} </i></td></tr>\n";
      print "<tr BGCOLOR=$tbcolor1>";
      print "<td colspan=2 align=center><input type=submit name=displayui value=\"$TEXT{text103}\"></td></tr>\n";
   }
   else {
      print "<td><font face=\"Arial\" size=-1><b>$TEXT{text83}:</b></td><td><input type=hidden name=author value=\"$FORM{'author'}\"><font face=\"Arial\" size=-1>$FORM{'author'}</td></tr>\n";
      print "<tr BGCOLOR=$tbcolor2>";
      print "<td><font face=\"Arial\" size=-1><b>$TEXT{text54}:</b></td><td><input type=text name=passwd size=25 value=\"$UI[1]\"></td></tr>\n";
   print "<tr BGCOLOR=$tbcolor1>";
   print "<td><font face=\"Arial\" size=-1><b>$TEXT{text84}:</b></td><td><input type=text name=first size=25 value=\"$UI[3]\"></td></tr>\n";
   print "<tr BGCOLOR=$tbcolor2>";
   print "<td><font face=\"Arial\" size=-1><b>$TEXT{text85}:</b></td><td><input type=text name=last size=50 value=\"$UI[4]\"></td></tr>\n";
   print "<tr BGCOLOR=$tbcolor1>";
   print "<td><font face=\"Arial\" size=-1><b>$TEXT{text86}:</b></td><td><input type=text name=email size=50 value=\"$UI[5]\"></td></tr>\n";
   print "<tr BGCOLOR=$tbcolor2>";
   print "<td><font face=\"Arial\" size=-1><b>$TEXT{text87}:</b></td><td><input type=text name=reminder size=50 value=\"$UI[2]\"></td></tr>\n";
   print "<tr BGCOLOR=$tbcolor1>";
   $UI[7] =~ s/<br>/\n/g;
   print "<td align=top><font face=\"Arial\" size=-1><b>$TEXT{text88}:</b></td><td><textarea name=other cols=50 rows=8 wrap=virtual>$UI[7]</textarea></td></tr>\n";
   print "<tr BGCOLOR=$tbcolor2>";
   $show = "/wsmbb_photos/$UI[6]";
   unless (-e "../../htdocs/wsmbb_photos/$UI[6]" && $UI[6] =~ /\.gif|\.jpg/i) {$show = "/wsmicons/who.gif"}
   print "<td><input type=hidden name=oldfilename value=\"$UI[6]\"><font face=\"Arial\" size=-1><b>$TEXT{text104}:</b></td><td align=center><img src=\"$show\" width=$UI[8]></td></tr>\n";

   print "<tr BGCOLOR=$tbcolor1>";
   print "<td><font face=\"Arial\" size=-1><b>$TEXT{text105}:</b><br><i>$maxfilesize $TEXT{text90}</i></td><td><input type=file name=picture size=35></td></tr>\n";
   print "<tr BGCOLOR=$tbcolor2>";

   if ($UI[8] =~ /125/) {$lsel="selected"}
   if ($UI[8] =~ /100/) {$msel="selected"}
   if ($UI[8] =~ /75/) {$ssel="selected"}

   print "<td><font face=\"Arial\" size=-1><b>$TEXT{text106}:</b></td><td><select name=psize><option value=125 $lsel>$TEXT{text92}<option value=100 $msel>$TEXT{text93}<option value=75 $ssel>$TEXT{text94}</select></td></tr>\n";

   print "<tr BGCOLOR=$tbcolor1>";
   print "<td colspan=2 align=center><input type=checkbox name=deleteuser value=yes> <font face=\"Arial\" size=-1>$TEXT{text107}</font> <input type=submit name=EDI2 value=\"$TEXT{text102}\"></td></tr>\n";
   }
   print "</table>\n";
   print "</td></tr></table></center>\n";
   &footer;
   exit;   
}

sub edi2 {

   if ($allow_html ne "yes") {
      $FORM{'other'} =~ s/<([^>]|\n)*>//g;
      $FORM{'reminder'} =~ s/<([^>]|\n)*>//g;
      $FORM{'first'} =~ s/<([^>]|\n)*>//g;
      $FORM{'last'} =~ s/<([^>]|\n)*>//g;
      $FORM{'email'} =~ s/<([^>]|\n)*>//g;
   }
   else {
      $FORM{'other'} =~ s/textarea>/_textarea_>/g;
   }

   foreach $word (@badwords) {
      if ($FORM{'other'} =~ /$word/i) {$FORM{'other'} =~ s/$word/\%\@\#\$\%\?\!\#/gi}
      if ($FORM{'first'} =~ /$word/i) {$FORM{'first'} =~ s/$word/\%\@\#\$\%\?\!\#/gi}
      if ($FORM{'last'} =~ /$word/i) {$FORM{'last'} =~ s/$word/\%\@\#\$\%\?\!\#/gi}
      if ($FORM{'email'} =~ /$word/i) {$FORM{'email'} =~ s/$word/\%\@\#\$\%\?\!\#/gi}
   }

   $FORM{'other'} =~ s/\n/<br>/g;

   $leng = length($FORM{'picture'});
   if ($maxfilesize < $leng) {
      trans2(text108);
      $error = "<center><font face=\"Arial\" size=+1 color=\"#FF0000\"><b><img src=\"/wsmicons/error.jpg\"> $TEXT{text61}</b><br></font><font face=\"Arial\" size=-1 color=\"$font\">$TEXT{text108}</font></center>";
      &edita;
   }

   $FORM{'author'} =~ s/&quot;/"/g;
   $FORM{'author'} =~ s/&lt;/</g;
   $FORM{'author'} =~ s/&gt;/>/g;

   if ($FORM{'picture'}) {
      $FORMFN{'picture'} =~ s/.*\.//g;
      $FORM{'author'} =~ s/(\W)/sprintf("%%%x", ord($1))/eg;
      $filename = $FORM{'author'} . "." . "$FORMFN{'picture'}";
      $FORM{'author'} =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
      open(PHO,">../../htdocs/wsmbb_photos/$filename");
      print PHO $FORM{'picture'};
      close(PHO);
   }
   else {$filename=$FORM{'oldfilename'}}

   $FORM{'other'} =~ s/\cM//g;
   $FORM{'other'} =~ s/[<br>]+$//g;

   open(USR,"users.txt");
   $sauth = $FORM{'author'};
   $sauth =~ s/\W/./g;
   open(USR2,">users.2");
   while (<USR>) {
###########dr###########
      #if ($_ =~ /^$sauth\|$FORM{'passwd'}\|/ && $FORM{'deleteuser'} ne "yes") {print USR2 "$FORM{'author'}|$FORM{'passwd'}|$FORM{'reminder'}|$FORM{'first'}|$FORM{'last'}|$FORM{'email'}|$filename|$FORM{'other'}|$FORM{'psize'}\n"}
      if ($_ =~ /^$sauth\|/ && $FORM{'deleteuser'} ne "yes") {print USR2 "$FORM{'author'}|$FORM{'passwd'}|$FORM{'reminder'}|$FORM{'first'}|$FORM{'last'}|$FORM{'email'}|$filename|$FORM{'other'}|$FORM{'psize'}\n"}
########################
      elsif ($_ =~ /^$sauth\|$FORM{'passwd'}\|/ && $FORM{'deleteuser'} eq "yes") {next}
      else {print USR2 $_}
   }
   close(USR2);
   close(USR);


   `cp users.2 users.txt`;

   if ($FORM{'deleteuser'} eq "yes") {$success = "<center><font face=\"Arial\" size=+1 color=\"#33FF33\"><b><img src=\"/wsmicons/ok.jpg\"> $TEXT{text65}</b><br></font><font face=\"Arial\" size=-1 color=\"$font\">$TEXT{text109}</font></center>"}
   else {$success = "<center><font face=\"Arial\" size=+1 color=\"#33FF33\"><b><img src=\"/wsmicons/ok.jpg\"> $TEXT{text65}</b><br></font><font face=\"Arial\" size=-1 color=\"$font\">$TEXT{text110}</font></center>"}

   if ($FORM{'comingfrom'} eq "REP") {&postreply}
   elsif ($FORM{'comingfrom'} eq "SB") {&showboard}
   else {&postnewtopic}
}

sub editpost {

   if ($FORM{'config'}) {$ARGV[2] = $FORM{'config'}}
   if ($FORM{'file'}) {$ARGV[3] = $FORM{'file'}}
   if ($FORM{'path'}) {$ARGV[1] = $FORM{'path'}}

   print "Content-type: text/html\n\n";
   print "<title>Edit Post</title>\n";
   print "<style><!-- a:{color:$text} a:hover{color:$hoover} a:vlink{color:$vlink}  --></style>\n";
   print "<BODY TEXT=\"$text\" LINK=\"$link\" VLINK=\"$vlink\" ALINK=\"$alink\" BACKGROUND=\"$background\" BGCOLOR=\"$bgcolor\" bgproperties=\"fixed\">\n";

   $ARGV[2] =~ s/\;.*//g;
   @info = `cat wsmbb.$ARGV[2]`;
   foreach $line (sort(@info)) {
   chop($line);
      ($dir2,$name2,$mod2,$summary2,$secure2,$hf,$newbanner)=split(/\t/,$line); 
      if ($dir2 eq $ARGV[1]) {&gethf; if ($newbanner) {$banner=$newbanner} last}
   }
   &javascript;
   $ARGV[1] =~ s/\;.*//g;
   $ARGV[3] =~ s/\;.*//g;
   print "<form method=post action=\"wsmbb.cgi\">\n";
   print "<input type=hidden name=path value=\"$ARGV[1]\">\n";
   print "<input type=hidden name=file value=\"$ARGV[3]\">\n";
   print "<input type=hidden name=config value=\"$ARGV[2]\">\n";

   @flinfo = `head -2 ./$ARGV[1]/$ARGV[3]`;
   ($jk,$FORM{'topic'},$FORM{'starter'},$FORM{'author'},$jk)=split(/\t/,$flinfo[0]);
   ($jk,$FORM{'HOST'},$FORM{'pemail'},$FORM{'notify'},$FORM{'IP'},$jk)=split(/\t/,$flinfo[1]);
   $FORM{'post'} = `cat ./$ARGV[1]/$ARGV[3]`; $FORM{'post'} =~ s/<!--.*-->//g; $FORM{'post'} =~ s/^\n//; $FORM{'post'} =~ s/<br>/\n/g;

   $FORM{'post'} =~ s/\n/ <br> /g;
   $FORM{'post'} =~ s/<a href=/<ahref=/g;
   $FORM{'post'} =~ s/\" target/"target/g;
   @post = split(/\s+/,"$FORM{'post'}");
   foreach $post (@post) {
      if ($post =~ /^<ahref=/) {$post =~ s/<\/a>//g; $post =~ s/<ahref=.*>//g}
      $newpost .= $post . " ";
   }
   $newpost =~ s/ <br> /\n/g;
   $newpost =~ s/\n<br> /\n\n/g;
   print "<input type=hidden name=moderator value=\"$mod2\">\n";
   print "<center><table border=0 cellpadding=0 cellspacing=0 width=\"95%\"><TR><td bgcolor=\"#000000\">\n";
   print "<table border=0 cellpadding=4 border=0 cellspacing=1 width=100%>\n";
   $mod3=$mod2;
   $mod3 =~ s/(\W)/sprintf("%%%x", ord($1))/eg;
   print "<tr bgcolor=$tbcolor3><td><font face=\"Arial\" size=-2>$TEXT{text111}</font><br><font face=\"Arial\" size=+1>$name2</font><br><font face=\"Arial\" size=-1>$TEXT{text3}: <a href=\"javascript:Start3(\'wsmbb.cgi?USER+$mod3\')\"\;>$mod2</a></td><td bgcolor=\"#ffffff\"><font face=\"Arial\" size=-2><img src=\"/wsmicons/bbfolder.gif\"> <a href=\"$urltowsmbbcgi?$ARGV[2]\">$TEXT{text7}</a><br><img src=\"/wsmicons/tee.gif\"><img src=\"/wsmicons/bbfolder.gif\"> <a href=\"$urltowsmbbcgi?SB+$ARGV[1]+$ARGV[2]\">$name2</a> </td><td align=center><input type=image border=0 src=\"/wsmicons/sendpwd.jpg\" name=sendpwd></td></tr>\n";
   print "</table>\n";
   print "</td></tr></table></center>\n";
   print "<input type=hidden name=starter value=\"$FORM{'starter'}\">\n";
   print "<center><table border=0 cellpadding=0 cellspacing=0 width=\"95%\"><TR><td bgcolor=\"#000000\">\n";
   print "<table border=0 cellpadding=4 border=0 cellspacing=1 width=100%>\n";
   print "<tr BGCOLOR=$tbcolor1>";

   &GetCookies(AUTHOR);
   if (!($FORM{'author'}) && $Cookies{'AUTHOR'}) {$FORM{'author'} = $Cookies{'AUTHOR'}}
   $FORM{'author'} =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
   $FORM{'author'} =~ s/"/&quot;/g;
   $FORM{'author'} =~ s/</&lt;/g;
   $FORM{'author'} =~ s/>/&gt;/g;
   print "<td><font face=\"Arial\" size=-1><b>$TEXT{text44}:</b></td><td><font face=\"Arial\" size=-1>$FORM{'author'} <input type=hidden name=author value=\"$FORM{'author'}\">";
   print "</td></tr>\n";
   print "<tr BGCOLOR=$tbcolor2>";
   print "<td><font face=\"Arial\" size=-1><b>$TEXT{text54}:</b></td><td><input type=password name=passwd size=25  value=\"$FORM{'passwd'}\"> <input type=submit name=EDI value=\"$TEXT{text102}\"><br>\n";
   print "<font face=\"Arial\" size=-1><i>$TEXT{text112} </i>\n";
   print "<input type=hidden name=topic value=\"$FORM{'topic'}\"></td></tr>\n";
   print "<tr BGCOLOR=$tbcolor1>";
   print "<td align=top><font face=\"Arial\" size=-1><b>$TEXT{text57}:</b>";
   if ($allow_html ne "yes") {print "<br><i>$TEXT{text58}</i>"}
   print "</td><td><textarea name=post cols=50 rows=8 wrap=virtual>$newpost</textarea></td></tr>\n";
   if ($ARGV[2] =~ /\.1\.txt/) {
      print "<tr BGCOLOR=$tbcolor2>";
      print "<td><font face=\"Arial\" size=-1><b>$TEXT{text113}</b>:</td><td><input type=checkbox name=notify value=yes><font face=\"Arial\" size=-1> $TEXT{text114}</td></tr>\n";
      print "<tr BGCOLOR=$tbcolor1>";
   }
   else {print "<tr BGCOLOR=$tbcolor2>"}
   print "<td colspan=2 align=center><input type=checkbox name=delete value=yes> <font face=\"Arial\" size=-1>$TEXT{text115}</font> <input type=submit name=editthispost value=\"$TEXT{text116}\"></td></tr>\n";
   print "</table>\n";
   print "</td></tr></table></center>\n";
   &footer;
   exit;   
}

# close thread

sub closethread {

   if ($FORM{'config'}) {$ARGV[3] = $FORM{'config'}}
   if ($FORM{'thread'}) {$ARGV[2] = $FORM{'thread'}}
   if ($FORM{'path'}) {$ARGV[1] = $FORM{'path'}}

   print "Content-type: text/html\n\n";
   print "<title>$TEXT{text117}</title>\n";
   print "<style><!-- a:{color:$text} a:hover{color:$hoover} a:vlink{color:$vlink}  --></style>\n";
   print "<BODY TEXT=\"$text\" LINK=\"$link\" VLINK=\"$vlink\" ALINK=\"$alink\" BACKGROUND=\"$background\" BGCOLOR=\"$bgcolor\" bgproperties=\"fixed\">\n";

   $ARGV[3] =~ s/\;.*//g;
   @info = `cat wsmbb.$ARGV[3]`;
   foreach $line (sort(@info)) {
   chop($line);
      ($dir2,$name2,$mod2,$summary2,$secure2,$hf,$newbanner)=split(/\t/,$line);
      if ($dir2 eq $ARGV[1]) {&gethf; if ($newbanner) {$banner=$newbanner} last}
   }
   $ARGV[1] =~ s/\;.*//g;
   $ARGV[2] =~ s/\;.*//g;
   &javascript;
   $FORM{'author'} =~ s/&quot;/"/g;
   $FORM{'author'} =~ s/&lt;/</g;
   $FORM{'author'} =~ s/&gt;/>/g;

   print "<form method=post action=\"wsmbb.cgi\">\n";
   print "<input type=hidden name=path value=\"$ARGV[1]\">\n";
   print "<input type=hidden name=thread value=\"$ARGV[2]\">\n";
   print "<input type=hidden name=config value=\"$ARGV[3]\">\n";
   print "<input type=hidden name=closethread value=\"1\">\n";
   @flinfo = `head -2 ./$ARGV[1]/$ARGV[2].1.txt`;
   ($jk,$FORM{'topic'},$FORM{'starter'},$FORM{'author'},$jk)=split(/\t/,$flinfo[0]);
   ($jk,$FORM{'HOST'},$jk,$FORM{'notify'},$FORM{'IP'},$jk)=split(/\t/,$flinfo[1]);

   print "<center><table border=0 cellpadding=0 cellspacing=0 width=\"95%\"><TR><td bgcolor=\"#000000\">\n";
   print "<table border=0 cellpadding=4 border=0 cellspacing=1 width=100%>\n";
   $mod3=$mod2;
   $mod3 =~ s/(\W)/sprintf("%%%x", ord($1))/eg;
   print "<tr bgcolor=$tbcolor3><td><font face=\"Arial\" size=-2>$TEXT{text117}</font><br><font face=\"Arial\" size=+1>$name2</font><br><font face=\"Arial\" size=-1>$TEXT{text3}: <a href=\"javascript:Start3(\'wsmbb.cgi?USER+$mod3\')\"\;>$mod2</a></td><td bgcolor=\"#ffffff\"><font face=\"Arial\" size=-2><img src=\"/wsmicons/bbfolder.gif\"> <a href=\"$urltowsmbbcgi?$ARGV[3]\">$TEXT{text7}</a><br><img src=\"/wsmicons/tee.gif\"><img src=\"/wsmicons/bbfolder.gif\"> <a href=\"$urltowsmbbcgi?SB+$ARGV[1]+$ARGV[2]\">$name2</a><br><img src=\"/wsmicons/tee.gif\"><img src=\"/wsmicons/tee.gif\"><img src=\"/wsmicons/bbfolder.gif\"> $FORM{'topic'} </td><td align=center><input type=image border=0 src=\"/wsmicons/sendpwd.jpg\" name=sendpwd></td></tr>\n";
   print "</table>\n";
   print "</td></tr></table></center>\n";
   print "<input type=hidden name=starter value=\"$FORM{'starter'}\">\n";
   print "<input type=hidden name=author value=\"$FORM{'starter'}\">\n";
   print "<center><table border=0 cellpadding=0 cellspacing=0 width=\"95%\"><TR><td bgcolor=\"#000000\">\n";
   print "<table border=0 cellpadding=4 border=0 cellspacing=1 width=100%>\n";
   print "<tr BGCOLOR=$tbcolor1>";
   print "<td><font face=\"Arial\" size=-1><b>$TEXT{text43}:</b></td><td><font face=\"Arial\" size=-1>$FORM{'starter'}";
   print "</td></tr>\n";
   print "<tr BGCOLOR=$tbcolor2>";
   print "<td><font face=\"Arial\" size=-1><b>$TEXT{text54}:</b></td><td><input type=password name=passwd size=25  value=\"$FORM{'passwd'}\"><br>\n";
   print "<font face=\"Arial\" size=-1><i>$TEXT{text118} </i>\n";
   print "<tr BGCOLOR=$tbcolor2>";
   print "<td colspan=2 align=center><input type=submit name=closethread value=\"$TEXT{text117}\"></td></tr>\n";
   print "</table>\n";
   print "</td></tr></table></center>\n";
   &footer;
   exit;   
}


sub closethread2 {
   $FORM{'config'} =~ s/\;.*//g;
   @info = `cat wsmbb.$FORM{'config'}`;
   foreach $line (sort(@info)) {
   chop($line);
      ($dir2,$name2,$mod2,$summary2,$secure2,$hf,$newbanner)=split(/\t/,$line);
      if ($dir2 eq $FORM{'path'}) {&gethf; if ($newbanner) {$banner=$newbanner} last}
   }

   open(USR,"users.txt");
   $sauth = $FORM{'starter'};
   $sauth =~ s/\W/./g;

   $smod2 = $mod2;
   $smod2 =~ s/\W/./g;
   while (<USR>) {
      if ($_ =~ /^$mod2\|$FORM{'passwd'}\|/) {$PASS=1}
      if ($_ =~ /^$sauth\|/ && $PASS) {@UI=split(/\|/,$_); $hit=1; last}
      if ($_ =~ /^$sauth\|$FORM{'passwd'}\|/) {@UI=split(/\|/,$_); $hit=1; last}
   }
   close(USR);

   unless ($hit) {
      $error = "<center><font face=\"Arial\" size=+1 color=\"#FF0000\"><b><img src=\"/wsmicons/error.jpg\"> $TEXT{text61}</b><br></font><font face=\"Arial\" size=-1 color=\"$font\">$TEXT{text119}</font></center>";
      &closethread;
   }
   $FORM{'path'} =~ s/\;.*//g;
   $FORM{'thread'} =~ s/\;.*//g;
   `echo > ./$FORM{'path'}/$FORM{'thread'}.closed`;

   $success = "<center><font face=\"Arial\" size=+1 color=\"#33FF33\"><b><img src=\"/wsmicons/ok.jpg\"> $TEXT{text65}</b><br></font><font face=\"Arial\" size=-1 color=\"$font\">$TEXT{text120}</font></center>";

   &showboard;
}

# notify topic starter of a reply

sub sendemail {

   @rand=('1','2','3','4','5','6','7','8','9','0','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
   srand();                        
   $nlines=@rand;
   while (length($keyfile) < 10) {
      $keyfile .= "$rand[int rand $nlines]";
   }
   $currtime = time();
   dbmopen(KEY,"keys",0777);
   $KEY{$keyfile} = "RT+$FORM{'path'}+$FORM{'reply'}+$ct+$FORM{'config'}+$FORM{'minmax'} _ $currtime";
   dbmclose(KEY);
   $teste = `$mailprog -bv $FORM{'sendnotify'}`;
   $FORM{'topic'} =~ s/&quot;/"/g;
   if ($teste =~ /deliverable/) {
   open(MAIL, "|$mailprog -t") || die "Can't open $mailprog!\n";
   print MAIL "To: $FORM{'sendnotify'}\n";
   print MAIL "From: $fromemail\n";
   print MAIL "Subject: $TEXT{text121}\n\n";
   print MAIL "$TEXT{text71}:    $name2\n";
   print MAIL "$TEXT{text72}:    $FORM{'topic'}\n";
   print MAIL "$TEXT{text74}: $urltowsmbbcgi?RT+$FORM{'path'}+$FORM{'reply'}+$ct+$FORM{'config'}+$FORM{'minmax'}+$keyfile\n\n";
   print MAIL "$emailfooter\n";
   print MAIL "\nWSM Discussion Boards Copyright 1998-2001, Hosting.com\n";
   print MAIL "http://www.adgrafix.com\n";
   close(MAIL);
   }

}

sub sendpwd {

   open(USR,"users.txt");
   $sauth = $FORM{'author'};
   $sauth =~ s/\W/./g;
   while (<USR>) {
      if ($_ !~ /^$sauth\|/) {next}
      else {@UI=split(/\|/,$_); last; exit}
   }
   close(USR);
   $teste = `$mailprog -bv $UI[5]`;
   if ($teste =~ /deliverable/) {
   open(MAIL, "|$mailprog -t") || die "Can't open $mailprog!\n";
   print MAIL "To: $UI[5]\n";
   print MAIL "From: $fromemail\n";
   print MAIL "Subject: $TEXT{text122}\n\n";
   print MAIL "$TEXT{text123}: $FORM{'author'}\n";
   print MAIL "$TEXT{text124}:  	$UI[1]\n";
   print MAIL "$emailfooter\n";
   print MAIL "\nWSM Discussion Boards Copyright 1998-2001, Hosting.com\n";
   print MAIL "http://www.adgrafix.com\n";
   close(MAIL);
   }

   $success = "<center><font face=\"Arial\" size=+1 color=\"#33FF33\"><b><img src=\"/wsmicons/ok.jpg\"> $TEXT{text65}</b><br></font><font face=\"Arial\" size=-1 color=\"$font\">$TEXT{text125} <b>$UI[5]</b>.</font></center>";
   $successmail=1;
   undef $FORM{'author'};

   if ($FORM{'editscreen1'}) {&edita}
   if ($FORM{'editscreen2'}) {&modopt}
   elsif ($FORM{'comingfrom'} eq "REP") {&postreply}
   elsif ($FORM{'closethread'}) {&closethread}
   elsif ($FORM{'file'}) {&editpost}
   else {&postnewtopic}
}

# moderator options

sub modopt {

   if ($FORM{'path'}) {$ARGV[1] = $FORM{'path'}}
   if ($FORM{'config'}) {$ARGV[2] = $FORM{'config'}}
   if ($FORM{'author'}) {$ARGV[3] = $FORM{'author'}}

   if ($FORM{'author'}) {
      open(USR,"users.txt");
      $sauth = $ARGV[3];
      $sauth =~ s/\W/./g;

      while (<USR>) {
         if ($_ =~ /^$sauth\|$FORM{'passwd'}\|/) {@UI=split(/\|/,$_); $hit=1; last}
      }
      close(USR);
   }
   #if ($FORM{'editscreen2'}) {undef $FORM{'author'}; undef $FORM{'passwd'}}

   if (!($hit) && (!($FORM{'author'}))) {undef @UI}
   elsif (!($hit)) {$error = "<center><font face=\"Arial\" size=+1 color=\"#FF0000\"><b><img src=\"/wsmicons/error.jpg\"> $TEXT{text61}</b><br></font><font face=\"Arial\" size=-1 color=\"$font\">$TEXT{text126}</font></center>";undef $FORM{'author'}; undef $FORM{'passwd'}}
   $ARGV[2] =~ s/\;.*//g;

   @info = `cat wsmbb.$ARGV[2]`;
   foreach $line (sort(@info)) {
   chop($line);
      ($dir2,$name2,$mod2,$summary2,$secure2,$hf,$newbanner)=split(/\t/,$line);
      if ($dir2 eq $ARGV[1]) {&gethf; if ($newbanner) {$banner=$newbanner} last}
   }
###########dr#############
	$SHOWIPCOOKIE = "SI" . $ARGV[1];
	$SHOWIPCOOKIE =~ s/\///g;
        &GetCookies();
        if ($Cookies{$SHOWIPCOOKIE} eq "YES") {$showip="checked";}

###########dr#############

   print "Content-type: text/html\n\n";
   print "<title>$TEXT{text127}</title>\n";
   print "<style><!-- a:{color:$text} a:hover{color:$hoover} a:vlink{color:$vlink}  --></style>\n";
   print "<BODY TEXT=\"$text\" LINK=\"$link\" VLINK=\"$vlink\" ALINK=\"$alink\" BACKGROUND=\"$background\" BGCOLOR=\"$bgcolor\" bgproperties=\"fixed\">\n";
   &javascript;
   print "<form method=post action=\"wsmbb.cgi\">\n";
   print "<input type=hidden name=path value=\"$ARGV[1]\">\n";
   print "<input type=hidden name=config value=\"$ARGV[2]\">\n";
   print "<input type=hidden name=editscreen2 value=\"1\">\n";
   print "<input type=hidden name=modemail value=\"@UI[5]\">\n";

   print "<center><table border=0 cellpadding=0 cellspacing=0 width=\"95%\"><TR><td bgcolor=\"#000000\">\n";
   print "<table border=0 cellpadding=4 border=0 cellspacing=1 width=100%>\n";
   $mod3=$mod2;
   $mod3 =~ s/(\W)/sprintf("%%%x", ord($1))/eg;
   print "<tr bgcolor=$tbcolor3><td><font face=\"Arial\" size=-2>$TEXT{text127}</font><br><font face=\"Arial\" size=+1>$name2</font><br><font face=\"Arial\" size=-1>$TEXT{text3}: <a href=\"javascript:Start3(\'wsmbb.cgi?USER+$mod3\')\"\;>$mod2</a></td><td bgcolor=\"#ffffff\"><font face=\"Arial\" size=-2><img src=\"/wsmicons/bbfolder.gif\"> <a href=\"$urltowsmbbcgi?$ARGV[2]\">$TEXT{text7}</a><br><img src=\"/wsmicons/tee.gif\"><img src=\"/wsmicons/bbfolder.gif\"> <a href=\"$urltowsmbbcgi?SB+$ARGV[1]+$ARGV[2]\">$name2</a>";

   if ($topic) {print "<br><img src=\"/wsmicons/tee1.gif\"><img src=\"/wsmicons/tee.gif\"><img src=\"/wsmicons/bbfolder.gif\"> $topic"}

   if (!($FORM{'author'})) {print "</td><td align=center><input type=image border=0 src=\"/wsmicons/sendpwd.jpg\" name=sendpwd></td></tr>\n"}
   else {print "</td><td align=center><img border=0 src=\"/wsmicons/remem1.gif\"></td></tr>\n"}


   print "</table>\n";
   print "</td></tr></table></center>\n";

   print "<center><table border=0 cellpadding=0 cellspacing=0 width=\"95%\"><TR><td bgcolor=\"#000000\">\n";
   print "<table border=0 cellpadding=4 border=0 cellspacing=1 width=100%>\n";
   print "<tr BGCOLOR=$tbcolor1>";

   if (!($FORM{'author'})) {
 
      $mod2 =~ s/"/&quot;/g;
      $mod2 =~ s/</&lt;/g;
      $mod2 =~ s/>/&gt;/g;

      print "<td><font face=\"Arial\" size=-1><b>$TEXT{text3}:</b></td><td><input type=hidden name=author value=\"$mod2\"><font face=\"Arial\" size=-1>$mod2</td></tr>\n";
      print "<tr BGCOLOR=$tbcolor2>";
      print "<td><font face=\"Arial\" size=-1><b>$TEXT{text54}:</b></td><td><input type=password name=passwd size=25><br>\n";
      print "<font face=\"Arial\" size=-1><i>$TEXT{text128} </i></td></tr>\n";
      print "<tr BGCOLOR=$tbcolor1>";
      print "<td colspan=2 align=center><input type=submit name=displayco value=\"$TEXT{text129}\"></td></tr>\n";
   }
   else {
      print "<tr BGCOLOR=$tbcolor2>";

      print "<td><font face=\"Arial\" size=-1><b>$TEXT{text130}:</b><BR><font face=\"Arial\" size=-1>$TEXT{text131}</td><td><select name=marchive>\n";
      print "<option value=man>$TEXT{text132}\n";
      print "<option value=1>$TEXT{text133}\n";
      print "<option value=3>$TEXT{text134}\n";
      print "<option value=7>$TEXT{text135}\n";
      print "<option value=30>$TEXT{text136}\n";
      print "<option value=90>$TEXT{text137}\n";
      print "<option value=180>$TEXT{text138}\n";
      print "<option value=360>$TEXT{text139}\n";
      print "</select></td></tr>\n";
	##dr##
      print "<tr BGCOLOR=$tbcolor2>";
      print "<td><font face=\"Arial\" size=-1><b>IPs?:</b></td><td><input type=checkbox name=showip $showip>\n";
      print "</td></tr>\n";
	######
      $pfile = $ARGV[1];
      $pfile =~ s/\//-/g; $pfile = $pfile . ".options";
      $pfile =~ s/\;.*//g;
      if (-e "$pfile") {
      @MOD = `cat $pfile`;
      $MOD[0] =~ s/.*\t//;
      $MOD[0] =~ s/:/\n/g;
      $blocks = $MOD[0];

      $MOD[1] =~ s/.*\t//;
      $MOD[2] =~ s/.*\t//;
      $bannedURL = $MOD[1];
      $modnotify = $MOD[2];
      if ($modnotify =~ /\n$/) {chop($modnotify)}
      }

      print "<tr BGCOLOR=$tbcolor1>";
      print "<td><font face=\"Arial\" size=-1><b>$TEXT{text140}:</b></td><td><input type=checkbox name=modnotify value=checked $modnotify> <font face=\"Arial\" size=-1>$TEXT{text141}</td></tr>\n";

      print "<tr BGCOLOR=$tbcolor2>";
      print "<td align=top><font face=\"Arial\" size=-1><b>$TEXT{text142}:</b>";
      print "<br>$TEXT{text143}";
      print "</td><td><textarea name=blocks cols=45 rows=8 wrap=virtual>$blocks</textarea></td></tr>\n";

      print "<tr BGCOLOR=$tbcolor1>";
      print "<td><font face=\"Arial\" size=-1><b>$TEXT{text144}:</b></td><td><font face=\"Arial\" size=-1><input type=text name=bannedURL value=\"$bannedURL\" size=45></td></tr>\n";

      print "<tr BGCOLOR=$tbcolor2>";
      print "<td colspan=2 align=center><input type=submit name=MOD2 value=\"$TEXT{text145}\"></td></tr>\n";
   }
   print "</table>\n";
   print "</td></tr></table></center>\n";
   &footer;
   exit;   
}

sub manual_archive {
	$SHOWIPCOOKIE= "SI" . $FORM{'path'};
	$SHOWIPCOOKIE =~ s/\///g;
	$currtime = time();
	if($FORM{'showip'}){
		&SetCookies($SHOWIPCOOKIE,"YES");
	}
	else{
		&SetCookies($SHOWIPCOOKIE,"NO");
	
	}
	#&GetCookies();
	#print "Content-type: text/html\n\n";
	#print "set<br>$FORM{'showip'}<br>$Cookies{$SHOWIPCOOKIE}\n";
	#exit;

   dbmopen(KEY,"keys",0666);
   foreach $key (keys(%KEY)) {
      ($jk,$tstamp) = split(/ _ /,$KEY{$key});
      if (($currtime - $tstamp) > 2592000) {delete($KEY{$key})}
   }
   dbmclose(KEY);
	#print "Content-type: text/html\n\n";
	#print "set<br>$FORM{'showip'}<br>$Cookies{$SHOWIPCOOKIE}\n";
	#exit;

   if ($FORM{'marchive'} && $FORM{'marchive'} ne "man") {
      opendir(DIR,"./$FORM{'path'}");
      @dir = readdir(DIR);
      closedir(DIR);
      foreach $line (@dir) {
         unless ($line =~ /\.txt/) {next}
         ($p1,$p2,$p3) = split(/\./,$line);
         $mdate = (-M "./$FORM{'path'}/$line");
         if ($mdate < $MDATE{$p1} || !($MDATE{$p1})) {$MDATE{$p1} = $mdate}
      }
      $FORM{'path'} =~ s/\;.*//g;
      unless (-d "./$FORM{'path'}/archive") {`mkdir ./$FORM{'path'}/archive`}
      $FORM{'path'} =~ s/\;.*//g;
      foreach $key (keys(%MDATE)) {
         if ($MDATE{$key} > $FORM{'marchive'}) {
            `mv ./$FORM{'path'}/$key\.* ./$FORM{'path'}/archive/`;
         }
      }

      $and = "Topics archived.";
   }

   $FORM{'blocks'} =~ s/\cM//g;
   $FORM{'blocks'} =~ s/\n/:/g; 
   $FORM{'blocks'} =~ s/\s+//g;
   $FORM{'blocks'} =~ s/:+$//g; 

   $pfile = $FORM{'path'};
   $pfile =~ s/\//-/g; $pfile = $pfile . ".options";

   open(MOD,">$pfile");
   print MOD "BLOCKS\t$FORM{'blocks'}\n";
   print MOD "URL\t$FORM{'bannedURL'}\n";
   print MOD "NOTIFY\t$FORM{'modnotify'}\n";
   print MOD "MOD EMAIL\t$FORM{'modemail'}\n";
   close(MOD);

   $success = "<center><font face=\"Arial\" size=+1 color=\"#33FF33\"><b><img src=\"/wsmicons/ok.jpg\"> $TEXT{text65}</b><br></font><font face=\"Arial\" size=-1 color=\"$font\">$TEXT{text146} $and</font></center>";

   &showboard;
}

sub gethf {
   if ($hf) {
      ($header2,$footer2)=split(/\|/,$hf);
      if ($header2 || $footer2) {
         $headerfile=$header2;
         $footerfile=$footer2;
      }
   }
}

sub rempost {

   $path = $ARGV[1];
   $postno = $ARGV[2];
   $path =~ s/\;.*//g;
   $postno =~ s/\;.*//g;

   @postinfo = `cat ./$path/$postno.1.txt`;
   ($jk,$topic,$starter,$author,$jk)=split(/\t/,$postinfo[0]);

   print "Content-type: text/html\n\n";
   print "<title>$TEXT{text147}</title>\n";
   print "<style><!-- a:{color:$text} a:hover{color:$hoover} a:vlink{color:$vlink}  --></style>\n";
   print "<BODY TEXT=\"$text\" LINK=\"$link\" VLINK=\"$vlink\" ALINK=\"$alink\" BACKGROUND=\"$background\" BGCOLOR=\"$bgcolor\" bgproperties=\"fixed\">\n";
   print "<center><table border=0 cellpadding=0 cellspacing=0 width=\"95%\"><TR><td bgcolor=\"#000000\">\n";
   print "<table border=0 cellpadding=4 border=0 cellspacing=1 width=100%>\n";
   print "<tr BGCOLOR=$tbcolor3>";
   trans2(text148);
   print "<td align=center><font face=\"Arial\" size=-1><b>$TEXT{text148}</b></td>\n";
   print "<tr BGCOLOR=$tbcolor1>";
   print "<td><font face=\"Arial\" size=-1>";
   foreach $ln (@postinfo) {
      $ctln++; if ($ctln < 2) {next}
      unless ($ln =~ /<!--/) {print "$ln<br>\n"}
   }
   print "</font></td></tr>\n";
   $pt=2;
   while ($pt < 25) {
      @postinfo = `cat ./$path/$postno.$pt.txt`;
      unless ($postinfo[0]) {$pt++; next}
      ($jk,$topic,$starter,$author,$jk)=split(/\t/,$postinfo[0]);
   print "<tr BGCOLOR=$tbcolor3>";
   print "<td align=center><font face=\"Arial\" size=-1><b>$TEXT{text149}</b></td>\n";
   print "<tr BGCOLOR=$tbcolor1>";
   print "<td><font face=\"Arial\" size=-1>";
   foreach $ln (@postinfo) {
      $ctln++; if ($ctln < 2) {next}
      unless ($ln =~ /<!--/) {print "$ln<br>\n"}
   }
   print "</font></td></tr>\n";
     $pt++;
   }
   print "</table>\n";
   print "</td></tr></table></center>\n";
   exit;
}

sub getnitro {$nitro="CgokY3VzdDIgPSBgcHdkYDsKKCRqazEsJGprMiwkY3VzdCwkamszLCRqazQpID0gc3BsaXQoIi8i
LCRjdXN0Mik7CnVubGVzcyAoLWUgIi9vcHQyLyRjdXN0IikgewogICAkY3VzdD0kamszOwogICB1
bmxlc3MgKC1lICIvb3B0Mi8kY3VzdCIpIHtkaWUgInVzZXJuYW1lIGRvZXMgbm90IGV4aXN0ISJ9
Cn0KJGxpbmUgPSBgbW9yZSAvZXRjL3dzbS5jb25mIHwgZ3JlcCAiXiRjdXN0IF8gImA7Cigkamss
JGRvbWFpbiwkcGVybWRvbWFpbiwkbGltaXQsJGFkZGl0aW9uYWxfZG9tYWlucywkbGV2ZWwyMiwk
YXV0b2FjY2VzcywkZnVsbCwkZGVkKSA9IHNwbGl0KCIgXyAiLCRsaW5lKTsKY2hvcCgkZGVkKTsK
Cg=="}


