#!/usr/bin/perl
#
# Dahlmain.pl - Search for dahlia record. 
# 	4/97 AGM - Used a2p on pieces of dalia.cgi
use CGI qw/:standard/;
use DAHLIA;

#
# Default line feeds
#
$, = ' ';       # set output field separator
# $\ = '
# ';              # set output record separator

#
# Start the HTML doc.
#
print header();

#
# Read and print the Heading
#
print start_html('Dahlia Search Results');
print '';

#
# Read and print the Heading
#
open(HEADER,"$DAHLIA::cgidir/heading.html");
while(<HEADER>) {
	print $_;
}

print '
<H1><CENTER>Search Results</CENTER></H1>
<HR>
<IMG SRC=/guide/camera.gif>
Select a variety name to display images and detailed information.<BR CLEAR=ALL>
<HR>

<PRE>
';

#
# Get POST data into %cgi_field
#
CGI::ReadParse();

$FORM_Variety  = "\U$in{'Variety'}" if(defined($in{'Variety'}));
$FORM_Class    = $in{'Class'}       if(defined($in{'Class'}));
$FORM_Status   = $in{'Status'}      if(defined($in{'Status'}));

@FORM_Color    = split("\0",$in{'Color'});
if ( $FORM_Color[0] eq '--- All ---' ) { @FORM_Color = () }
@FORM_Form     = split("\0",$in{'Form'});
if ( $FORM_Form[0]  eq '--- All ---' ) { @FORM_Form = () }
@FORM_Size     = split("\0",$in{'Size'});
if ( $FORM_Size[0]  eq '--- All ---' ) { @FORM_Size = () }
 
$FORM_Orig_Code= $in{'Orig_Code'} if(defined($in{'Orig_Code'}));
$FORM_Orig_Year= $in{'Orig_Year'} if(defined($in{'Orig_Year'}));
$FORM_Country  = $in{'Country'}   if(defined($in{'Country'}));

$FORM_Awards   = $in{'Awards'}    if(defined($in{'Awards'}));

@FORM_Year     = split("\0",$in{'Year'});
if ( $FORM_Year[0]  eq '--- All ---' ) { @FORM_Year = () }

$FORM_Pagesize = defined($in{'Pagesize'}) ? $in{'Pagesize'} : 300;
$FORM_Pagecols = defined($in{'Pagecols'}) ? $in{'Pagecols'} : 3;
$FORM_Start    = defined($in{'Start'})    ? $in{'Start'} : '';
$FORM_NoImage  = $in{'NoImage'}   if (defined($in{'NoImage'}));
$FORM_Image    = $in{'Image'}     if (defined($in{'Image'}));

# 
# Open and Read the sorted data file look ing for the record
#
unless(open(DAHLLIST, "$DAHLIA::cgidir/dahlia.dat")) {
	print "Error: Cannot open data file: $datadir/dahlia.dat\n";
}

$count = 0;
$printed = 0;
$more = '';

