#!/usr/bin/perl

use CGI qw/:standard/;

print header,
    start_html("Voting");

if (!param(topic)) {
    print h1("Topic is Missing"),
    end_html;
    exit;
}

($topic_f = param(topic)) =~ s/\W//g;

open (T,"<$topic_f") or print p($^E);

while ($l = <T>) {
    if ($l =~ /(.*)\|(.*)/) {
	$t{$1} = $2;
    }
}
close T;

if ($t{'timeout'} < qx'date +%y%m%d%H%M') {

    print p("Vorbei ist Vorbei. Es wird nicht mehr gezaehlt.");
    $f = 1;
}
else {
    print p("Noch Zeit bis ". $t{'timeout'});
}

delete $t{'timeout'};

if (param(meinung) and (!defined($f)) ) {

    if ($t{param(meinung)}){

	my $m = param(meinung);

	print p("Deine Meinung ($m) wurde notiert!");

	if (param(ID)) {
	    ($id = param(ID)) =~ s/\W//g;
	    $m = $id ."|". $m;
	}

	qx"echo '$m'  >> /tmp/$topic_f" or die "$^E";
    }
    else {
	print p("Unklare Eingaben");
    }

}
elsif (defined($f)) {

    my %r;

    open (F,"</tmp/$topic_f") or print "$^E";
    while ($l = <F>) {

	if ($l =~ /.*\|(.*)/) {
	    $l = $1;
	}
	$r{$l}++;
    }
    close F;

    print p("Ich bin der Meinung:"),
    ul;
    map {
	print li("$_ <I>Stimmen: $r{$_}</I><BR> $t{$_}");
    }
    keys %t;

}
else {
    print start_form,
    p("Ich bin der Meinung:"),
    hidden("topic",$topic_f),
    ul;
	if (param(ID)) {
	    ($id = param(ID)) =~ s/\W//g;
	    print hidden("ID",$id);
	}
    map {
	print li("$_ <BR> $t{$_}");
	}
    keys %t;

    print
	p,p, 
	popup_menu(-name=>'meinung',
		   -values=>[keys %t]),
	p,
	submit,
	end_form;
}
    print end_html;
    
exit;
