#!/usr/local/bin/perl
require './cgi-lib.pl';

local ($dbmFile)="./mail-code";
local ($author) = "Adam J. Griff, Ph.D., &#099;omputer&#064;&#103;riff&#109;onster.<!-- ajg  protection  -->com";
local ($program)="form-dbm.pl";
local ($title)="DBM Utility Form";
local ($alias)="queen";
local ($to)="&#099;omputer&#064;&#103;riff&#109;onster.<!-- ajg  protection  -->com";
local ($real_name)="Grammar Queen Doppke";
local ($comment)="I'm a New Guinean Pig";

&form_response;
($title=$FORM{'title'}) if ($FORM{'title'});
print &html_header($title);

if ($ENV{PATH_INFO} eq "/init") {
    print &generate_utility_form($title);
} elsif ($FORM{'action'} eq 'Lookup') {
    $title .= "\n<BR> Lookup Results";
    ($to,$real_name,$comment)=&lookup_user($dbmFile,$FORM{'alias'});
    if ($to eq "" && $lock_file_err ne "") {
	print $lock_file_err;
    } else {
	print &generate_utility_form($title,$FORM{'alias'},$to,$real_name,$comment);
    }
} elsif ($FORM{'action'} eq 'Update') {
    $title .= "\n<BR> Update Results";
    if (&add_user($dbmFile,$FORM{'alias'},$FORM{'to'},$FORM{'real_name'},$FORM{'comment'}) == 0) {
	print $lock_file_err;
    }else {
	print "<H1>$title</H1><P>";
	print "<PRE>$FORM{'alias'}=| $FORM{'to'} | $FORM{'real_name'} | $FORM{'comment'} </PRE><P>\n";
    }

} elsif ($FORM{'action'} eq 'Add') {
    ($to,$real_name,$comment)=&lookup_user($dbmFile,$FORM{'alias'});
    # Check if the entry already exists
    if ($to) {
	$title .= "\n<BR> Add Failed data below was present";
	$title .= "\n<BR><H2> use Update when replacing existing data</H2>";
	print &generate_utility_form($title,$FORM{'alias'},$to,$real_name,$comment);
    } else {
	if ($lock_file_err ne "") {
	    print $lock_file_err;
	} else{
	    $title .= "\n<BR> Add Results";
	    &add_user($dbmFile,$FORM{'alias'},$FORM{'to'},$FORM{'real_name'},$FORM{'comment'});
	    print "<H1>$title</H1><P>";
	    print "<PRE>$FORM{'alias'}=| $FORM{'to'} | $FORM{'real_name'} | $FORM{'comment'} </PRE><P>\n";
	}
    }

} elsif ($FORM{'action'} eq 'Delete') {
    $title .= "\n<BR> This entry has been Deleted";
    ($to,$real_name,$comment)=&lookup_user($dbmFile,$FORM{'alias'});
    if ($to eq "" ) {
	if ($lock_file_err ne "") {
	    print $lock_file_err;
	}
    } else{
	&remove_user($dbmFile,$FORM{'alias'});
	print &generate_utility_form($title,$FORM{'alias'},$to,$real_name,$comment);
    }

} elsif ($FORM{'action'} eq 'Dump') {
    $title .= "\n<BR> Dump of the DB";
    print &html_from_users($dbmFile,$title);
}

print &html_trailer($author,$program);





sub generate_utility_form {
    local($title,$alias,$to,$real_name,$comment) = @_;
    local($output);
    $output = "<H1>$title</H1><P>\n";
    $output .= "<FORM METHOD=\"POST\" ACTION=\"/cgi-bin/form-dbm.pl\">\n";
    $output .= "Alias: <input type=\"text\" name=\"alias\" value=\"$alias\" size=20 ><P>\n";
    $output .= "Real Name: <input type=\"text\" name=\"real_name\" value=\"$real_name\" size=40 ><P>\n";
    $output .= "E-Mail Address: <input type=\"text\" name=\"to\" value=\"$to\" size=30 ><P>\n";
    $output .= "Any Comments accompanying this entry:<BR>\n";
    $output .= "<TEXTAREA name=\"comment\" ROWS=2 COLS=50>$comment</TEXTAREA><P>\n";
    $output .= " Select the action to be taken on the DBM:<BR>\n";
    $output .= "<INPUT TYPE=\"radio\" NAME=\"action\" VALUE=\"Lookup\" CHECKED> Lookup ";
    $output .= "<INPUT TYPE=\"radio\" NAME=\"action\" VALUE=\"Update\"> Update ";
    $output .= "<INPUT TYPE=\"radio\" NAME=\"action\" VALUE=\"Add\"> Add or ";
    $output .= "<INPUT TYPE=\"radio\" NAME=\"action\" VALUE=\"Delete\" >Delete a DBM entry.<BR>\n";
    $output .= "or <INPUT TYPE=\"radio\" NAME=\"action\" VALUE=\"Dump\"> View the entire DBM<P>\n";
    $output .= "<INPUT TYPE=\"reset\" VALUE=\"Reset Form\"> <input type=\"submit\" value=\"Process Request\">";

    return $output;
}
