#!/usr/bin/perl

use strict;
use CGI;

use Opals::Context;
use Opals::Template qw(
    tmpl_read
    tmpl_write
);
use Opals::Pathfinder qw(
    pf_getPfListByField
    pf_getPfListByGrp
    pf_delete
);
use Opals::Locale qw(
    loc_getMsgFile
    loc_write
);
use Opals::Session qw(
    SessionHdl_get
);
my $dbh = Opals::Context->dbh();
END { $dbh->disconnect(); }

my $cgi = CGI->new;
my $input = $cgi->Vars();

my ($permission, $cookieList, $template) = tmpl_read(
    {
        dbh             => $dbh,
        cgi             => $cgi,
        tmplFile        => 'pf/pfList.tmpl',
    }
);
if ($permission && $permission->{'pf'}) {
    my $pfId    = $input->{'pfId'};
    my $op      = $input->{'op'};
    if($op eq 'del' && $pfId>0){
        pf_delete($dbh,$pfId);
    }
    elsif($op eq 'addBookRs'){
        my $rid =$input->{'rid'};
        my $nextRid;
        my $sessionID = $cgi->cookie('globalSessionID');
        my $ssType = "addRsPathfinder";
        my @itemSels = SessionHdl_get($dbh,$sessionID,$ssType);
        my $n = scalar(@itemSels) ;
        if (!$rid || $rid<0){
            $rid=getNextRid2Edit($dbh,$ssType , $sessionID);
        }
        $nextRid=getNextRid2Edit($dbh,$ssType , $sessionID,$rid);

        $template->param( addRsPathfinder => 1,
                          id              => $rid,
                          nextRid         => $nextRid,
                          numItemSel      => $n );

    }
    $template->param(editable=>1);

    
}

    #my $sortField     = $input->{'sortField'};
    #my $sortDir       = $input->{'sortDir'};
    #$sortField ='title' if(!defined $sortField  || $sortField  eq '');
    #$sortDir   ='asc'   if(!defined $sortDir  || $sortDir  eq '');
    my $pfList;
    my $grpBy      = $input->{'grpBy'};
    my $srchBy     = $input->{'searchBy'};
    if($srchBy && $srchBy ne ''){
        my $sVal     = $input->{'sVal'};
        $pfList   = pf_getPfListByField($dbh,$srchBy,$sVal);
        $template->param("hide_$srchBy"     => 1,
                          "hili_$srchBy" => 1);
    }
    else{
        $grpBy ='subject' if(!$grpBy || $grpBy eq '');
        $pfList= pf_getPfListByGrp($dbh,$grpBy);
    }

    $template->param(pfList     => $pfList,
                     hlpUrl     => Opals::Constant->getHlpUrl('pfList'));
    $template->param("browse_$grpBy"    => 1 );


#Tue, Jan 12, 2010 @ 10:31:41 EST
    my $msgValMap ={};
    my $msgMap            =loc_getMsgFile('util/pathfinder.msg',$msgValMap);
    loc_write($template,$msgMap);

tmpl_write($dbh, $cgi, $cookieList, $template);
#--------------------------------------------------------------------------
sub getNextRid2Edit{
    my($dbh,$ssType ,$ssid,$rid)=@_;
    my $nextRid;
    my @params=($ssType ,$ssid);
    my $sql = "select rid from opl_sessionVar where var = ? && ssid= ? && (note is null || note ='')";
    if($rid){
        $sql .= " && sOrder >(select sOrder from opl_sessionVar where var = ? &&  ssid= ? && rid=? ) ";
        @params=($ssType ,$ssid ,$ssType ,$ssid,$rid );
    }
    $sql .= "  order by sOrder asc limit 1";
    my $sth=$dbh->prepare($sql);
    $sth->execute(@params);
    ($nextRid) = $sth->fetchrow_array;
    $sth->finish;
    return $nextRid;

}

