package EnsEMBL::Web::Component::Search;

use EnsEMBL::Web::Component;
our @ISA = qw(EnsEMBL::Web::Component);

use strict;
use warnings;
no warnings "uninitialized";
use Data::Dumper;

sub no_results {
  my( $panel, $object ) = @_;
  $panel->print(qq(<p>Your search returned no results</p>));
}

sub search_instructions {
  my( $panel, $object ) = @_;
  $panel->print(qq(<p>You must enter a search term in the box at the top of the page</p>));
}
sub results {
  my( $panel, $object ) = @_;
  foreach my $search_index ( sort keys %{$object->Obj->{'results'} } ) {
    my( $results, $count ) = @{ $object->Obj->{'results'}{$search_index} };
    $panel->print( "<h3>Search results for $search_index</h3><p>$count entries matched your search strings.</p><ol>" );
    foreach my $result ( @$results ) {
      $panel->printf(qq(<li><strong>%s:</strong> <a href="%s">%s</a>),
        $result->{'subtype'}, $result->{'URL'}, $result->{'ID'}
      );
      if( $result->{'URL_extra'} ) {
        foreach my $E ( @{[$result->{'URL_extra'}]} ) {
          $panel->printf(qq( [<a href="%s" title="%s">%s</a>]),
            $E->[2], $E->[1], $E->[0]
          );
        }
      }
      if( $result->{'desc'} ) {
        $panel->printf(qq(<br />%s), $result->{'desc'});
      }
      $panel->print( '</li>' );
    }
    $panel->print( '</ol>' );
  }
  return 1;
}

1;