#!/usr/bin/perl

#use utf8;
use strict;
use CGI;
use MIME::Base64::Perl;
use Opals::Template qw(
    tmpl_read
    tmpl_write
    tmpl_preference
);
use Opals::Context;
use Opals::Constant;
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        => 'ajax/util/uploadBookcover.tmpl',
            reqPermission   => 'marc_edit|marc_add',
        }
);
use Opals::BookCover qw( 
      bookCover_upload
);
use  Opals::User qw(
    user_currentUser
    );

use XML::SAX;

my ($isbn,$oplCoverId,$uri)=("","","");
my $fname     = $input->{'imgFile'};
my $user= user_currentUser($dbh,$cgi);

if ($permission && ($permission->{'marc_edit'} || $permission->{'marc_add'})) {
   if($fname && $fname ne''){
       if($input->{'preview'} eq '1'){
           previewImg();
       }
       else{
           uploadBookcover();
       }
   }
         
}

#-------------------------------------------------------------
sub previewImg{
    my $upload_filehandle = $cgi->upload("imgFile"); 
    my $in="";
    while(<$upload_filehandle>) {
        $in .= $_;
    }
    print $cgi->header("image/jpg;base64");
    print encode_base64($in);


}
#-------------------------------------------------------------

sub uploadBookcover{
   
    my $tnFile=getUploadFile();
    my $params={};
    $params->{'imgFile'}    = [$tnFile];
    $params->{'fileName'}   = $fname;
    $params->{'OPLBCN'}     = $input->{'OPLBCN'};
    $params->{'isbn'}       = $input->{'isbn'};
    $params->{'lccn'}       = $input->{'lccn'};
    $params->{'title'}      = $input->{'title'};
    $params->{'author'}     = $input->{'author'};
    $params->{'pubName'}    = $input->{'pubName'};
    $params->{'pubDate'}    = $input->{'pubDate'};
    $params->{'pubPlace'}   = $input->{'pubPlace'};
    $params->{'username'}   = $user->{'username'};
    $params->{'firstname'}  = $user->{'firstname'};
    $params->{'lastname'}   = $user->{'lastname'};
    $params->{'libName'} = Opals::Context->preference('libName');
    $params->{'libCode'} = Opals::Context->preference('libCode');
    $params->{'clientHost'} = $ENV{'HTTP_HOST'};


    my $rsXml =bookCover_upload($params);
    if($rsXml =~ m/<thumbnail isbn="(.*)" cid="(.*)">(.*)<\/thumbnail>/g){
        $isbn=$1;
        $oplCoverId=$2;
        $uri=$3;
    }
    $template->param(isbn      =>$isbn,
                     oplCoverId=>$oplCoverId,
                     uri       =>$uri);

    tmpl_write($dbh, $cgi, $cookie, $template);
}

#-------------------------------------------------------------
#Thu, Jan 07, 2010 @ 13:50:35 EST
        
############################################################
sub getUploadFile{
    umask 002;         
    my $tmpUploadFile=`/bin/mktemp`;
    $tmpUploadFile =~ s/\n$//gi;
    system("chown apache.apache $tmpUploadFile");
    my $upload_filehandle = $cgi->upload("imgFile"); 
    open    UPLOADFILE, ">$tmpUploadFile" ;
    binmode UPLOADFILE;
    while ( <$upload_filehandle> ){
        print UPLOADFILE;
    }
    close UPLOADFILE;
    return $tmpUploadFile;
}

