#!/perl/bin
###########################################################################
#                                                                         #
#        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							  #
#                                                                         #
###########################################################################

&UnWeb;
$return_name=$in{'return'}; #who the mail is from.
$mailprog=$in{'mailprog'};

$in{'Description'} =~ s/&&/<br><br>/g;
$AdNumber = 0;
# Get the Date for Entry
$date = `date +"%A, %B %d, %Y"`;
        chop($date);
$shortdate = `date +"%D"`;
        chop($shortdate);

if ($in{'Selection'} eq "Angebote einsehen") {
	if ($in{'Department'} eq "") {
		# Keine Gruppe gewählt? Dann gibts diese Fehlermeldung
		&PrintHeader;
		print "<html>\n";
		print "<head>\n";
		print "<title>FEHLERMELDUNG</title>\n";
		print "</head>\n";
		print "<body bgcolor=\"FFFFFF\">\n";
		print "\n";
		print "<h1>Ein Fehler ist aufgetreten:</h1><p>\n";
		print "Sie haben keine Gruppe gew&auml;hlt, in der Ihre Anzeige erscheinen soll.  Bitte w&auml;hlen Sie eine Gruppe indem Sie den Radiobutton davor markieren.<p>\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:greg\@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";
		
		# Aufruf zum aussteigen aus dem Script und beenden
		exit;
		}
	print "Location: $in{'ViewDir'}$in{'Department'}.html\n\n";
	exit;
	}

if (($in{'RealName'} eq "") || ($in{'E-MailAddress'} eq "") || ($in{'Address1'} eq "") 
		|| ($in{'Department'} eq "") || ($in{'Description'} eq "")) {
		# Ein Feld wurde nicht ausgefüllt? Dann gibts diese Fehlermeldung
		&PrintHeader;
		print "<html>\n";
		print "<head>\n";
		print "<title>Fehlermeldung</title>\n";
		print "</head>\n";
		print "<body bgcolor=\"FFFFFF\">\n";
		print "\n";
		print "<h1>Ein Fehler ist aufgetreten:</h1><p>\n";
		print "Ein Feld wurde nicht ausgef&uuml;llt. Es m&uuml;ssen alle Felder ausgef&uuml;llt sein um die Anzeige aufzugeben.<p>\n";
		print "<hr><p><center><a href=$in{'ErrorReturn'}>Zur&uuml;ck zum Formular</a><p><hr>\n";
		print "© 1997 and Designed and Programmed by <a href=\"mailto:greg\@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";
		
		# make a call to exit to end the script now, we had an error
		exit;
}

# FILELOCK. Damit die Datei nicht zerstört wird, wenn mehrere Besucher gleichzeitig auf die Datei zugreifen
&PrintHeader;
		
