package Opals::XML::SAX::IllSearchRsHandler;

# Version number
$VERSION   = 0.01;

use warnings;
use strict;
use XML::SAX;
use base qw( XML::SAX::Base );
#################################################################
sub new {
    my ($class) = @_;
    my $type = shift;
    my $self={};
    $self->{'illList'}=[];
    $self->{text}="";
    $self->{"index"}=-1;
    bless $self, $class;
    return $self;
}
#################################################################
sub getIllList{
    my ($self)=@_;
    return $self->{'illList'};
}
#################################################################
sub start_element {
    my ($self, $element) = @_;
    my $name = $element->{'Name'};
    if($name eq 'ill'){
       $self->{"index"} +=1;
       my $i=$self->{"index"};
       $self->{'illList'}[$i]->{'ILL_id'}=$element->{'Attributes'}{'{}illId'}{'Value'};
       $self->{'illList'}[$i]->{'req_lid'}=$element->{'Attributes'}{'{}req_lid'}{'Value'};
       $self->{'illList'}[$i]->{'req_lName'}=$element->{'Attributes'}{'{}req_lName'}{'Value'};
       $self->{'illList'}[$i]->{'loanList'}=[];
       $self->{'illList'}[$i]->{'totalLoan'}=0;


    }
    elsif($name eq 'loan'){
           my($loanId,$barcode,$requestDate,$loanDate,$dueDate,$res_lid,$res_lName)=(
           $element->{'Attributes'}{'{}loanId'}{'Value'},  
           $element->{'Attributes'}{'{}barcode'}{'Value'},  
           $element->{'Attributes'}{'{}requestDate'}{'Value'},  
           $element->{'Attributes'}{'{}loanDate'}{'Value'},  
           $element->{'Attributes'}{'{}dueDate'}{'Value'},  
           $element->{'Attributes'}{'{}res_lid'}{'Value'},  
           $element->{'Attributes'}{'{}res_lName'}{'Value'}
           );  
           my $i=$self->{"index"};
           push @{$self->{'illList'}[$i]->{'loanList'}},
                            {loanId=>$loanId,ILL_itemBc=>$barcode,requestDate=>$requestDate,
                            loanDate=>$loanDate,dueDate=>$dueDate,
                            res_lid=>$res_lid,res_lName=>$res_lName};
           $self->{'illList'}[$i]->{'totalLoan'} +=1;                  
    }
    $self->{text}="";
} 
#################################################################
sub end_element {
    my ($self, $element) = @_;
    my $bibFields={title=>1,author=>1,pubDate=>1,pubName=>1,pubPlace=>1,isbn=>1,sf852k=>1,sf852h=>1,sf852i=>1};
    my $name = $element->{'Name'};
    if($bibFields->{$name}){
       my $i=$self->{"index"};
       $self->{'illList'}[$i]->{$name}=$self->{text};
    }

    $self->{text}="";
  
}
#################################################################
sub characters {
    my $self = shift;
    my $text = shift;
    $self->{text} .= $text->{Data};
}


1;
