#!/usr/local/bin/perl -w

# $Id: search_study,v 1.2 2006/02/02 17:20:58 liya Exp $

=head1 NAME

search_study

=head1 DESCRIPTION

This script is for searching and display studys

=cut

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

use strict;
use Apache::Request;
use Template;

use Gramene::Page;
use Gramene::Config;
use Gramene::Gene::GeneDB;

use constant DETAIL_TEMPLATE  => 'study_detail.tmpl';
use constant ERROR_TEMPLATE   => 'gene_error.tmpl';

my $apr         = Apache::Request->new( Apache->request );
my $page        = Gramene::Page->new($apr);
my $config      = Gramene::Config->new;
my $gene_config = $config->get('genes');

my ( $template, $html, $db, $pager );

my %args = $apr->args;
	
eval {

    $template = Template->new(
        {
            INCLUDE_PATH => $gene_config->{'template_dir'},
            PRE_CHOMP    => 1,
            POST_CHOMP   => 1,
            TRIM         => 1,

        }
    );

    $db = Gramene::Gene::GeneDB->new();
    $db->connect_to_db();

    # for study detail display
    my $id = $apr->param('id');
    my $study_id = $id if $id;
    
#    my $acc = $apr->param('acc');
#    $study_id = $db->get_study_id($acc) if $acc;

    my $study_obj = $db->get_study_info($study_id) if $study_id;

    if ($study_obj) {
	my $xref_db = 'Gramene Literature';
	my $obj_type = 'study';
	my $references = $db->get_related_references($obj_type,$study_id,$xref_db);
	$study_obj->{'references'} = $references;

	# template processing
	$template->process(
            DETAIL_TEMPLATE,
            {
                gramene_page => $page,
                apr          => $apr,
                study         => $study_obj,
                title        => "Summary for Study &quot;"
                  . $study_obj->{'name'}
                  . "&quot;"
            },
            \$html
          )
          or $html = $template->error;
    }
};

if ( my $err = $@ ) {
    if ($template) {
        $template->process(
            ERROR_TEMPLATE,
            {
                gramene_page  => $page,
                error_message => $err,
            },
            \$html
          )
          or $html = $template->error;
    }else {
        $html = "Error: $err";
    }
}

$apr->content_type('text/html');
$apr->send_http_header;
$apr->print($html);

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

=pod

=head1 AUTHORS

Liya Ren E<lt>ren@cshl.eduE<gt>

=cut