$quit = 0;
while ($quit != 1) {
	if (-e "$in{'ClassifiedsDir'}.$in{'Department'}lock") {
		# The file exists, time to take a nap
		sleep(1);
	}
	else {
	
	# Lockfiel erzeugen
	open (LOCK,">$in{'ClassifiedsDir'}.$in{'Department'}lock");
	close LOCK;
	}
	
	# Öffnen des Zählers und die Nummer des letzten Postings auslesen
	open (ADFILE, "$in{'ClassifiedsDir'}AdNumber.dta");
	$AdNumber = <ADFILE>;
	# chop $AdNumber;

	# Update des Zählers um 1
	$AdNumber = $AdNumber + 1;
	
	# Zurückschreiben des Zählers
	open (ADFILE, ">$in{'ClassifiedsDir'}AdNumber.dta");
	print ADFILE $AdNumber;
	close(ADFILE);

	# Schreiben der Datei, die das Posting enthält
	open(ADFILE,"$in{'ClassifiedsDir'}$in{'Department'}.html") || die $!;
		@main = <ADFILE>;
		close(ADFILE);
	open(ADFILE,">$in{'ClassifiedsDir'}$in{'Department'}.html") || die $!;
	      foreach $main_line (@main) {
	         if ($main_line =~ /<!--Do not edit past this line-->/) {
	            	print ADFILE "<!--Do not edit past this line-->\n";
			print ADFILE "<!-- $AdNumber $in{'RealName'} $in{'E-MailAddress'} $shortdate -->\n";
			print ADFILE "<b>Angebot Nr.: </b>$AdNumber - <b>Titel: </b>$in{'AdSubject'} - <b>Inserat vom: </b>$shortdate<br>\n";
			print ADFILE "<b>Antwort an: </b>$in{'RealName'} unter <a href=\"mailto: $in{'E-MailAddress'}\">$in{'E-MailAddress'}</a><br>\n";
			print ADFILE "$in{'Description'}<p>\n";
			print ADFILE "<A href=\"$in{'Linkurl'}\">$in{'Linktitle'}</a>";
			print ADFILE "<p><hr><p>\n";
			print ADFILE "<!-- end $AdNumber -->\n";

	         }
	         else {
	            print ADFILE "$main_line";
	         }
	      }

	

	# Schreiben der Personalien zu der UserData Datei
	open (DATAFILE,">>$in{'ClassifiedsDir'}UserDataFile.html");
	print DATAFILE "<!-- $AdNumber $in{'Department'} $in{'E-MailAddress'} $shortdate -->\n";
print DATAFILE "<b>$in{'RealName'} - <a href=mailto:$in{'E-MailAddress'}>$in{'E-MailAddress'}</a><br>\n";
	print DATAFILE "$in{'Address1'}<br>\n";
	if ($in{'Address2'} ne "") {
		print DATAFILE "$in{'Address2'}<br>\n";
	}
	print DATAFILE "$in{'City'}, $in{'State'}  $in{'ZipCode'} - $in{'Phone'}</b><br>\n";
	print DATAFILE "<b>Angebot Nr.: </b>$AdNumber - <b>Gruppe: </b>$in{'Department'} am $shortdate<br>\n";
	if ($in{'DesiredDepartment'} ne "") {
		print DATAFILE "<b>Gew&uuml;nschte Gruppe: </b>$in{'DesiredDepartment'}<br>\n";
	}
			print DATAFILE "<b>Beschreibung : </b>$in{'Description'}\n";
			print DATAFILE "<b>Link : </b><A href=\"$in{'Linkurl'}\">$in{'Linktitle'}</a>";
			print DATAFILE "<p><hr><p>\n";
	print DATAFILE "<!-- end $AdNumber -->\n";
	close(DATAFILE);
	
	# UnLocken der Datei
	unlink("$in{'ClassifiedsDir'}.$in{'Department'}lock");

      open( MAIL, "|$mailprog $in{'E-MailAddress'}" )
         || die "Kann Mailprogramm nicht öffnen: $email: $!\n";
      print MAIL "To: $in{'E-MailAddress'} \n";
      print MAIL "Subject: Vielen Dank fuer Ihr Posting\n";
      print MAIL "From: $return_name\n";
      print MAIL "Reply-to: $return_name\n\n";

      print MAIL "   Vielen Dank fuer Ihren Eintrag in \n";
     print MAIL "   unserem Schwarzen Brett. Ihr Eintrag in $in{'Department'} \n";
	print MAIL" sieht so aus:\n\n";

	print MAIL "Angebot Nr.: $AdNumber - Subjekt: $in{'AdSubject'} - gepostet am: $shortdate\n";
	print MAIL "Antwort an: $in{'RealName'} unter <a href=\"mailto: $in{'E-MailAddress'}\">$in{'E-MailAddress'}</a>\n";
	print MAIL "$in{'Description'}\n";
	print MAIL "Link <A href=\"$in{'Linkurl'}\">$in{'Linktitle'}</a>\n\n";
      print MAIL "Der WebMaster.\n";
close(MAIL);

#--------------------------------
#
#Send your keeper's notification out.
#

if( $return_name ne "" )
{
      open( MAIL, "|$mailprog $return_name" )
         || die "Kann Mailprogramm nicht oeffnen: $return_name: $!\n";
      print MAIL "To: $return_name\n";
      print MAIL "Subject: Eintrag Ihres Angebotes - Bestaetigung\n";
      print MAIL "From: $in{ 'RealName' } <$in{ 'E-MailAddress' }>\n\n";
      print MAIL "Ich habe heute folgendes Angebot in die Gruppe $in{'Department'} gepostet:\n\n";

	print MAIL "Angebot Nr.: $AdNumber - Subjekt: $in{'AdSubject'} - gepostet am: $shortdate<br>\n";
	print MAIL "Antwort an: $in{'RealName'} unter <a href=\"mailto: $in{'E-MailAddress'}\">$in{'E-MailAddress'}</a><br>\n";
	print MAIL "$in{'Description'}\n";
	print MAIL "<A href=\"$in{'Linkurl'}\">$in{'Linktitle'}</a>";

}
	
	# Zurück zur ReturnURL
	print "<meta http-equiv=\"refresh\" content=\"1; url=$in{'ReturnURL'}\">\n";
	$quit = 1;
close(MAIL);
}

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";
}



