#!/usr/bin/perl

# Copyright 2000-2002 Katipo Communications
#
# This file is part of Koha.
#
# Koha is free software; you can redistribute it and/or modify it under the
# terms of the GNU General Public License as published by the Free Software
# Foundation; either version 2 of the License, or (at your option) any later
# version.
#
# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with
# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
# Suite 330, Boston, MA  02111-1307 USA

use strict;
use CGI qw/:standard/;
use C4::Circulation;
use C4::Output;
use C4::Auth;
use C4::Print;
use C4::Interface::CGI::Output;
use C4::Koha;
use C4::Branch; # GetBranches

# this is a reorganisation of circulationold.pl
# dividing it up into three scripts......
# this will be the first one that chooses branch and printer settings....

#general design stuff...

# try to get the branch and printer settings from the http....
my $query    = new CGI;
my $branches = GetBranches();
my $printers = GetPrinters();
my $branch   = $query->param('branch');
my $printer  = $query->param('printer');

my %cookie = $query->cookie('userenv');
($branch)  || ( $branch  = $cookie{'branch'} );
($printer) || ( $printer = $cookie{'printer'} );

( $branches->{$branch} )  || ( $branch  = ( keys %$branches )[0] );
( $printers->{$printer} ) || ( $printer = ( keys %$printers )[0] );

# is you force a selection....
my $oldbranch  = $branch;
my $oldprinter = $printer;

# set up select options....
my $branchcount  = 0;
my $printercount = 0;
my @branchloop;
foreach my $br ( keys %$branches ) {
    next unless $br =~ /\S/; # next unless $br is not blank.

    $branchcount++;
    my %branch;
    $branch{selected} = ( $br eq $oldbranch );
    $branch{name}     = $branches->{$br}->{'branchname'};
    $branch{value}    = $br;
    push( @branchloop, \%branch );
}
my @printerloop;
foreach ( keys %$printers ) {
    (next) unless ($_); # next unless if this printer is blank.
    $printercount++;
    my %printer;
    $printer{selected} = ( $_ eq $oldprinter );
    $printer{name}     = $printers->{$_}->{'printername'};
    $printer{value}    = $_;
    push( @printerloop, \%printer );
}

# if there is only one....
my $printername;
my $branchname;

my $oneprinter = ( $printercount == 1 );
my $onebranch  = ( $branchcount == 1 );
if ( $printercount == 1 ) {
    my ($tmpprinter) = keys %$printers;
    $printername = $printers->{$tmpprinter}->{printername};
}
if ( $branchcount == 1 ) {
    my ($tmpbranch) = keys %$branches;
    $branchname = $branches->{$tmpbranch}->{branchname};
}

################################################################################
# Start writing page....
# set header with cookie....

my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
    {
        template_name   => "circ/selectbranchprinter.tmpl",
        query           => $query,
        type            => "intranet",
        authnotrequired => 0,
        flagsrequired   => { circulate => 1 },
    }
);
$template->param(
    oneprinter              => $oneprinter,
    onebranch               => $onebranch,
    printername             => $printername,
    branchname              => $branchname,
    printerloop             => \@printerloop,
    branchloop              => \@branchloop,
    intranetcolorstylesheet =>
      C4::Context->preference("intranetcolorstylesheet"),
    intranetstylesheet => C4::Context->preference("intranetstylesheet"),
    IntranetNav        => C4::Context->preference("IntranetNav"),
);

output_html_with_http_headers $query, $cookie, $template->output;
