#!usr/bin/perl -w

use warnings; # error-checking pragma
use CGI; # very handy module
use strict;

print "Content-type: text/html\n\n"; # content-type

# <SET VARIABLES> #
my $use_flock = 0; # 0 if not using / 1 if using

my $q = new CGI;
# Parameters: (using CGI.PM)
my $query_name = qq(<font face="Tahoma" size="2">);
   $query_name .= "<b>";
   $query_name .= "Name: ";  
	 $query_name .= "</b>"; 
	 $query_name .= "<i>";
	 $query_name .= $q->param('name');
	 $query_name .= "</i>";
	 $query_name .= "<br>";
	 $query_name .= "</font>";
	 # USER'S NAME
	 quotemeta($query_name);
my $query_email = qq(<font face="Tahoma" size="2">);	 
   $query_email .= "<b>";
   $query_email .= "Email: ";	 
	 $query_email .= "</b>";
	 $query_email .= "<i>";
   $query_email .= $q->param('email');
	 $query_email .= "</i>";
	 $query_email .= "<br>";
	 $query_email .= "</font>";
	 # USER'S EMAIL
	 quotemeta($query_email);
my $query_msg = qq(<font face="Tahoma" size="2">);	 
   $query_msg .= "<b>";
   $query_msg .= "Message: <br>";	 
	 $query_msg .= "</b>";
	 $query_msg .= "<i>";
   $query_msg .= $q->param('message');
	 $query_msg .= "</i>";
	 $query_msg .= "<br>";
	 $query_msg .= "</font>";
	 $query_msg .= "<br>";
	 # USER'S MESSAGE 
	 quotemeta($query_msg);
	 
	 my $smilies_dir = "smilies";  quotemeta($smilies_dir);
	 my $ext = ".gif";						 quotemeta($ext);
	 my $s1 = "smile";						 quotemeta($s1);
	 my $s2 = "wink";						   quotemeta($s2);
	 my $s3 = "happy";						 quotemeta($s3);
	 my $s1full = $s1 . $ext;
	 my $s2full = $s2 . $ext;
	 my $s3full = $s3 . $ext;
	 
	 # <youknow>
	 $query_message =~ s/:\)/<img src="$smilies_dir/$s1full">/;
	 $query_message =~ s/;\)/<img src="$smilies_dir/$s2full">/;
	 $query_message =~ s/:D/<img src="$smilies_dir/$s3full">/;
	 # </youknow>

# prepare file acces
mkdir('messages', 0777); # make dir /messages [ALL ACCES]

# <CALL SUBROUTINES> #
&write_file;
&open_file;
# </CALL SUBROUTINES> #

sub open_file {
		my $file;
		my @files;
		my @filecontents;
		opendir(MSG, "messages") || die "Can't open dir /messages in $0. \nReason: \n $!";
			      my @files = readdir(MSG);
		close(MSG);
    
		foreach my $file (@files) {
						chdir "messages";
		  			open (OPENFILE, "all_messages.htm");
						
						if ($use_flock == 1) {
							 flock(OPENFILE, LOCK_NB);
						} # use flock() when value set to 1
						
						my @filecontents = <OPENFILE>;
						
						if ($use_flock == 1) {
							 flock(OPENFILE, LOCK_UN);
						} # don't use flock() when value set to 0
						
						close (OPENFILE);		
		} 
} # end open_file

sub write_file {
		print qq(<b><font face="Tahoma" size="2">Thanks for adding a message. If you don't see your message, try again.\n Some error might have occured. </b></font><br><br>);
		
		chdir "messages";
		open(WRITEFILE, ">>all_messages.htm") or die "Unable to open file.";
				my @allmsges = <WRITEFILE>;
				print WRITEFILE $query_name;
				print WRITEFILE $query_email;
				print WRITEFILE $query_msg;
		close(WRITEFILE);
		&readit;
} # end write_file

sub readit {
		chdir "messages";
		open (READ, "all_messages.htm") or die "Couldn't open all_messages.htm in $0. \nReason: \n $!\n";
				  my @read = <READ>;
		close (READ);
		
		print @read;
} # end readit

sub HTML {
print <<"HTML";
<html>
<head>
<title>Guestbook - Test #0.01 - Beta 0.01</title>
</head>
<body>
<center>
<font face="Tahoma">
Please fill in a messsage.<Br><br><br><br>

<form method="POST">
<b>Name:</b> <input type="text" value="name"><br>
<b>Email:</b> <input type="text" value="email"><br><br>
<b>Message:</b> <Br><br><textarea rows="5" cols="25"></textarea><br>
<Br><button type="submit" name="submit">Send Message!</button>
</form>
</font>
<center>
</body>
</html>
HTML
}
1;


