#!/usr/bin/perl

require 'MBGD_Conf.pl';
use MBGD::WWW;

$www = MBGD::WWW->new;
$NcbiTax = "http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi";

$MaxNumHit = 250;

%Args = $www->cgiGetArgs;
$spname = $Args{'species'};
$www->start_html;

print "<H2>Searching the Taxonomy DB</H2>\n";
print "<FORM>\n";
print "<b>Name:</b> <INPUT name=species value=\"$spname\" size=40>\n";
if (! $spname) {
	exit;
}
print "<HR>\n";

my($file_taxontab) = "$ENV{'MBGD_HOME'}/etc/taxon.tab";
open(F, "$file_taxontab") ||
	die "Can't open $DIR_taxondb/db/taxon.tab\n";
while(<F>) {
	if (/$spname/i) {
		($taxid, $name, $lname, $rank, $class, $depth, $hier, $taxorder) = split(/\t/);
		if ($lname =~ /$spname/i) {
			if (! $Hit{$taxid}) {
				$Hit{$taxid} = {
					name=>$name, rank=>$rank,class=>$class,
					taxorder=>$taxorder,
				}
			}
			if ($class eq 'scientific name') {
				$Hit{$taxid}->{sciname} = $name;
			}
		}
		$numHit++;
		if ($numHit > $MaxNumHit) {
			print "Too many hits: result truncated\n";
			last;
		}
	}
}
close(F);
print "<TABLE>\n";
print "<TH>Taxonomy ID<TH>Name<TH>Rank\n";
foreach $taxid (sort { $Hit{$a}->{taxorder}<=>$Hit{$b}->{taxorder} } keys %Hit) {
	next if ($matchflag && ! $data->{match});
	print "<TR><TD><A HREF=$NcbiTax?id=$taxid>$taxid</A><TD>";
	$data = $Hit{$taxid};
	print $data->{sciname} ? $data->{sciname} : $data->{name};
	print "<TD>$data->{rank}\n";
} 
print "</TABLE>\n";
