#!/usr/bin/perl

#use utf8;
use strict;
use CGI;
use POSIX qw(
    ceil
);

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

use Opals::Template qw(
    tmpl_read
    tmpl_write
    tmpl_rangedPageList
    tmpl_searchFieldAdvance
);
use Opals::Search qw(
    srch_parseSearchTerm
    srch_exclusiveResultSize
    srch_zTab
    srch_zList
);
use Opals::CurriculumStd qw(
        getLevelList_ny
        getCategoryList_ny
        getSbjStdList_ny
        getSubjectList_ny
        getStandardList_ny
        getBenchMarkList_ny
);



use Opals::Circulation qw(
    circ_infoRecord
);
use Opals::MarcXml qw(
    mxml_delete
);

my $dbh = Opals::Context->dbh();
END { $dbh->disconnect(); }

my $cgi = CGI->new;
my $input = $cgi->Vars();
#open kkk, ">/tmp/kkk";
#print kkk $input->{'kw0'};
#close kkk;
my ($permission, $cookie, $template) = tmpl_read(
        {
            dbh             => $dbh,
            cgi             => $cgi,
            tmplFile        => 'search/curstd.tmpl',
        }
);

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

my $self = $ENV{'SCRIPT_NAME'};
my @cookieList = (@$cookie);
my $m_level= $input->{'level'};
my $m_category= $input->{'category'};
my $m_subjectStd= $input->{'sbjstd'};
 $m_level='Elementary';
 $m_category='Career Development and Occupational Studies';
 $m_subjectStd='Career Development';
# get subject list by alphabet ($alp)
my $stdList = getStdList($dbh);
$template->param(
    stdList         => $stdList,
);

my $iCount = 0;



foreach my $cgiInput (keys %$input) {
    $iCount++ if ($cgiInput =~ m/^sf/);
}

$template->param(subjects=>1,);

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

#////////////////////////////////////////////////////////////////////////////////////////////////////
sub getStdList{
    my ($dbh)=@_;
     
    my @retval;
    my @levelList=("Elementary",
            "Intermediate","Commencement",
            "Commencement--Major Sequence",
            "Commencement--Core",
            "Commencement--Specialized",
            "Commencement--Experiential",
            "Four-year sequence in mathematics",
            "Languages Other Than English"); 
    $m_level="Elementary"; 
    foreach my $level (@levelList){
        if($level eq $m_level){
            my $category =getCategoryList($dbh,$level);
            push @retval, {level=>$level,categoryList=>$category};
        }
        else{
            push @retval, {level=>$level};
        }
    }
   return \@retval;


}
#////////////////////////////////////////////////////////////////////////////////////////////////////
sub getCategoryList{
    my ($dbh,$level)=@_;
    
    my @retval;
    my $categoryList =getCategoryList_ny($dbh,$level);
    foreach my $item (@$categoryList){
        my $subjectStdList=getSbjStdList($dbh,$level,$item->{'category'});
        push @retval,{category=>$item->{'category'},subjectStdList=>$subjectStdList};
    }
    return \@retval;
}
#////////////////////////////////////////////////////////////////////////////////////////////////////
sub getSbjStdList{
    my ($dbh,$level,$category)=@_;
    my @retval;
    my $subjectStdList =getSbjStdList_ny($dbh,$level,$category);
    foreach my $item (@$subjectStdList){
        if($item->{'subjectStandard'} eq $m_subjectStd && $level eq $m_level && $category eq $m_category){
            my $subjectList=getSubjectList($dbh,$level,$category,$item->{'subjectStandard'});
            push @retval,{subjectstandard=>$item->{'subjectStandard'},subjectList=>$subjectList};
        }
        else{
            push @retval,{subjectstandard=>$item->{'subjectStandard'}};
        }
    }
    
    return \@retval;
}
#////////////////////////////////////////////////////////////////////////////////////////////////////
sub getSubjectList{
    my ($dbh,$level,$category,$subjectStd)=@_;
    my $subjectList=getSubjectList_ny($dbh,$level,$category,$subjectStd);
    my @retval;
    foreach my $item (@$subjectList){
        my $standardList =getStandardList($dbh,$level,$category,$subjectStd,$item->{'subject'});
        push @retval,{subject=>$item->{'subject'}, standardList=>$standardList};
    }
    return \@retval;
}
#////////////////////////////////////////////////////////////////////////////////////////////////////

sub getStandardList{
    my ($dbh,$level,$category,$sbjStd,$subject)=@_;
    my @retval;
    my $standardList = getStandardList_ny($dbh,$level,$category,$sbjStd,$subject);
    for(my $i=0; $i< scalar(@$standardList); $i++){
        my $benchMarkList=getBenchMarkList_ny($dbh,$level,$category,$sbjStd,$subject,@$standardList[$i]->{"NY_Std_No"});
        push @retval,{NYStandard=>@$standardList[$i]->{"NYStandard"},
                      NY_Std_No=>@$standardList[$i]->{"NY_Std_No"},
                      benchMarkList=>$benchMarkList};
        
    }
    return \@retval;
}
#//////////////////////////////////////////////////////////////


