From 4ebbd5ab167c13e7b7fc9e223fa4a869ce301d6e Mon Sep 17 00:00:00 2001
From: Hector Castro <hector.hecaxmmx@gmail.com>
Date: Mon, 20 Apr 2015 15:09:11 -0600
Subject: [PATCH] Bug 13642 [ENH] Adding new features for Dublin Core metadata

When Koha export a bibliographic record to DC, makes it in XML format. This XML not follows the DC-XML recommendations as should be: elements in uppercase eg. dc:Date, dc:Creator, section 4.2, recommendation 4 explain that "The property names for the 15 DC elements should be all lower-case." eg. dc:date, dc:creator" and section "4.3 Example - a simple DC record", xsi:schemaLocation="http://example.org/myapp/ http://example.org/myapp/schema.xsd" schema does not exist.
The recommendation can be consulted at <http://dublincore.org/documents/dc-xml-guidelines/>.
This new feature, adds an ability to export Dublin Core metadata to XML and RDF (including rdfxml, rdfjson, ntriples, turtle, etc.)

Test plan
---------------
1) Download Dublin Core file. Open up the file, and make sure that the document not follows the DC-XML recommendations as should be.
2) Apply patches.
3) Go to whichever bib record in OPAC or staff and click on Save > Dublin Core. A modal will display, prove all options.
4) Change the system preference 'Opac ExportOptions' by enabling and disabling Dublin Core and try to download a record in the OPAC.
5) Try several bibliographic records in any format (book, magazine, DVD, etc.) to confirm that properly exported.
6) RDF/XML can be validated per RDF Validator W3C.
7) DC-XML cannot valid if not exist a valid XSD schema.
8) OAI-DC can be validated using <http://www.freeformatter.com/xml-validator-xsd.html> and the proper schema <http://www.openarchives.org/OAI/2.0/oai_dc.xsd> typed in text field for URL.
9) Since unit test fail last time, test with prove t/db_dependent/Record.t

Sponsored-by: Universidad de El Salvador

Signed-off-by: Hector Castro <hector.hecaxmmx@gmail.com>
XML::Entities, HTML::Entities and, HTML::Entities::Numbered were eliminated from patch, use instead C4::Record::_entity_encode, RDF::Helper has been eliminated too.
---
 C4/Installer/PerlDependencies.pm                   |    5 +
 C4/Record.pm                                       |  127 ++-
 Koha/DublinCore.pm                                 | 1011 ++++++++++++++++++++
 catalogue/export.pl                                |   36 +-
 debian/control                                     |    4 +-
 .../intranet-tmpl/prog/en/css/staff-global.css     |   10 +
 .../intranet-tmpl/prog/en/includes/cat-toolbar.inc |    2 +-
 .../prog/en/modules/catalogue/detail.tt            |  159 ++-
 koha-tmpl/opac-tmpl/bootstrap/css/opac.css         |    2 +-
 .../bootstrap/en/includes/opac-detail-sidebar.inc  |    5 +-
 .../opac-tmpl/bootstrap/en/modules/opac-detail.tt  |  162 ++++
 koha-tmpl/opac-tmpl/bootstrap/js/script.js         |    2 +-
 opac/opac-export.pl                                |   36 +-
 t/db_dependent/Record.t                            |   39 +-
 14 files changed, 1545 insertions(+), 55 deletions(-)
 create mode 100644 Koha/DublinCore.pm

diff --git a/C4/Installer/PerlDependencies.pm b/C4/Installer/PerlDependencies.pm
index 9ddeca8..ca7b50f 100644
--- a/C4/Installer/PerlDependencies.pm
+++ b/C4/Installer/PerlDependencies.pm
@@ -737,6 +737,11 @@ our $PERL_DEPS = {
         'required' => '0',
         'min_ver'  => '0.89',
     },
+    'RDF::Trine' => {
+        'usage'    => 'Core',
+        'required' => '1',
+        'min_ver'  => '1.000',
+    },
 };
 
 1;
diff --git a/C4/Record.pm b/C4/Record.pm
index 5d894fa..2c6aac2 100644
--- a/C4/Record.pm
+++ b/C4/Record.pm
@@ -25,7 +25,7 @@ use strict;
 # please specify in which methods a given module is used
 use MARC::Record; # marc2marcxml, marcxml2marc, changeEncoding
 use MARC::File::XML; # marc2marcxml, marcxml2marc, changeEncoding
-use MARC::Crosswalk::DublinCore; # marc2dcxml
+use Koha::DublinCore; # marc2dcxml
 use Biblio::EndnoteStyle;
 use Unicode::Normalize; # _entity_encode
 use C4::Biblio; #marc2bibtex
