#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "<Head><Title>EZENET CHAT</Title></Head>";
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/, $buffer);
foreach $pair (@pairs)
{
    ($name, $value) = split(/=/, $pair);

    $value =~ tr/+/ /;
    $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
    $FORM{$name} = $value;
}
$name = $FORM{'name'};
$phone = $FORM{'phone'};
$add = $FORM{'address'};
$act = $FORM{'act'};
$comments = $FORM{'comments'};
$comments2 = $FORM{'comments2'};
$comments3 = $FORM{'comments3'};
$comments4 = $FORM{'comments4'};
$flag = 0;
if( ($act =~/previous/) && ( length($name) != 0) ){
	open(F,"data1");
	while(<F>){
		$ss = $_;
		chop($ss);
		@rec = split(/:/,$ss);
		$com = @rec[0];
		$com =~ tr/A-Z/a-z/;
		$name =~ tr/A-Z/a-z/;
		if($flag == 0){
			$flag = 1;
			$prename = @rec[0];
			$prephone = @rec[1];
			$preadd = @rec[2];
			$precomments = @rec[3];
			$precomments2 = @rec[4];
			$precomments3 = @rec[5];
			$precomments4 = @rec[6];
		}	
		if( (length($name) == length($com) ) && ($name =~/$com/)){
			$name = $prename;
			$phone = $prephone;
			$add = $preadd;
			$comments = $precomments;
			$comments2 = $precomments2;
			$comments3 = $precomments3;
			$comments4 = $precomments4;
			close(F);
			&output;
			exit;
		}
		$prename = @rec[0];
		$prephone = @rec[1];
		$preadd = @rec[2];
		$precomments = @rec[3];
		$precomments2 = @rec[4];
		$precomments3 = @rec[5];
		$precomments4 = @rec[6];
	}
	close(F);
}elsif((length($name) == 0)&&($act =~/previous/)){
	print "Please select next record!";
	exit;
}	
$flag=0;
if( ($act =~/next/) && (length($name) != 0)){
	open(F,"data1");
	while(<F>){
		$ss = $_;
		chop($ss);
		@rec = split(/:/,$ss);
		$com = @rec[0];
		$com =~ tr/A-Z/a-z/;
		$name =~ tr/A-Z/a-z/;
		if($flag == 1){
			$name = @rec[0];
			$phone = @rec[1];
			$add = @rec[2];
			$comments = @rec[3];
			$comments2 = @rec[4];
			$comments3 = @rec[5];
			$comments4 = @rec[6];
			close(F);
			&output;
			exit;
		}
		if( (length($name) == length($com) ) && ($name =~/$com/)){
			$flag = 1;
		}
	}
	close(F);
}elsif( ($act =~/next/) && (length($name) == 0)){
	open(F,"data1");
	while(<F>){
		$ss = $_;
		chop($ss);
		@rec = split(/:/,$ss);
		$com = @rec[0];
		$com =~ tr/A-Z/a-z/;
		$name =~ tr/A-Z/a-z/;    
		$name = @rec[0];
		$phone = @rec[1];
		$add = @rec[2];
		$comments = @rec[3];
		$comments2 = @rec[4];
		$comments3 = @rec[5];
		$comments4 = @rec[6];
		close(F);
		&output;
		exit;
	}
}
if( (length($name) == 0) && (length($phone) == 0) && (length($address) == 0)){
	&output;
	exit;
}
#if( (length($name) != 0) && (length($phone) == 0) && (length($address) == 0) && ($act =~/search/) ){
if($act =~/search/){
	open(F,"data1");
	while(<F>){
		$ss = $_;
		chop($ss);
		@rec = split(/:/,$ss);
		$com = @rec[0];
		$com =~ tr/A-Z/a-z/;
		$name =~ tr/A-Z/a-z/;
		if( (length($name) == length($com) ) && ($name =~/$com/)){
			$phone = @rec[1];
			$add = @rec[2];
			$comments = @rec[3];
			$comments2 = @rec[4];
			$comments3 = @rec[5];
			$comments4 = @rec[6];
			close(F);
			&output;
			exit;
		}
	}
	close(F);
}elsif($act =~ /delete/){
	open(Fout,">out_data1.temp");
	open(F,"data1");
        while(<F>){
                $ss = $_;
                chop($ss);
                @rec = split(/:/,$ss);
                $com = @rec[0];
                $com =~ tr/A-Z/a-z/;
                $name =~ tr/A-Z/a-z/;
                if( (length($name) == length($com) ) && ($name =~/$com/)){
                }else{
			print Fout "$ss\n";
		}
        }
        close(F);   
	close(Fout);
	system("mv out_data1.temp data1");
	print "$name is delete";
	exit;
}
$flag = 0;
open(I,"data1");
while(<I>){
	$ss = $_;
	chop($ss);
	@rec = split(/:/,$ss);
	$com = @rec[0];
	$com =~ tr/A-Z/a-z/;
	$name =~ tr/A-Z/a-z/;
	if( (length($name) == length($com) ) && ($name =~/$com/)){
		$flag = 1;
	}
}
close(I);
if(($flag == 1) && ($act != "modify")){
	print "$name is already exist!!!";
	exit;
}else{
	if( (length($phone) == 0) || (length($add) == 0) ){	
		print "Sorry data missing!!!";
		exit;
	}elsif(($act =~ /new/) && ($flag == 0) ){
		open(F,">>data1");
		print F "$name:$phone:$add:$comments:$comments2:$comments3:$comments4\n";
		close(F);
		print "$name is added";
	#}elsif(($act =~/modif/)&& (length($add) == 0) && (length($phone) == 0)){
	}elsif($act =~/modif/){
		open(Fout,">out_data1.temp");
		open(F,"data1");
		while(<F>){
			$ss = $_;
			chop($ss);
			@rec = split(/:/,$ss);
			$com = @rec[0];
			$com =~ tr/A-Z/a-z/;
			$name =~ tr/A-Z/a-z/;
			if( (length($name) == length($com) ) && ($name =~/$com/)){
				print Fout "$name:$phone:$add:$comments:$comments2:$comments3:$comments4\n";
			}else{
				print Fout "$ss\n";
			}
		}
		close(F);   
		close(Fout);
		system("mv out_data1.temp data1");
		print "$name is Modified";
		exit;
	}else{
		if($act =~/next/){
			print "The end of the record";
		}else{
			print "Error in adding $name!!!";
		}
	}

		
}
exit;
sub output{
	print "<BODY BGCOLOR=#ffffff TEXT=#000000>";
	print "<IMG SRC=/devel/bobo3.gif>";
	print "<Form action=/cgi-bin/dbase1 method=post>\n";
	print "<TABLE align=right><TR><TD>";
	print "Company Code:</TD><TD><Input Type=\"Text\" Name=\"name\" value=\"$name\">\n</TD></TR><TR><TD>";
	print "Name:</TD><TD><Input Type=\"Text\" Name=\"phone\" value=\"$phone\"></TD></TR><TR><TD>\n";
	print "Address:</TD><TD><Input Type=\"Text\" Name=\"address\" value=\"$add\"></TD></TR><TR><TD>\n";
	
print "Phone:</TD><TD><INPUT type=\"TEXT\" NAME=\"comments\" value=\"$comments\"></TD></TR><TR><TD>\n";
print "Domain:</TD><TD><INPUT type=\"TEXT\" NAME=\"comments2\" value=\"$comments2\"><a href=http://www.$comments2> Web Site</TD></TR><TR><TD>\n";

print "Email:</TD><TD><INPUT type=\"TEXT\" NAME=\"comments3\" value=\"$comments3\"><a href=mailto:$comments3>  Email Client</TD></TR><TR><TD>\n";
print "Comments:</TD><TD><INPUT type=\"TEXT\" NAME=\"comments4\" value=\"$comments4\"></TD></TR><TR><TD>\n";



	print "<BR>\n";
	print "</TD></TR></TABLE>";
print "<BR>";
print "<BR>";
print "<BR>";
	
print "<INPUT type=radio NAME=act Value=search>Search<BR>";
	print "<INPUT type=radio NAME=act Value=modify>Modify<BR>";
	print "<INPUT type=radio NAME=act Value=delete>Delete<BR>";
	print "<INPUT type=radio NAME=act Value=new>New<BR>";
	print "<INPUT type=radio NAME=act Value=next checked>Next<BR>";
	print "<INPUT type=radio NAME=act Value=previous>Previous<BR>";
	print "<p><input type=submit name=\"Submit\" value=\"Submit\"> <input type=reset name=\"Reset\" value=\"Clear Form\"></p>\n";
	print "</form>\n";
}
