#!/usr/bin/perl
# -*- Mode: perl -*-
# file: map_study

use lib '/usr/local/gramene/lib/perl/';
use strict;
use vars qw($DB);

use CGI 2.42 qw/:standard :html3 escape *table *blockquote/;
use Ace 1.51;
use Ace::Browser::AceSubs qw(:DEFAULT Toggle);
use GrameneSubs;

use constant CLASS   => 'Map_Study';
#use constant EXAMPLE => 'Rice-Consensus';

# open the database
$DB = OpenDatabase() || AceError("Couldn't open database.");

my ($obj_name, $obj);
$obj_name = param('name');
$obj = get_obj($obj_name) if $obj_name;

PrintTop($obj,CLASS,$obj ? CLASS . ": $obj" : CLASS . " Search");
PrintWarning($obj_name,CLASS) if $obj_name && !$obj;
print_report($obj) if $obj;
PrintBottom();

sub get_obj {
  my $name = shift;
  my ($obj) = $DB->fetch(-class =>CLASS,
			 -name  => $name);
  return $obj;
}

sub print_report {
  my $obj = shift;
  print start_table({-border=>1});

  if ($obj->Description) { 
    print TR( th({-class=>'datatitle'},'Description'),
	      td({-class=>'databody'},ObjectLink($obj->Description)) ); 
  } 

  if ($obj->Type) { 
    print TR( th({-class=>'datatitle'},'Type'),
	      td({-class=>'databody'},ObjectLink($obj->Type)) ); 
  } 

  if ($obj->Map_units) { 
    print TR( th({-class=>'datatitle'},'Map Units'),
	      td({-class=>'databody'},$obj->Map_units) ); 
  } 

  if ($obj->Cited_in) { 
    print TR( th({-class=>'datatitle'},'Reference'),
	      td({-class=>'databody'},ObjectLink($obj->Cited_in)) ); 
  }

  PrintMultiple('Linkage Groups',$obj->Linkage_group);
  #PrintMultiple('Loci',$obj->Locus);

  print end_table;

  my $remark = $obj->Remarks;
  if ( $remark ) {
    print br,br;
    if (Toggle('remark','Remarks on map study') ) {
      print $remark;
    }
  }

  my $info = $obj->Help->Info if defined $obj->Help;
  if ( $info ) {
    print br,br;
    if ( Toggle('help','Help on map study') ) {
      print pre($info->right);
    }
  }
}