@@ -219,20 +219,34 @@ sub marcxml2marc {
 
 =head2 marc2dcxml - Convert from ISO-2709 to Dublin Core
 
-  my ($error,$dcxml) = marc2dcxml($marc,$qualified);
+  ($error,$marc) = marc2dcxml($marc, $type, $qualified,
+                              $entities, $root, $xsi_schemaLocation, $rdf_subject, $rdf_format);
 
 Returns a DublinCore::Record object, will eventually return a Dublin Core scalar
 
-FIXME: should return actual XML, not just an object
+FIXME: should return actual XML, not just an object (Koha::DublinCore return an XML)
 
 C<$marc> - an ISO-2709 scalar or MARC::Record object
 
-C<$qualified> - specify whether qualified Dublin Core should be used in the input or output [0]
+C<$type> - the recommendation ( simple-dc-rdf, dc-rdf, dc-xml, oai-dc, srw_dc )
+
+C<$qualified> - specify whether simple or qualified Dublin Core should be used in output [0 or 1]
+
+C<$entities> placing entities to 0 will codify only the five basic entities e.g., &lt, &gt, &quot, &amp, and &apos. Conversely if it is encoded to 1, all entities will coded into decimal
+
+C<$root> root element for XML files
+
+C<$xsi_schemaLocation> the xsischemaLocation for XML files.
+
+C<$rdf_subject> Represent the main subject of RDF triples (for Koha the URI of the resource)
+
+C<$rdf_format> Imply multiple formats for RDF (ntriples, nquads, rdfxml, rdfjson, ntriples-canonical, turtle)
 
 =cut
 
 sub marc2dcxml {
-	my ($marc,$qualified) = @_;
+    my ( $marc, $type, $qualified, $entities, $root, $xsi_schemaLocation, $rdf_subject,
+        $rdf_format ) = @_;
 	my $error;
     # test if it's already a MARC::Record object, if not, make it one
     my $marc_record_obj;
@@ -246,24 +260,93 @@ sub marc2dcxml {
 			$error .="\nCreation of MARC::Record object failed: ".$MARC::File::ERROR;
 		}
 	}
-	my $crosswalk = MARC::Crosswalk::DublinCore->new;
-	if ($qualified) {
-		$crosswalk = MARC::Crosswalk::DublinCore->new( qualified => 1 );
-	}
-	my $dcxml = $crosswalk->as_dublincore($marc_record_obj);
-	my $dcxmlfinal = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
-	$dcxmlfinal .= "<metadata
-  xmlns=\"http://example.org/myapp/\"
-  xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"
-  xsi:schemaLocation=\"http://example.org/myapp/ http://example.org/myapp/schema.xsd\"
-  xmlns:dc=\"http://purl.org/dc/elements/1.1/\"
-  xmlns:dcterms=\"http://purl.org/dc/terms/\">";
-
-	foreach my $element ( $dcxml->elements() ) {
-                $dcxmlfinal.="<"."dc:".$element->name().">".$element->content()."</"."dc:".$element->name().">\n";
+    my $dcxml;
+
+    SWITCH:
+    for ($type) {
+        if (/^simple-dc-rdf/) {
+            my $objectDC = Koha::DublinCore->new({
+                type            => 'rdf',
+                qualified       => 0,
+                get_marc_record => $marc,
+            });
+
+            $objectDC->get_rdf_data({
+                rdf_subject => $rdf_subject,
+                rdf_format  => $rdf_format,
+                entities    => 1,
+            });
+            $dcxml = $objectDC->write_rdf();
+            last SWITCH;
+        }
+        if (/^dc-rdf/) {
+            my $objectDC = Koha::DublinCore->new({
+                type            => 'rdf',
+                qualified       => 1,
+                get_marc_record => $marc,
+            });
+
+            $objectDC->get_rdf_data({
+                rdf_subject => $rdf_subject,
+                rdf_format  => $rdf_format,
+                entities    => 1,
+            });
+            $dcxml = $objectDC->write_rdf();
+            last SWITCH;
+        }
+        if (/^dc-xml/) {
+            my $objectDC = Koha::DublinCore->new({
+                type            => 'xml',
+                qualified       => $qualified,
+                get_marc_record => $marc,
+            });
+
+            $objectDC->get_xml_data({
+                root               => $root,
+                xsi_schemaLocation => $xsi_schemaLocation,
+                entities           => 1,
+            });
+            $dcxml = $objectDC->write_xml();
+            last SWITCH;
+        }
+        if (/^oai-dc/) {
+            my $objectDC = Koha::DublinCore->new({
+                type            => 'xml',
+                qualified       => 0,
+                get_marc_record => $marc,
+            });
+
+            $objectDC->get_xml_data({
+                root               => 'oai_dc:dc',
+                xsi_schemaLocation => 'http://www.openarchives.org/OAI/2.0/oai_dc/' .
+                                      ' http://www.openarchives.org/OAI/2.0/oai_dc.xsd',
+                entities           => 0,
+                opt_namespace      => 'oai_dc',
+                opt_namespace_url  => 'http://www.openarchives.org/OAI/2.0/oai_dc/',
+            });
+            $dcxml = $objectDC->write_xml();
+            last SWITCH;
+        }
+        if (/^srw_dc/) {
+            my $objectDC = Koha::DublinCore->new({
+                type            => 'xml',
+                qualified       => 0,
+                get_marc_record => $marc,
+            });
+
+            $objectDC->get_xml_data({
+                root               => 'srw_dc:dc',
+                xsi_schemaLocation => 'info:srw/schema/1/dc-schema' .
+                                      ' http://www.loc.gov/standards/sru/resources/dc-schema.xsd',
+                entities           => 0,
+                opt_namespace      => 'srw_dc',
+                opt_namespace_url  => 'info:srw/schema/1/dc-schema',
+            });
+            $dcxml = $objectDC->write_xml();
+            last SWITCH;
+        }
     }
-	$dcxmlfinal .= "\n</metadata>";
-	return ($error,$dcxmlfinal);
+    return ( $error, $dcxml );
 }
 
 =head2 marc2modsxml - Convert from ISO-2709 to MODS
diff --git a/Koha/DublinCore.pm b/Koha/DublinCore.pm
new file mode 100644
index 0000000..ad7b073
--- /dev/null
+++ b/Koha/DublinCore.pm
@@ -0,0 +1,1011 @@
+#!/usr/bin/perl
+package Koha::DublinCore;
+
+#
+# This file is part of Koha.
+#
+# Copyright (C) 2014 Universidad de El Salvador,
+# Facultad Multidisciplinaria Oriental
+#
+# 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 3 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, see <http://www.gnu.org/licenses>.
+#
+
+=head1 NAME
+
+Koha::DublinCore - transform the values of MARC::Crosswalk::DublinCore
+into metadata in XML or RDF format.
+
+=head1 SYNOPSIS
+
+=head2 XML-DC
+
+  use Koha::DublinCore;
+  use MARC::File::USMARC;
+  my $batch = MARC::File::USMARC->in('in.mrc');
+
+  #the $record will be a MARC::Record object.
+  my $record = $batch->next();
+
+  #Simple DC-XML
+  my $objectDC = Koha::DublinCore->new({
+        type => 'xml',
+        qualified => 0,
+        get_marc_record => $record});
+
+  #Qualified DC-XML
+  my $objectDC = Koha::DublinCore->new({
+        type => 'xml',
+        qualified => 1,
+        get_marc_record => $record});
+
+  #After call constructor you need to pass the root element and
+  #the schema in .xsd format. If you prefer or you don't know nothing
+  #about it pass the method in blank, i.e., without arguments.
+  #Also you can determine if you want to encode with xml entities or
+  #just with the five basics entities.
+  #Set entities to 0 for the five basics or 1 to encode with the
+  #complete xml entities.
+  $objectDC->get_xml_data({
+        root => 'metadata',
+        xsi_schemaLocation => 'http://example.org/myapp/' .
+                              ' http://example.org/myapp/schema.xsd',
+  });
+  #This print your xml file in STDOUT
+  my $XML-DC = $objectDC->write_xml();
+  print $XML-DC;
+
+  #Close the file according to MARC::File::USMARC
+  $batch->close();
+  undef $batch;
+
+  #Or if you want to generate a file
+  open (OUTPUT, '> dc2xml.xml') or die $!;
+  print OUTPUT $XML-DC;
+  close(OUTPUT);
+
+=head2 DC-RDF
+
+  use Koha::DublinCore;
+  use MARC::File::USMARC;
+  my $marc = MARC::File::USMARC->in('in.mrc');
+  my $record = $marc->next();
+
+  #Simple DC-RDF is not used but not deprecated, DublinCore
+  #can generate it as follow:
+  my $objectDC = Koha::DublinCore->new({
+        type => 'rdf',
+        qualified => 0,
+        get_marc_record => $record});
+
+  #DC-RDF
+  my $objectDC = Koha::DublinCore->new({
+        type => 'rdf',
+        qualified => 1,
+        get_marc_record => $record});
+
+  #The get_rdf_data method for RDF does not need to use the root element
+  #and the schema, but you need to declare the resource being described,
+  #i.e., the record.
+  #Note: For Koha is the IRI identifier of the record
+  $objectDC->get_rdf_data({
+        rdf_subject => 'http://opac.mydomain.edu/cgi-bin/koha/opac-detail.pl?biblionumber=17589',
+  });
+
+  my $XML-RDF = $objectDC->write_rdf();
+  print $XML-RDF;
+  #Close the file according to MARC::File::USMARC
+  $batch->close();
+  undef $marc;
+
+=head1 DESCRIPTION
+
+The Koha::DublinCore defines the interface to transform
+and manipulate MARC records into DC-XML or DC-RDF recommendation.
+This package transform MARC records to XML or RDF/XML Dublin Core
+and follows the recommendations listed below:
+
+L<DC-XML-GUIDELINES [DCMI Recommendation]|http://dublincore.org/documents/dc-xml-guidelines/>
+
+L<Expressing Simple Dublin Core in RDF-XML|http://dublincore.org/documents/dcmes-xml/>
+This recommendation is superseded by DC-RDFrecommendation but not obsoleted at all.
+
+L<DC-RDF [DCMI Recommendation]|http://dublincore.org/documents/dc-rdf/>
+
+=cut
+
+use Modern::Perl;
+use Carp;
+use utf8;
+use version;
+
+BEGIN {
+    require Exporter;
+
+    # set the version for version checking
+    our $VERSION = version->declare("v0.01");
+
+    # Inherit from Exporter to export functions and variables
+    our @ISA = qw(Exporter);
+
+    # Functions and variables which are exported by default
+    our @EXPORT = qw(new get_xml_data get_rdf_data write_xml write_rdf);
+
+    # Functions and variables which can be optionally exported
+    our @EXPORT_OK =
+      qw(type qualified get_marc_record root xsi_schemaLocation rdf_subject rdf_format opt_namespace opt_namespace_url);
+
+}
+
+use MARC::File::USMARC;
+use MARC::Crosswalk::DublinCore;
+use XML::LibXML;
+use C4::Record;
+use RDF::Trine;
+use base qw(Class::Accessor);
+__PACKAGE__->mk_accessors(
+    qw(type qualified get_marc_record root xsi_schemaLocation rdf_subject rdf_format entities opt_namespace opt_namespace_url)
+);
+
+# Defining some constants
+my $xsi_schema  = qq(http://www.w3.org/2001/XMLSchema-instance);
+my $unqualified = qq(http://purl.org/dc/elements/1.1/);
+my $qualified   = qq(http://purl.org/dc/terms/);
+my $dcam        = qq(http://purl.org/dc/dcam/);
+my $rdfNS       = qq(http://www.w3.org/1999/02/22-rdf-syntax-ns#);
+my @elementupcase =
+  qw/tableOfContents dateAccepted dateCopyrighted dateSubmitted isVersionOf hasVersion isReplacedBy isRequiredBy isPartOf hasPart isReferencedBy isFormatOf hasFormat conformsTo accrualMethod accrualPeriodicity accrualPolicy instructionalMethod rightsHolder educationLevel accessRights bibliographicCitation/;
+my $map;
+
+=head2 METHODS
+
+=over 12
+
+=item C<new>
+
+Return a new Koha::DublinCore object.
+This constructor sets the output type (RDF or XML), the level of the standard (Simple DC or Qualified DC) and the MARC record to be transformed to DC.
+
+  my $objectDC = Koha::DublinCore->new({
+        type => 'rdf',
+        qualified => 0,
+        get_marc_record => $record});
+
+=cut
+
+sub new {
+    my ( $class, $args ) = @_;
+    $args = {} unless defined $args;
+    return bless( $args, $class );
+}
+
+=item C<get_xml_data>
+
+This method is just for DC-XML: Fetch the xml root element and the schema in .xsd format.
+
+  $objectDC->get_xml_data({
+        root => 'metadata',
+        xsi_schemaLocation => 'http://example.org/myapp/ http://example.org/myapp/schema.xsd',
+        entities => 1,
+        opt_namespace => 'oai_dc',
+        opt_namespace_url => 'http://www.openarchives.org/OAI/2.0/oai_dc/',
+  });
+
+The entities argument is for extended xml entities, i.e., placing entities to zero will codify only the five basic entities e.g., &lt, &gt, &quot, &amp, and &apos. Conversely if it is encoded to one, all entities will coded into decimal.
+
+Additionally, has been included the opt_namespace and opt_namespace_url arguments to include another XML name space, like OAI-DC or SRW-DC.
+
+NOTE: This method is only for use of the DC-XML recommendation, i.e., type => 'xml'.
+See C<new> method or the section SYNOPSIS.
+
+=cut
+
+sub get_xml_data {
+
+    my $self = shift;
+    my ($args) = @_;
+
+    if (@_) {
+        $self->root( $args->{root} );
+        $self->xsi_schemaLocation( $args->{xsi_schemaLocation} );
+        $self->entities( $args->{entities} );
+        $self->opt_namespace( $args->{opt_namespace} );
+        $self->opt_namespace_url( $args->{opt_namespace_url} );
+    }
+
+    #if data not filled
+    $self->{root}     = "metadata" unless ( defined $self->{root} );
+    $self->{entities} = 0          unless ( defined $self->{entities} );
+    my %dataxml = (
+        xmlroot            => $self->{root},
+        entities           => $self->{entities},
+        opt_namespace => $self->{opt_namespace},
+        opt_namespace_url      => $self->{opt_namespace_url},
+    );
+
+    if ( exists $self->{xsi_schemaLocation} ) {
+        $dataxml{'xsi_schemaLocation'} = $self->{xsi_schemaLocation};
+    }
+    if ( exists $self->{xsi_schemaLocation} ) {
+        $dataxml{'opt_namespace'} = $self->{opt_namespace};
+    }
+    if ( exists $self->{xsi_schemaLocation} ) {
+        $dataxml{'opt_namespace_url'} = $self->{opt_namespace_url};
+    }
+    return \%dataxml;
+}
+
+=item C<get_rdf_data>
+
+This method is only for DC-RDF: Fetch the IRI identifier of the resource being described. As well, you can pass the format you want to generate with the rdf, by default the DC-RDF specify RDF/XML but RDF can represent in other formats listed below:
+
+. ntriples
+
+. nquads
+
+. rdfxml
+
+. rdfjson
+
+. ntriples-canonical
+
+. turtle
+
+    $objectDC->get_rdf_data({
+        rdf_subject => 'http://opac.mydomain.edu/cgi-bin/koha/opac-detail.pl?biblionumber=17589',
+        rdf_format => 'rdfxml',
+        entities => 0|1,
+    });
+
+NOTE: The entities is needed only for rdfxml value and is used like C<get_xml_data> method.
+
+=cut
+
+sub get_rdf_data {
+
+    my $self = shift;
+    my ($args) = @_;
+
+    if (@_) {
+        $self->rdf_subject( $args->{rdf_subject} );
+        $self->rdf_format( $args->{rdf_format} );
+        $self->entities( $args->{entities} );
+    }
+
+    #if data not filled
+    $self->{rdf_subject} = "http://koha-community.org/"
+      unless ( defined $self->{rdf_subject} );
+    $self->{rdf_format} = "rdfxml" unless ( defined $self->{rdf_format} );
+    $self->{entities}   = 0        unless ( defined $self->{entities} );
+    my %rdfdescription = (
+        rdf_subject => $self->{rdf_subject},
+        rdf_format  => $self->{rdf_format},
+        entities    => $self->{entities},
+    );
+
+    return \%rdfdescription;
+}
+
+=item C<conversion_to_dc>
+
+Get the MARC record and return a Dublin Core elements, passed as argument in dc_order_execution method.
+
+USAGE:
+  my dc = $self->conversion_to_dc();
+  $self->dc_order_execution ($dc, $dcxml, $root);
+
+=cut
+
+sub conversion_to_dc {
+
+    my $self            = shift;
+    my $marc_record_obj = $self->get_marc_record();
+    my $crosswalk;
+    my $dc;
+
+    #if data not filled
+    $self->qualified(0) unless ( exists $self->{qualified} );
+    if ( $self->qualified() != 0 and $self->qualified() != 1 )
+    {
+        croak "Only the 0 or 1 values are accepted\n" .
+              "Set qualified => " . $self->qualified() . " is no good, stopped";
+    }
+    if ( $self->qualified() == 1 ) {
+        $crosswalk = MARC::Crosswalk::DublinCore->new( qualified => 1 );
+    }
+    elsif ( $self->qualified() == 0 ) {
+        $crosswalk = MARC::Crosswalk::DublinCore->new( qualified => 0 );
+    }
+    if ( $marc_record_obj =~ /^MARC::Record/ ) {
+        $dc = $crosswalk->as_dublincore($marc_record_obj);
+    }
+    else {
+        croak "MARC::Record object failed or not a MARC::Record\n" .
+              "Stopped due get_marc_record => is not a MARC::Record";
+    }
+
+    return $dc;
+
+}
+=item C<write_xml>
+
+Return the xml object as string.
+
+NOTE: This method is only for use of the DC-XML recommendation, i.e., type => 'xml'.
+See C<new> and C<get_xml_data> methods or the section SYNOPSIS.
+
+=cut
+
+sub write_xml {
+    my $self    = shift;
+    my $dataxml = $self->get_xml_data();
+    my $dc      = $self->conversion_to_dc();
+
+    #Looking for bad data
+    if ( $self->type() ne 'xml' and $self->type() ne 'rdf' )
+    {
+        croak "Only the xml or rdf values are accepted\n" .
+              "Set type => " . $self->type() . " is no good, stopped";
+    }
+    elsif ( $self->type() eq 'rdf' )
+    {
+        croak "The constructor specified rdf\n" .
+              "Cannot use this method with rdf. This is no good, stopped";
+    }
+
+    if ( $self->entities() != 0 and $self->entities() != 1 )
+    {
+        croak "Only the 0 or 1 values are accepted\n" .
+              "Set entities => " . $self->entities() . " is no good, stopped";
+    }
+
+    #Creating XML object
+    my $doc = XML::LibXML::Document->new( '1.0', 'utf-8' );
+    my $root = $doc->createElement( $dataxml->{'xmlroot'} );
+    $root->setNamespace( $xsi_schema, 'xsi', 0 );
+
+    if ( defined $dataxml->{'opt_namespace'} ) {
+        $root->setNamespace( $dataxml->{'opt_namespace_url'},
+            $dataxml->{'opt_namespace'}, 0 );
+    }
+
+    if ( $self->type() eq 'xml' ) {
+        if ( $self->qualified() == 0 ) {
+            if ( defined $dataxml->{'xsi_schemaLocation'} ) {
+                $root->setAttribute(
+                    'xsi:schemaLocation' => $dataxml->{'xsi_schemaLocation'} );
+                $root->setNamespace( $unqualified, 'dc', 0 );
+                $self->dc_order_execution( $dc, $doc, $root );
+            }
+            else {
+                $root->setNamespace( $unqualified, 'dc', 0 );
+                $self->dc_order_execution( $dc, $doc, $root );
+            }
+        }
+        elsif ( $self->qualified() == 1 ) {
+            if ( defined $dataxml->{'xsi_schemaLocation'} ) {
+                $root->setAttribute(
+                    'xsi:schemaLocation' => $dataxml->{'xsi_schemaLocation'} );
+                $root->setNamespace( $unqualified, 'dc',      0 );
+                $root->setNamespace( $qualified,   'dcterms', 0 );
+                $self->dc_order_execution( $dc, $doc, $root );
+            }
+            else {
+                $root->setNamespace( $unqualified, 'dc',      0 );
+                $root->setNamespace( $qualified,   'dcterms', 0 );
+                $self->dc_order_execution( $dc, $doc, $root );
+            }
+        }
+    }
+
+    $doc->setDocumentElement($root);
+
+    #Enabling or desabling entities and print the xml and, decoding string to utf8
+    if ( $dataxml->{'entities'} == 1 ) {
+        my $serialized_data = $doc->toString(1);
+        utf8::decode($serialized_data);
+        my ($dcxml_entity_encoded) = C4::Record::_entity_encode($serialized_data);
+        $serialized_data = $dcxml_entity_encoded;
+        return $serialized_data;
+    }
+    else {
+        return $doc->toString(1);
+    }
+}
+
+=item C<write_rdf>
+
+Return the rdf object as string.
+
+NOTE: This method is only for use of the DC-RDF recommendation, i.e., type => 'rdf'.
+See C<new> and C<get_rdf_data> methods or the section SYNOPSIS.
+
+=cut
+
+sub write_rdf {
+    my $self           = shift;
+    my $rdfdescription = $self->get_rdf_data();
+    my $dc             = $self->conversion_to_dc();
+    my $serializer;
+    my %namespaces;
+
+    #Looking for bad data
+    if ( $self->type() ne 'xml' and $self->type() ne 'rdf' )
+    {
+        croak "Only the xml or rdf values are accepted\n" .
+              "Set type => " . $self->type() . " is no good, stopped";
+    }
+    elsif ( $self->type() eq 'xml' ) {
+        croak "The constructor specified xml\n" .
+              "Cannot use this method with xml. This is no good, stopped";
+    }
+
+    if ( $self->entities() != 0 and $self->entities() != 1 )
+    {
+        croak "Only the 0 or 1 values are accepted\n" .
+              "Set entities => " . $self->entities() . " is no good, stopped";
+    }
+
+    # Creating the triple store in temporary data
+    my $store = RDF::Trine::Store::Memory->new();
+
+    # Creating the model
+    my $rdf = RDF::Trine::Model->new($store);
+
+    # Creating the subject
+    my $subject =
+      RDF::Trine::Node::Resource->new( $rdfdescription->{'rdf_subject'} );
+
+    $namespaces{'rdf'} = $rdfNS;
+
+    if ( $self->qualified() == 0 ) {
+
+        # Declaring all namespaces in a hash
+        $namespaces{'dc'} = $unqualified;
+    }
+    else {
+
+        # Declaring all namespaces in a hash
+        $namespaces{'dcterms'} = $qualified;
+        $namespaces{'dcam'}    = $dcam;
+    }
+
+    # Creating namespaces
+    $map = RDF::Trine::NamespaceMap->new( \%namespaces );
+
+    if ( $self->type() eq 'rdf' ) {
+        $self->dc_order_execution( $dc, $rdf, $subject );
+    }
+
+   #Enabling or desabling entities and print the xml and, decoding string to utf8
+    if ( $rdfdescription->{'rdf_format'} eq 'rdfxml' ) {
+        if ( $rdfdescription->{'entities'} == 1 ) {
+            $serializer =
+              RDF::Trine::Serializer::RDFXML->new(
+                namespaces => {%namespaces} );
+            my $serialized_data = $serializer->serialize_model_to_string($rdf);
+            utf8::decode($serialized_data);
+            my ($dcxml_entity_encoded) = C4::Record::_entity_encode($serialized_data);
+            return $serialized_data = $dcxml_entity_encoded;
+        }
+        else {
+            $serializer =
+              RDF::Trine::Serializer::RDFXML->new(
+                namespaces => {%namespaces} );
+            return $serializer->serialize_model_to_string($rdf);
+        }
+    }
+    elsif ( $rdfdescription->{'rdf_format'} eq 'turtle' ) {
+        $serializer =
+          RDF::Trine::Serializer::Turtle->new( namespaces => {%namespaces} );
+        return $serializer->serialize_model_to_string($rdf);
+    }
+    else {
+        $serializer =
+          RDF::Trine::Serializer->new( $rdfdescription->{'rdf_format'} );
+        return $serializer->serialize_model_to_string($rdf);
+    }
+}
+
+=item C<upper_or_lowercase>
+
+This subroutine define if is necessary to convert lowercase some qualifiers or let them as crosswalk method basis
+
+USAGE: upper_or_lowercase (element->qualifier())
+
+=cut
+
+sub upper_or_lowercase {
+
+
+    my $dcelement = $_[0];
+    my $count     = 0;
+    my $result;
+    while ( $count <= $#elementupcase ) {
+        if ( $elementupcase[$count] eq $dcelement ) {
+            $result = $dcelement;
+            last;
+        }
+        elsif ( $dcelement ne $elementupcase[$count] ) {
+            $result = lc($dcelement);
+            $count++;
+            next;
+        }
+    }
+
+    return $result;
+
+}
+
+=item C<xml_constructor>
+
+xml_constructor ( doc, root, namespace, attr, element_name, element_content, element_qualifier, element_scheme )
+
+USAGE: define all posible elements (name, content, qualifier, scheme) as neccesary
+doc: the XML object
+root: append root to doc
+namespace: defined as "dc" or "dcterms"
+attr: a boolean value to determinate xsi:type xml namespace for dcterms
+Examples:
+xml_constructor ( $dcxml, $root, "dc", 0, element->name(), element->content() );
+xml_constructor ( $dcxml, $root, "dcterms", 1, element->name(), element->content(), $element->qualifier() );
+
+NOTE: This is a routine not a method.
+
+=cut
+
+sub xml_constructor {
+
+    my ( $doc, $root, $namespace, $attr, $element_name, $element_content,
+        $element_qualifier, $element_scheme )
+      = @_;
+
+    # This scalar is used for deleting spaces in scheme elements
+    my $deletespaces;
+
+    # This scalar is used for making upper or lowercase the qualifier elements
+    my $lowercase;
+    my $tagxml;
+
+    if ( $namespace eq "dc" ) {
+        $lowercase = lc($element_name);
+    }
+    elsif ( $namespace eq "dcterms" ) {
+        $lowercase = upper_or_lowercase($element_qualifier);
+
+        #replacing spacial to spatial, bug from dublin or crosswalk.
+        $lowercase =~ s/spacial/spatial/;
+    }
+
+    if ( ( $namespace eq "dc" or "dcterms" ) and $attr == 0 ) {
+
+        # This will do something like: <dc:title>Title</dc:title>
+        $tagxml = XML::LibXML::Element->new($lowercase);
+        $tagxml->setNamespace( undef, $namespace, 1 );
+        $tagxml->appendTextNode($element_content);
+        $root->appendChild($tagxml);
+    }
+    elsif ( ( $namespace eq "dcterms" ) and $attr == 1 ) {
+
+# This will do something like: <dcterms:spatial xsi:type="dcterms:ISO3166">us</dcterms:spatial>
+        $deletespaces = $element_scheme;
+        $deletespaces =~ s/\s//;
+        $tagxml = XML::LibXML::Element->new($lowercase);
+        $tagxml->setNamespace( undef, $namespace, 1 );
+        my $attribute = $namespace . ':' . $deletespaces;
+        $tagxml->setAttribute( 'xsi:type', $attribute );
+        $tagxml->appendTextNode($element_content);
+        $root->appendChild($tagxml);
+    }
+    elsif ( ( $namespace eq "dc" ) and $attr == 1 ) {
+
+# This will do something like: <dc:subject xsi:type="dcterms:LCSH">Water supply.</dc:subject>
+            if ( $element_scheme ne "DCMI Type Vocabulary" )
+            {    #Dublin core returns DCMI Type Vocabulary
+                $deletespaces = $element_scheme;
+                $deletespaces =~ s/\s//;
+                $tagxml = XML::LibXML::Element->new($lowercase);
+                $tagxml->setNamespace( undef, $namespace, 1 );
+                my $attribute = 'dcterms:' . $deletespaces;
+                $tagxml->setAttribute( 'xsi:type', $attribute );
+                $tagxml->appendTextNode($element_content);
+                $root->appendChild($tagxml);
+            }
+            elsif ( $element_scheme eq "DCMI Type Vocabulary" )
+            {    #Changing for DCMIType
+                 # This will do something like: <dc:type xsi:type="dcterms:DCMIType">Text</dc:type>
+                $tagxml = XML::LibXML::Element->new($lowercase);
+                $tagxml->setNamespace( undef, $namespace, 1 );
+                $tagxml->setAttribute( 'xsi:type', 'dcterms:DCMIType' );
+                $tagxml->appendTextNode($element_content);
+                $root->appendChild($tagxml);
+            }
+    }    #if...elsif
+
+    return $tagxml;
+
+}    #subroutine
+
+=item C<rdf_constructor>
+
+xml_constructor ( rdf, subject, namespace, attr, element_name, element_content, element_qualifier, element_scheme )
+
+USAGE: define all posible elements (name, content, qualifier, scheme) as neccesary
+rdf: the RDF object
+subject: the subject for the triples
+namespace: defined as "dc" or "dcterms". This is for Simple DC or DC-RDF recommendations.
+attr: a boolean value to determine the nodeID attribute for dcterms
+
+NOTE: This is a routine not a method.
+
+=cut
+
+sub rdf_constructor {
+
+    my ( $rdf, $subject, $namespace, $attr, $element_name, $element_content,
+        $element_qualifier, $element_scheme )
+      = @_;
+
+    #This scalar is used for deleting spaces in scheme elements
+    my $deletespaces;
+
+    #This scalar is used for making upper or lowercase the qualifier elements
+    my $lowercase;
+
+    if ( $namespace eq "dc" ) {
+        $lowercase = lc($element_name);
+    }
+    elsif ( $namespace eq "dcterms" ) {
+        $lowercase = upper_or_lowercase($element_qualifier);
+
+        #replacing spacial to spatial, bug from dublin or crosswalk.
+        $lowercase =~ s/spacial/spatial/;
+    }
+
+    if ( ( $namespace eq "dc" or "dcterms" ) and $attr == 0 ) {
+
+        # This will do something like: <dc:title>Title</dc:title>
+        my $predicate = undef;
+        if ( $namespace eq "dc" ) {
+            $predicate = $map->dc($lowercase);
+        }
+        else {
+            $predicate = $map->dcterms($lowercase);
+        }
+        my $object = RDF::Trine::Node::Literal->new($element_content);
+        my $statement =
+          RDF::Trine::Statement->new( $subject, $predicate, $object );
+        $rdf->add_statement($statement);
+    }
+    elsif ( ( $namespace eq "dc" ) and $attr == 2 ) {
+
+        # This will do something like: <dcterms:title>Title</dcterms:title>
+        my $predicate = $map->dcterms($lowercase);
+        my $object    = RDF::Trine::Node::Literal->new($element_content);
+        my $statement =
+          RDF::Trine::Statement->new( $subject, $predicate, $object );
+        $rdf->add_statement($statement);
+    }
+    elsif ( ( $namespace eq "dc" ) and $attr == 1 ) {
+        $deletespaces = $element_scheme;
+        $deletespaces =~ s/\s//;
+      SWITCH:
+        for ($element_scheme) {
+            if (/^ISO 3166/) {
+
+       #  Dublin core returns DCMI Type Vocabulary
+       #  This will do something like:
+       #    <rdf:Description rdf:nodeID="country">
+       #        <dcam:memberOf rdf:resource="http://purl.org/dc/terms/ISO3166"/>
+       #        <rdf:value>us</rdf:value>
+       #    </rdf:Description>
+       #    <dcterms:spatial rdf:nodeID="country"/>
+                my $objectbnode = RDF::Trine::Node::Blank->new('country');
+                my $predicate   = $map->dcterms($lowercase);
+                my $object = RDF::Trine::Node::Literal->new($element_content);
+                my $dcam_member_of  = $map->dcam('memberOf');
+                my $resource_schema = $map->dcterms($deletespaces);
+                my $rdf_value       = $map->rdf('value');
+                my $statement1 =
+                  RDF::Trine::Statement->new( $subject, $predicate,
+                    $objectbnode );
+                my $statement2 =
+                  RDF::Trine::Statement->new( $objectbnode, $dcam_member_of,
+                    $resource_schema );
+                my $statement3 =
+                  RDF::Trine::Statement->new( $objectbnode, $rdf_value,
+                    $object );
+                $rdf->add_statement($statement1);
+                $rdf->add_statement($statement2);
+                $rdf->add_statement($statement3);
+                last SWITCH;
+            }
+            if (/^DCMI Type Vocabulary/) {    #Changing for DCMIType
+                my $objectbnode = RDF::Trine::Node::Blank->new('DCMIType');
+                my $predicate   = $map->dcterms($lowercase);
+                my $object = RDF::Trine::Node::Literal->new($element_content);
+                my $dcam_member_of  = $map->dcam('memberOf');
+                my $resource_schema = $map->dcterms('DCMIType');
+                my $rdf_value       = $map->rdf('value');
+                my $statement1 =
+                  RDF::Trine::Statement->new( $subject, $predicate,
+                    $objectbnode );
+                my $statement2 =
+                  RDF::Trine::Statement->new( $objectbnode, $dcam_member_of,
+                    $resource_schema );
+                my $statement3 =
+                  RDF::Trine::Statement->new( $objectbnode, $rdf_value,
+                    $object );
+                $rdf->add_statement($statement1);
+                $rdf->add_statement($statement2);
+                $rdf->add_statement($statement3);
+                last SWITCH;
+            }
+            if (/^ISO 639-2/) {    #Changing bnodeId ISO639-2 for language
+                my $objectbnode = RDF::Trine::Node::Blank->new('language');
+                my $predicate   = $map->dcterms($lowercase);
+                my $object = RDF::Trine::Node::Literal->new($element_content);
+                my $dcam_member_of  = $map->dcam('memberOf');
+                my $resource_schema = $map->dcterms($deletespaces);
+                my $rdf_value       = $map->rdf('value');
+                my $statement1 =
+                  RDF::Trine::Statement->new( $subject, $predicate,
+                    $objectbnode );
+                my $statement2 =
+                  RDF::Trine::Statement->new( $objectbnode, $dcam_member_of,
+                    $resource_schema );
+                my $statement3 =
+                  RDF::Trine::Statement->new( $objectbnode, $rdf_value,
+                    $object );
+                $rdf->add_statement($statement1);
+                $rdf->add_statement($statement2);
+                $rdf->add_statement($statement3);
+                last SWITCH;
+            }
+            if (/^RFC 1766/) {    #Changing bnodeId RFC1766 for languagetag
+                my $objectbnode = RDF::Trine::Node::Blank->new('languagetag');
+                my $predicate   = $map->dcterms($lowercase);
+                my $object = RDF::Trine::Node::Literal->new($element_content);
+                my $dcam_member_of  = $map->dcam('memberOf');
+                my $resource_schema = $map->dcterms($deletespaces);
+                my $rdf_value       = $map->rdf('value');
+                my $statement1 =
+                  RDF::Trine::Statement->new( $subject, $predicate,
+                    $objectbnode );
+                my $statement2 =
+                  RDF::Trine::Statement->new( $objectbnode, $dcam_member_of,
+                    $resource_schema );
+                my $statement3 =
+                  RDF::Trine::Statement->new( $objectbnode, $rdf_value,
+                    $object );
+                $rdf->add_statement($statement1);
+                $rdf->add_statement($statement2);
+                $rdf->add_statement($statement3);
+                last SWITCH;
+            }
+            if ( /^LCSH/ || /^MeSH/ || /^LCC/ || /^DDC/ ||
+                 /^UDC/ || /^IMT/ || /^URI/ || /^TGN/ )
+            {    #Scheme sharing common elements
+                my $objectbnode = RDF::Trine::Node::Blank->new($deletespaces);
+                my $predicate   = $map->dcterms($lowercase);
+                my $object = RDF::Trine::Node::Literal->new($element_content);
+                my $dcam_member_of  = $map->dcam('memberOf');
+                my $resource_schema = $map->dcterms($deletespaces);
+                my $rdf_value       = $map->rdf('value');
+                my $statement1 =
+                  RDF::Trine::Statement->new( $subject, $predicate,
+                    $objectbnode );
+                my $statement2 =
+                  RDF::Trine::Statement->new( $objectbnode, $dcam_member_of,
+                    $resource_schema );
+                my $statement3 =
+                  RDF::Trine::Statement->new( $objectbnode, $rdf_value,
+                    $object );
+                $rdf->add_statement($statement1);
+                $rdf->add_statement($statement2);
+                $rdf->add_statement($statement3);
+                last SWITCH;
+            }
+        }
+    }    #if-elsif
+    return $rdf;
+}    #subroutine
+
+=item C<dc_order_execution>
+
+USAGE: Get the parameters for xml or rdf and execute in sequence.
+
+  my dc = $self->conversion_to_dc();
+  $self->dc_order_execution ($dc, $dcxml, $root);
+
+=back
+
+=cut
+
+sub dc_order_execution {
+
+    my $self = shift;
+
+    if ( $self->type() eq 'xml' ) {    #Order for xml
+        my ( $dc, $dcxml, $root ) = @_;
+        foreach my $element ( $dc->elements() ) {
+          SWITCH: {
+                if (    $element->name()
+                    and not defined $element->scheme()
+                    and not defined $element->qualifier() )
+                {
+                    $dcxml =
+                      xml_constructor( $dcxml, $root, "dc", 0, $element->name(),
+                        $element->content() );
+                    last SWITCH;
+                }
+
+                if (    $element->name()
+                    and not defined $element->scheme()
+                    and not defined $element->qualifier() )
+                {
+                    $dcxml =
+                      xml_constructor( $dcxml, $root, "dcterms", 0,
+                        $element->name(), $element->content() );
+                    last SWITCH;
+                }
+
+                if (    $element->name()
+                    and $element->scheme()
+                    and $element->qualifier() )
+                {
+                    $dcxml = xml_constructor(
+                        $dcxml,                $root,
+                        "dcterms",             1,
+                        $element->name(),      $element->content(),
+                        $element->qualifier(), $element->scheme()
+                    );
+                    last SWITCH;
+                }
+
+                if (    $element->name()
+                    and $element->scheme()
+                    and ( $element->scheme ne "DCMI Type Vocabulary" ) )
+                {
+                    $dcxml =
+                      xml_constructor( $dcxml, $root, "dc", 1, $element->name(),
+                        $element->content(), $element->qualifier(),
+                        $element->scheme() );
+                    last SWITCH;
+                }
+
+                if (    $element->name()
+                    and $element->scheme()
+                    and ( $element->scheme() eq "DCMI Type Vocabulary" ) )
+                {
+                    $dcxml =
+                      xml_constructor( $dcxml, $root, "dc", 1, $element->name(),
+                        $element->content(), $element->qualifier(),
+                        $element->scheme() );
+                    last SWITCH;
+                }
+
+                if ( $element->name() and $element->qualifier() ) {
+                    $dcxml = xml_constructor(
+                        $dcxml,                $root,
+                        "dcterms",             0,
+                        $element->name(),      $element->content(),
+                        $element->qualifier(), $element->scheme()
+                    );
+                    last SWITCH;
+                }    #if
+            }    #SWITCH
+        }    #foreach 1
+    }
+    elsif ( $self->type() eq 'rdf' ) {    #Order for rdf/xml
+        my ( $dc, $rdf, $subject ) = @_;
+        foreach my $element ( $dc->elements() ) {
+          SWITCH: {
+                if (    $element->name()
+                    and not defined $element->scheme()
+                    and not defined $element->qualifier() )
+                {
+                    rdf_constructor( $rdf, $subject, "dc", 0, $element->name(),
+                        $element->content() )
+                      unless $self->qualified() == 1;
+                    rdf_constructor( $rdf, $subject, "dc", 2, $element->name(),
+                        $element->content() )
+                      unless $self->qualified() == 0;
+                    last SWITCH;
+                }
+
+                if (    $element->name()
+                    and $element->scheme()
+                    and ( $element->scheme ne "DCMI Type Vocabulary" ) )
+                {
+                    rdf_constructor( $rdf, $subject, "dc", 1, $element->name(),
+                        $element->content(), $element->qualifier(),
+                        $element->scheme() );
+                    last SWITCH;
+                }
+
+                if (    $element->name()
+                    and $element->scheme()
+                    and ( $element->scheme() eq "DCMI Type Vocabulary" ) )
+                {
+                    rdf_constructor( $rdf, $subject, "dc", 1, $element->name(),
+                        $element->content(), $element->qualifier(),
+                        $element->scheme() );
+                    last SWITCH;
+                }
+
+                if ( $element->name() and $element->qualifier() ) {
+                    rdf_constructor(
+                        $rdf,                  $subject,
+                        "dcterms",             0,
+                        $element->name(),      $element->content(),
+                        $element->qualifier(), $element->scheme()
+                    );
+                    last SWITCH;
+                }    #if
+            }    #SWITCH
+        }    #foreach 2
+    }
+    return;
+}
+
+END {
+
+    #When opened with MARC::File::USMARC, close marc record if not closed
+    sub DESTROY {
+        my $self = shift;
+        if ( $self->{get_marc_record} =~ /^MARC:File::USMARC/ ) {
+            $self->{get_marc_record}->close();
+            undef $self->{get_marc_record};
+        }
+    }
+}
+1;
+__END__
+
+=head1 VERSION
+
+version 0.01
+
+=head1 RELATES MODULES
+
+This package requires the following modules:
+
+L<DublinCore::Record>
+
+L<MARC::Record>
+
+L<MARC::File::USMARC>
+
+L<MARC::Crosswalk::DublinCore>
+
+L<XML::LibXML>
+
+L<RDF::Trine>
+
+L<C4::Record>
+
+=head1 SEE ALSO
+
+Dublin Core Web Page L<http://dublincore.org>.
+
+=head1 LICENSE
+
+Copyright (c) 2014 Koha Community. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
+
+=head1 AUTHOR
+
+Hector Eduardo Catro Avalos E<lt> hector.hecaxmmx at gmail dot com E<gt>
+and the Koha Development Team.
+
+=cut
diff --git a/catalogue/export.pl b/catalogue/export.pl
index e66d3f2..c4e0617 100755
--- a/catalogue/export.pl
+++ b/catalogue/export.pl
@@ -26,6 +26,14 @@ my $format=$query->param("format");
 my $error = '';
 if ($op eq "export") {
     my $biblionumber = $query->param("bib");
+    my $recommendation = $query->param("recommendation");
+    my $formats = $query->param("formats");
+    my $qualifier = $query->param("qualifier");
+    my $root_element = $query->param("root_element");
+    my $xsischemalocation = $query->param("xsischemalocation");
+    my $resource_url = $query->url(-base => 1) .
+                       '/cgi-bin/koha/catalogue/detail.pl?biblionumber=' .
+                       $biblionumber;
         if ($biblionumber){
 
             my $marc = GetMarcBiblio($biblionumber, 1);
@@ -51,8 +59,32 @@ if ($op eq "export") {
                 $format = "bibtex";
             }
             elsif ($format =~ /dc/) {
-                ($error,$marc) = marc2dcxml($marc,1);
-                $format = "dublin-core.xml";
+                SWITCH:
+                    for ($recommendation) {
+                        if (/^simple-dc-rdf/) {
+                            ($error,$marc) = marc2dcxml($marc, $recommendation, 0,
+                            1, undef, undef, $resource_url , $formats);
+                            $format = "dublin-core." . $formats;
+                            last SWITCH; }
+                        if (/^dc-rdf/) {
+                            ($error,$marc) = marc2dcxml($marc, $recommendation, 1,
+                            1, undef, undef, $resource_url, $formats);
+                            $format = "dublin-core." . $formats;
+                            last SWITCH; }
+                        if (/^dc-xml/) {
+                            ($error,$marc) = marc2dcxml($marc, $recommendation, $qualifier,
+                            1, $root_element, $xsischemalocation, undef, undef);
+                            $format = "dublin-core.xml";
+                            last SWITCH; }
+                        if (/^oai-dc/) {
+                            ($error,$marc) = marc2dcxml($marc, $recommendation);
+                            $format = "dublin-core.xml";
+                            last SWITCH; }
+                        if (/^srw_dc/) {
+                            ($error,$marc) = marc2dcxml($marc, $recommendation);
+                            $format = "dublin-core.xml";
+                            last SWITCH; }
+                    }
             }
             elsif ($format =~ /marc8/) {
                 $marc = changeEncoding($marc,"MARC","MARC21","MARC-8");
diff --git a/debian/control b/debian/control
index 8a3b9d0..d059e50 100644
--- a/debian/control
+++ b/debian/control
@@ -88,6 +88,7 @@ Build-Depends: libalgorithm-checkdigits-perl,
  libpdf-reuse-barcode-perl,
  libpdf-reuse-perl,
  libpdf-table-perl,
+ librdf-trine-perl,
  libscalar-list-utils-perl,
  libschedule-at-perl,
  libsms-send-perl,
@@ -125,7 +126,7 @@ Build-Depends: libalgorithm-checkdigits-perl,
  libyaml-perl,
  libyaml-syck-perl,
  perl,
- perl-modules,
+ perl-modules, 
  debhelper (>= 7.0.50), gettext, xsltproc, docbook-xsl,
  libxml2-utils, bash-completion, perl-modules (>= 5.14.2) | libtest-simple-perl (>= 0.98)
 
@@ -285,6 +286,7 @@ Depends: libalgorithm-checkdigits-perl,
  libpdf-reuse-barcode-perl,
  libpdf-reuse-perl,
  libpdf-table-perl,
+ librdf-trine-perl,
  libscalar-list-utils-perl,
  libschedule-at-perl,
  libsms-send-perl,
diff --git a/koha-tmpl/intranet-tmpl/prog/en/css/staff-global.css b/koha-tmpl/intranet-tmpl/prog/en/css/staff-global.css
index 2c4011f..6e6ed95 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/css/staff-global.css
+++ b/koha-tmpl/intranet-tmpl/prog/en/css/staff-global.css
@@ -2798,3 +2798,13 @@ div#cn_browser_table_wrapper > table#cn_browser_table {
    margin: auto;
    width:90%;
 }
+
+/* CSS for Dublin Core Modal  */
+
+#dc-rdf, #dc-xml {
+    display: none;
+}
+
+.label_dc {
+    cursor: pointer;
+}
diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc
index ee39f31..d5b454d 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc
+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc
@@ -221,7 +221,7 @@ CAN_user_serials_create_subscription ) %]
     <button class="btn btn-small dropdown-toggle" data-toggle="dropdown"><i class="icon-download-alt"></i> Save <span class="caret"></span></button>
     <ul class="dropdown-menu">
         <li><a href="/cgi-bin/koha/catalogue/export.pl?format=bibtex&amp;op=export&amp;bib=[% biblionumber %]">BIBTEX</a></li>
-        <li><a href="/cgi-bin/koha/catalogue/export.pl?format=dc&amp;op=export&amp;bib=[% biblionumber %]">Dublin Core (XML)</a></li>
+        <li><a href="#" data-toggle="modal" data-target="#exportModal_">Dublin Core</a></li>
         <li><a href="/cgi-bin/koha/catalogue/export.pl?format=marcxml&amp;op=export&amp;bib=[% biblionumber %]">MARCXML</a></li>
         <li><a href="/cgi-bin/koha/catalogue/export.pl?format=marc8&amp;op=export&amp;bib=[% biblionumber %]">MARC (non-Unicode/MARC-8)</a></li>
         <li><a href="/cgi-bin/koha/catalogue/export.pl?format=utf8&amp;op=export&amp;bib=[% biblionumber %]">MARC (Unicode/UTF-8)</a></li>
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt
index 41730f5..dd1aa55 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt
@@ -303,6 +303,83 @@ function verify_images() {
 
         [% END %]
     });
+
+    //JQuery for Dublin Core Modal
+    $(document).ready(function(){
+        $("#input-simple").click(function(){
+            $(".rdfoptions").removeAttr("disabled");
+            $(".xmloptions").attr("disabled","disabled");
+            $("#dc-rdf").toggle(true);
+            $("#dc-xml").hide();
+        });
+    });
+
+    $(document).ready(function(){
+        $("#input-rdf").click(function(){
+            $(".rdfoptions").removeAttr("disabled");
+            $(".xmloptions").attr("disabled","disabled");
+            $("#dc-rdf").toggle(true);
+            $("#dc-xml").hide();
+        });
+    });
+
+    $(document).ready(function(){
+        $("#input-xml").click(function(){
+            $(".xmloptions").removeAttr("disabled");
+            $(".rdfoptions").attr("disabled","disabled");
+                if($("#root_checked").is(':checked')){
+                    $("#root_value").removeAttr("disabled");
+                } else {
+                    $("#root_value").attr("disabled","disabled");
+                }
+                if($("#schema_checked").is(':checked')){
+                    $("#schema_value").removeAttr("disabled");
+                } else {
+                    $("#schema_value").attr("disabled","disabled");
+                }
+                $("#dc-xml").toggle();
+                $("#dc-rdf").hide();
+        });
+    });
+
+    $(document).ready(function(){
+        $("#root_checked").click(function(){
+            if($("#root_checked").is(':checked')){
+                $("#root_value").removeAttr("disabled");
+            } else {
+                $("#root_value").attr("disabled","disabled");
+            }
+        });
+    });
+
+    $(document).ready(function(){
+        $("#schema_checked").click(function(){
+            if($("#schema_checked").is(':checked')){
+                $("#schema_value").removeAttr("disabled");
+            } else {
+                $("#schema_value").attr("disabled","disabled");
+            }
+        });
+    });
+
+    $(document).ready(function(){
+        $("#input-oai").click(function(){
+            $(".rdfoptions").attr("disabled","disabled");
+            $(".xmloptions").attr("disabled","disabled");
+            $("#dc-rdf").hide();
+            $("#dc-xml").hide();
+        });
+    });
+
+    $(document).ready(function(){
+        $("#input-srw").click(function(){
+            $(".rdfoptions").attr("disabled","disabled");
+            $(".xmloptions").attr("disabled","disabled");
+            $("#dc-rdf").hide();
+            $("#dc-xml").hide();
+        });
+    });
+
 //]]>
 </script>
 </head>
@@ -1049,7 +1126,7 @@ function verify_images() {
       <th>Save Record</th>   </tr>
     <tr><td> Select download format:    <select name="format">
         <option value="mods">MODS (XML)</option>
-        <option value="dc">Dublin Core (XML)</option>
+        <option data-toggle="modal" data-target="#exportModal_">Dublin Core</option>
         <option value="marcxml">MARCXML</option>
         <option value="marc8">MARC (non-Unicode/MARC-8)</option>
         <option value="utf8">MARC (Unicode/UTF-8)</option>    </select>
@@ -1082,4 +1159,84 @@ function verify_images() {
 </div>
 [% END %]
 </div>
+
+    <!--Modal for Dublin Core-->
+    <div class="modal hide" id="exportModal_" tabindex="-1" role="dialog" aria-labelledby="exportLabelexportModal_" aria-hidden="true">
+        <div class="modal-header">
+            <button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">&times;</button>
+            <h3 id="exportLabelexportModal_">Exporting to Dublin Core...</h3>
+        </div>
+        <!-- Form to recollect data for Dublin Core-->
+        <form method="get" action="/cgi-bin/koha/catalogue/export.pl">
+        <div class="modal-body">
+            <fieldset>
+                <input id="input-simple" type="radio" name="recommendation" value="simple-dc-rdf">
+                <label class="label_dc" for="input-simple">Simple DC-RDF</label>
+                <br>
+                <input id="input-rdf" type="radio" name="recommendation" value="dc-rdf" checked>
+                <label class="label_dc" for="input-rdf">DC-RDF (Recommended)</label>
+                <div id="dc-rdf">
+                    <br><b>Output options for RDF</b>
+                    <br>DC-RDF is downloadable in &quot;rdfxml&quot; by default (this is according with the
+                    <br>recommendation),  but you can download the file in other formats:
+                    <br>
+                    <input id="rdfxml" class="rdfoptions" type="radio" name="formats" value="rdfxml" checked>
+                    <label class="label_dc" for="rdfxml">rdfxml</label>
+                    <input id="rdfjson" class="rdfoptions" type="radio" name="formats" value="rdfjson">
+                    <label class="label_dc" for="rdfjson">rdfjson</label>
+                    <input id="ntriples" class="rdfoptions" type="radio" name="formats" value="ntriples">
+                    <label class="label_dc" for="ntriples">ntriples</label>
+                    <input id="nquads" class="rdfoptions" type="radio" name="formats" value="nquads">
+                    <label class="label_dc" for="nquads">nquads</label>
+                    <input id="ntriples_canonical" class="rdfoptions" type="radio" name="formats" value="ntriples-canonical">
+                    <label class="label_dc" for="ntriples_canonical">ntriples-canonical</label>
+                    <input id="turtle" class="rdfoptions" type="radio" name="formats" value="turtle">
+                    <label class="label_dc" for="turtle">turtle</label>
+                </div>
+                <br>
+                <input id="input-xml" type="radio" name="recommendation" value="dc-xml">
+                <label class="label_dc" for="input-xml">DC-XML</label>
+                <div id="dc-xml">
+                    <p><b>Output options for DC-XML</b>
+                    <br>
+                    <b>Dublin Core level</b></p>
+                    <p><input id="simple_dc" class="xmloptions" type="radio" name="qualifier" value="0" checked disabled>
+                    <label class="label_dc" for="simple_dc">Simple Dublin Core</label>&nbsp;
+                    <input id="qualified_dc" class="xmloptions" type="radio" name="qualifier" value="1" disabled>
+                    <label class="label_dc" for="qualified_dc">Qualified Dublin Core</label></p>
+                    <b>Other data (Optional)</b>
+                    <br>
+                    <input id="root_checked" class="xmloptions" type="checkbox" value="root">
+                    <label class="label_dc" for="root_checked">Root element: </label>
+                    <input id="root_value" class="xmloptions" type="text" name="root_element" value="metadata" disabled>
+                    <br>The xsischemaLocation should be filled like:
+                    <br>http://example.org/myapp/ http://example.org/myapp/schema.xsd
+                    <br>
+                    <input id="schema_checked" class="xmloptions" type="checkbox" value="schema" disabled>
+                    <label class="label_dc" for="schema_checked">xsischemaLocation: </label>
+                    <input id="schema_value" class="xmloptions" type="url" name="xsischemalocation" disabled><br>
+                </div>
+                <br>
+                <input id="input-oai" type="radio" name="recommendation" value="oai-dc">
+                <label class="label_dc" for="input-oai">OAI-DC</label>
+                <br>
+                <input id="input-srw" type="radio" name="recommendation" value="srw_dc">
+                <label class="label_dc" for="input-srw">SRW-DC</label>
+                <br>
+                <div>
+                <br>Learn more about DCMI Specifications at: <a href="http://dublincore.org/specifications/">http://dublincore.org/specifications/</a>
+                <br>
+                </div>
+            </fieldset>
+        </div>
+        <div class="modal-footer">
+            <button type="submit" class="btn">Export</button>
+            <button class="btn btn-link" data-dismiss="modal" aria-hidden="true">Cancel</button>
+        </div>
+        <input type="hidden" name="op" value="export" />
+        <input type="hidden" name="format" value="dc" />
+        <input type="hidden" name="bib" value="[% biblionumber %]" />
+        </form>
+    </div>
+
 [% INCLUDE 'intranet-bottom.inc' %]
diff --git a/koha-tmpl/opac-tmpl/bootstrap/css/opac.css b/koha-tmpl/opac-tmpl/bootstrap/css/opac.css
index 188fdab..79e7940 100644
--- a/koha-tmpl/opac-tmpl/bootstrap/css/opac.css
+++ b/koha-tmpl/opac-tmpl/bootstrap/css/opac.css
@@ -1 +1 @@
-.shadowed{-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);box-shadow:0 1px 1px 0 rgba(0,0,0,0.2)}body{background-color:#eaeae6}html,body{height:100%}.no-js .dateformat{display:inline;white-space:nowrap}.no-js .modal-body{padding:0}.no-js .selections-toolbar{display:none}.js .dateformat{display:none}#wrap{min-height:100%;height:auto !important;height:100%}.popup{padding-left:0;padding-right:0}a{color:#0076b2}a.cancel{padding-left:1em}a:visited{color:#0076b2}a.title{font-weight:bold;font-size:108%}a.btn:visited{color:#333}a.btn-primary:visited{color:#fff}.ui-widget-content a,.ui-widget-content a:visited{color:#0076b2}h1{font-size:140%;line-height:150%}h1#libraryname{background:transparent url(../images/logo-koha.png) no-repeat scroll 0;border:0;float:left !important;margin:0;padding:0;width:120px}h1#libraryname a{border:0;cursor:pointer;display:block;height:0 !important;margin:0;overflow:hidden;padding:40px 0 0;text-decoration:none;width:120px}h2{font-size:130%;line-height:150%}h3{font-size:120%;line-height:150%}h4{font-size:110%}h5{font-size:100%}caption{font-size:120%;font-weight:bold;margin:0;text-align:left}input,textarea{width:auto}.input-fluid{width:50%}legend{font-size:110%;font-weight:bold}table,td{background-color:#fff}td .btn{white-space:nowrap}td .btn-link{padding:0}#advsearches label,#booleansearch label{display:inline}#basketcount{display:inline;margin:0;padding:0}#basketcount span{background-color:#ffc;color:#000;display:inline;font-size:80%;font-weight:normal;margin:0 0 0 .9em;padding:0 .3em 0 .3em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}#members{display:block}#members p{color:#eee}#members a{color:#a6d8ed;font-weight:bold}#members a.logout{color:#e8583c;padding:0 .3em 0 .3em}#koha_url p{color:#666;float:right;margin:0}#moresearches{margin:.5em 0;padding:0 .8em}#moresearches li{display:inline;white-space:nowrap}#moresearches li:after{content:" | "}#moresearches ul{margin:0}#moresearches li:last-child:after{content:""}#news{margin:.5em 0}.newscontainer{border:1px solid #ddd;border-bottom-width:0;border-top-left-radius:5px;border-top-right-radius:5px}.newsheader{background-color:#ecede6;border-bottom:1px solid #ddd;margin:0;padding:8px}.newsbody{padding:8px}.newsfooter{border-bottom:1px solid #ddd;font-style:italic;padding:4px 8px}#opacheader{background-color:#ddd}#selections,.selections{font-weight:bold}.actions a{white-space:nowrap}.actions a.hold{background-image:url("../images/sprite.png");background-position:-5px -542px;background-repeat:no-repeat;margin-right:1em;padding-left:21px;text-decoration:none}.actions a.addtocart{background-image:url("../images/sprite.png");background-position:-5px -572px;background-repeat:no-repeat;margin-right:1em;padding-left:20px;text-decoration:none}.actions a.addtoshelf{background-image:url("../images/sprite.png");background-position:-5px -27px;background-repeat:no-repeat;margin-right:1em;padding-left:20px;text-decoration:none}.actions a.addtolist{background-position:-5px -27px;margin-right:1em;padding-left:20px;text-decoration:none}.actions a.tag_add{background-position:-5px -1110px;margin-right:1em;padding-left:20px;text-decoration:none}.actions a.removefromlist{background-position:-8px -690px;margin-right:1em;text-decoration:none;padding-left:15px}.alert{background:#fffbe5;background:-moz-linear-gradient(top, #fffbe5 0, #fff0b2 9%, #fff1a8 89%, #f7e665 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0, #fffbe5), color-stop(9%, #fff0b2), color-stop(89%, #fff1a8), color-stop(100%, #f7e665));background:-webkit-linear-gradient(top, #fffbe5 0, #fff0b2 9%, #fff1a8 89%, #f7e665 100%);background:-o-linear-gradient(top, #fffbe5 0, #fff0b2 9%, #fff1a8 89%, #f7e665 100%);background:-ms-linear-gradient(top, #fffbe5 0, #fff0b2 9%, #fff1a8 89%, #f7e665 100%);background:linear-gradient(to bottom, #fffbe5 0, #fff0b2 9%, #fff1a8 89%, #f7e665 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbe5', endColorstr='#f7e665', GradientType=0);border-color:#d6c43b;color:#333}.alert-info{background:#f4f6fa;background:-moz-linear-gradient(top, #f4f6fa 0, #eaeef5 4%, #e8edf6 96%, #cddbf2 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0, #f4f6fa), color-stop(4%, #eaeef5), color-stop(96%, #e8edf6), color-stop(100%, #cddbf2));background:-webkit-linear-gradient(top, #f4f6fa 0, #eaeef5 4%, #e8edf6 96%, #cddbf2 100%);background:-o-linear-gradient(top, #f4f6fa 0, #eaeef5 4%, #e8edf6 96%, #cddbf2 100%);background:-ms-linear-gradient(top, #f4f6fa 0, #eaeef5 4%, #e8edf6 96%, #cddbf2 100%);background:linear-gradient(to bottom, #f4f6fa 0, #eaeef5 4%, #e8edf6 96%, #cddbf2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f4f6fa', endColorstr='#cddbf2', GradientType=0);border-color:#c5d1e5;color:#333}.alert-success{background:#f8ffe8;background:-moz-linear-gradient(top, #f8ffe8 0, #e3f5ab 4%, #dcf48d 98%, #9ebf28 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0, #f8ffe8), color-stop(4%, #e3f5ab), color-stop(98%, #dcf48d), color-stop(100%, #9ebf28));background:-webkit-linear-gradient(top, #f8ffe8 0, #e3f5ab 4%, #dcf48d 98%, #9ebf28 100%);background:-o-linear-gradient(top, #f8ffe8 0, #e3f5ab 4%, #dcf48d 98%, #9ebf28 100%);background:-ms-linear-gradient(top, #f8ffe8 0, #e3f5ab 4%, #dcf48d 98%, #9ebf28 100%);background:linear-gradient(to bottom, #f8ffe8 0, #e3f5ab 4%, #dcf48d 98%, #9ebf28 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f8ffe8', endColorstr='#9ebf28', GradientType=0);border-color:#9fba35;color:#333}.breadcrumb{background-color:#f2f2ef;font-size:85%;list-style:none outside none;margin:10px 20px;padding:5px 10px;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.form-inline{display:inline;padding:0;margin:0}.form-inline fieldset{margin:.3em 0;padding:.3em}.main{background-color:#fff;border:1px solid #d2d2cf;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);margin-top:.5em;margin-bottom:.5em}.mastheadsearch{-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px;padding:.8em;margin:.5em 0;background:#c7c7c1;background:-moz-linear-gradient(top, #c7c7c1 38%, #a7a7a2 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(38%, #c7c7c1), color-stop(100%, #a7a7a2));background:-webkit-linear-gradient(top, #c7c7c1 38%, #a7a7a2 100%);background:-o-linear-gradient(top, #c7c7c1 38%, #a7a7a2 100%);background:-ms-linear-gradient(top, #c7c7c1 38%, #a7a7a2 100%);background:linear-gradient(to bottom, #c7c7c1 38%, #a7a7a2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#c7c7c1', endColorstr='#a7a7a2', GradientType=0)}.mastheadsearch label{font-size:115%;font-weight:bold}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#9fe1ff;font-weight:bold}.navbar-fixed-bottom.navbar-static-bottom{margin-top:.5em;position:static}#changelanguage .nav>.active>p{padding:0 15px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f4f4f4}.ui-tabs-nav .ui-tabs-active a,.ui-tabs-nav a:hover,.ui-tabs-nav a:focus,.ui-tabs-nav a:active,.ui-tabs-nav span.a{background:none repeat scroll 0 0 transparent;outline:0 none}.ui-widget,.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:inherit;font-size:inherit}ul.ui-tabs-nav li{list-style:none}.ui-tabs.ui-widget-content{background:transparent none;border:0}.ui-tabs .ui-tabs-panel{border:1px solid #d8d8d8;margin-bottom:1em}.ui-tabs-nav.ui-widget-header{border:0;background:none}.ui-tabs .ui-tabs-nav li{background:#f3f3f3 none;border-color:#d8d8d8;margin-right:.4em}.ui-tabs .ui-tabs-nav li.ui-tabs-active{background-color:#fff;border:1px solid #d8d8d8;border-bottom:0}.ui-tabs .ui-tabs-nav li.ui-tabs-active a{color:#000;font-weight:bold}.ui-tabs .ui-tabs-nav li.ui-state-default.ui-state-hover{background:#f3f3f3 none}.ui-tabs .ui-tabs-nav li.ui-tabs-active.ui-state-hover{background:#fff none}.ui-tabs .ui-state-default a,.ui-tabs .ui-state-default a:link,.ui-tabs .ui-state-default a:visited{color:#069}.ui-tabs .ui-state-hover a,.ui-tabs .ui-state-hover a:link,.ui-tabs .ui-state-hover a:visited{color:#903}.statictabs ul{background:none repeat scroll 0 0 transparent;border:0 none;margin:0;padding:.2em .2em 0;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-top-right-radius:4px;border-top-left-radius:4px;color:#222;font-weight:bold;font-size:100%;line-height:1.3;list-style:none outside none;outline:0 none;text-decoration:none}.statictabs ul:before{content:"";display:table}.statictabs ul:after{clear:both;content:"";display:table}.statictabs li{background:none repeat scroll 0 0 #e6f0f2;border:1px solid #b9d8d9;border-bottom:0 none !important;border-top-right-radius:4px;border-top-left-radius:4px;float:left;list-style:none outside none;margin-bottom:0;margin-right:.4em;padding:0;position:relative;white-space:nowrap;top:1px;color:#555;font-weight:normal}.statictabs li.active{background-color:#fff;color:#212121;font-weight:normal;padding-bottom:1px}.statictabs li a{color:#004d99;cursor:pointer;float:left;padding:.5em 1em;text-decoration:none}.statictabs li a:hover{background-color:#edf4f5;border-top-right-radius:4px;border-top-left-radius:4px;color:#538200}.statictabs li.active a{color:#000;font-weight:bold;cursor:text;background:none repeat scroll 0 0 transparent;outline:0 none}.statictabs .tabs-container{border:1px solid #b9d8d9;background:none repeat scroll 0 0 transparent;display:block;padding:1em 1.4em;border-bottom-right-radius:4px;border-bottom-left-radius:4px;color:#222}.ui-datepicker table{width:100%;font-size:.9em;border:0;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{background:transparent none;padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker-trigger{vertical-align:middle;margin:0 3px}.ui-datepicker{-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);box-shadow:0 1px 1px 0 rgba(0,0,0,0.2)}.ui-widget-content{border:1px solid #aaa;background:#fff none;color:#222}.ui-widget-header{border:1px solid #aaa;background:#e6f0f2 none;color:#222;font-weight:bold}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #aaa;background:#f4f8f9 none;font-weight:normal;color:#555}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #aaa;background:#e6f0f2 none;font-weight:normal;color:#212121}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff none;font-weight:normal;color:#212121}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee;color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec;color:#cd0a0a}.ui-autocomplete{position:absolute;cursor:default;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);box-shadow:0 1px 1px 0 rgba(0,0,0,0.2)}.ui-autocomplete.ui-widget-content .ui-state-hover{border:1px solid #aaa;background:#e6f0f2 none;font-weight:normal;color:#212121}.ui-autocomplete-loading{background:#fff url("../../img/loading-small.gif") right center no-repeat}.ui-menu li{list-style:none}th{background-color:#ecede6}.item-thumbnail{max-width:none}.no-image{background-color:#fff;border:1px solid #aaa;color:#979797;display:block;font-size:86%;font-weight:bold;text-align:center;width:75px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}#bookcover .no-image{margin-right:10px;margin-bottom:10px}td.overdue{color:#c33}table{font-size:90%}th.sum{text-align:right}td.sum{background-color:#ffc;font-weight:bold}th[scope=row]{background-color:transparent;text-align:right}.required{color:#c00}.label{background-color:transparent;color:inherit;display:inline;font-weight:normal;padding:0;text-shadow:none}.blabel{background-color:#999;border-radius:3px;color:#fff;display:inline-block;font-weight:bold;padding:2px 4px;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.label-important{background-color:#b94a48}.label-warning{background-color:#f89406}.label-success{background-color:#468847}.label-info{background-color:#3a87ad}.label-inverse{background-color:#333}fieldset.rows{float:left;font-size:90%;clear:left;margin:.9em 0 0 0;padding:0;width:100%}fieldset.rows legend{font-weight:bold;font-size:130%}fieldset.rows label,fieldset.rows .label{float:left;font-weight:bold;width:9em;margin-right:1em;text-align:right}fieldset.rows label.lradio{float:none;margin:inherit;width:auto}fieldset.rows fieldset{margin:0;padding:.3em}fieldset.rows ol{padding:1em 1em 0 1em;list-style-type:none}fieldset.rows ol.lradio label{width:auto;float:none;margin-right:0}fieldset.rows ol.lradio label.lradio{float:left;width:12em;margin-right:1em}fieldset.rows li{float:left;clear:left;padding-bottom:1em;list-style-type:none;width:100%}fieldset.rows li.lradio{padding-left:8.5em;width:auto}fieldset.rows li.lradio label{float:none;width:auto;margin:0 0 0 1em}fieldset.rows .hint{display:block;margin-left:11em}fieldset.action{clear:both;float:none;border:none;margin:0;padding:1em 0 .3em 0;width:auto}fieldset.action p{margin-bottom:1em}fieldset table{font-size:100%}div.rows+div.rows{margin-top:.6em}div.rows{float:left;clear:left;margin:0 0 0 0;padding:0;width:100%}div.rows span.label{float:left;font-weight:bold;width:9em;margin-right:1em;text-align:left}div.rows ol{list-style-type:none;margin-left:0;padding:.5em 1em 0 0}div.rows li{border-bottom:1px solid #eee;float:left;clear:left;padding-bottom:.2em;padding-top:.1em;list-style-type:none;width:100%}div.rows ul li{margin-left:7.3em}div.rows ul li:first-child{float:none;clear:none;margin-left:0}div.rows ol li li{border-bottom:0}.tagweight0{font-size:12px}.tagweight1{font-size:14px}.tagweight2{font-size:16px}.tagweight3{font-size:18px}.tagweight4{font-size:20px}.tagweight5{font-size:22px}.tagweight6{font-size:24px}.tagweight7{font-size:26px}.tagweight8{font-size:28px}.tagweight9{font-size:30px}.toolbar{background-color:#eee;border:1px solid #e8e8e8;font-size:85%;padding:3px 3px 5px 5px;vertical-align:middle}.toolbar a{white-space:nowrap}.toolbar label{display:inline;font-size:100%;font-weight:bold;margin-left:.5em}.toolbar select{font-size:97%;height:auto;line-height:inherit;padding:0;margin:0;width:auto;white-space:nowrap}.toolbar .hold,.toolbar #tagsel_tag{padding-left:28px;font-size:97%;font-weight:bold}.toolbar #tagsel_form{margin-top:.5em}.toolbar li{display:inline;list-style:none}.toolbar li a{border-left:1px solid #e8e8e8}.toolbar li:first-child a{border-left:0}.toolbar ul{padding-left:0}#basket .toolbar{padding:7px 5px 9px 9px}#selections-toolbar,.selections-toolbar{background:-moz-linear-gradient(top, #b2b2b2 0, #e0e0e0 14%, #e8e8e8 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0, #b2b2b2), color-stop(14%, #e0e0e0), color-stop(100%, #e8e8e8));background:-webkit-linear-gradient(top, #b2b2b2 0, #e0e0e0 14%, #e8e8e8 100%);background:-o-linear-gradient(top, #b2b2b2 0, #e0e0e0 14%, #e8e8e8 100%);background:-ms-linear-gradient(top, #b2b2b2 0, #e0e0e0 14%, #e8e8e8 100%);background:linear-gradient(top, #b2b2b2 0, #e0e0e0 14%, #e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#e0e0e0', endColorstr='#e8e8e8', GradientType=0);margin:0 0 1em 0;padding-top:.5em;padding-left:10px}.list-actions{display:inline}#tagsel_span input.submit,#tagsel_tag{border:0;background-color:transparent;font-size:100%;color:#0076b2;cursor:pointer;background-image:url("../images/sprite.png");background-position:1px -643px;background-repeat:no-repeat;padding-left:25px;text-decoration:none}#tagsel_tag.disabled{background-position:-1px -667px}#tagsel_span input:hover,#selections-toolbar input.hold:hover{color:#005580;text-decoration:underline}#tagsel_span input.disabled,#tagsel_span input.disabled:hover,#tagsel_span input.hold.disabled,#tagsel_span input.hold.disabled:hover,#selections-toolbar input.hold.disabled,#selections-toolbar input.hold.disabled:hover,#selections-toolbar a.disabled,#selections-toolbar a.disabled:hover,.selections-toolbar a.disabled,.selections-toolbar a.disabled:hover{color:#888;text-decoration:none;padding-left:23px}.results_summary{display:block;font-size:85%;color:#707070;padding:0 0 .5em 0}.results_summary .results_summary{font-size:100%}.results_summary.actions{margin-top:.5em}.results_summary.tagstatus{display:inline}.results_summary .label{color:#202020}.results_summary a{font-weight:normal}#views{border-bottom:1px solid #d6d6d6;margin-bottom:.5em;padding:0 2em .2em .2em;white-space:nowrap}.view{padding:.2em .2em 2px .2em}#bibliodescriptions,#isbdcontents{clear:left;margin-top:.5em}.view a,.view span{background-image:url("../images/sprite.png");background-repeat:no-repeat;font-size:87%;font-weight:normal;padding:.4em .7em 5px 26px;text-decoration:none}span#MARCview,span#ISBDview,span#Normalview,span#Fullhistory,span#Briefhistory{font-weight:bold}a#MARCview,span#MARCview{background-position:-3px -23px}a#MARCviewPop,span#MARCviewPop{background-position:-3px -23px}a#ISBDview,span#ISBDview{background-position:-3px -52px}a#Normalview,span#Normalview{background-position:-1px 6px}.view a{background-color:#f3f3f3;border-left:1px solid #c9c9c9}#bookcover{float:left;margin:0;padding:0}#bookcover .no-image{margin-right:10px;margin-bottom:10px}#bookcover img{margin:0 1em 1em 0}.results-pagination{position:absolute;top:32px;left:-1px;width:100%;height:auto;border:1px solid #d0d0d0;display:none;background-color:#f3f3f3;padding-bottom:10px;z-index:100}.back{float:right}.back input{background:none !important;color:#999 !important}.pagination_list ul{padding-top:40px;padding-left:0}.pagination_list li{list-style:none;float:bottom;padding:4px;color:#999}.pagination_list li.highlight{background-color:#f3f3f3;border-top:1px solid #ddd;border-bottom:1px solid #ddd}.pagination_list li a{padding-left:0}.pagination_list .li_pag_index{color:#999;float:left;font-size:15px;font-weight:bold;padding-right:10px;text-align:right;width:13px}.nav_results{background-color:#f3f3f3;border:1px solid #d0d0d0;font-size:95%;font-weight:bold;margin-top:.5em;position:relative}.nav_results .l_Results a{background:#e1e1e1 url("../images/sprite.png") no-repeat 0 -504px;color:#069;display:block;padding:8px 28px;text-decoration:none}.nav_results .l_Results:hover{background-color:#d9d9d9}.pg_menu{margin:0;border-top:1px solid #d0d0d0;white-space:nowrap}.pg_menu li{color:#b2b2b2;display:inline;list-style:none;margin:0}.pg_menu li.back_results a{border-left:1px solid #d0d0d0;border-right:1px solid #d0d0d0}.pg_menu li a,.pg_menu li span{background-color:#f3f3f3;display:block;float:left;padding:.4em .5em;text-decoration:none;font-weight:normal;text-align:center}.pg_menu li span{color:#b2b2b2}#listResults li{background-color:#999;color:#c5c5c5;font-weight:normal;display:block;margin-right:1px;font-size:80%;padding:0;text-align:center;min-width:18px}#listResults li:hover{background-color:#069}#listResults li a{color:#fff;font-weight:normal}.nav_pages .close_pagination{padding-right:10px;position:absolute;right:3px;top:-25px}.nav_pages .close_pagination a{text-decoration:none !important}.nav_pages ul{padding-top:10px}.nav_pages li{list-style:none;float:left;padding:4px;color:#999}.nav_pages li a{text-decoration:none !important}.nav_pages li a:hover{text-decoration:underline}.nav_pages li ul{float:left}#action{margin:.5em 0 0 0;background-color:#f3f3f3;border:1px solid #e8e8e8;padding-bottom:3px}#action li{list-style:none;margin:.2em;padding:.3em 0}#action a{font-weight:bold;text-decoration:none}#export li,#moresearches_menu li{padding:0;margin:0}#export li a,#moresearches_menu li a{font-weight:normal}#export li a.menu-inactive,#moresearches_menu li a.menu-inactive{font-weight:bold}#format,#furthersearches{padding-left:35px}.highlight_controls{float:left}a.addtocart,a.addtoshelf,a.brief,a.deleteshelf,a.deleteshelf.disabled,a.detail,a.download,a.editshelf,a.empty,a.hide,a.highlight_toggle,a.hold,a.hold.disabled,a.incart,a.new,a.print-small,a.print-large,a.removeitems,a.removeitems.disabled,a.reserve,a.send,a.tag_add,a.removefromlist,input.hold,input.hold.disabled,input.editshelf,.newshelf,.newshelf.disabled,.deleteshelf{background-image:url("../images/sprite.png");background-repeat:no-repeat}a.addtocart{background-position:-5px -265px;padding-left:35px}a.addtoshelf{background-position:-5px -225px;padding-left:35px}a.brief{background-position:-2px -868px;text-decoration:none;padding-left:27px}a.cartRemove{color:#c33;font-size:90%;margin:0;padding:0}a.detail{background-position:-2px -898px;text-decoration:none;padding-left:27px}a.download{background-position:-5px -348px;padding-left:20px;text-decoration:none}a.editshelf{background-position:2px -348px;padding-left:26px;text-decoration:none}a.empty{background-position:2px -598px;text-decoration:none;padding-left:30px}a.hide{background-position:-3px -814px;text-decoration:none;padding-left:26px}a.highlight_toggle{background-position:-5px -841px;display:none;padding-left:35px}a.hold,input.hold{background-position:-2px -453px;text-decoration:none;padding-left:23px}a.hold.disabled,input.hold.disabled{background-position:-5px -621px}a.incart{background-position:-5px -265px;color:#666;padding-left:35px}a.new{background-image:url("../images/sprite.png");background-position:-4px -922px;padding-left:23px;text-decoration:none}a.print-small{background-position:0 -423px;text-decoration:none;padding-left:30px}a.print-large{background-position:-5px -186px;text-decoration:none;padding-left:35px}a.removeitems,a.deleteshelf{background-position:2px -690px;text-decoration:none;padding-left:25px}a.removeitems.disabled,a.deleteshelf.disabled{background-position:2px -712px}a.reserve{background-position:-6px -144px;padding-left:35px}a.send{background-position:2px -386px;text-decoration:none;padding-left:28px}a.tag_add{background-position:3px -1111px;padding-left:27px;text-decoration:none}input.hold{background-color:transparent;border:0;color:#0076b2;font-weight:bold}input.editshelf{background-color:transparent;background-position:2px -736px;border:0;color:#069;cursor:pointer;filter:none;font-size:100%;padding-left:29px;text-decoration:none}.newshelf{background-position:2px -764px;border:0;color:#069;cursor:pointer;filter:none;font-size:100%;padding-left:28px;text-decoration:none}.newshelf.disabled{background-position:-4px -791px}.deleteshelf{background-color:transparent;background-position:2px -690px;border:0;color:#069;cursor:pointer;filter:none;font-size:100%;padding-left:25px;text-decoration:none}.links a{font-weight:bold}.deleteshelf:hover{color:#903}.editshelf:active,.deleteshelf:active{border:0}#tagslist li{display:inline}#login4tags{background-image:url("../images/sprite.png");background-position:-6px -1130px;background-repeat:no-repeat;padding-left:20px;text-decoration:none}.tag_results_input{margin-left:1em;padding:.3em;font-size:12px}.tag_results_input input[type="text"]{font-size:inherit;margin:0;padding:0}.tag_results_input label{display:inline}.tagsinput input[type="text"]{font-size:inherit;margin:0;padding:0}.tagsinput label{display:inline}.branch-info-tooltip{display:none}.ui-tooltip-content p{margin:.3em 0}#social_networks a{background:transparent url("../images/social-sprite.png") no-repeat;display:block;height:20px !important;width:20px;text-indent:-999em}#social_networks span{color:#274d7f;display:block;float:left;font-size:85%;font-weight:bold;line-height:2em;margin:.5em 0 .5em .5em !important}#social_networks div{float:left !important;margin:.5em 0 .5em .2em !important}#social_networks #facebook{background-position:-7px -35px}#social_networks #twitter{background-position:-7px -5px}#social_networks #linkedin{background-position:-7px -95px}#social_networks #delicious{background-position:-7px -66px}#social_networks #email{background-position:-7px -126px}#marc td,#marc th{background-color:transparent;border:0;padding:3px 5px;text-align:left}#marc td:first-child{text-indent:2em}#marc p{padding-bottom:.6em}#marc p .label{font-weight:bold}#marc ul{padding-bottom:.6em}#marc .results_summary{clear:left}#marc .results_summary ul{display:inline;float:none;clear:none;margin:0;padding:0;list-style:none}#marc .results_summary li{display:inline}#items,#items td #items th{border:1px solid #eee;font-size:90%}#plainmarc table{border:0;margin:.7em 0 0 0;font-family:monospace;font-size:95%}#plainmarc th{background-color:#fff;border:0;white-space:nowrap;text-align:left;vertical-align:top;padding:2px}#plainmarc td{border:0;padding:2px;vertical-align:top}#renewcontrols{float:right;font-size:66%}#renewcontrols a{background-repeat:no-repeat;text-decoration:none;padding:.1em .4em;padding-left:18px}#renewselected_link{background-image:url("../images/sprite.png");background-position:-5px -986px;background-repeat:no-repeat}#renewall_link{background-image:url("../images/sprite.png");background-position:-8px -967px;background-repeat:no-repeat}.authref{text-indent:2em}.authref .label{font-style:italic}.authstanza{margin-top:1em}.authstanzaheading{font-weight:bold}.authorizedheading{font-weight:bold}.authstanza li{margin-left:.5em}.authres_notes,.authres_seealso,.authres_otherscript{padding-top:.5em}.authres_notes{font-style:italic}#didyoumean{background-color:#eee;border:1px solid #e8e8e8;margin:0 0 .5em;text-align:left;padding:.5em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.suggestionlabel{font-weight:bold}.searchsuggestion{padding:.2em .5em;white-space:nowrap;display:inline-block}.authlink{padding-left:.25em}#hierarchies a{font-weight:normal;text-decoration:underline;color:#069}#hierarchies a:hover{color:#903}#top-pages{margin:0 0 .5em}.dropdown-menu>li>a{font-size:90%}a.listmenulink:link,a.listmenulink:visited{color:#0076b2;font-weight:bold}a.listmenulink:hover,a.listmenulink:active{color:#fff;font-weight:bold}#cartDetails,#cartUpdate,#holdDetails,#listsDetails{background-color:#fff;border:1px solid rgba(0,0,0,0.2);border-radius:6px 6px 6px 6px;box-shadow:0 5px 10px rgba(0,0,0,0.2);color:#000;display:none;font-size:90%;margin:0;padding:8px 20px;text-align:center;width:180px;z-index:2}#cartmenulink{white-space:nowrap}#search-facets,#menu{border:1px solid #d2d2cf;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}#search-facets ul,#menu ul{margin:0;padding:.3em}#search-facets form,#menu form{margin:0}#search-facets h4,#menu h4{font-size:90%;margin:0 0 .6em 0;text-align:center}#search-facets h4 a,#menu h4 a{background-color:#f2f2ef;border-radius:8px 8px 0 0;border-bottom:1px solid #d8d8d8;display:block;font-weight:bold;padding:.7em .2em;text-decoration:none}#search-facets li,#menu li{font-size:90%;font-weight:bold;list-style-type:none}#search-facets li li,#menu li li{font-weight:normal;font-size:95%;line-height:125%;margin-bottom:2px;padding:.1em .2em}#search-facets li.showmore a,#menu li.showmore a{font-weight:bold;text-indent:1em}#search-facets a,#menu a{font-weight:normal;text-decoration:underline}#search-facets .facet-count,#menu .facet-count{display:inline-block}#menu{font-size:94%}#menu li{list-style-type:none}#menu li a{background:#eee;text-decoration:none;display:block;border:1px solid #d8d8d8;border-radius:5px 0 0 5px;border-bottom-color:#999;font-size:111%;padding:.4em .6em;margin:.4em 0;margin-right:-1px}#menu li a:hover{background:#eaeef5}#menu li.active a{background-color:#fff;background-image:none;border-right-width:0;font-weight:bold}#menu li.active a:hover{background-color:#fff}#menu h4{display:none}#addto{max-width:10em}.addto a.addtocart{background-image:url("../images/sprite.png");background-position:-5px -266px;background-repeat:no-repeat;text-decoration:none;padding-left:33px}.searchresults p{margin:0;padding:0 0 .6em 0}.searchresults p.details{color:#979797}.searchresults a.highlight_toggle{background-image:url("../images/sprite.png");background-position:-11px -841px;background-repeat:no-repeat;display:none;font-weight:normal;padding:0 10px 0 21px}.searchresults .commentline{background-color:#ffc;background-color:rgba(255,255,204,0.4);border:1px solid #ccc;display:inline-block;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);margin:.3em;padding:.4em}.searchresults .commentline.yours{background-color:#effed5;background-color:rgba(239,254,213,0.4)}.commentline .avatar{float:right;padding-left:.5em}.term{color:#900;background-color:#ffc}.shelvingloc{display:block;font-style:italic}#CheckAll,#CheckNone,.CheckAll,.CheckNone{font-weight:normal;margin:0 .5em;text-decoration:underline}span.sep{color:#888;padding:0 .2em 0 .5em;text-shadow:1px 1px 0 #fff}.pages span:first-child,.pages a:first-child{border-width:1px 1px 1px 1px;border-bottom-left-radius:3px;border-top-left-radius:3px}.pages span:last-child,.pages a:last-child{border-width:1px 1px 1px 0;border-bottom-right-radius:3px;border-top-right-radius:3px}.pages .inactive,.pages .currentPage,.pages a{-moz-border-bottom-colors:none;-moz-border-left-colors:none;-moz-border-right-colors:none;-moz-border-top-colors:none;background-color:#fff;border-color:#ddd;border-image:none;border-style:solid;border-width:1px 1px 1px 0;float:left;font-size:11.9px;line-height:20px;padding:4px 12px;text-decoration:none}.pages .inactive{background-color:#f5f5f5}.pages a[rel='last']{border-bottom-right-radius:3px;border-top-right-radius:3px}.hold-message{background-color:#fff0b1;display:inline-block;margin:.5em;padding:.2em .5em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.reserve_date,.expiration_date{white-space:nowrap}.close{color:#08c;position:inherit;top:auto;right:auto;filter:none;float:none;font-size:inherit;font-weight:normal;opacity:inherit;text-shadow:none}.close:hover{color:#538200;filter:inherit;font-size:inherit;opacity:inherit}.alert .closebtn{position:relative;top:-2px;right:-21px;line-height:20px}.modal-header .closebtn{margin-top:2px}.closebtn{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.closebtn:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.closebtn{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn-group label,.btn-group select{font-size:13px}.span2 select{width:100%}.popup .main{font-size:90%;padding:0 1em}.popup legend{line-height:1.5em;margin-bottom:.5em}.item-status{display:block;font-size:95%;margin-bottom:.5em}.available{color:#060}.waiting,.intransit,.notforloan,.checkedout,.lost,.notonhold{display:block}.notforloan{color:#900}.lost{color:#666}.suggestion{background-color:#eeeeeb;border:1px solid #ddded3;margin:1em auto;padding:.5em;width:35%;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.librarypulldown .transl1{width:auto}.nolibrarypulldown{width:68%}.nolibrarypulldown .transl1{width:87%}#opac-main-search select{width:auto;max-width:12em}#logo{background:transparent url("../images/koha-logo-navbar.png") no-repeat scroll 0;border:0;float:left !important;margin:0;padding:0;width:100px}#logo a{border:0;cursor:pointer;display:block;height:0 !important;margin:0;overflow:hidden;padding:40px 0 0;text-decoration:none;width:100px}#user-menu-trigger{display:none}#user-menu-trigger .icon-user{background:transparent url("../lib/bootstrap/img/glyphicons-halflings-white.png") no-repeat;background-position:-168px 0;background-repeat:no-repeat;height:14px;line-height:14px;margin:12px 0 0;vertical-align:text-top;width:14px}#user-menu-trigger .caret{border-bottom-color:#999;border-top-color:#999;margin-top:18px}.floating{-webkit-box-shadow:0 3px 2px 0 rgba(0,0,0,0.4);box-shadow:0 3px 2px 0 rgba(0,0,0,0.4);margin-top:0}.tdlabel{font-weight:bold;display:none}td img{max-width:none}#ulactioncontainer{min-width:16em}.notesrow label{font-weight:bold}.notesrow span{display:block}.thumbnail-shelfbrowser span{margin:0 auto}.dropdown-menu>li>a.menu-inactive:hover{background:#fff none;color:#000}.table .sorting_asc{padding-right:19px;background:url("../images/asc.gif") no-repeat scroll right center #ecede6}.table .sorting_desc{padding-right:19px;background:url("../images/desc.gif") no-repeat scroll right center #ecede6}.table .sorting{padding-right:19px;background:url("../images/ascdesc.gif") no-repeat scroll right center #ecede6}.table .nosort,.table .nosort.sorting_asc,.table .nosort.sorting_desc,.table .nosort.sorting{padding-right:19px;background:#ecede6 none}.table th,.table td{line-height:135%}.tags ul{display:inline;list-style:none;margin-left:0}.tags ul li{display:inline}.coverimages{float:right}#i18nMenu{margin-left:1em}#i18nMenu li{font-size:85%}#i18nMenu li li{font-size:100%}#i18nMenu li li>a{font-size:100%}#i18nMenu li li>a:hover{color:#fff}#i18nMenu li a{color:#0076b2}#i18nMenu .dropdown-menu li p{clear:both;display:block;font-weight:normal;line-height:20px;padding:3px 20px;white-space:nowrap}#subjectsList label,#authorSearch label{display:inline;vertical-align:middle}#subjectsList ul,#authorSearch ul{border-bottom:1px solid #eee;list-style-type:none;margin:0;padding:.6em 0}#subjectsList li,#authorSearch li{list-style-type:none;margin:0;padding:0}#overdrive-results{font-weight:bold;padding-left:1em}.throbber{vertical-align:middle}#overdrive-results-list .star-rating-control{display:block;overflow:auto}#shelfbrowser table{margin:0}#shelfbrowser table,#shelfbrowser td,#shelfbrowser th{border:0;font-size:90%;text-align:center}#shelfbrowser td,#shelfbrowser th{padding:3px 5px;width:20%}#shelfbrowser a{display:block;font-size:110%;font-weight:bold;text-decoration:none}#shelfbrowser #browser_next,#shelfbrowser #browser_previous{background-image:url("../images/sprite.png");background-repeat:no-repeat;width:16px}#shelfbrowser #browser_next a,#shelfbrowser #browser_previous a{cursor:pointer;display:block;height:0 !important;margin:0;overflow:hidden;padding:50px 0 0;text-decoration:none;width:16px}#shelfbrowser #browser_previous{background-position:-9px -1007px}#shelfbrowser #browser_next{background-position:-9px -1057px}#holds{margin:0 auto;max-width:800px}.holdrow{clear:both;padding:0 1em 1em 1em;border-bottom:1px solid #ccc;margin-bottom:.5em}.holdrow fieldset{border:0;margin:0;float:none}.holdrow fieldset .label{font-size:14px}.holdrow label{display:inline}.hold-options{clear:both}.toggle-hold-options{background-color:#eee;clear:both;display:block;font-weight:bold;margin:1em 0;padding:.5em}.copiesrow{clear:both}#idreambooksreadometer{float:right}a.idreambooksrating{font-size:30px;color:#29ade4;padding-left:85px;line-height:30px;text-decoration:none}.idreambookslegend{font-size:small}a.reviewlink,a.reviewlink:visited{text-decoration:none;color:#000;font-weight:normal}.idreambookssummary a{color:#707070;text-decoration:none}.idreambookssummary img,.idbresult img{vertical-align:middle}.idbresult{color:#29ade4;text-align:center;margin:.5em;padding:.5em}.idbresult a,.idbresult a:visited{text-decoration:none;color:#29ade4}.idbresult img{padding-right:6px}.js-show{display:none}.modal-nojs .modal-header,.modal-nojs .modal-footer{display:none}.contents{width:75%}.contentblock{font-size:95%;line-height:135%;position:relative;margin-left:2em}.contents .t:first-child:before{content:"→ "}.contents .t:before{content:"\A → ";white-space:pre}.contents .t{font-weight:bold;display:inline}.contents .r{display:inline}.m880{display:block;text-align:right;float:right;width:50%;padding-left:20px}@media only screen and (min-width:0) and (max-width:304px){#oh:after{content:"(min-width: 0px) and (max-width: 304px)"}input,select,textarea{width:auto;max-width:11em}}@media only screen and (min-width:0) and (max-width:390px){#oh:after{content:"(min-width: 0px) and (max-width: 390px)"}.ui-tabs .ui-tabs-nav li a,.statictabs li a{padding:.1em .5em}#views{border:0;padding:0;margin:0}.view{padding:0}.view a,.view span{border:1px solid #c9c9c9;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;font-size:80%;padding:.3em .4em 4px 26px}.input-fluid{width:90%}}@media only screen and (min-width:305px) and (max-width:341px){#oh:after{content:"(min-width: 305px) and (max-width: 341px)"}}@media only screen and (min-width:342px) and (max-width:479px){#oh:after{content:"(min-width: 342px) and (max-width: 479px)"}.input-fluid{width:75%}}@media (max-width:979px){.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;margin-left:0;margin-right:0}}@media only screen and (max-width:608px){fieldset.rows label{display:block;float:none;text-align:left}fieldset.rows li{padding-bottom:.5em}fieldset.rows ol{margin-left:0}fieldset.rows .hint{margin-left:0}body{padding:0}.tdlabel{display:inline}.navbar-fixed-top,.navbar-static-top{margin:0}.navbar-inner{padding:0}.checkall,.clearall,.highlight_controls,#selections-toolbar,.selectcol,.list-actions,#remove-selected{display:none}.table td.bibliocol{padding-left:1.3em}.actions{display:block}.actions a,.actions #login4tags{background-color:#f2f2ef;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;font-weight:bold;display:block;font-size:120%;margin:2px 0}.actions .label{display:block;font-weight:bold}.actions #login4tags{margin-right:1em}#opac-main-search button,#opac-main-search input,#opac-main-search select,#opac-main-search .librarypulldown .transl1,#opac-main-search .input-append{display:block;width:97%;max-width:100%;margin:.5em 0;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}#opac-main-search .input-append{margin:0;width:100%}#opac-main-search .librarypulldown .transl1{width:94.5%}#toolbar .resort{font-size:14px;max-width:100%;margin:.5em 0;padding:4px 6px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.mastheadsearch{margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.main{margin:.5em 0;padding:15px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.breadcrumb{margin:10px 0}#moresearches{text-align:center}#searchsubmit{font-weight:bold}.ui-tabs-panel .item-thumbnail,.tabs-container .item-thumbnail,#topissues .item-thumbnail,#usertags .item-thumbnail,#usersuggestions .item-thumbnail{margin:.5em 0 0 .5em}.ui-tabs-panel .table-bordered,.tabs-container .table-bordered,#topissues .table-bordered,#usertags .table-bordered,#usersuggestions .table-bordered{border:none}.ui-tabs-panel .table th,.tabs-container .table th,#topissues .table th,#usertags .table th,#usersuggestions .table th,.ui-tabs-panel .table thead,.tabs-container .table thead,#topissues .table thead,#usertags .table thead,#usersuggestions .table thead{display:none}.ui-tabs-panel .table td,.tabs-container .table td,#topissues .table td,#usertags .table td,#usersuggestions .table td{border-right:1px solid #ddd;border-left:1px solid #ddd;border-top:0;display:block;padding:.2em}.ui-tabs-panel .table p,.tabs-container .table p,#topissues .table p,#usertags .table p,#usersuggestions .table p{margin-bottom:2px}.ui-tabs-panel tr,.tabs-container tr,#topissues tr,#usertags tr,#usersuggestions tr{display:block;margin-bottom:.6em}.ui-tabs-panel tr td:first-child,.tabs-container tr td:first-child,#topissues tr td:first-child,#usertags tr td:first-child,#usersuggestions tr td:first-child{border-top:1px solid #ddd;border-radius:5px 5px 0 0}.ui-tabs-panel tr td:last-child,.tabs-container tr td:last-child,#topissues tr td:last-child,#usertags tr td:last-child,#usersuggestions tr td:last-child{border-radius:0 0 5px 5px;border-bottom:2px solid #cacaca}.no-image{display:none}}@media only screen and (max-width:700px){#opac-main-search label{display:none}#logo{background:transparent url("../lib/bootstrap/img/glyphicons-halflings-white.png") no-repeat;background-position:0 -24px;margin:14px 14px 0 14px;width:14px}#logo a{padding:14px 0 0;width:14px}#user-menu-trigger{display:inline;margin-right:12px}#members{display:none;clear:both}#members li{padding-right:20px;text-align:right;border-bottom:1px solid #555}#members li:first-child{border-top:1px solid #555}#members li:last-child{border-bottom:none}#members .nav{float:none}#members .nav.pull-right{float:none}#members .nav>li{float:none}#members .divider-vertical{border:0;height:0;margin:0}}@media only screen and (min-width:480px) and (max-width:608px){#oh:after{content:" Between 480 pixels and 608 pixels. "}.input-fluid{width:75%}}@media only screen and (min-width:608px) and (max-width:767px){#oh:after{content:" Between 608 pixels and 767 pixels. "}.main{padding:.8em 20px}.breadcrumb{margin:10px 0}.navbar-static-bottom{margin-left:-20px;margin-right:-20px}.row-fluid input.span6{width:48.9362%}}@media only screen and (max-width:767px){a.title{font-size:120%}#userresults{margin:0 -20px}.breadcrumb,#top-pages,.menu-collapse{display:none}#search-facets,#menu{margin-bottom:.5em}#search-facets h4,#menu h4{display:block;margin:0;padding:0}#search-facets h4 a,#menu h4 a{-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px;border-bottom:0;font-weight:normal;padding:.7em .2em}#search-facets ul,#menu ul{padding:0}#menu li a{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;border:0;display:block;font-size:120%;text-decoration:none;border-bottom:1px solid #d8d8d8;margin:0}#menu li.active a{border-top:1px solid #d8d8d8;border-right-width:1px}#menu li:last-child a{-webkit-border-radius:0 0 7px 7px;-moz-border-radius:0 0 7px 7px;border-radius:0 0 7px 7px}#search-facets li{padding:.4em}#search-facets h5{margin:.2em}#menu h4 a.menu-open,#search-facets h4 a.menu-open{-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0;border-bottom:1px solid #d8d8d8}}@media only screen and (max-width:800px){.cartlabel,.listslabel{display:none}.navbar .divider-vertical{margin:0 2px}.navbar #members .divider-vertical{margin:0 9px}}@media only screen and (min-width:768px){.main{margin-left:20px;margin-right:20px}#menu{border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;border-right:1px solid #d8d8d8}#menu h4{display:none}#menu ul{padding:1em 0 1em 0}}@media only screen and (min-width:768px) and (max-width:984px){#oh:after{content:" Between 768 and 984 pixels. "}.librarypulldown .transl1{width:38%}}@media only screen and (min-width:984px){#oh:after{content:" Above 984 pixels. "}.librarypulldown .transl1{width:53%}}@media only screen and (max-width:1040px){.pg_menu li a{float:none;text-align:left}.pg_menu li.back_results a{border:1px solid #d0d0d0;border-width:1px 0 1px 0}#ulactioncontainer{min-width:0}}
\ No newline at end of file
+.shadowed{-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);box-shadow:0 1px 1px 0 rgba(0,0,0,0.2)}body{background-color:#eaeae6}html,body{height:100%}.no-js .dateformat{display:inline;white-space:nowrap}.no-js .modal-body{padding:0}.no-js .selections-toolbar{display:none}.js .dateformat{display:none}#wrap{min-height:100%;height:auto !important;height:100%}.popup{padding-left:0;padding-right:0}a{color:#0076b2}a.cancel{padding-left:1em}a:visited{color:#0076b2}a.title{font-weight:bold;font-size:108%}a.btn:visited{color:#333}a.btn-primary:visited{color:#fff}.ui-widget-content a,.ui-widget-content a:visited{color:#0076b2}h1{font-size:140%;line-height:150%}h1#libraryname{background:transparent url(../images/logo-koha.png) no-repeat scroll 0;border:0;float:left !important;margin:0;padding:0;width:120px}h1#libraryname a{border:0;cursor:pointer;display:block;height:0 !important;margin:0;overflow:hidden;padding:40px 0 0;text-decoration:none;width:120px}h2{font-size:130%;line-height:150%}h3{font-size:120%;line-height:150%}h4{font-size:110%}h5{font-size:100%}caption{font-size:120%;font-weight:bold;margin:0;text-align:left}input,textarea{width:auto}.input-fluid{width:50%}legend{font-size:110%;font-weight:bold}table,td{background-color:#fff}td .btn{white-space:nowrap}td .btn-link{padding:0}#advsearches label,#booleansearch label{display:inline}#basketcount{display:inline;margin:0;padding:0}#basketcount span{background-color:#ffc;color:#000;display:inline;font-size:80%;font-weight:normal;margin:0 0 0 .9em;padding:0 .3em 0 .3em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}#members{display:block}#members p{color:#eee}#members a{color:#a6d8ed;font-weight:bold}#members a.logout{color:#e8583c;padding:0 .3em 0 .3em}#koha_url p{color:#666;float:right;margin:0}#moresearches{margin:.5em 0;padding:0 .8em}#moresearches li{display:inline;white-space:nowrap}#moresearches li:after{content:" | "}#moresearches ul{margin:0}#moresearches li:last-child:after{content:""}#news{margin:.5em 0}.newscontainer{border:1px solid #ddd;border-bottom-width:0;border-top-left-radius:5px;border-top-right-radius:5px}.newsheader{background-color:#ecede6;border-bottom:1px solid #ddd;margin:0;padding:8px}.newsbody{padding:8px}.newsfooter{border-bottom:1px solid #ddd;font-style:italic;padding:4px 8px}#opacheader{background-color:#ddd}#selections,.selections{font-weight:bold}.actions a{white-space:nowrap}.actions a.hold{background-image:url("../images/sprite.png");background-position:-5px -542px;background-repeat:no-repeat;margin-right:1em;padding-left:21px;text-decoration:none}.actions a.addtocart{background-image:url("../images/sprite.png");background-position:-5px -572px;background-repeat:no-repeat;margin-right:1em;padding-left:20px;text-decoration:none}.actions a.addtoshelf{background-image:url("../images/sprite.png");background-position:-5px -27px;background-repeat:no-repeat;margin-right:1em;padding-left:20px;text-decoration:none}.actions a.addtolist{background-position:-5px -27px;margin-right:1em;padding-left:20px;text-decoration:none}.actions a.tag_add{background-position:-5px -1110px;margin-right:1em;padding-left:20px;text-decoration:none}.actions a.removefromlist{background-position:-8px -690px;margin-right:1em;text-decoration:none;padding-left:15px}.alert{background:#fffbe5;background:-moz-linear-gradient(top, #fffbe5 0, #fff0b2 9%, #fff1a8 89%, #f7e665 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0, #fffbe5), color-stop(9%, #fff0b2), color-stop(89%, #fff1a8), color-stop(100%, #f7e665));background:-webkit-linear-gradient(top, #fffbe5 0, #fff0b2 9%, #fff1a8 89%, #f7e665 100%);background:-o-linear-gradient(top, #fffbe5 0, #fff0b2 9%, #fff1a8 89%, #f7e665 100%);background:-ms-linear-gradient(top, #fffbe5 0, #fff0b2 9%, #fff1a8 89%, #f7e665 100%);background:linear-gradient(to bottom, #fffbe5 0, #fff0b2 9%, #fff1a8 89%, #f7e665 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbe5', endColorstr='#f7e665', GradientType=0);border-color:#d6c43b;color:#333}.alert-info{background:#f4f6fa;background:-moz-linear-gradient(top, #f4f6fa 0, #eaeef5 4%, #e8edf6 96%, #cddbf2 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0, #f4f6fa), color-stop(4%, #eaeef5), color-stop(96%, #e8edf6), color-stop(100%, #cddbf2));background:-webkit-linear-gradient(top, #f4f6fa 0, #eaeef5 4%, #e8edf6 96%, #cddbf2 100%);background:-o-linear-gradient(top, #f4f6fa 0, #eaeef5 4%, #e8edf6 96%, #cddbf2 100%);background:-ms-linear-gradient(top, #f4f6fa 0, #eaeef5 4%, #e8edf6 96%, #cddbf2 100%);background:linear-gradient(to bottom, #f4f6fa 0, #eaeef5 4%, #e8edf6 96%, #cddbf2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f4f6fa', endColorstr='#cddbf2', GradientType=0);border-color:#c5d1e5;color:#333}.alert-success{background:#f8ffe8;background:-moz-linear-gradient(top, #f8ffe8 0, #e3f5ab 4%, #dcf48d 98%, #9ebf28 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0, #f8ffe8), color-stop(4%, #e3f5ab), color-stop(98%, #dcf48d), color-stop(100%, #9ebf28));background:-webkit-linear-gradient(top, #f8ffe8 0, #e3f5ab 4%, #dcf48d 98%, #9ebf28 100%);background:-o-linear-gradient(top, #f8ffe8 0, #e3f5ab 4%, #dcf48d 98%, #9ebf28 100%);background:-ms-linear-gradient(top, #f8ffe8 0, #e3f5ab 4%, #dcf48d 98%, #9ebf28 100%);background:linear-gradient(to bottom, #f8ffe8 0, #e3f5ab 4%, #dcf48d 98%, #9ebf28 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f8ffe8', endColorstr='#9ebf28', GradientType=0);border-color:#9fba35;color:#333}.breadcrumb{background-color:#f2f2ef;font-size:85%;list-style:none outside none;margin:10px 20px;padding:5px 10px;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.form-inline{display:inline;padding:0;margin:0}.form-inline fieldset{margin:.3em 0;padding:.3em}.main{background-color:#fff;border:1px solid #d2d2cf;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);margin-top:.5em;margin-bottom:.5em}.mastheadsearch{-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px;padding:.8em;margin:.5em 0;background:#c7c7c1;background:-moz-linear-gradient(top, #c7c7c1 38%, #a7a7a2 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(38%, #c7c7c1), color-stop(100%, #a7a7a2));background:-webkit-linear-gradient(top, #c7c7c1 38%, #a7a7a2 100%);background:-o-linear-gradient(top, #c7c7c1 38%, #a7a7a2 100%);background:-ms-linear-gradient(top, #c7c7c1 38%, #a7a7a2 100%);background:linear-gradient(to bottom, #c7c7c1 38%, #a7a7a2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#c7c7c1', endColorstr='#a7a7a2', GradientType=0)}.mastheadsearch label{font-size:115%;font-weight:bold}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#9fe1ff;font-weight:bold}.navbar-fixed-bottom.navbar-static-bottom{margin-top:.5em;position:static}#changelanguage .nav>.active>p{padding:0 15px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f4f4f4}.ui-tabs-nav .ui-tabs-active a,.ui-tabs-nav a:hover,.ui-tabs-nav a:focus,.ui-tabs-nav a:active,.ui-tabs-nav span.a{background:none repeat scroll 0 0 transparent;outline:0 none}.ui-widget,.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:inherit;font-size:inherit}ul.ui-tabs-nav li{list-style:none}.ui-tabs.ui-widget-content{background:transparent none;border:0}.ui-tabs .ui-tabs-panel{border:1px solid #d8d8d8;margin-bottom:1em}.ui-tabs-nav.ui-widget-header{border:0;background:none}.ui-tabs .ui-tabs-nav li{background:#f3f3f3 none;border-color:#d8d8d8;margin-right:.4em}.ui-tabs .ui-tabs-nav li.ui-tabs-active{background-color:#fff;border:1px solid #d8d8d8;border-bottom:0}.ui-tabs .ui-tabs-nav li.ui-tabs-active a{color:#000;font-weight:bold}.ui-tabs .ui-tabs-nav li.ui-state-default.ui-state-hover{background:#f3f3f3 none}.ui-tabs .ui-tabs-nav li.ui-tabs-active.ui-state-hover{background:#fff none}.ui-tabs .ui-state-default a,.ui-tabs .ui-state-default a:link,.ui-tabs .ui-state-default a:visited{color:#069}.ui-tabs .ui-state-hover a,.ui-tabs .ui-state-hover a:link,.ui-tabs .ui-state-hover a:visited{color:#903}.statictabs ul{background:none repeat scroll 0 0 transparent;border:0 none;margin:0;padding:.2em .2em 0;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-top-right-radius:4px;border-top-left-radius:4px;color:#222;font-weight:bold;font-size:100%;line-height:1.3;list-style:none outside none;outline:0 none;text-decoration:none}.statictabs ul:before{content:"";display:table}.statictabs ul:after{clear:both;content:"";display:table}.statictabs li{background:none repeat scroll 0 0 #e6f0f2;border:1px solid #b9d8d9;border-bottom:0 none !important;border-top-right-radius:4px;border-top-left-radius:4px;float:left;list-style:none outside none;margin-bottom:0;margin-right:.4em;padding:0;position:relative;white-space:nowrap;top:1px;color:#555;font-weight:normal}.statictabs li.active{background-color:#fff;color:#212121;font-weight:normal;padding-bottom:1px}.statictabs li a{color:#004d99;cursor:pointer;float:left;padding:.5em 1em;text-decoration:none}.statictabs li a:hover{background-color:#edf4f5;border-top-right-radius:4px;border-top-left-radius:4px;color:#538200}.statictabs li.active a{color:#000;font-weight:bold;cursor:text;background:none repeat scroll 0 0 transparent;outline:0 none}.statictabs .tabs-container{border:1px solid #b9d8d9;background:none repeat scroll 0 0 transparent;display:block;padding:1em 1.4em;border-bottom-right-radius:4px;border-bottom-left-radius:4px;color:#222}.ui-datepicker table{width:100%;font-size:.9em;border:0;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{background:transparent none;padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker-trigger{vertical-align:middle;margin:0 3px}.ui-datepicker{-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);box-shadow:0 1px 1px 0 rgba(0,0,0,0.2)}.ui-widget-content{border:1px solid #aaa;background:#fff none;color:#222}.ui-widget-header{border:1px solid #aaa;background:#e6f0f2 none;color:#222;font-weight:bold}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #aaa;background:#f4f8f9 none;font-weight:normal;color:#555}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #aaa;background:#e6f0f2 none;font-weight:normal;color:#212121}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff none;font-weight:normal;color:#212121}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee;color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec;color:#cd0a0a}.ui-autocomplete{position:absolute;cursor:default;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);box-shadow:0 1px 1px 0 rgba(0,0,0,0.2)}.ui-autocomplete.ui-widget-content .ui-state-hover{border:1px solid #aaa;background:#e6f0f2 none;font-weight:normal;color:#212121}.ui-autocomplete-loading{background:#fff url("../../img/loading-small.gif") right center no-repeat}.ui-menu li{list-style:none}th{background-color:#ecede6}.item-thumbnail{max-width:none}.no-image{background-color:#fff;border:1px solid #aaa;color:#979797;display:block;font-size:86%;font-weight:bold;text-align:center;width:75px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}#bookcover .no-image{margin-right:10px;margin-bottom:10px}td.overdue{color:#c33}table{font-size:90%}th.sum{text-align:right}td.sum{background-color:#ffc;font-weight:bold}th[scope=row]{background-color:transparent;text-align:right}.required{color:#c00}.label{background-color:transparent;color:inherit;display:inline;font-weight:normal;padding:0;text-shadow:none}.blabel{background-color:#999;border-radius:3px;color:#fff;display:inline-block;font-weight:bold;padding:2px 4px;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.label-important{background-color:#b94a48}.label-warning{background-color:#f89406}.label-success{background-color:#468847}.label-info{background-color:#3a87ad}.label-inverse{background-color:#333}fieldset.rows{float:left;font-size:90%;clear:left;margin:.9em 0 0 0;padding:0;width:100%}fieldset.rows legend{font-weight:bold;font-size:130%}fieldset.rows label,fieldset.rows .label{float:left;font-weight:bold;width:9em;margin-right:1em;text-align:right}fieldset.rows label.lradio{float:none;margin:inherit;width:auto}fieldset.rows fieldset{margin:0;padding:.3em}fieldset.rows ol{padding:1em 1em 0 1em;list-style-type:none}fieldset.rows ol.lradio label{width:auto;float:none;margin-right:0}fieldset.rows ol.lradio label.lradio{float:left;width:12em;margin-right:1em}fieldset.rows li{float:left;clear:left;padding-bottom:1em;list-style-type:none;width:100%}fieldset.rows li.lradio{padding-left:8.5em;width:auto}fieldset.rows li.lradio label{float:none;width:auto;margin:0 0 0 1em}fieldset.rows .hint{display:block;margin-left:11em}fieldset.action{clear:both;float:none;border:none;margin:0;padding:1em 0 .3em 0;width:auto}fieldset.action p{margin-bottom:1em}fieldset table{font-size:100%}div.rows+div.rows{margin-top:.6em}div.rows{float:left;clear:left;margin:0 0 0 0;padding:0;width:100%}div.rows span.label{float:left;font-weight:bold;width:9em;margin-right:1em;text-align:left}div.rows ol{list-style-type:none;margin-left:0;padding:.5em 1em 0 0}div.rows li{border-bottom:1px solid #eee;float:left;clear:left;padding-bottom:.2em;padding-top:.1em;list-style-type:none;width:100%}div.rows ul li{margin-left:7.3em}div.rows ul li:first-child{float:none;clear:none;margin-left:0}div.rows ol li li{border-bottom:0}.tagweight0{font-size:12px}.tagweight1{font-size:14px}.tagweight2{font-size:16px}.tagweight3{font-size:18px}.tagweight4{font-size:20px}.tagweight5{font-size:22px}.tagweight6{font-size:24px}.tagweight7{font-size:26px}.tagweight8{font-size:28px}.tagweight9{font-size:30px}.toolbar{background-color:#eee;border:1px solid #e8e8e8;font-size:85%;padding:3px 3px 5px 5px;vertical-align:middle}.toolbar a{white-space:nowrap}.toolbar label{display:inline;font-size:100%;font-weight:bold;margin-left:.5em}.toolbar select{font-size:97%;height:auto;line-height:inherit;padding:0;margin:0;width:auto;white-space:nowrap}.toolbar .hold,.toolbar #tagsel_tag{padding-left:28px;font-size:97%;font-weight:bold}.toolbar #tagsel_form{margin-top:.5em}.toolbar li{display:inline;list-style:none}.toolbar li a{border-left:1px solid #e8e8e8}.toolbar li:first-child a{border-left:0}.toolbar ul{padding-left:0}#basket .toolbar{padding:7px 5px 9px 9px}#selections-toolbar,.selections-toolbar{background:-moz-linear-gradient(top, #b2b2b2 0, #e0e0e0 14%, #e8e8e8 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0, #b2b2b2), color-stop(14%, #e0e0e0), color-stop(100%, #e8e8e8));background:-webkit-linear-gradient(top, #b2b2b2 0, #e0e0e0 14%, #e8e8e8 100%);background:-o-linear-gradient(top, #b2b2b2 0, #e0e0e0 14%, #e8e8e8 100%);background:-ms-linear-gradient(top, #b2b2b2 0, #e0e0e0 14%, #e8e8e8 100%);background:linear-gradient(top, #b2b2b2 0, #e0e0e0 14%, #e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#e0e0e0', endColorstr='#e8e8e8', GradientType=0);margin:0 0 1em 0;padding-top:.5em;padding-left:10px}.list-actions{display:inline}#tagsel_span input.submit,#tagsel_tag{border:0;background-color:transparent;font-size:100%;color:#0076b2;cursor:pointer;background-image:url("../images/sprite.png");background-position:1px -643px;background-repeat:no-repeat;padding-left:25px;text-decoration:none}#tagsel_tag.disabled{background-position:-1px -667px}#tagsel_span input:hover,#selections-toolbar input.hold:hover{color:#005580;text-decoration:underline}#tagsel_span input.disabled,#tagsel_span input.disabled:hover,#tagsel_span input.hold.disabled,#tagsel_span input.hold.disabled:hover,#selections-toolbar input.hold.disabled,#selections-toolbar input.hold.disabled:hover,#selections-toolbar a.disabled,#selections-toolbar a.disabled:hover,.selections-toolbar a.disabled,.selections-toolbar a.disabled:hover{color:#888;text-decoration:none;padding-left:23px}.results_summary{display:block;font-size:85%;color:#707070;padding:0 0 .5em 0}.results_summary .results_summary{font-size:100%}.results_summary.actions{margin-top:.5em}.results_summary.tagstatus{display:inline}.results_summary .label{color:#202020}.results_summary a{font-weight:normal}#views{border-bottom:1px solid #d6d6d6;margin-bottom:.5em;padding:0 2em .2em .2em;white-space:nowrap}.view{padding:.2em .2em 2px .2em}#bibliodescriptions,#isbdcontents{clear:left;margin-top:.5em}.view a,.view span{background-image:url("../images/sprite.png");background-repeat:no-repeat;font-size:87%;font-weight:normal;padding:.4em .7em 5px 26px;text-decoration:none}span#MARCview,span#ISBDview,span#Normalview,span#Fullhistory,span#Briefhistory{font-weight:bold}a#MARCview,span#MARCview{background-position:-3px -23px}a#MARCviewPop,span#MARCviewPop{background-position:-3px -23px}a#ISBDview,span#ISBDview{background-position:-3px -52px}a#Normalview,span#Normalview{background-position:-1px 6px}.view a{background-color:#f3f3f3;border-left:1px solid #c9c9c9}#bookcover{float:left;margin:0;padding:0}#bookcover .no-image{margin-right:10px;margin-bottom:10px}#bookcover img{margin:0 1em 1em 0}.results-pagination{position:absolute;top:32px;left:-1px;width:100%;height:auto;border:1px solid #d0d0d0;display:none;background-color:#f3f3f3;padding-bottom:10px;z-index:100}.back{float:right}.back input{background:none !important;color:#999 !important}.pagination_list ul{padding-top:40px;padding-left:0}.pagination_list li{list-style:none;float:bottom;padding:4px;color:#999}.pagination_list li.highlight{background-color:#f3f3f3;border-top:1px solid #ddd;border-bottom:1px solid #ddd}.pagination_list li a{padding-left:0}.pagination_list .li_pag_index{color:#999;float:left;font-size:15px;font-weight:bold;padding-right:10px;text-align:right;width:13px}.nav_results{background-color:#f3f3f3;border:1px solid #d0d0d0;font-size:95%;font-weight:bold;margin-top:.5em;position:relative}.nav_results .l_Results a{background:#e1e1e1 url("../images/sprite.png") no-repeat 0 -504px;color:#069;display:block;padding:8px 28px;text-decoration:none}.nav_results .l_Results:hover{background-color:#d9d9d9}.pg_menu{margin:0;border-top:1px solid #d0d0d0;white-space:nowrap}.pg_menu li{color:#b2b2b2;display:inline;list-style:none;margin:0}.pg_menu li.back_results a{border-left:1px solid #d0d0d0;border-right:1px solid #d0d0d0}.pg_menu li a,.pg_menu li span{background-color:#f3f3f3;display:block;float:left;padding:.4em .5em;text-decoration:none;font-weight:normal;text-align:center}.pg_menu li span{color:#b2b2b2}#listResults li{background-color:#999;color:#c5c5c5;font-weight:normal;display:block;margin-right:1px;font-size:80%;padding:0;text-align:center;min-width:18px}#listResults li:hover{background-color:#069}#listResults li a{color:#fff;font-weight:normal}.nav_pages .close_pagination{padding-right:10px;position:absolute;right:3px;top:-25px}.nav_pages .close_pagination a{text-decoration:none !important}.nav_pages ul{padding-top:10px}.nav_pages li{list-style:none;float:left;padding:4px;color:#999}.nav_pages li a{text-decoration:none !important}.nav_pages li a:hover{text-decoration:underline}.nav_pages li ul{float:left}#action{margin:.5em 0 0 0;background-color:#f3f3f3;border:1px solid #e8e8e8;padding-bottom:3px}#action li{list-style:none;margin:.2em;padding:.3em 0}#action a{font-weight:bold;text-decoration:none}#export li,#moresearches_menu li{padding:0;margin:0}#export li a,#moresearches_menu li a{font-weight:normal}#export li a.menu-inactive,#moresearches_menu li a.menu-inactive{font-weight:bold}#format,#furthersearches{padding-left:35px}.highlight_controls{float:left}a.addtocart,a.addtoshelf,a.brief,a.deleteshelf,a.deleteshelf.disabled,a.detail,a.download,a.editshelf,a.empty,a.hide,a.highlight_toggle,a.hold,a.hold.disabled,a.incart,a.new,a.print-small,a.print-large,a.removeitems,a.removeitems.disabled,a.reserve,a.send,a.tag_add,a.removefromlist,input.hold,input.hold.disabled,input.editshelf,.newshelf,.newshelf.disabled,.deleteshelf{background-image:url("../images/sprite.png");background-repeat:no-repeat}a.addtocart{background-position:-5px -265px;padding-left:35px}a.addtoshelf{background-position:-5px -225px;padding-left:35px}a.brief{background-position:-2px -868px;text-decoration:none;padding-left:27px}a.cartRemove{color:#c33;font-size:90%;margin:0;padding:0}a.detail{background-position:-2px -898px;text-decoration:none;padding-left:27px}a.download{background-position:-5px -348px;padding-left:20px;text-decoration:none}a.editshelf{background-position:2px -348px;padding-left:26px;text-decoration:none}a.empty{background-position:2px -598px;text-decoration:none;padding-left:30px}a.hide{background-position:-3px -814px;text-decoration:none;padding-left:26px}a.highlight_toggle{background-position:-5px -841px;display:none;padding-left:35px}a.hold,input.hold{background-position:-2px -453px;text-decoration:none;padding-left:23px}a.hold.disabled,input.hold.disabled{background-position:-5px -621px}a.incart{background-position:-5px -265px;color:#666;padding-left:35px}a.new{background-image:url("../images/sprite.png");background-position:-4px -922px;padding-left:23px;text-decoration:none}a.print-small{background-position:0 -423px;text-decoration:none;padding-left:30px}a.print-large{background-position:-5px -186px;text-decoration:none;padding-left:35px}a.removeitems,a.deleteshelf{background-position:2px -690px;text-decoration:none;padding-left:25px}a.removeitems.disabled,a.deleteshelf.disabled{background-position:2px -712px}a.reserve{background-position:-6px -144px;padding-left:35px}a.send{background-position:2px -386px;text-decoration:none;padding-left:28px}a.tag_add{background-position:3px -1111px;padding-left:27px;text-decoration:none}input.hold{background-color:transparent;border:0;color:#0076b2;font-weight:bold}input.editshelf{background-color:transparent;background-position:2px -736px;border:0;color:#069;cursor:pointer;filter:none;font-size:100%;padding-left:29px;text-decoration:none}.newshelf{background-position:2px -764px;border:0;color:#069;cursor:pointer;filter:none;font-size:100%;padding-left:28px;text-decoration:none}.newshelf.disabled{background-position:-4px -791px}.deleteshelf{background-color:transparent;background-position:2px -690px;border:0;color:#069;cursor:pointer;filter:none;font-size:100%;padding-left:25px;text-decoration:none}.links a{font-weight:bold}.deleteshelf:hover{color:#903}.editshelf:active,.deleteshelf:active{border:0}#tagslist li{display:inline}#login4tags{background-image:url("../images/sprite.png");background-position:-6px -1130px;background-repeat:no-repeat;padding-left:20px;text-decoration:none}.tag_results_input{margin-left:1em;padding:.3em;font-size:12px}.tag_results_input input[type="text"]{font-size:inherit;margin:0;padding:0}.tag_results_input label{display:inline}.tagsinput input[type="text"]{font-size:inherit;margin:0;padding:0}.tagsinput label{display:inline}.branch-info-tooltip{display:none}.ui-tooltip-content p{margin:.3em 0}#social_networks a{background:transparent url("../images/social-sprite.png") no-repeat;display:block;height:20px !important;width:20px;text-indent:-999em}#social_networks span{color:#274d7f;display:block;float:left;font-size:85%;font-weight:bold;line-height:2em;margin:.5em 0 .5em .5em !important}#social_networks div{float:left !important;margin:.5em 0 .5em .2em !important}#social_networks #facebook{background-position:-7px -35px}#social_networks #twitter{background-position:-7px -5px}#social_networks #linkedin{background-position:-7px -95px}#social_networks #delicious{background-position:-7px -66px}#social_networks #email{background-position:-7px -126px}#marc td,#marc th{background-color:transparent;border:0;padding:3px 5px;text-align:left}#marc td:first-child{text-indent:2em}#marc p{padding-bottom:.6em}#marc p .label{font-weight:bold}#marc ul{padding-bottom:.6em}#marc .results_summary{clear:left}#marc .results_summary ul{display:inline;float:none;clear:none;margin:0;padding:0;list-style:none}#marc .results_summary li{display:inline}#items,#items td #items th{border:1px solid #eee;font-size:90%}#plainmarc table{border:0;margin:.7em 0 0 0;font-family:monospace;font-size:95%}#plainmarc th{background-color:#fff;border:0;white-space:nowrap;text-align:left;vertical-align:top;padding:2px}#plainmarc td{border:0;padding:2px;vertical-align:top}#renewcontrols{float:right;font-size:66%}#renewcontrols a{background-repeat:no-repeat;text-decoration:none;padding:.1em .4em;padding-left:18px}#renewselected_link{background-image:url("../images/sprite.png");background-position:-5px -986px;background-repeat:no-repeat}#renewall_link{background-image:url("../images/sprite.png");background-position:-8px -967px;background-repeat:no-repeat}.authref{text-indent:2em}.authref .label{font-style:italic}.authstanza{margin-top:1em}.authstanzaheading{font-weight:bold}.authorizedheading{font-weight:bold}.authstanza li{margin-left:.5em}.authres_notes,.authres_seealso,.authres_otherscript{padding-top:.5em}.authres_notes{font-style:italic}#didyoumean{background-color:#eee;border:1px solid #e8e8e8;margin:0 0 .5em;text-align:left;padding:.5em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.suggestionlabel{font-weight:bold}.searchsuggestion{padding:.2em .5em;white-space:nowrap;display:inline-block}.authlink{padding-left:.25em}#hierarchies a{font-weight:normal;text-decoration:underline;color:#069}#hierarchies a:hover{color:#903}#top-pages{margin:0 0 .5em}.dropdown-menu>li>a{font-size:90%}a.listmenulink:link,a.listmenulink:visited{color:#0076b2;font-weight:bold}a.listmenulink:hover,a.listmenulink:active{color:#fff;font-weight:bold}#cartDetails,#cartUpdate,#holdDetails,#listsDetails{background-color:#fff;border:1px solid rgba(0,0,0,0.2);border-radius:6px 6px 6px 6px;box-shadow:0 5px 10px rgba(0,0,0,0.2);color:#000;display:none;font-size:90%;margin:0;padding:8px 20px;text-align:center;width:180px;z-index:2}#cartmenulink{white-space:nowrap}#search-facets,#menu{border:1px solid #d2d2cf;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}#search-facets ul,#menu ul{margin:0;padding:.3em}#search-facets form,#menu form{margin:0}#search-facets h4,#menu h4{font-size:90%;margin:0 0 .6em 0;text-align:center}#search-facets h4 a,#menu h4 a{background-color:#f2f2ef;border-radius:8px 8px 0 0;border-bottom:1px solid #d8d8d8;display:block;font-weight:bold;padding:.7em .2em;text-decoration:none}#search-facets li,#menu li{font-size:90%;font-weight:bold;list-style-type:none}#search-facets li li,#menu li li{font-weight:normal;font-size:95%;line-height:125%;margin-bottom:2px;padding:.1em .2em}#search-facets li.showmore a,#menu li.showmore a{font-weight:bold;text-indent:1em}#search-facets a,#menu a{font-weight:normal;text-decoration:underline}#search-facets .facet-count,#menu .facet-count{display:inline-block}#menu{font-size:94%}#menu li{list-style-type:none}#menu li a{background:#eee;text-decoration:none;display:block;border:1px solid #d8d8d8;border-radius:5px 0 0 5px;border-bottom-color:#999;font-size:111%;padding:.4em .6em;margin:.4em 0;margin-right:-1px}#menu li a:hover{background:#eaeef5}#menu li.active a{background-color:#fff;background-image:none;border-right-width:0;font-weight:bold}#menu li.active a:hover{background-color:#fff}#menu h4{display:none}#addto{max-width:10em}.addto a.addtocart{background-image:url("../images/sprite.png");background-position:-5px -266px;background-repeat:no-repeat;text-decoration:none;padding-left:33px}.searchresults p{margin:0;padding:0 0 .6em 0}.searchresults p.details{color:#979797}.searchresults a.highlight_toggle{background-image:url("../images/sprite.png");background-position:-11px -841px;background-repeat:no-repeat;display:none;font-weight:normal;padding:0 10px 0 21px}.searchresults .commentline{background-color:#ffc;background-color:rgba(255,255,204,0.4);border:1px solid #ccc;display:inline-block;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);margin:.3em;padding:.4em}.searchresults .commentline.yours{background-color:#effed5;background-color:rgba(239,254,213,0.4)}.commentline .avatar{float:right;padding-left:.5em}.term{color:#900;background-color:#ffc}.shelvingloc{display:block;font-style:italic}#CheckAll,#CheckNone,.CheckAll,.CheckNone{font-weight:normal;margin:0 .5em;text-decoration:underline}span.sep{color:#888;padding:0 .2em 0 .5em;text-shadow:1px 1px 0 #fff}.pages span:first-child,.pages a:first-child{border-width:1px 1px 1px 1px;border-bottom-left-radius:3px;border-top-left-radius:3px}.pages span:last-child,.pages a:last-child{border-width:1px 1px 1px 0;border-bottom-right-radius:3px;border-top-right-radius:3px}.pages .inactive,.pages .currentPage,.pages a{-moz-border-bottom-colors:none;-moz-border-left-colors:none;-moz-border-right-colors:none;-moz-border-top-colors:none;background-color:#fff;border-color:#ddd;border-image:none;border-style:solid;border-width:1px 1px 1px 0;float:left;font-size:11.9px;line-height:20px;padding:4px 12px;text-decoration:none}.pages .inactive{background-color:#f5f5f5}.pages a[rel='last']{border-bottom-right-radius:3px;border-top-right-radius:3px}.hold-message{background-color:#fff0b1;display:inline-block;margin:.5em;padding:.2em .5em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.reserve_date,.expiration_date{white-space:nowrap}.close{color:#08c;position:inherit;top:auto;right:auto;filter:none;float:none;font-size:inherit;font-weight:normal;opacity:inherit;text-shadow:none}.close:hover{color:#538200;filter:inherit;font-size:inherit;opacity:inherit}.alert .closebtn{position:relative;top:-2px;right:-21px;line-height:20px}.modal-header .closebtn{margin-top:2px}.closebtn{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.closebtn:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.closebtn{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn-group label,.btn-group select{font-size:13px}.span2 select{width:100%}.popup .main{font-size:90%;padding:0 1em}.popup legend{line-height:1.5em;margin-bottom:.5em}.item-status{display:block;font-size:95%;margin-bottom:.5em}.available{color:#060}.waiting,.intransit,.notforloan,.checkedout,.lost,.notonhold{display:block}.notforloan{color:#900}.lost{color:#666}.suggestion{background-color:#eeeeeb;border:1px solid #ddded3;margin:1em auto;padding:.5em;width:35%;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.librarypulldown .transl1{width:auto}.nolibrarypulldown{width:68%}.nolibrarypulldown .transl1{width:87%}#opac-main-search select{width:auto;max-width:12em}#logo{background:transparent url("../images/koha-logo-navbar.png") no-repeat scroll 0;border:0;float:left !important;margin:0;padding:0;width:100px}#logo a{border:0;cursor:pointer;display:block;height:0 !important;margin:0;overflow:hidden;padding:40px 0 0;text-decoration:none;width:100px}#user-menu-trigger{display:none}#user-menu-trigger .icon-user{background:transparent url("../lib/bootstrap/img/glyphicons-halflings-white.png") no-repeat;background-position:-168px 0;background-repeat:no-repeat;height:14px;line-height:14px;margin:12px 0 0;vertical-align:text-top;width:14px}#user-menu-trigger .caret{border-bottom-color:#999;border-top-color:#999;margin-top:18px}.floating{-webkit-box-shadow:0 3px 2px 0 rgba(0,0,0,0.4);box-shadow:0 3px 2px 0 rgba(0,0,0,0.4);margin-top:0}.tdlabel{font-weight:bold;display:none}td img{max-width:none}#ulactioncontainer{min-width:16em}.notesrow label{font-weight:bold}.notesrow span{display:block}.thumbnail-shelfbrowser span{margin:0 auto}.dropdown-menu>li>a.menu-inactive:hover{background:#fff none;color:#000}.table .sorting_asc{padding-right:19px;background:url("../images/asc.gif") no-repeat scroll right center #ecede6}.table .sorting_desc{padding-right:19px;background:url("../images/desc.gif") no-repeat scroll right center #ecede6}.table .sorting{padding-right:19px;background:url("../images/ascdesc.gif") no-repeat scroll right center #ecede6}.table .nosort,.table .nosort.sorting_asc,.table .nosort.sorting_desc,.table .nosort.sorting{padding-right:19px;background:#ecede6 none}.table th,.table td{line-height:135%}.tags ul{display:inline;list-style:none;margin-left:0}.tags ul li{display:inline}.coverimages{float:right}#i18nMenu{margin-left:1em}#i18nMenu li{font-size:85%}#i18nMenu li li{font-size:100%}#i18nMenu li li>a{font-size:100%}#i18nMenu li li>a:hover{color:#fff}#i18nMenu li a{color:#0076b2}#i18nMenu .dropdown-menu li p{clear:both;display:block;font-weight:normal;line-height:20px;padding:3px 20px;white-space:nowrap}#subjectsList label,#authorSearch label{display:inline;vertical-align:middle}#subjectsList ul,#authorSearch ul{border-bottom:1px solid #eee;list-style-type:none;margin:0;padding:.6em 0}#subjectsList li,#authorSearch li{list-style-type:none;margin:0;padding:0}#overdrive-results{font-weight:bold;padding-left:1em}.throbber{vertical-align:middle}#overdrive-results-list .star-rating-control{display:block;overflow:auto}#shelfbrowser table{margin:0}#shelfbrowser table,#shelfbrowser td,#shelfbrowser th{border:0;font-size:90%;text-align:center}#shelfbrowser td,#shelfbrowser th{padding:3px 5px;width:20%}#shelfbrowser a{display:block;font-size:110%;font-weight:bold;text-decoration:none}#shelfbrowser #browser_next,#shelfbrowser #browser_previous{background-image:url("../images/sprite.png");background-repeat:no-repeat;width:16px}#shelfbrowser #browser_next a,#shelfbrowser #browser_previous a{cursor:pointer;display:block;height:0 !important;margin:0;overflow:hidden;padding:50px 0 0;text-decoration:none;width:16px}#shelfbrowser #browser_previous{background-position:-9px -1007px}#shelfbrowser #browser_next{background-position:-9px -1057px}#holds{margin:0 auto;max-width:800px}.holdrow{clear:both;padding:0 1em 1em 1em;border-bottom:1px solid #ccc;margin-bottom:.5em}.holdrow fieldset{border:0;margin:0;float:none}.holdrow fieldset .label{font-size:14px}.holdrow label{display:inline}.hold-options{clear:both}.toggle-hold-options{background-color:#eee;clear:both;display:block;font-weight:bold;margin:1em 0;padding:.5em}.copiesrow{clear:both}#idreambooksreadometer{float:right}a.idreambooksrating{font-size:30px;color:#29ade4;padding-left:85px;line-height:30px;text-decoration:none}.idreambookslegend{font-size:small}a.reviewlink,a.reviewlink:visited{text-decoration:none;color:#000;font-weight:normal}.idreambookssummary a{color:#707070;text-decoration:none}.idreambookssummary img,.idbresult img{vertical-align:middle}.idbresult{color:#29ade4;text-align:center;margin:.5em;padding:.5em}.idbresult a,.idbresult a:visited{text-decoration:none;color:#29ade4}.idbresult img{padding-right:6px}.js-show{display:none}.modal-nojs .modal-header,.modal-nojs .modal-footer{display:none}.contents{width:75%}.contentblock{font-size:95%;line-height:135%;position:relative;margin-left:2em}.contents .t:first-child:before{content:"→ "}.contents .t:before{content:"\A → ";white-space:pre}.contents .t{font-weight:bold;display:inline}.contents .r{display:inline}.m880{display:block;text-align:right;float:right;width:50%;padding-left:20px}@media only screen and (min-width:0) and (max-width:304px){#oh:after{content:"(min-width: 0px) and (max-width: 304px)"}input,select,textarea{width:auto;max-width:11em}}@media only screen and (min-width:0) and (max-width:390px){#oh:after{content:"(min-width: 0px) and (max-width: 390px)"}.ui-tabs .ui-tabs-nav li a,.statictabs li a{padding:.1em .5em}#views{border:0;padding:0;margin:0}.view{padding:0}.view a,.view span{border:1px solid #c9c9c9;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;font-size:80%;padding:.3em .4em 4px 26px}.input-fluid{width:90%}}@media only screen and (min-width:305px) and (max-width:341px){#oh:after{content:"(min-width: 305px) and (max-width: 341px)"}}@media only screen and (min-width:342px) and (max-width:479px){#oh:after{content:"(min-width: 342px) and (max-width: 479px)"}.input-fluid{width:75%}}@media (max-width:979px){.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;margin-left:0;margin-right:0}}@media only screen and (max-width:608px){fieldset.rows label{display:block;float:none;text-align:left}fieldset.rows li{padding-bottom:.5em}fieldset.rows ol{margin-left:0}fieldset.rows .hint{margin-left:0}body{padding:0}.tdlabel{display:inline}.navbar-fixed-top,.navbar-static-top{margin:0}.navbar-inner{padding:0}.checkall,.clearall,.highlight_controls,#selections-toolbar,.selectcol,.list-actions,#remove-selected{display:none}.table td.bibliocol{padding-left:1.3em}.actions{display:block}.actions a,.actions #login4tags{background-color:#f2f2ef;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;font-weight:bold;display:block;font-size:120%;margin:2px 0}.actions .label{display:block;font-weight:bold}.actions #login4tags{margin-right:1em}#opac-main-search button,#opac-main-search input,#opac-main-search select,#opac-main-search .librarypulldown .transl1,#opac-main-search .input-append{display:block;width:97%;max-width:100%;margin:.5em 0;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}#opac-main-search .input-append{margin:0;width:100%}#opac-main-search .librarypulldown .transl1{width:94.5%}#toolbar .resort{font-size:14px;max-width:100%;margin:.5em 0;padding:4px 6px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.mastheadsearch{margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.main{margin:.5em 0;padding:15px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.breadcrumb{margin:10px 0}#moresearches{text-align:center}#searchsubmit{font-weight:bold}.ui-tabs-panel .item-thumbnail,.tabs-container .item-thumbnail,#topissues .item-thumbnail,#usertags .item-thumbnail,#usersuggestions .item-thumbnail{margin:.5em 0 0 .5em}.ui-tabs-panel .table-bordered,.tabs-container .table-bordered,#topissues .table-bordered,#usertags .table-bordered,#usersuggestions .table-bordered{border:none}.ui-tabs-panel .table th,.tabs-container .table th,#topissues .table th,#usertags .table th,#usersuggestions .table th,.ui-tabs-panel .table thead,.tabs-container .table thead,#topissues .table thead,#usertags .table thead,#usersuggestions .table thead{display:none}.ui-tabs-panel .table td,.tabs-container .table td,#topissues .table td,#usertags .table td,#usersuggestions .table td{border-right:1px solid #ddd;border-left:1px solid #ddd;border-top:0;display:block;padding:.2em}.ui-tabs-panel .table p,.tabs-container .table p,#topissues .table p,#usertags .table p,#usersuggestions .table p{margin-bottom:2px}.ui-tabs-panel tr,.tabs-container tr,#topissues tr,#usertags tr,#usersuggestions tr{display:block;margin-bottom:.6em}.ui-tabs-panel tr td:first-child,.tabs-container tr td:first-child,#topissues tr td:first-child,#usertags tr td:first-child,#usersuggestions tr td:first-child{border-top:1px solid #ddd;border-radius:5px 5px 0 0}.ui-tabs-panel tr td:last-child,.tabs-container tr td:last-child,#topissues tr td:last-child,#usertags tr td:last-child,#usersuggestions tr td:last-child{border-radius:0 0 5px 5px;border-bottom:2px solid #cacaca}.no-image{display:none}}@media only screen and (max-width:700px){#opac-main-search label{display:none}#logo{background:transparent url("../lib/bootstrap/img/glyphicons-halflings-white.png") no-repeat;background-position:0 -24px;margin:14px 14px 0 14px;width:14px}#logo a{padding:14px 0 0;width:14px}#user-menu-trigger{display:inline;margin-right:12px}#members{display:none;clear:both}#members li{padding-right:20px;text-align:right;border-bottom:1px solid #555}#members li:first-child{border-top:1px solid #555}#members li:last-child{border-bottom:none}#members .nav{float:none}#members .nav.pull-right{float:none}#members .nav>li{float:none}#members .divider-vertical{border:0;height:0;margin:0}}@media only screen and (min-width:480px) and (max-width:608px){#oh:after{content:" Between 480 pixels and 608 pixels. "}.input-fluid{width:75%}}@media only screen and (min-width:608px) and (max-width:767px){#oh:after{content:" Between 608 pixels and 767 pixels. "}.main{padding:.8em 20px}.breadcrumb{margin:10px 0}.navbar-static-bottom{margin-left:-20px;margin-right:-20px}.row-fluid input.span6{width:48.9362%}}@media only screen and (max-width:767px){a.title{font-size:120%}#userresults{margin:0 -20px}.breadcrumb,#top-pages,.menu-collapse{display:none}#search-facets,#menu{margin-bottom:.5em}#search-facets h4,#menu h4{display:block;margin:0;padding:0}#search-facets h4 a,#menu h4 a{-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px;border-bottom:0;font-weight:normal;padding:.7em .2em}#search-facets ul,#menu ul{padding:0}#menu li a{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;border:0;display:block;font-size:120%;text-decoration:none;border-bottom:1px solid #d8d8d8;margin:0}#menu li.active a{border-top:1px solid #d8d8d8;border-right-width:1px}#menu li:last-child a{-webkit-border-radius:0 0 7px 7px;-moz-border-radius:0 0 7px 7px;border-radius:0 0 7px 7px}#search-facets li{padding:.4em}#search-facets h5{margin:.2em}#menu h4 a.menu-open,#search-facets h4 a.menu-open{-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0;border-bottom:1px solid #d8d8d8}}@media only screen and (max-width:800px){.cartlabel,.listslabel{display:none}.navbar .divider-vertical{margin:0 2px}.navbar #members .divider-vertical{margin:0 9px}}@media only screen and (min-width:768px){.main{margin-left:20px;margin-right:20px}#menu{border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;border-right:1px solid #d8d8d8}#menu h4{display:none}#menu ul{padding:1em 0 1em 0}}@media only screen and (min-width:768px) and (max-width:984px){#oh:after{content:" Between 768 and 984 pixels. "}.librarypulldown .transl1{width:38%}}@media only screen and (min-width:984px){#oh:after{content:" Above 984 pixels. "}.librarypulldown .transl1{width:53%}}@media only screen and (max-width:1040px){.pg_menu li a{float:none;text-align:left}.pg_menu li.back_results a{border:1px solid #d0d0d0;border-width:1px 0 1px 0}#ulactioncontainer{min-width:0}}#dc_fieldset{border:1px solid #dddddd; border-width:1px;padding:5px;border-radius:10px}.label_dc{display:inline;padding:0px;margin:0px;cursor: pointer}#dc_fieldset div{display:none}
diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-detail-sidebar.inc b/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-detail-sidebar.inc
index a4ef40e..b9972e7 100644
--- a/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-detail-sidebar.inc
+++ b/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-detail-sidebar.inc
@@ -38,11 +38,13 @@
                     <a id="format" class="dropdown-toggle" data-toggle="dropdown" href="#">Save record <b class="caret"></b></a>
                         <ul class="dropdown-menu pull-right" role="menu" aria-labelledby="format">
                             [% FOREACH option IN export_options %]
+                                [% IF option == 'dc' %]
+                                    <li><a role="menuitem" href="#" data-toggle="modal" data-target="#exportModal_">Dublin Core</a></li>
+                                [% ELSE %]
                                 <li>
                                     <a role="menuitem" href="/cgi-bin/koha/opac-export.pl?op=export&amp;bib=[% biblionumber %]&amp;format=[% option %]">
                                         [% SWITCH option %]
                                             [% CASE 'bibtex' %]BIBTEX
-                                            [% CASE 'dc' %]Dublin Core (XML)
                                             [% CASE 'endnote' %]EndNote
                                             [% CASE 'marcxml' %]MARCXML
                                             [% CASE 'marc8' %]MARC (non-Unicode/MARC-8)
@@ -54,6 +56,7 @@
                                         [% END %]
                                     </a>
                                 </li>
+                                [% END %]
                             [% END %]
                         </ul>
                 </div>
diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt
index d79a51c..c452ce1 100644
--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt
+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt
@@ -1153,6 +1153,84 @@
 </div> <!-- / .container-fluid -->
 </div> <!-- / .main -->
 
+<!-- Dublin Core Modal Form -->
+<div class="modal fade" id="exportModal_" tabindex="-1" role="dialog" aria-labelledby="exportModalLabel" aria-hidden="true">
+    <div class="modal-header">
+        <button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">&times;</button>
+        <h3 class="modal-title" id="exportModalLabel">Exporting to Dublin Core...</h3>
+    </div>
+    <form method="get" action="/cgi-bin/koha/opac-export.pl">
+        <div class="modal-body">
+            <fieldset id="dc_fieldset">
+                <input id="input-simple" type="radio" name="recommendation" value="simple-dc-rdf">
+                <label class="label_dc" for="input-simple">Simple DC-RDF</label>
+                <br>
+                <input id="input-rdf" type="radio" name="recommendation" value="dc-rdf" checked>
+                <label class="label_dc" for="input-rdf">DC-RDF (Recommended)</label>
+                <div id="dc-rdf">
+                    <br><b>Output options for RDF</b>
+                    <br>DC-RDF is downloadable in &quot;rdfxml&quot; by default (this is according with the
+                    <br>recommendation),  but you can download the file in other formats:
+                    <br>
+                    <input id="rdfxml" class="rdfoptions" type="radio" name="formats" value="rdfxml" checked>
+                    <label class="label_dc" for="rdfxml">rdfxml</label>
+                    <input id="rdfjson" class="rdfoptions" type="radio" name="formats" value="rdfjson">
+                    <label class="label_dc" for="rdfjson">rdfjson</label>
+                    <input id="ntriples" class="rdfoptions" type="radio" name="formats" value="ntriples">
+                    <label class="label_dc" for="ntriples">ntriples</label>
+                    <input id="nquads" class="rdfoptions" type="radio" name="formats" value="nquads">
+                    <label class="label_dc" for="nquads">nquads</label>
+                    <input id="ntriples_canonical" class="rdfoptions" type="radio" name="formats" value="ntriples-canonical">
+                    <label class="label_dc" for="ntriples_canonical">ntriples-canonical</label>
+                    <input id="turtle" class="rdfoptions" type="radio" name="formats" value="turtle">
+                    <label class="label_dc" for="turtle">turtle</label>
+                </div>
+                <br>
+                <input id="input-xml" type="radio" name="recommendation" value="dc-xml">
+                <label class="label_dc" for="input-xml">DC-XML</label>
+                <div id="dc-xml">
+                    <p><b>Output options for DC-XML</b>
+                    <br>
+                    <b>Dublin Core level</b></p>
+                    <p><input id="simple_dc" class="xmloptions" type="radio" name="qualifier" value="0" checked disabled>
+                    <label class="label_dc" for="simple_dc">Simple Dublin Core</label>&nbsp;
+                    <input id="qualified_dc" class="xmloptions" type="radio" name="qualifier" value="1" disabled>
+                    <label class="label_dc" for="qualified_dc">Qualified Dublin Core</label></p>
+                    <b>Other data (Optional)</b>
+                    <br>
+                    <input id="root_checked" class="xmloptions" type="checkbox" value="root">
+                    <label class="label_dc" for="root_checked">Root element: </label>
+                    <input id="root_value" class="xmloptions" type="text" name="root_element" value="metadata" disabled>
+                    <br>The xsischemaLocation should be filled like:
+                    <br>http://example.org/myapp/ http://example.org/myapp/schema.xsd
+                    <br>
+                    <input id="schema_checked" class="xmloptions" type="checkbox" value="schema" disabled>
+                    <label class="label_dc" for="schema_checked">xsischemaLocation: </label>
+                    <input id="schema_value" class="xmloptions" type="url" name="xsischemalocation" disabled><br>
+                </div>
+                <br>
+                <input id="input-oai" type="radio" name="recommendation" value="oai-dc">
+                <label class="label_dc" for="input-oai">OAI-DC</label>
+                <br>
+                <input id="input-srw" type="radio" name="recommendation" value="srw_dc">
+                <label class="label_dc" for="input-srw">SRW-DC</label>
+                <br>
+                <div>
+                    <br>Learn more about DCMI Specifications at: <a href="http://dublincore.org/specifications/">http://dublincore.org/specifications/</a>
+                    <br>
+                </div>
+            </fieldset>
+        </div>
+        <div class="modal-footer">
+            <button type="submit" class="btn">Export</button>
+            <button class="btn btn-link" data-dismiss="modal" aria-hidden="true">Cancel</button>
+        </div>
+        <input type="hidden" name="op" value="export" />
+        <input type="hidden" name="format" value="dc" />
+        <input type="hidden" name="bib" value="[% biblionumber %]" />
+    </form>
+</div>
+
 [% INCLUDE 'opac-bottom.inc' %]
 
 [%# End of template %]
@@ -1854,4 +1932,88 @@
     //]]>
     </script>
 [% END # / IF OPACPopupAuthorsSearch  %]
+[% PROCESS jqueryDC %]
 [% END %]
+
+[% BLOCK jqueryDC %]
+    <script type="text/javascript">
+    //<![CDATA[
+    //JQuery for Dublin Core Modal
+    $(document).ready(function(){
+        $("#input-simple").click(function(){
+            $(".rdfoptions").removeAttr("disabled");
+            $(".xmloptions").attr("disabled","disabled");
+            $("#dc-rdf").toggle(true);
+            $("#dc-xml").hide();
+        });
+    });
+
+    $(document).ready(function(){
+        $("#input-rdf").click(function(){
+            $(".rdfoptions").removeAttr("disabled");
+            $(".xmloptions").attr("disabled","disabled");
+            $("#dc-rdf").toggle(true);
+            $("#dc-xml").hide();
+        });
+    });
+
+    $(document).ready(function(){
+        $("#input-xml").click(function(){
+            $(".xmloptions").removeAttr("disabled");
+            $(".rdfoptions").attr("disabled","disabled");
+                if($("#root_checked").is(':checked')){
+                    $("#root_value").removeAttr("disabled");
+                } else {
+                    $("#root_value").attr("disabled","disabled");
+                }
+                if($("#schema_checked").is(':checked')){
+                    $("#schema_value").removeAttr("disabled");
+                } else {
+                    $("#schema_value").attr("disabled","disabled");
+                }
+                $("#dc-xml").toggle();
+                $("#dc-rdf").hide();
+        });
+    });
+
+    $(document).ready(function(){
+        $("#root_checked").click(function(){
+            if($("#root_checked").is(':checked')){
+                $("#root_value").removeAttr("disabled");
+            } else {
+                $("#root_value").attr("disabled","disabled");
+            }
+        });
+    });
+
+    $(document).ready(function(){
+        $("#schema_checked").click(function(){
+            if($("#schema_checked").is(':checked')){
+                $("#schema_value").removeAttr("disabled");
+            } else {
+                $("#schema_value").attr("disabled","disabled");
+            }
+        });
+    });
+
+    $(document).ready(function(){
+        $("#input-oai").click(function(){
+            $(".rdfoptions").attr("disabled","disabled");
+            $(".xmloptions").attr("disabled","disabled");
+            $("#dc-rdf").hide();
+            $("#dc-xml").hide();
+        });
+    });
+
+    $(document).ready(function(){
+        $("#input-srw").click(function(){
+            $(".rdfoptions").attr("disabled","disabled");
+            $(".xmloptions").attr("disabled","disabled");
+            $("#dc-rdf").hide();
+            $("#dc-xml").hide();
+        });
+    });
+    //]]>
+    </script>
+
+[% END %] [%# End of jqueryDC %]
diff --git a/koha-tmpl/opac-tmpl/bootstrap/js/script.js b/koha-tmpl/opac-tmpl/bootstrap/js/script.js
index de8401b..a0dbbd2 100644
--- a/koha-tmpl/opac-tmpl/bootstrap/js/script.js
+++ b/koha-tmpl/opac-tmpl/bootstrap/js/script.js
@@ -63,4 +63,4 @@ $(document).ready(function(){
             $("#members").removeAttr("style");
         }
     });
-});
\ No newline at end of file
+});
diff --git a/opac/opac-export.pl b/opac/opac-export.pl
index bf040db..c7bfe61 100755
--- a/opac/opac-export.pl
+++ b/opac/opac-export.pl
@@ -34,6 +34,14 @@ my $format=$query->param("format")||'utf8';
 my $biblionumber = $query->param("bib")||0;
 $biblionumber = int($biblionumber);
 my ($marc, $error)= ('','');
+my $recommendation = $query->param("recommendation");
+my $formats = $query->param("formats");
+my $qualifier = $query->param("qualifier");
+my $root_element = $query->param("root_element");
+my $xsischemalocation = $query->param("xsischemalocation");
+my $resource_url = $query->url(-base => 1) .
+                   '/cgi-bin/koha/opac-detail.pl?biblionumber=' .
+                   $biblionumber;
 
 $marc = GetMarcBiblio($biblionumber, 1) if $biblionumber;
 if(!$marc) {
@@ -61,8 +69,32 @@ elsif ($format =~ /bibtex/) {
     $format = 'bibtex';
 }
 elsif ($format =~ /dc/) {
-    ($error,$marc) = marc2dcxml($marc,1);
-    $format = "dublin-core.xml";
+    SWITCH:
+        for ($recommendation) {
+            if (/^simple-dc-rdf/) {
+                ($error,$marc) = marc2dcxml($marc, $recommendation, 0,
+                1, undef, undef, $resource_url , $formats);
+                $format = "dublin-core." . $formats;
+                last SWITCH; }
+            if (/^dc-rdf/) {
+                ($error,$marc) = marc2dcxml($marc, $recommendation, 1,
+                1, undef, undef, $resource_url, $formats);
+                $format = "dublin-core." . $formats;
+                last SWITCH; }
+            if (/^dc-xml/) {
+                ($error,$marc) = marc2dcxml($marc, $recommendation, $qualifier,
+                1, $root_element, $xsischemalocation, undef, undef);
+                $format = "dublin-core.xml";
+                last SWITCH; }
+            if (/^oai-dc/) {
+                ($error,$marc) = marc2dcxml($marc, $recommendation);
+                $format = "dublin-core.xml";
+                last SWITCH; }
+            if (/^srw_dc/) {
+                ($error,$marc) = marc2dcxml($marc, $recommendation);
+                $format = "dublin-core.xml";
+                last SWITCH; }
+        }
 }
 elsif ($format =~ /marc8/) {
     ($error,$marc) = changeEncoding($marc,"MARC","MARC21","MARC-8");
diff --git a/t/db_dependent/Record.t b/t/db_dependent/Record.t
index e8d6094..d372c4c 100755
--- a/t/db_dependent/Record.t
+++ b/t/db_dependent/Record.t
@@ -46,29 +46,22 @@ is ($marcxml, $testxml, "testing marc2xml");
 my $marcconvert=marcxml2marc($marcxml);
 is ($marcconvert->as_xml,$marc->as_xml, "testing xml2marc");
 
-my $marcdc=marc2dcxml($marc);
-my $test2xml=qq(<?xml version="1.0" encoding="UTF-8"?>
-<metadata
-  xmlns="http://example.org/myapp/"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://example.org/myapp/ http://example.org/myapp/schema.xsd"
-  xmlns:dc="http://purl.org/dc/elements/1.1/"
-  xmlns:dcterms="http://purl.org/dc/terms/">
-</metadata>);
-
-is ($marcdc, $test2xml, "testing marc2dcxml");
-
-my $marcqualified=marc2dcxml($marc,1);
-my $test3xml=qq(<?xml version="1.0" encoding="UTF-8"?>
-<metadata
-  xmlns="http://example.org/myapp/"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://example.org/myapp/ http://example.org/myapp/schema.xsd"
-  xmlns:dc="http://purl.org/dc/elements/1.1/"
-  xmlns:dcterms="http://purl.org/dc/terms/">
-</metadata>);
-
-is ($marcqualified, $test3xml, "testing marcQualified");
+my $marcrdf=marc2dcxml($marc, 'dc-rdf', 1,
+                      0, undef, undef, undef, 'rdfxml');
+my $test2xml=qq(<?xml version="1.0" encoding="utf-8"?>
+<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dcam="http://purl.org/dc/dcam/" xmlns:dcterms="http://purl.org/dc/terms/">
+</rdf:RDF>
+);
+
+is ($marcrdf, $test2xml, "testing marc2dcxml with dc-rdf");
+
+my $marcdc=marc2dcxml($marc, 'dc-xml', 0,
+                      0, 'metadata', undef, undef, undef);
+my $test3xml=qq(<?xml version="1.0" encoding="utf-8"?>
+<metadata xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dc="http://purl.org/dc/elements/1.1/"/>
+);
+
+is ($marcdc, $test3xml, "testing marc2dcxml with unqualified dc-xml");
 
 my $mods=marc2modsxml($marc);
 my $test4xml=qq(<?xml version="1.0" encoding="UTF-8"?>
-- 
1.7.10.4