#!/bin/perl -w

use strict;

use CGI;
use CGI qw(:standard *table *TR *th *td *ul *ol);
use Gramene::GetProteinData; 

#use GramenePage; 


#my $page_title = "Protein page";
my $q = CGI->new();
print $q->header;
#my $page = GramenePage->new(Apache->request);
#print $q->start_html( -title=>$page_title,
#		      -style=>{'src'=>$page->stylesheet}
#		    );
#print $q->start_html( -title=>$page_title,
	#	      -style=>{'src'=>$page->stylesheet}
		#    );
#print $page->start_body();


########################


if( $q->param("word") ) {

    
    my $db = Gramene::GetProteinData->new();
    $db->connect_to_ora( );

    my $word = $q->param("word");
    #my @parts = split( /,/, $word );
    #$word = join( " ", @parts );
    #my $original = $q->param("word");
    my $original = $word;
    $word =~ tr/a-z/A-Z/;
    $word = "%".$word."%";

    my ( $id_ref, $name_ref, $acc_ref, $sid_ref );

    ( $id_ref, $name_ref, $acc_ref, $sid_ref ) = $db->get_protein_old( $word );
    display_list( $q, $id_ref, $name_ref, $acc_ref, $sid_ref, $original );

}




###########################

#print $page->end_body;

################

sub display_list {

    my ( $q, $id_ref, $name_ref, $acc_ref, $sid_ref, $original ) = @_;
    my @ids = @$id_ref;
    my @names = @$name_ref;
    my @accs = @$acc_ref;
    my @sids = @$sid_ref;

    unless( (scalar @ids) == 0 ) {
      foreach my $name ( @names ) {
	  $name =~ s/($original)/<span class='matching'>$1<\/span>/ig;
      }
      foreach my $acc ( @accs ) {
	  $acc =~ s/($original)/<span class='matching'>$1<\/span>/ig;
      }
      foreach my $sid ( @sids ) {
	  $sid =~ s/($original)/<span class='matching'>$1<\/span>/ig;
      }
    }

    if( (scalar @ids) == 0 ) {

        print $q->table( {-border=>'0',
			  -cellpadding=>'2',
			  -width=>'98%',
			  -align=>'CENTER'},
			 $q->Tr( $q->th( {-class=>'resultstitle',
					  -align=>'CENTER'}, 
					 "Sorry, no matching records have been found." ) ) );
    } elsif ( (scalar @ids) == 1 ) {

        print( "<center><h2>Protein Search Result</h2></center>" );

        print $q->table( {-border=>'1',
			  -cellpadding=>'2',
			  -width=>'98%',
			  -align=>'CENTER'},
			 $q->Tr( $q->th( {-class=>'resultstitle',
					  -align=>'CENTER'}, 
					 "1 matching record has been found." ) ) );
      
	print $q->table( {-border=>'1',
			  -cellpadding=>'4',
			  -width=>'98%',
			  -align=>'CENTER'},
			 
			 $q->Tr( $q->td( {-class=>'resultstitle',
					  -align=>'CENTER'}, "Accession No." ),
				 $q->td( {-class=>'resultstitle',
					  -align=>'CENTER'}, "Name/Symbol" ),
				 $q->td( {-class=>'resultstitle',
					  -align=>'CENTER'}, "SWALL ID" ) ),
					 
			 $q->Tr( {-valign=>'TOP'},
				 $q->td( {-class=>'resultsbody',
					  -align=>'CENTER'}, 
					 $q->a( {-href=>"/perl/protein_search?protein_id=$ids[0]"}, $accs[0] ) ), 
				 $q->td( {-class=>'resultsbody',
					  -align=>'LEFT'}, $names[0] ),
				 $q->td( {-class=>'resultsbody',
					  -align=>'CENTER'}, $sids[0] ) ) );
						
			 
    } else {

        print( "<center><h2>Protein Search Result</h2></center>" );
	print $q->table( {-border=>'1',
			  -cellpadding=>'2',
			  -width=>'98%',
			  -align=>'CENTER'},
			 $q->Tr( $q->th( {-class=>'resultstitle',
					  -align=>'CENTER'}, 
					 (scalar @ids), " matching records have been found." ) ) );

	print start_table( {-width=>'98%', -cellpadding=>'4', -border=>'1', -align=>'CENTER'} );
	print $q->Tr( $q->td( {-class=>'resultstitle',
			       -align=>'CENTER'}, "Accession No." ),
		      $q->td( {-class=>'resultstitle',
			       -align=>'CENTER'}, "Name/Symbol" ),
		      $q->td( {-class=>'resultstitle',
			       -align=>'CENTER'}, "SWALL ID" ) );
	for( my $i=1; $i<=(scalar @ids); $i++ ) {

	  if( ( $i % 2 ) == 1 ) {

	    print $q->Tr( {-valign=>'TOP'},
			  $q->td( {-class=>'resultsbody',
				   -align=>'CENTER'}, 
				   $q->a( {-href=>"/perl/protein_search?protein_id=$ids[$i-1]"}, $accs[$i-1] ) ), 
			  $q->td( {-class=>'resultsbody',
				   -align=>'LEFT'}, $names[$i-1] ),
			  $q->td( {-class=>'resultsbody',
				   -align=>'CENTER'}, $sids[$i-1] ) );
	  } else {
	    
	    print $q->Tr( {-valign=>'TOP'},
			  $q->td( {-align=>'CENTER'}, 
				   $q->a( {-href=>"/perl/protein_search?protein_id=$ids[$i-1]"}, $accs[$i-1] ) ), 
			  $q->td( {#-class=>'resultsbody',
				   -align=>'LEFT'}, $names[$i-1] ),
			  $q->td( {#-class=>'resultsbody',
				   -align=>'CENTER'}, $sids[$i-1] ) );
	  }
	
	}
	print end_table;
    }#End else

}
		

#########################


