#!/usr/bin/perl

#use utf8;
use strict;
use CGI;

use Opals::Context;#use MARC::File::USMARC;
#use MARC::File::XML;

use Opals::Template qw(
    tmpl_read
    tmpl_write
    tmpl_rangedPageList
    tmpl_getSearchFieldList
);
use Opals::SolrIndex qw(
    slr_browseAuthor_keyword
    
);
use Opals::Search qw(
    srch_zTab
);

use Opals::Locale qw(
    loc_getMsgFile
    loc_write
);
my $dbh = Opals::Context->dbh();
END { $dbh->disconnect(); }

my $cgi = CGI->new;
my $input = $cgi->Vars();
my ($permission, $cookie, $template) = tmpl_read(
        {
            dbh             => $dbh,
            cgi             => $cgi,
            tmplFile        => 'search/authorBrowse.tmpl',
        }
);
my  $lang = $cgi->cookie('language');
    if($lang !~ m/en|fr/i){
        $lang          = 'en';
    }

my $zid = $input->{'zid'};
($zid && $zid =~ m/^[\d]+$/ && $zid >= 0) || ($zid = 0);
my @cookieList = (@$cookie);

################################################################################
    my $pSize = 40;
    my $curPage = $input->{'pNum'};
    ($curPage && $curPage >= 1) || ($curPage = 1);
    my $offset      = ($curPage - 1) * $pSize ;
    my $srchTerm = $input->{'kw0'};
    if($srchTerm ne ''){
       my ($hits,$authorList)= slr_browseAuthor_keyword($srchTerm,$offset,$pSize);   
       if($hits >0){                    
            if ($hits - $offset + 1 <= 0) {
                my $availRange = $hits % $pSize;
                $availRange = $pSize if ($availRange == 0); 
                $offset = $hits - $availRange + 1;
                $curPage = ($offset - 1) / $pSize + 1;
            }
            my $result=[];
            foreach my $a(@$authorList){
                push @$result,{author=>$a};
            }

            my $pRange = 10;
            my @rangedPageList = tmpl_rangedPageList($hits, $curPage, $pSize, $pRange);
            my $headerStr=  "Author(s) - Last name, First name";
               $headerStr = 'Auteur(s) - Nom, Prénom' if ($lang eq 'fr' );
            $template->param(
                pNum             => $curPage,
                srchTerm         => $srchTerm,
                rangedPageList   => \@rangedPageList,
                headerStr        => $headerStr,
                result           => $result,
                searchFound      => ($hits >0)? 1:0,
                resultSize       => $hits, 
            );
        }
    }
    

my @siteTab = srch_zTab($dbh, $zid);
$template->param(
    zid     => $zid,
    kw0     => $input->{'kw0'},
    pqf     => $srchTerm,
    siteTab => \@siteTab,
    hlpUrl     => Opals::Constant->getHlpUrl('browseAuthor')
);


#Tue, Jan 05, 2010 @ 13:49:55 EST
#
my $stdMsgMap  =loc_getMsgFile('search/browseAuthor.msg');
loc_write($template,$stdMsgMap);





tmpl_write($dbh, $cgi, \@cookieList, $template);
