The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl -w

use strict;
use HTML::CalendarMonthDB;
use HTML::Template;
require URI::Escape;

main();

sub main {
	#my $env;
	#foreach $env (keys %ENV) {
	#	print $env." ".$ENV{$env}."<br>";	
	#}

        my(%param, $qs, $queryString);
	if ($ENV{'CONTENT_LENGTH'}) {
        	read STDIN, $queryString, $ENV{'CONTENT_LENGTH'};
       	}
	if ($ENV{'QUERY_STRING'}) {
		$queryString .= "&".$ENV{'QUERY_STRING'};
	}
	my(@splitQS)=split('&' ,$queryString);
        foreach $qs(@splitQS) {
		$qs =~ s/\+/ /g;
                my(@pair)=split('=', $qs);
                $pair[0]=URI::Escape::uri_unescape($pair[0]);
                $pair[1]=URI::Escape::uri_unescape($pair[1]);
                $param{$pair[0]} = $pair[1];
        }

	if ($param{'add'}) {
		addEvent(%param);
		$param{'added'} =1;	
	}

	addForm(%param);	

}

sub addEvent {
	my(%param)=@_;
        my ($cal);
        my $dbname = $ENV{'DB_NAME'};
        my $dbuser = $ENV{'DB_USER'};
        my $dbpass = $ENV{'DB_PASS'};
        my $dbclient = $ENV{'DB_CLIENT'};
        my $dbcalendar = $ENV{'DB_CALENDAR'};
	my $dbhost = $ENV{'DB_HOST'};
        my($month,$day,$year) = split('_', $param{'date'});
        my($calid)=$param{'calid'};

        $cal = new HTML::CalendarMonthDB('month'=>$month, 'year'=>$year, 'dbname'=>$dbname, 'dbuser'=>$dbuser, 'dbcalendar'=>$dbcalendar, 'dbclient'=>$dbclient, 'dbhost'=>$dbhost);
	$cal->adddbevent('date'=>$day, 'eventname'=>$param{'eventName'}, 'eventdesc'=>$param{'eventDesc'}, 'eventlink'=>$param{'eventLink'});

}

sub addForm {
	my(%param)=@_;
        my ($htmlOut);
	my($month,$day,$year) = split('_', $param{'date'});
	my $view = $param{'view'};
	my $template = HTML::Template->new(filename => 'addcal.tmpl');

	if ($param{'added'}) {
		$htmlOut .= 'Event Added.  You may add another for this date if you wish.<br><br>';
	}
	
	$htmlOut .= '<form name="addform" method="post"><table border="0" cellpadding="3" bgcolor="ccccff"><tr bgcolor="red"><td colspan="2">';
	$htmlOut .= "<center><b>Add Event for $month/$day/$year</b><font size=1> <a href=\"editcal.cgi?date=".$param{'date'}."&calid=".$param{'calid'}."&view=$view\">[Edit events for $month/$day/$year]</a></font></center>";
	$htmlOut .= '</td></tr><tr><td>Event Name</td><td><input type="text" name="eventName"></td></tr>';
	$htmlOut .= '<tr><td>Event Description</td><td><textarea name="eventDesc" rows=8 cols=30 wrap=virtual></textarea></td></tr>';
	$htmlOut .= '<tr><td>Event Link</td><td><input type="text" name="eventLink"></td></tr>';
	$htmlOut .= '<tr><td colspan="2"><center><input type="submit" name="add" value="Add This Event"></center></td></tr>';	
	$htmlOut .= '</table><input type="hidden" name="date" value="'.$param{'date'}.'" override="1"><input type="hidden" name="calid" value="'.$param{'calid'}.'" override="1">';
	$htmlOut .= '</form>'; 	


	$template->param(
        	ADD_CAL => $htmlOut,
		BODY_INCLUDE => "onload='self.opener.window.location=\"calendar.cgi?date=1&month=$month&year=$year&view=$view\"'"
	);

	# print the template
	print $template->output;
		

}