#!/usr/bin/perl

#use utf8;
use strict;
use CGI;

use Opals::Context;
use Opals::Template qw(
    tmpl_read
    tmpl_write
);

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

my $cgi = CGI->new;
# $cgi->param('aaa') returns an array of aaa
my $input = $cgi->Vars();
#my $op = $input->{'op'};
my ($permission, $cookieList, $template) = tmpl_read(
    {
        dbh             => $dbh,
        cgi             => $cgi,
        tmplFile        => 'sample',
#        reqPermission   => '',
#        op              => $op,
    }
);

my ($customLogo) = $dbh->selectrow_array(<<_SQL_);
select  val
from    opl_preference
where   var = 'logo'
_SQL_

my $imagePath = $input->{'iPath'};
if ($customLogo ne 'logo-opals.gif' &&
    -r "$imagePath/$customLogo") {
    my $fileData = '';
    open IMG, "<$imagePath/$customLogo";
    while (<IMG>) {
        $fileData .= $_;
    }
    close IMG;
    
    my ($fileType, $fileName) = ('image', 'logo');
    my $fileExtension;
    if ($customLogo =~ m/.*\.([\w\-]+)$/) {
        $fileExtension = $1;
    }

    setFile($dbh, $fileType, $fileName, $fileExtension, $fileData);
}

#exit 0;
tmpl_write($dbh, $cgi, $cookieList, $template);
#$dbh->disconnect();
############################################################


sub setFile {
    my ($dbh, $fileType, $fileName, $fileExtension, $fileData) = @_;
    my $mimeType = listMimeTypes();

    if (! $mimeType->{$fileExtension} ||
        $mimeType->{$fileExtension} !~ m/^$fileType\//) {
        return;
    }

    my $sth = $dbh->prepare(<<_STH_);
update  opl_file
set     mimeType = ?,
        fileData = ?
where   fileType = ? &&
        fileName = ?
_STH_

    $sth->execute($mimeType->{$fileExtension}, $fileData, $fileType, $fileName);
    $sth->finish;

    return 1;
}
############################################################


