#!/usr/bin/perl

use strict;
use CGI;

use Opals::Context;
use MIME::Base64::Perl;
use Opals::Template qw(
    tmpl_read
    tmpl_write
);

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        => 'eqmnt/ajax/uploadImage.tmpl',
        reqPermission   => 'eq_record_edit',
    }
);

my $rid     = $input->{'rid'};
my $preview = $input->{'preview'};
my $fileName = $input->{'imgFile'};

if ($permission && $permission->{'eq_record_edit'} ) {
    if ($fileName && $fileName ne '') {
        if ( $rid && $rid > 0 && $preview eq "0") {
            uploadImg();
            $template->param (
                rid => $rid
            );
            tmpl_write($dbh, $cgi, $cookieList, $template);
        }
        else{
            previewImg();
        }
    }
}
################################################################################
sub previewImg{
    my $upload_filehandle = $cgi->upload("imgFile"); 
    my $in="";
    while(<$upload_filehandle>) {
        $in .= $_;
    }

    print $cgi->header(
        -type    => 'image/jpg;base64',
    ), encode_base64($in);

}

sub uploadImg {
    my $imgData = $cgi->param('imgFile');
    my $imgFile = '';
    while(<$imgData>){
        $imgFile .= $_;
    }

    my $params = {};
    $params->{'imgFile'} = $imgFile;
    $params->{'fileName'}= $fileName;
    $params->{'rid'}     = $rid ;
    my $ret = saveEquipmentImage($dbh,$params, $imgFile); 

}


sub saveEquipmentImage {
    
    my ($dbh,$params, $imgFile) = @_;
    return if (!$params->{'rid'} || $params->{'rid'} <= 0 );
    my $sth = $dbh->prepare(<<_STH_);
replace into eq_images
    set rId = ?,
        thumbnail = ?,
        filename = ?,
        mimeType = "image/jpeg"
_STH_
    $sth->execute($params->{'rid'}, $imgFile, $params->{'fileName'});

    return $params->{'rid'};
}

sub uploadEqImage {
    
    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;
    
}