while (<DAHLLIST>) {
    chop;       # strip record separator
    ($Variety,$Class,$Orig_Year,$Status,$Size,$Form,$Color,$Orig_Code,$Orig_Country,
	$Awards_83,$Awards_84,
	$Awards_85,$Awards_86,$Awards_87,$Awards_88,$Awards_89,
	$Awards_90,$Awards_91,$Awards_92,$Awards_93,$Awards_94,
	$Awards_95,$Awards_96,$Awards_97,$Awards_98,$Awards_99,
	$Awards_00,$Awards_01,$Awards_02,$Awards_03,$Awards_04,
	$Awards_05,$Awards_06,$Awards_07,$Awards_08,$Awards_09,
	$Comment) = split(':', $_, 37);

	$Awards_08 = $Awards_09 = "";

    if ($FORM_Variety ne ''   && $Variety lt $FORM_Variety) { next } # Quick Out
    if ($FORM_Start   ne ''   && $Variety lt $FORM_Start)   { next } # Quick Out

#
# Name/Class/Year Criteria 
#
    if ($FORM_Variety ne ''   && $Variety !~ /^$FORM_Variety/) { next }
    if ($FORM_Class ne ''     && $Class ne $FORM_Class)      { next }
    if ($FORM_Status ne ''    && $Status !~ /$FORM_Status/)   { next }

#
# Size/Form/Color Criteria
#
    $match=0;
    foreach $FORM_Size ( @FORM_Size )
    {
        if ($FORM_Size eq $Size || $FORM_Size eq '') { $match++ }
    }
    if (@FORM_Size && !$match) { next }

    $match=0;
    foreach $FORM_Form ( @FORM_Form )
    {
        if ($FORM_Form eq $Form || $FORM_Form eq '') { $match++ }
    }
    if (@FORM_Form && !$match) { next }

    $match=0;
    foreach $FORM_Color ( @FORM_Color )
    {
        if ($FORM_Color eq $Color || $FORM_Color eq '') { $match++ }
    }
    if (@FORM_Color && !$match) { next }

#
# Originator Criteria
#
    if ($FORM_Orig_Code ne '' && $Orig_Code ne $FORM_Orig_Code)  { next }
    if ($FORM_Country   ne '' && $Orig_Country ne $FORM_Country) { next }
    if ($FORM_Orig_Year ne '' && $Orig_Year ne $FORM_Orig_Year)  { next }

#
# Award Year Criteria
#
    if ($FORM_Awards && @FORM_Year)
    {
        $awards = 0;
	foreach $FORM_Year (sort(@FORM_Year))
	{
            $awards += $Awards_83 if ($FORM_Year eq '1983' || $FORM_Year eq '');
            $awards += $Awards_84 if ($FORM_Year eq '1984' || $FORM_Year eq '');
            $awards += $Awards_85 if ($FORM_Year eq '1985' || $FORM_Year eq '');
            $awards += $Awards_86 if ($FORM_Year eq '1986' || $FORM_Year eq '');
            $awards += $Awards_87 if ($FORM_Year eq '1987' || $FORM_Year eq '');
            $awards += $Awards_88 if ($FORM_Year eq '1988' || $FORM_Year eq '');
            $awards += $Awards_89 if ($FORM_Year eq '1989' || $FORM_Year eq '');
            $awards += $Awards_90 if ($FORM_Year eq '1990' || $FORM_Year eq '');
            $awards += $Awards_91 if ($FORM_Year eq '1991' || $FORM_Year eq '');
            $awards += $Awards_92 if ($FORM_Year eq '1992' || $FORM_Year eq '');
            $awards += $Awards_93 if ($FORM_Year eq '1993' || $FORM_Year eq '');
            $awards += $Awards_94 if ($FORM_Year eq '1994' || $FORM_Year eq '');
            $awards += $Awards_95 if ($FORM_Year eq '1995' || $FORM_Year eq '');
            $awards += $Awards_96 if ($FORM_Year eq '1996' || $FORM_Year eq '');
            $awards += $Awards_97 if ($FORM_Year eq '1997' || $FORM_Year eq '');
            $awards += $Awards_98 if ($FORM_Year eq '1998' || $FORM_Year eq '');
            $awards += $Awards_99 if ($FORM_Year eq '1999' || $FORM_Year eq '');
            $awards += $Awards_00 if ($FORM_Year eq '2000' || $FORM_Year eq '');
            $awards += $Awards_01 if ($FORM_Year eq '2001' || $FORM_Year eq '');
            $awards += $Awards_02 if ($FORM_Year eq '2002' || $FORM_Year eq '');
            $awards += $Awards_03 if ($FORM_Year eq '2003' || $FORM_Year eq '');
            $awards += $Awards_04 if ($FORM_Year eq '2004' || $FORM_Year eq '');
            $awards += $Awards_05 if ($FORM_Year eq '2005' || $FORM_Year eq '');
            $awards += $Awards_06 if ($FORM_Year eq '2006' || $FORM_Year eq '');
            $awards += $Awards_07 if ($FORM_Year eq '2007' || $FORM_Year eq '');
            $awards += $Awards_08 if ($FORM_Year eq '2008' || $FORM_Year eq '');
            $awards += $Awards_09 if ($FORM_Year eq '2009' || $FORM_Year eq '');
	    last if ($FORM_Year eq '');
        }

        if ($awards < $FORM_Awards) { next }
    }
    elsif ($FORM_Awards) {
        $awards = 0;
        $awards += $Awards_83;
        $awards += $Awards_84;
        $awards += $Awards_85;
        $awards += $Awards_86;
        $awards += $Awards_87;
        $awards += $Awards_88;
        $awards += $Awards_89;
        $awards += $Awards_90;
        $awards += $Awards_91;
        $awards += $Awards_92;
        $awards += $Awards_93;
        $awards += $Awards_94;
        $awards += $Awards_95;
        $awards += $Awards_96;
        $awards += $Awards_97;
        $awards += $Awards_98;
        $awards += $Awards_99;
        $awards += $Awards_00;
        $awards += $Awards_01;
        $awards += $Awards_02;
        $awards += $Awards_03;
        $awards += $Awards_04;
        $awards += $Awards_05;
        $awards += $Awards_06;
        $awards += $Awards_07;
        $awards += $Awards_08;
        $awards += $Awards_09;
	
        if ($awards < $FORM_Awards) { next }
    }

#
# Check if we have a picture
#
    $file  = txt2file($Variety);

    if ( $FORM_NoImage && ( -e "$DAHLIA::htmldir/images/$file.gif" || -e "$DAHLIA::htmldir/images/$file.jpg" )) { next }
    if ( $FORM_Image && ! ( -e "$DAHLIA::htmldir/images/$file.gif" || -e "$DAHLIA::htmldir/images/$file.jpg" )) { next }

#
# Print lines and Fill Page
#
    $count++;

    if ($FORM_Start && $Variety < $FORM_Start) { next }
 
    if ($printed >= $FORM_Pagesize) { $more = $Variety; last }

#
# Put it inside a table
#
    if ($printed eq 0)
    {
	print '<TABLE BORDER=5 COLS=3 WIDTH="100%"  CELLPADDING=5 CELLSPACING=5  BGCOLOR="#efefef"><TR ALIGN=LEFT VALIGN=TOP><TD><PRE>'
    }

    if ($printed eq int($FORM_Pagesize/3))
    {
	print '</TD><TD><PRE>'
    }

    if ($printed eq int($FORM_Pagesize*2/3))
    {
	print '</TD><TD><PRE>'
    }

    $printed++;

    $coded = txt2url($Variety);
    $file  = txt2file($Variety);

    print "<A HREF=\"$DAHLIA::cgiurl/dahlia.cgi?$coded\">$Variety</A>  $Size $Form $Color";

    print "  ($awards Awards)" if ($FORM_Awards);

    #
    # Print image tag if image file exists.
    #
    if ( -e "$DAHLIA::htmldir/images/$file.gif" || -e "$DAHLIA::htmldir/images/$file.jpg" )
    {
        print "  <A HREF=\"$DAHLIA::cgiurl/dahlia.cgi?$coded\"><IMG SRC=\"$DAHLIA::htmlurl/camera.gif\" WIDTH=31 HEIGHT=26 BORDER=0 ALIGN=MIDDLE ALT=\"photo\"></A>";
    } else {
        print "  <! $DAHLIA::htmldir/images/$file >";
    }

    print "\n\n";

}

