#!/usr/local/bin/perl

# parse all the (key=value) pairs from the URL into %fields
%fields=&parse_input;

# get the values from the GUI form
$loginname=$fields{'loginname'};
$num1=$fields{'num1'};
$num2=$fields{'num2'};

# call two different functions for processing
# note: CLASSPATH env variable varies from machine to machine
$classpath='.:/usr/local/java/jdbc-oracle/classes12.zip:/usr/local/java/jsdk/jsdk22.jar';
$status1=`java -cp $classpath CheckName $loginname`;
$status2=`java -cp $classpath CalcNum $num1 $num2`;

# output logic based on status1 and status2 values
# status1: 1 means name exists, 2 otherwise
# status2: returns num1+num2
$magicnum=100;
&do_result_1 if ($status1==1 && $status2<$magicnum);
&do_result_2 if ($status1==1 && $status2>$magicnum);
&do_result_3 if ($status1==2 && $status2<$magicnum);
&do_result_4 if ($status1==2 && $status2>$magicnum);
&do_result_5 if ($status2==$magicnum);

sub parse_input {
  #parse all the (key=value) in URL into %fields hash table

  $temp=$ENV{'QUERY_STRING'};
  @pairs=split(/&/,$temp);
  foreach $item(@pairs) {
    ($key,$value)=split(/=/,$item,2);
    $value=~tr/+/ /;
    $value=~ s/%(..)/pack("c",hex($1))/ge;
    $fields{$key}=$value;
  }
  return %fields;
}

sub do_result_1 {
  $output_file="results1.html";
  &print_output($output_file);
}

sub do_result_2 {
  $output_file="results2.html";
  &print_output($output_file);
}

sub do_result_3 {
  $output_file="results3.html";
  &print_output($output_file);
}

sub do_result_4 {
  $output_file="results4.html";
  &print_output($output_file);
}

sub do_result_5 {
  print "Content-type: text/html\n\n";
  print "<html>\n";
  print "<head><title>GUI Output Here</title></head>\n";
  print "<body>\n";
  print "<h1>Results</h1>";
  print "$num1 + $num2 = $magicnum.\n";
  print "<br>\n";
  print "I don't care who you are but you're smart!\n";
  print "</body>\n";
  print "</html>\n";
}

sub print_output($) {
  $_=shift;
  open(RESULT, "< $_");
  while(<RESULT>) {
    print "$_\n";
  }
  close(RESULT);
}
