#!/usr/bin/perl
###########################################################################
#                                                                         #
#        Classifieds.pl - Perl Script for Posting Classified Ads          #
#                                                                         #
#           geschrieben von Greg Mathews - greg@notts.net                 #
#									  #
# Überarbeitung und portierung ins Deutsche durch Dan Sepeur		  #
# URL: http://www.tag4tag.com						  #
# Mail: dan@tentacle.de							  #
#                                                                         #
###########################################################################

###########################################################################
#
# Definieren Sie die folgenden Variablen in Ihrem HTML-Formular:
#
#	ClassifiedsDir - Der Pfad zum Verzeichnis, in welchem die Postings
#			 gespeichert sind.
#	ErrorReturn    - Die URL zu der Seite die angezeigt werden soll,
#			 wenn ein Fehler auftaucht.
#	ReturnURL      - Die URL zu der Seite die angezeigt werden soll,
# 			 wenn das Posting erfolgreich war
&UnWeb;
$return_name=$in{'return'}; 
$mailprog=$in{'mailprog'};
&remove;

sub UnWeb {

   # Get the input
   read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});

   # Split the name-value pairs
   @pairs = split(/&/, $buffer);

   foreach $pair (@pairs) {
      ($name, $value) = split(/=/, $pair);

      # Un-Webify plus signs and %-encoding
      $value =~ tr/+/ /;
      $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
      $value =~ s/<!--(.|\n)*-->//g;

      if ($allow_html != 1) {
         $value =~ s/<([^>]|\n)*>//g;
      }
      else {
         unless ($name eq 'body') {
	    $value =~ s/<([^>]|\n)*>//g;
         }
      }

      $in{$name} = $value;
   }

}


#######################
# Print HTML Header

sub PrintHeader {

	print "Content-type: text/html\n\n";
}
sub remove {
if ($in{'Date'} eq "") {
		# Wurde einiges frei gelassen? Dann erfolgt diese Fehlermeldung
		&PrintHeader;
		print "<html>\n";
		print "<head>\n";
		print "<title>Fehlermeldung</title>\n";
		print "</head>\n";
		print "<BODY BGCOLOR=\"#ffffff\" TEXT=\"#000000\" link=\"#008000\" vlink=\"#800040\">\n";
		print "\n";
		print "<h1>Beim l&ouml;schen ist ein Fehler aufgetaucht:</h1><p>\n";
		print "Ein Feld wurde mindestens leer gelassen. Es m&uuml;ssen aber alle Felder ausgef&uuml;llt sein.<p>\n";
		print "<P>$in{'Date'}<br>\n";
		print "<hr><p><center><a href=$in{'ErrorReturn'}>Zur&uuml;ck zum Formular</a><p><hr>\n";
		print "© 1997 und designt und programmiert von <a href=\"mailto:webmaster\@notts.net\">Greg Mathews</a>.  All Rights Reserved.<br>\n";
		print "Ins Deutsche portiert und bearbeitet durch <a href=\"http://www.tag4tag.com\">Tag -4- Tag</a>. <br>\n";
		print "</body>\n";
		print "</html>\n";
		
		# Ausstieg aus dem Script wenn ein Fehler auftaucht
		exit;
}
	# Löschen des Users und seines Postings

local($Addno,$RealName,$email,$shortdate,$department,$Addno1,$email1,$shortdate1,$junk,$junk1,$junk2,$junk3);
			&PrintHeader;
		print "<html>\n";
		print "<head>\n";
		print "<title>Angebot vom $in{'Date'} wurde gelöscht</title>\n";
		print "</head>\n";
		print "<BODY BGCOLOR=\"#ffffff\" TEXT=\"#000000\" link=\"#008000\" vlink=\"#800040\"><font face=\"COMIC SANS MS,ARIAL\" size=4><P><BLOCKQUOTE>Das folgende Angebot wurde gel&ouml;scht.<P>\n";
		print "\n";
	open(ADFILE,"$in{'ClassifiedsDir'}UserDataFile.html") || die $!;
		@main = <ADFILE>;
		close(ADFILE);

	$del = "0";
	open(ADFILE,">$in{'ClassifiedsDir'}UserDataFile.html") || die $!;
	      foreach $main_line (@main) {
	         if ($main_line =~ / $in{'Date'} -->/) {
		($junk,$Addno,$department,$email,$shortdate,$junk1) = split(/ /, $main_line);
		print "Ad Details : $Addno,$in{'Date'}\n";
			$del = "1";
	open(ADFILE1,"$in{'ClassifiedsDir'}$department.html") || die $!;
		@main1 = <ADFILE1>;
		close(ADFILE1);
	$del2 = "0";
	$del3 = "0";
	open(ADFILE1,">$in{'ClassifiedsDir'}$department.html") || die $!;
	      foreach $main_line1 (@main1) {
	         if ($main_line1 =~ /<!-- $Addno /) {
		($junk2,$Addno1,$RealName,$email1,$shortdate1,$junk3) = split(/ /, $main_line1);

			$del2 = "1";
			$del3 = "1";
		   }
		   if ($del2 eq "1"){
			print "$main_line1";
			if ($main_line1 =~ /<!-- end $Addno -->/) {
				$del2 = "0";
			}
	         }
	         else {
	            print ADFILE1 "$main_line1";
	         }
		   }
		close(ADFILE1);
		   }
		   if ($del eq "1"){
			if ($main_line =~ /<!-- end $Addno -->/) {
				$del = "0";
      open( MAIL, "|$mailprog $email" )
         || die "Kann Mailprogramm nicht öffnen: $email: $!\n";
      print MAIL "To: $RealName <$email>\n";
      print MAIL "Subject: Angebot wurde geloescht\n";
      print MAIL "From: $return_name\n";
      print MAIL "Reply-to: $return_name\n\n";

      print MAIL "   Ihr Angebot in der Gruppe $department in unserem Schwarzen Brett wurde geloescht.\n\n";

      print MAIL "Vielen Dank fuer Ihren Besucht\n\nDer WebMaster.\n";
	close(MAIL);
			}
		}
	         else {
	            print ADFILE "$main_line";
	      }
	      }
	close(ADFILE);
}