#!/usr/bin/perl

$ENV{'PATH'} = '';

use Image::Magick;

my $uid = $ENV{'REMOTE_USER'};
my $ipa = $ENV{'REMOTE_ADDR'};



&readform;

open("file", "/home/veppisivut/cgi-bin/laskuri/laskurit"); my @file = <file>; close("file");

my @newf;
my $find = 0;
my ($nme, $num, $cnt, $bgc, $fgc, $fnt, $fns);
my ($nmea, $numa, $cnta, $bgca, $fgca, $fnta, $fnsa);
foreach my $tmp (@file) {
	chomp $tmp; next unless($tmp); next if($tmp =~ /#/);
	($nme, $num, $cnt, $bgc, $fgc, $fnt, $fns) = (split /\s/, $tmp, 7);
	if($num == $info{'uid'}) {
		$find = 1; $cnt++;
		$nmea = $nme; $numa = $num; $cnta = $cnt; $bgca = $bgc; $fgca = $fgc; $fnta = $fnt; $fnsa = $fns;
		push @newf, "$nme $num $cnt $bgc $fgc $fnt $fns\n";
	}
	else {
		push @newf, "$tmp\n";
	}
}
exit(0) if($find == 0);

open("file", ">/home/veppisivut/cgi-bin/laskuri/laskurit"); &lock("file"); print file @newf; &unlock("file"); close("file");

my $size = 200 . "x" . ($fnsa+12);
my $image = new Image::Magick; $image->Set(size => $size, antialias => 1); $image->ReadImage("xc:#$bgca");

$image->Annotate(stroke => "#$fgca", fill => "#$fgca", align => "center", font => "/home/veppisivut/cgi-bin/libs/$fnta", pointsize => $fnsa, x => 100, y => $fnsa, text => $cnta);

print STDOUT "Content-Type: image/png\n\n"; binmode STDOUT; $image->Write("png:-");
exit(0);



sub lock {
	my ($file) = @_;
	flock($file, 2);
}

sub unlock {
	my ($file) = @_;
	flock($file, 8);
}

sub readform {
        read(STDIN, $input, $ENV{'CONTENT_LENGTH'});
	my @pairs = (split /&/, $input);

	foreach $pair (@pairs) {
		my ($name, $value) = (split /=/, $pair);
		$name =~ tr/+/ /; $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
		$value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s/<!--(.|\n)*-->//g;
		$form{$name} = $value;
	}

	my @vars = (split /&/, $ENV{'QUERY_STRING'});
	foreach $var (@vars) {
		my ($v, $i) = (split /=/, $var);
		$v =~ tr/+/ /; $v =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
		$i =~ tr/+/ /; $i =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $i =~ s/<!--(.|\n)*-->//g;
		$info{$v} = $i;
	}
}
