#!/usr/bin/perl

use CGI;
my $TITLE = "Preparation of ethanol solutions";
my $CGI = CGI->new();

my $SCONC  = $CGI->param("StockConc")  || '';
my $FVOL   = $CGI->param("FinalVol")   || '';
my $WCONC  = $CGI->param("WantedConc") || '';

print <<EOF;
Content-Type: text/html

<html>
<head>
    <title>$TITLE</title>
    <link rel="stylesheet" href="ethanol.css">
    <link rel="shortcut icon" href="ethanol.ico">
</head>
<body>
<a href="../index.html">sabina.anzlovar.com</a>
<hr>
<span class="title">$TITLE</span>
EOF

display_form();

display_result();

print "</body></html>\n";

# ----------------------------------------------------------

sub display_result {
    return if $FVOL eq '' or $SCONC eq '';
    print "<table class='result'>\n";
    print "<tr><td align='center' valign='bottom'>Conc.<br>[%]</td><td align='center' valign='bottom'>EtOH<br>[mL]</td><td align='center' valign='bottom' valign='bottom'>Distilled<br>water<br>[mL]</td><td align='center' valign='bottom'>Total<br>[mL]</td></tr>\n";
    my ($nn,$conc, $etoh, $water, $total);
    my ($class,@class);
    $nn = 0;
    my %CONC = (10=>1,20=>1,30=>1,40=>1,50=>1,60=>1,70=>1,80=>1,90=>1,$WCONC=>1, $SCONC=>1);
    foreach $conc (sort {$a <=> $b} keys %CONC) {
        @class = ();
        next if $conc eq '';
        $etoh  = sprintf ("%d", ($conc / $SCONC * $FVOL));
#        $etoh  = $conc / $SCONC * $FVOL;
        $water = $FVOL - $etoh;
        $total = $etoh + $water;
        push (@class, "negative") if $water < 0;
        push (@class, "positive") if $water > 0;
        if ($conc eq $WCONC) { push (@class, 'selected'); }
        if ($conc eq $SCONC) { push (@class, 'zero'); }
        $class = "";
        $class = "class='".join(' ',@class)."'" if @class;
        print "<tr $class><td align='center' $class>${conc}%</td><td align='right' $class>".sprintf("%d",$etoh)."</td><td align='right' $class>".sprintf("%d",$water)."</td><td align='right' $class>".sprintf("%d",$total)."</td></tr>\n";
#       print "<tr $class><td align='center' $class>${conc}%</td><td align='right' $class>$etoh</td><td align='right' $class>$water</td><td align='right' $class>$total</td></tr>\n";
    }
    print "</table>\n";
}

# ----------------------------------------------------------

sub display_form {
    print <<EOF;
<form style="form" action="ethanol.cgi" method="post">
<table>
<tr>
    <td>Stock conc.</td>
    <td><input type="text" align='right' size="5" maxlength="2" name="StockConc" value="$SCONC">%</td>
</tr>
<tr>
    <td>Final volume</td>
    <td><input type="text" align='right' size="5" maxlength="5" name="FinalVol" value="$FVOL">mL</td>
</tr>
<tr>
    <td>Wanted conc.</td>
    <td><input type="text" align='right' size="5" maxlength="2" name="WantedConc" value="$WCONC">%</td>
</tr>
<tr><td colspan="2">
<input class="submit" type="submit" value="Calculate">
<input class="reset" type="reset" value="Reset">
<input class="button" type="button" value="Empty" onClick="javascript:document.forms[0].elements[0].value = '';document.forms[0].elements[1].value = '';document.forms[0].elements[2].value = '';document.forms[0].elements[0].focus();">
</tr>
</table>
<script language="JavaScript">document.forms[0].elements[0].focus();</script>
</form>
EOF
}

