#!/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;
my $input = $cgi->Vars();

my @fields=('libname','libAddress','libCity',
            'libState','libZip','country',
            'libPhone','libFax','libEmail');

my ($permission, $cookieList, $template) = tmpl_read(
        {
            dbh             => $dbh,
            cgi             => $cgi,
            tmplFile        => 'util/libInfo.tmpl',
            reqPermission   => 'pref_edit',
#            op              => $op,
        }
);

# See User.pm for the list of permissions
if ($permission && $permission->{'pref_edit'}) {
    my $op = $input->{'op'};
    if ($ENV{'REQUEST_METHOD'} =~ m/post/i) {
      if ($op && $op eq 'save') {
            saveLibInfo($dbh, $input);
            $template->param(
                saveMsg  => 1,
                );

      }

      my $libInfo = getLibInfo($dbh);
      foreach my $var(keys %{$libInfo}){
            $template->param(
                $var  => $libInfo->{$var},
            );
      }
    }
}
$template->param(hlpUrl     => Opals::Constant->getHlpUrl('libInfo') );

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

sub saveLibInfo {
    my ($dbh, $input) = @_;
    foreach my $var(@fields){
        my $hidden= ($var eq 'country' || $var eq 'libname')?0:1;
        savePrefValue($dbh,$var,$input->{$var},$hidden);
    }
}

################################################################################
sub getLibInfo{
    my ($dbh)=@_;
    my $retval;
    foreach my $var(@fields){
        $retval->{$var}=   getPrefValue($dbh,$var);         
    }
    return $retval;
    
}

################################################################################
sub getPrefValue{
    my ($dbh,$var)=@_;
    my $retval="";
    my $sth=$dbh->prepare("select val from opl_preference where var=?");
    $sth->execute($var);
    if (my ($val)=$sth->fetchrow_array()){
        $retval=$val;
    }
    $sth->finish;
    return $retval;
}
################################################################################
sub savePrefValue{
    my ($dbh,$var,$val,$hidden)=@_;    
    my $sth=$dbh->prepare("replace into opl_preference set var=? , val=? ,hidden=?");
    $sth->execute($var,$val,$hidden);
    $sth->finish;
}