sub listMimeTypes {
    return {
        'aif'       => 'audio/aiff',
        'aif'       => 'audio/x-aiff',
#        'aifc'      => 'audio/aiff',
        'aifc'      => 'audio/x-aiff',
#        'aiff'      => 'audio/aiff',
        'aiff'      => 'audio/x-aiff',
        'art'       => 'image/x-jg',
#        'au'        => 'audio/basic',
        'au'        => 'audio/x-au',
        'bm'        => 'image/bmp',
#        'bmp'       => 'image/bmp',
        'bmp'       => 'image/x-windows-bmp',
#        'dwg'       => 'image/vnd.dwg',
        'dwg'       => 'image/x-dwg',
#        'dxf'       => 'image/vnd.dwg',
        'dxf'       => 'image/x-dwg',
        'fif'       => 'image/fif',
        'flo'       => 'image/florian',
        'fpx'       => 'image/vnd.fpx',
#        'fpx'       => 'image/vnd.net-fpx',
        'funk'      => 'audio/make',
        'g3'        => 'image/g3fax',
        'gif'       => 'image/gif',
        'gsd'       => 'audio/x-gsm',
        'gsm'       => 'audio/x-gsm',
        'ico'       => 'image/x-icon',
        'ief'       => 'image/ief',
        'iefs'      => 'image/ief',
        'it'        => 'audio/it',
        'jam'       => 'audio/x-jam',
        'jfif'      => 'image/jpeg',
#        'jfif'      => 'image/pjpeg',
        'jfif-tbnl' => 'image/jpeg',
        'jpeg'      => 'image/jpeg',
#        'jpeg'      => 'image/pjpeg',
        'jpe'       => 'image/jpeg',
#        'jpe'       => 'image/pjpeg',
        'jpg'       => 'image/jpeg',
#        'jpg'       => 'image/pjpeg',
        'jps'       => 'image/x-jps',
        'jut'       => 'image/jutvision',
        'kar'       => 'audio/midi',
#        'la'        => 'audio/nspaudio',
        'la'        => 'audio/x-nspaudio',
        'lam'       => 'audio/x-liveaudio',
#        'lma'       => 'audio/nspaudio',
        'lma'       => 'audio/x-nspaudio',
        'm2a'       => 'audio/mpeg',
        'm3u'       => 'audio/x-mpequrl',
        'mcf'       => 'image/vasa',
#        'mid'       => 'audio/midi',
#        'mid'       => 'audio/x-mid',
        'mid'       => 'audio/x-midi',
#        'midi'      => 'audio/midi',
#        'midi'      => 'audio/x-mid',
        'midi'      => 'audio/x-midi',
        'mjf'       => 'audio/x-vnd.audioexplosion.mjuicemediafile',
#        'mod'       => 'audio/mod',
        'mod'       => 'audio/x-mod',
#        'mp2'       => 'audio/mpeg',
        'mp2'       => 'audio/x-mpeg',
#        'mp3'       => 'audio/mpeg3',
        'mp3'       => 'audio/x-mpeg-3',
        'mpa'       => 'audio/mpeg',
        'mpga'      => 'audio/mpeg',
        'mpg'       => 'audio/mpeg',
        'my'        => 'audio/make',
        'nap'       => 'image/naplps',
        'naplps'    => 'image/naplps',
        'niff'      => 'image/x-niff',
        'nif'       => 'image/x-niff',
        'pbm'       => 'image/x-portable-bitmap',
        'pct'       => 'image/x-pict',
        'pcx'       => 'image/x-pcx',
#        'pfunk'     => 'audio/make',
        'pfunk'     => 'audio/make.my.funk',
#        'pgm'       => 'image/x-portable-graymap',
        'pgm'       => 'image/x-portable-greymap',
        'pic'       => 'image/pict',
        'pict'      => 'image/pict',
        'pm'        => 'image/x-xpixmap',
        'png'       => 'image/png',
        'pnm'       => 'image/x-portable-anymap',
        'ppm'       => 'image/x-portable-pixmap',
        'qcp'       => 'audio/vnd.qcelp',
        'qif'       => 'image/x-quicktime',
        'qtif'      => 'image/x-quicktime',
        'qti'       => 'image/x-quicktime',
#        'ra'        => 'audio/x-pn-realaudio',
#        'ra'        => 'audio/x-pn-realaudio-plugin',
        'ra'        => 'audio/x-realaudio',
        'ram'       => 'audio/x-pn-realaudio',
        'ras'       => 'image/cmu-raster',
        'ras'       => 'image/x-cmu-raster',
#        'rast'      => 'image/cmu-raster',
        'rf'        => 'image/vnd.rn-realflash',
        'rgb'       => 'image/x-rgb',
        'rm'        => 'audio/x-pn-realaudio',
        'rmi'       => 'audio/mid',
        'rmm'       => 'audio/x-pn-realaudio',
        'rmp'       => 'audio/x-pn-realaudio',
#        'rmp'       => 'audio/x-pn-realaudio-plugin',
        'rp'        => 'image/vnd.rn-realpix',
        'rpm'       => 'audio/x-pn-realaudio-plugin',
        's3m'       => 'audio/s3m',
        'sid'       => 'audio/x-psid',
#        'snd'       => 'audio/basic',
        'snd'       => 'audio/x-adpcm',
#        'svf'       => 'image/vnd.dwg',
        'svf'       => 'image/x-dwg',
#        'tiff'      => 'image/tiff',
        'tiff'      => 'image/x-tiff',
#        'tif'       => 'image/tiff',
        'tif'       => 'image/x-tiff',
        'tsi'       => 'audio/tsp-audio',
        'tsp'       => 'audio/tsplayer',
        'turbot'    => 'image/florian',
#        'voc'       => 'audio/voc',
        'voc'       => 'audio/x-voc',
#        'vox'       => 'audio/voxware',
        'vqe'       => 'audio/x-twinvq-plugin',
        'vqf'       => 'audio/x-twinvq',
        'vql'       => 'audio/x-twinvq-plugin',
#        'wav'       => 'audio/wav',
        'wav'       => 'audio/x-wav',
        'wbmp'      => 'image/vnd.wap.wbmp',
#        'xbm'       => 'image/xbm',
        'xbm'       => 'image/x-xbitmap',
#        'xbm'       => 'image/x-xbm',
        'xif'       => 'image/vnd.xiff',
        'xm'        => 'audio/xm',
#        'xpm'       => 'image/xpm',
        'xpm'       => 'image/x-xpixmap',
        'x-png'     => 'image/png',
#        'xwd'       => 'image/x-xwd',
        'xwd'       => 'image/x-xwindowdump',
    };
}