if ($printed) { print '</TD></TR></TABLE>' }

print "</PRE>\n<HR>\n";

if ($count eq 0) {
    print "<P>No matching records found.\n";
} else {
    print "<P>$printed matching records shown.\n";
}

# 
# Allow continued search from form
#
if ($more) {
    print "<FORM ACTION=\"dahlmain.cgi\" METHOD=POST>
<INPUT TYPE=submit VALUE=More>
<INPUT TYPE=hidden NAME=Start     VALUE=\"$more\">
<INPUT TYPE=hidden NAME=NoImage   VALUE=\"$FORM_NoImage\">
<INPUT TYPE=hidden NAME=Image     VALUE=\"$FORM_Image\">
<INPUT TYPE=hidden NAME=Pagesize  VALUE=\"$FORM_Pagesize\"`>
<INPUT TYPE=hidden NAME=Pagecols  VALUE=\"$FORM_Pagecols\"`>
<INPUT TYPE=hidden NAME=Variety   VALUE=\"$FORM_Variety\">
<INPUT TYPE=hidden NAME=Class     VALUE=\"$FORM_Class\">
<INPUT TYPE=hidden NAME=Status    VALUE=\"$FORM_Status\">
<INPUT TYPE=hidden NAME=Awards    VALUE=\"$FORM_Awards\">
<INPUT TYPE=hidden NAME=Orig_Code VALUE=\"$FORM_Orig_Code\">
<INPUT TYPE=hidden NAME=Orig_Year VALUE=\"$FORM_Orig_Year\">
<INPUT TYPE=hidden NAME=Country   VALUE=\"$FORM_Country\">
";
    foreach $FORM_Size (@FORM_Size) {
	    print "<INPUT TYPE=hidden NAME=Size   VALUE=\"$FORM_Size\">\n";
    }

    foreach $FORM_Form (@FORM_Form) {
	    print "<INPUT TYPE=hidden NAME=Form   VALUE=\"$FORM_Form\">\n";
    }

    foreach $FORM_Color (@FORM_Color) {
	    print "<INPUT TYPE=hidden NAME=Color  VALUE=\"$FORM_Color\">\n";
    }

    foreach $FORM_Year (@FORM_Year) {
	    print "<INPUT TYPE=hidden NAME=Year   VALUE=\"$FORM_Year\">\n";
    }

    print "</FORM>\n";

}

#
# Print Search Criteria (Debug)
#
print "\n<! Search Criteria:\n";
foreach $key (keys(%in))
{
	$in{$key} =~ s/\0/|/g;
	print "$key = $in{$key}\n";
}
print "FORM_Color = @FORM_Color\n" if (@FORM_Color);
print "FORM_Size  = @FORM_Size\n"  if (@FORM_Size);
print "FORM_Form  = @FORM_Form\n"  if (@FORM_Form);
print "FORM_Year  = @FORM_Year\n"  if (@FORM_Year);
print ">\n\n";

# 
#
# Read and cat the Footer
#
$\ = '';		# set output record separator
open(FOOTER,"$DAHLIA::cgidir/footer.html");
while(<FOOTER>) {
	print $_;
}

exit 0;
