Changeset 24009


Ignore:
Timestamp:
2011-05-10T14:33:12+12:00 (13 years ago)
Author:
sjm84
Message:

Another round of improvements to the oran skin including a tree view of the classifiers

Location:
main/trunk/greenstone3/web
Files:
2 added
10 edited

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone3/web/WEB-INF/classes/interface_default.properties

    r23813 r24009  
     1#***** IMAGE URLS *****
     2expand_image=interfaces/oran/images/expand.png
     3collapse_image=interfaces/oran/images/collapse.png
     4page_image=interfaces/oran/images/page.png
     5chapter_image=interfaces/oran/images/chapter.png
     6realistic_books_image=interfaces/oran/images/rbook.png
     7highlight_image=interfaces/oran/images/hl.png
     8bookshelf_image=interfaces/oran/images/bookshelf.png
     9loading_image=interfaces/oran/images/loading.gif
     10
     11#***** TEXT FRAGMENTS *****
    112gsdl=Greenstone Digital Library Software
    213gs3power=powered by greenstone3
    314error=Error:
    415# the buttons
     16about_b=ABOUT
    517home_b=HOME
    618help_b=HELP
     
    3345close_folder=Close this folder
    3446view_document=View the document
    35 #######################
    36 # query page
    37 ########################
     47
    3848query=Search
    3949query.wordcount=Word count:
     
    4555query.matches=Matches
    4656query.results=Results
     57
     58query.occurs=occurs
     59query.time=time
     60query.time_plural=times
     61query.in=in
     62query.document=document
     63query.document_plural=documents
     64
     65query.displaying=Displaying
     66query.to=to
     67query.of=of
    4768
    4869##################
     
    6586# document page
    6687##################
     88doc.document=Document
    6789doc.pageof=Page {0} of {1}.
    6890doc.pages={0} pages.
     
    78100doc.detach_page_b=DETACH<br />PAGE
    79101doc.detach_page_tip=Open this page in a new window
     102doc.back_to_top=back to top
    80103
    81104doc.table_of_contents=Table of Contents
  • main/trunk/greenstone3/web/WEB-INF/web.xml

    r23781 r24009  
    233233    <init-param>
    234234      <param-name>interface_name</param-name>
    235       <param-value>default</param-value>
     235      <param-value>default-client-xslt</param-value>
    236236    </init-param>
    237237    <init-param>
  • main/trunk/greenstone3/web/interfaces/default/transform/document.xsl

    r23779 r24009  
    11<?xml version="1.0" encoding="ISO-8859-1"?>
    22<xsl:stylesheet version="1.0"
    3   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    4   xmlns:java="http://xml.apache.org/xslt/java"
    5   xmlns:gsf="http://www.greenstone.org/greenstone3/schema/ConfigFormat"
    6   extension-element-prefixes="java"
    7   exclude-result-prefixes="java gsf">
    8 
    9   <!-- style includes global params interface_name, library_name -->
    10   <xsl:include href="style.xsl"/>
    11   <xsl:include href="service-params.xsl"/>
    12   <xsl:include href="berrytools.xsl"/>
    13 
    14   <xsl:output method="html"/>
    15  
    16   <!-- the main page layout template is here -->
    17   <xsl:template match="page">
    18     <xsl:variable name="bookswitch"><xsl:value-of select="/page/pageRequest/paramList/param[@name='book']/@value"/></xsl:variable>
    19     <xsl:variable name="a"><xsl:value-of select="/page/pageRequest/paramList/param[@name='a']/@value"/></xsl:variable>
    20 
    21     <xsl:choose>
    22       <xsl:when test="$bookswitch = 'flashxml' and $a = 'd'">
    23     <html>
    24       <xsl:call-template name="response" />
    25         </html>
    26       </xsl:when>
    27 
    28       <xsl:otherwise>   
    29         <html>
    30       <head>
    31         <title>
    32           <!-- put a space in the title in case the actual value is missing - mozilla will not display a page with no title-->
    33           <xsl:call-template name="pageTitle"/><xsl:text> </xsl:text>
    34         </title>
    35         <xsl:call-template name="globalStyle"/>
    36         <xsl:call-template name="pageStyle"/>
    37       </head>
    38           <body>
    39         <xsl:attribute name="dir"><xsl:call-template name="direction"/></xsl:attribute>
    40         <div id="page-wrapper">
    41           <xsl:call-template name="response" />
    42           <xsl:call-template name="greenstoneFooter"/>
    43         </div>
    44           </body>
    45         </html>
    46       </xsl:otherwise>
    47     </xsl:choose>
    48   </xsl:template>
    49  
    50  
    51   <xsl:variable name="berrybasketswitch"><xsl:value-of select="/page/pageRequest/paramList/param[@name='berrybasket']/@value"/></xsl:variable>
    52   <xsl:variable name="bookswitch"><xsl:value-of select="/page/pageRequest/paramList/param[@name='book']/@value"/></xsl:variable>
    53  
    54   <xsl:template name="pageTitle">
    55     <xsl:variable name="docID" select="/page/pageResponse/document/@selectedNode"/>
    56     <xsl:for-each select="/page/pageResponse/document/descendant::documentNode[@nodeID=$docID]/ancestor-or-self::documentNode"><xsl:if test='position()!=1'>::</xsl:if><xsl:value-of select="metadataList/metadata[@name='Title']"/></xsl:for-each>
    57   </xsl:template>
    58 
    59   <!-- this is hard coded for GATE, should somehow do it dynamically-->
    60   <xsl:template name="pageStyle">
    61     <style type="text/css">
    62       <xsl:text disable-output-escaping="yes">
    63     span.Location {  display:inline; color : red }
    64     span.Person {  display:inline; color : green }
    65     span.Organization {  display:inline; color : yellow }
    66     span.Date {  display:inline; color : blue }
    67     span.query_term {display: inline; background-color : yellow }
    68       </xsl:text>
    69     </style>
    70 
    71     <!--TODO: add berry basket switch-->
    72     <!--<xsl:if test="$berryBaskets = 'true'">-->
    73     <xsl:if test="$berrybasketswitch = 'on'">
    74       <xsl:call-template name="berryStyleSheet"/> 
    75       <xsl:call-template name="js-library"/>
    76     </xsl:if>
    77   </xsl:template>
    78  
    79   <xsl:template match="pageResponse">
    80     <xsl:variable name="collName"><xsl:value-of select="/page/pageRequest/paramList/param[@name='c']/@value"/></xsl:variable>
    81     <xsl:choose>
    82       <xsl:when test="$bookswitch = 'on' or $bookswitch = 'off'">
    83         <xsl:call-template name="standardPageBanner">
    84       <xsl:with-param name="collName" select="$collName"/>
    85         </xsl:call-template>
    86         <xsl:call-template name="navigationBar">
    87       <xsl:with-param name="collName" select="$collName"/>
    88         </xsl:call-template>
     3    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
     4    xmlns:java="http://xml.apache.org/xslt/java"
     5    xmlns:gsf="http://www.greenstone.org/greenstone3/schema/ConfigFormat"
     6    extension-element-prefixes="java"
     7    exclude-result-prefixes="java gsf">
    898   
    90         <!--<xsl:if test="$berryBaskets = 'true'">-->
    91         <xsl:if test="$berrybasketswitch = 'on'">
    92           <xsl:call-template name="documentBerryBasket">
    93         <xsl:with-param name="collName" select="$collName"/>
    94         <xsl:with-param name="selectedNode" select="/page/pageResponse/document/@selectedNode"/>
    95         <xsl:with-param name="rootNode" select="/page/pageResponse/document/documentNode[@nodeType='root']/@nodeID"/>
    96         <xsl:with-param name="docType" select="/page/pageResponse/document/@docType"/>
    97           </xsl:call-template>
    98         </xsl:if>
    99       </xsl:when>
    100     </xsl:choose>   
    101 
    102     <!-- display the document -->
    103     <xsl:if test="$bookswitch != 'flashxml'">
    104       <xsl:text disable-output-escaping="yes">&lt;div id="content"&gt;</xsl:text>
    105     </xsl:if>
    106     <xsl:apply-templates select="document">
    107       <xsl:with-param name="collName" select="$collName"/>
    108     </xsl:apply-templates>
    109     <xsl:if test="$bookswitch != 'flashxml'">
    110       <xsl:text disable-output-escaping="yes">&lt;/div&gt;</xsl:text>
    111     </xsl:if>
    112   </xsl:template>
    113  
    114   <xsl:template match="document">
    115     <xsl:param name="collName"/>
    116     <xsl:variable name="external"><xsl:value-of select="/page/pageResponse/document/@external"/></xsl:variable>
    117     <xsl:choose>
    118       <xsl:when test="$external != ''">
    119     <xsl:call-template name="externalPage">
    120       <xsl:with-param name="external" select="$external"/>
    121     </xsl:call-template>
    122       </xsl:when>
    123       <xsl:otherwise>
    124     <xsl:choose>
    125     <xsl:when test="$bookswitch = 'flashxml'">
    126       <xsl:call-template name="xmldocumentContentPeeling">
    127         <xsl:with-param name="collName" select="$collName"/>
    128       </xsl:call-template>
    129     </xsl:when>
     9    <!-- style includes global params interface_name, library_name -->
     10    <xsl:include href="style.xsl"/>
     11    <xsl:include href="service-params.xsl"/>
     12    <xsl:include href="berrytools.xsl"/>
     13
     14    <xsl:output method="html"/>
     15 
     16    <!-- the main page layout template is here -->
     17    <xsl:template match="page">
     18        <xsl:variable name="bookswitch"><xsl:value-of select="/page/pageRequest/paramList/param[@name='book']/@value"/></xsl:variable>
     19        <xsl:variable name="a"><xsl:value-of select="/page/pageRequest/paramList/param[@name='a']/@value"/></xsl:variable>
     20
     21        <xsl:choose>
     22            <xsl:when test="$bookswitch = 'flashxml' and $a = 'd'">
     23                <html>
     24                    <xsl:call-template name="response" />
     25                </html>
     26            </xsl:when>
     27            <xsl:otherwise>   
     28                <html>
     29                    <head>
     30                        <title>
     31                            <!-- put a space in the title in case the actual value is missing - mozilla will not display a page with no title-->
     32                            <xsl:call-template name="pageTitle"/><xsl:text> </xsl:text>
     33                        </title>
     34                        <xsl:call-template name="globalStyle"/>
     35                        <xsl:call-template name="pageStyle"/>
     36                    </head>
     37                    <body>
     38                        <xsl:attribute name="dir"><xsl:call-template name="direction"/></xsl:attribute>
     39                        <div id="page-wrapper">
     40                            <xsl:call-template name="response" />
     41                            <xsl:call-template name="greenstoneFooter"/>
     42                        </div>
     43                    </body>
     44                </html>
     45            </xsl:otherwise>
     46        </xsl:choose>
     47    </xsl:template>
     48 
     49 
     50    <xsl:variable name="berrybasketswitch"><xsl:value-of select="/page/pageRequest/paramList/param[@name='berrybasket']/@value"/></xsl:variable>
     51    <xsl:variable name="bookswitch"><xsl:value-of select="/page/pageRequest/paramList/param[@name='book']/@value"/></xsl:variable>
     52 
     53    <xsl:template name="pageTitle">
     54        <xsl:variable name="docID" select="/page/pageResponse/document/@selectedNode"/>
     55        <xsl:for-each select="/page/pageResponse/document/descendant::documentNode[@nodeID=$docID]/ancestor-or-self::documentNode"><xsl:if test='position()!=1'>::</xsl:if><xsl:value-of select="metadataList/metadata[@name='Title']"/></xsl:for-each>
     56    </xsl:template>
     57
     58    <!-- this is hard coded for GATE, should somehow do it dynamically-->
     59    <xsl:template name="pageStyle">
     60        <style type="text/css">
     61            <xsl:text disable-output-escaping="yes">
     62                span.Location {  display:inline; color : red }
     63                span.Person {  display:inline; color : green }
     64                span.Organization {  display:inline; color : yellow }
     65                span.Date {  display:inline; color : blue }
     66                span.query_term {display: inline; background-color : yellow }
     67            </xsl:text>
     68        </style>
     69
     70        <xsl:if test="$berrybasketswitch = 'on'">
     71            <xsl:call-template name="berryStyleSheet"/> 
     72            <xsl:call-template name="js-library"/>
     73        </xsl:if>
     74    </xsl:template>
     75 
     76    <xsl:template match="pageResponse">
     77        <xsl:variable name="collName"><xsl:value-of select="/page/pageRequest/paramList/param[@name='c']/@value"/></xsl:variable>
     78        <xsl:choose>
     79            <xsl:when test="$bookswitch = 'on' or $bookswitch = 'off'">
     80                <xsl:call-template name="standardPageBanner">
     81                    <xsl:with-param name="collName" select="$collName"/>
     82                </xsl:call-template>
     83                <xsl:call-template name="navigationBar">
     84                    <xsl:with-param name="collName" select="$collName"/>
     85                </xsl:call-template>
    13086   
    131     <xsl:when test="$bookswitch = 'on'">
    132       <xsl:call-template name="documentHeading">
    133         <xsl:with-param name="collName" select="$collName"/>
    134       </xsl:call-template>
    135       <div id="bookdiv"></div>
    136       <script type="text/javascript">
    137         <xsl:text disable-output-escaping="yes">
    138           var doc_url = document.URL;
    139           doc_url = doc_url.replace(/(&amp;amp;|\?)book=[a-z]+/gi,'');
    140           doc_url += '&amp;amp;book=flashxml';
    141 
    142           var flash_plug_html = ""
    143           flash_plug_html += '&amp;lt;OBJECT align="middle" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" \n';
    144           flash_plug_html += '  codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" \n';
    145           flash_plug_html += '  height="100%" id="Book" swLiveConnect="true" \n';
    146           flash_plug_html += '  width="100%"&amp;gt;\n';
    147           flash_plug_html += '    &amp;lt;PARAM name="allowScriptAccess" value="always" /&amp;gt;\n';
    148           flash_plug_html += '    &amp;lt;PARAM name="movie" value="Book.swf';
    149           flash_plug_html += '?src_image=' + escape(img_cover);
    150           flash_plug_html += '&amp;amp;doc_url=' + escape(doc_url)
    151           flash_plug_html += '" /&amp;gt;\n';
    152           flash_plug_html += '    &amp;lt;PARAM name="quality" value="high" /&amp;gt;\n';
    153           flash_plug_html += '    &amp;lt;PARAM name="bgcolor" value="#FFFFFF" /&amp;gt;\n';
    154           flash_plug_html += '    &amp;lt;EMBED align="middle" \n';
    155           flash_plug_html += '      allowScriptAccess="always" swLiveConnect="true" \n';
    156           flash_plug_html += '      bgcolor="#FFFFFF" height="100%" name="Book" \n';
    157           flash_plug_html += '      pluginspage="http://www.macromedia.com/go/getflashplayer" \n';
    158           flash_plug_html += '      quality="high" \n';
    159           flash_plug_html += '      src="Book.swf';
    160           flash_plug_html += '?src_image=' + escape(img_cover);
    161           flash_plug_html += '&amp;amp;doc_url=' + escape(doc_url);
    162           flash_plug_html += '"\n';
    163           flash_plug_html += '      type="application/x-shockwave-flash" width="100%" /&amp;gt;\n';
    164           flash_plug_html += '&amp;lt;/OBJECT&amp;gt;\n';
    165           var flash_div = document.getElementById("bookdiv");
    166           flash_div.innerHTML = flash_plug_html;
    167         </xsl:text>
    168       </script>
    169     </xsl:when>
    170     <xsl:otherwise>
    171       <xsl:call-template name="documentHeading">
    172         <xsl:with-param name="collName" select="$collName"/>
    173       </xsl:call-template>
    174      
    175       <xsl:call-template name="documentArrows">
    176         <xsl:with-param name="collName" select="$collName"/>
    177       </xsl:call-template>         
    178       <xsl:call-template name="documentContent">
    179         <xsl:with-param name="collName" select="$collName"/>
    180       </xsl:call-template>
    181       <xsl:call-template name="documentArrows">
    182         <xsl:with-param name="collName" select="$collName"/>
    183       </xsl:call-template>   
    184     </xsl:otherwise>
    185     </xsl:choose>
     87                <xsl:if test="$berrybasketswitch = 'on'">
     88                    <xsl:call-template name="documentBerryBasket">
     89                        <xsl:with-param name="collName" select="$collName"/>
     90                        <xsl:with-param name="selectedNode" select="/page/pageResponse/document/@selectedNode"/>
     91                        <xsl:with-param name="rootNode" select="/page/pageResponse/document/documentNode[@nodeType='root']/@nodeID"/>
     92                        <xsl:with-param name="docType" select="/page/pageResponse/document/@docType"/>
     93                    </xsl:call-template>
     94                </xsl:if>
     95            </xsl:when>
     96        </xsl:choose>   
     97
     98        <!-- display the document -->
     99        <xsl:if test="$bookswitch != 'flashxml'">
     100            <xsl:text disable-output-escaping="yes">&lt;div id="content"&gt;</xsl:text>
     101        </xsl:if>
     102        <xsl:apply-templates select="document">
     103            <xsl:with-param name="collName" select="$collName"/>
     104        </xsl:apply-templates>
     105        <xsl:if test="$bookswitch != 'flashxml'">
     106            <xsl:text disable-output-escaping="yes">&lt;/div&gt;</xsl:text>
     107        </xsl:if>
     108    </xsl:template>
     109 
     110    <xsl:template match="document">
     111        <xsl:param name="collName"/>
     112        <xsl:variable name="external"><xsl:value-of select="/page/pageResponse/document/@external"/></xsl:variable>
     113        <xsl:choose>
     114            <xsl:when test="$external != ''">
     115                <xsl:call-template name="externalPage">
     116                    <xsl:with-param name="external" select="$external"/>
     117                </xsl:call-template>
     118            </xsl:when>
     119            <xsl:otherwise>
     120                <xsl:choose>
     121                    <xsl:when test="$bookswitch = 'flashxml'">
     122                        <xsl:call-template name="xmldocumentContentPeeling">
     123                            <xsl:with-param name="collName" select="$collName"/>
     124                        </xsl:call-template>
     125                    </xsl:when>
     126                    <xsl:when test="$bookswitch = 'on'">
     127                        <xsl:call-template name="documentHeading">
     128                            <xsl:with-param name="collName" select="$collName"/>
     129                        </xsl:call-template>
     130                        <div id="bookdiv"></div>
     131                        <script type="text/javascript">
     132                            <xsl:text disable-output-escaping="yes">
     133                                var doc_url = document.URL;
     134                                doc_url = doc_url.replace(/(&amp;amp;|\?)book=[a-z]+/gi,'');
     135                                doc_url += '&amp;amp;book=flashxml';
     136
     137                                var flash_plug_html = ""
     138                                flash_plug_html += '&amp;lt;OBJECT align="middle" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" \n';
     139                                flash_plug_html += '  codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" \n';
     140                                flash_plug_html += '  height="100%" id="Book" swLiveConnect="true" \n';
     141                                flash_plug_html += '  width="100%"&amp;gt;\n';
     142                                flash_plug_html += '    &amp;lt;PARAM name="allowScriptAccess" value="always" /&amp;gt;\n';
     143                                flash_plug_html += '    &amp;lt;PARAM name="movie" value="Book.swf';
     144                                flash_plug_html += '?src_image=' + escape(img_cover);
     145                                flash_plug_html += '&amp;amp;doc_url=' + escape(doc_url)
     146                                flash_plug_html += '" /&amp;gt;\n';
     147                                flash_plug_html += '    &amp;lt;PARAM name="quality" value="high" /&amp;gt;\n';
     148                                flash_plug_html += '    &amp;lt;PARAM name="bgcolor" value="#FFFFFF" /&amp;gt;\n';
     149                                flash_plug_html += '    &amp;lt;EMBED align="middle" \n';
     150                                flash_plug_html += '      allowScriptAccess="always" swLiveConnect="true" \n';
     151                                flash_plug_html += '      bgcolor="#FFFFFF" height="100%" name="Book" \n';
     152                                flash_plug_html += '      pluginspage="http://www.macromedia.com/go/getflashplayer" \n';
     153                                flash_plug_html += '      quality="high" \n';
     154                                flash_plug_html += '      src="Book.swf';
     155                                flash_plug_html += '?src_image=' + escape(img_cover);
     156                                flash_plug_html += '&amp;amp;doc_url=' + escape(doc_url);
     157                                flash_plug_html += '"\n';
     158                                flash_plug_html += '      type="application/x-shockwave-flash" width="100%" /&amp;gt;\n';
     159                                flash_plug_html += '&amp;lt;/OBJECT&amp;gt;\n';
     160                                var flash_div = document.getElementById("bookdiv");
     161                                flash_div.innerHTML = flash_plug_html;
     162                            </xsl:text>
     163                        </script>
     164                    </xsl:when>
     165                    <xsl:otherwise>
     166                        <xsl:call-template name="documentHeading">
     167                            <xsl:with-param name="collName" select="$collName"/>
     168                        </xsl:call-template>
     169                        NOT CLIENT!!!
     170                        <xsl:call-template name="documentArrows">
     171                            <xsl:with-param name="collName" select="$collName"/>
     172                        </xsl:call-template>         
     173                        <xsl:call-template name="documentContent">
     174                            <xsl:with-param name="collName" select="$collName"/>
     175                        </xsl:call-template>
     176                        <xsl:call-template name="documentArrows">
     177                            <xsl:with-param name="collName" select="$collName"/>
     178                        </xsl:call-template>   
     179                    </xsl:otherwise>
     180                </xsl:choose>
     181            </xsl:otherwise>
     182        </xsl:choose>
     183    </xsl:template>
     184
     185    <xsl:template name="documentHeading">
     186        <xsl:param name="collName"/>
     187        <xsl:variable name="doCoverImage" select="/page/pageResponse/format/gsf:option[@name='coverImages']/@value"/>
     188        <xsl:variable name="doTOC" select="/page/pageResponse/format/gsf:option[@name='documentTOC']/@value"/>
     189        <xsl:variable name="p.a" select="/page/pageRequest/paramList/param[@name='p.a']/@value"/>
     190        <xsl:variable name="p.sa" select="/page/pageRequest/paramList/param[@name='p.sa']/@value"/>
     191        <xsl:variable name="p.s" select="/page/pageRequest/paramList/param[@name='p.s']/@value"/>
     192        <xsl:variable name="p.c"><xsl:choose><xsl:when test="/page/pageRequest/paramList/param[@name='p.c']"><xsl:value-of select="/page/pageRequest/paramList/param[@name='p.c']/@value"/></xsl:when><xsl:otherwise><xsl:value-of select="$collName"/></xsl:otherwise></xsl:choose></xsl:variable>
     193        <div id="documentheading">
     194            <a href="{$library_name}?a={$p.a}&amp;amp;sa={$p.sa}&amp;amp;s={$p.s}&amp;amp;c={$p.c}&amp;amp;rt=rd">
     195                <xsl:call-template name="openbookimg">
     196                    <xsl:with-param name="title"><xsl:value-of select="'close_book'"/></xsl:with-param>
     197                </xsl:call-template>
     198            </a>
     199            <xsl:choose>
     200                <xsl:when test="@docType='simple'">
     201                    <xsl:value-of select="metadataList/metadata[@name='Title']" disable-output-escaping="yes"/>
     202                </xsl:when>
     203                <xsl:otherwise>
     204                    <xsl:value-of select="documentNode/metadataList/metadata[@name='Title']" disable-output-escaping="yes"/>
     205                </xsl:otherwise>
     206            </xsl:choose>
     207        </div>
     208   
     209        <div id="docheadwrapper">
     210            <div id="documentinfo">
    186211   
    187       </xsl:otherwise>
    188     </xsl:choose>
    189   </xsl:template>
    190 
    191   <xsl:template name="documentHeading">
    192     <xsl:param name="collName"/>
    193     <xsl:variable name="doCoverImage" select="/page/pageResponse/format/gsf:option[@name='coverImages']/@value"/>
    194     <xsl:variable name="doTOC" select="/page/pageResponse/format/gsf:option[@name='documentTOC']/@value"/>
    195     <xsl:variable name="p.a" select="/page/pageRequest/paramList/param[@name='p.a']/@value"/>
    196     <xsl:variable name="p.sa" select="/page/pageRequest/paramList/param[@name='p.sa']/@value"/>
    197     <xsl:variable name="p.s" select="/page/pageRequest/paramList/param[@name='p.s']/@value"/>
    198     <xsl:variable name="p.c"><xsl:choose><xsl:when test="/page/pageRequest/paramList/param[@name='p.c']"><xsl:value-of select="/page/pageRequest/paramList/param[@name='p.c']/@value"/></xsl:when><xsl:otherwise><xsl:value-of select="$collName"/></xsl:otherwise></xsl:choose></xsl:variable>
    199     <div id="documentheading">
    200       <a href="{$library_name}?a={$p.a}&amp;amp;sa={$p.sa}&amp;amp;s={$p.s}&amp;amp;c={$p.c}&amp;amp;rt=rd"><xsl:call-template name="openbookimg"><xsl:with-param name="title"><xsl:value-of select="'close_book'"/></xsl:with-param>
    201     </xsl:call-template></a>
    202       <xsl:choose><xsl:when test="@docType='simple'"><xsl:value-of select="metadataList/metadata[@name='Title']" disable-output-escaping="yes"/></xsl:when><xsl:otherwise><xsl:value-of select="documentNode/metadataList/metadata[@name='Title']" disable-output-escaping="yes"/></xsl:otherwise></xsl:choose>
    203     </div>
    204    
    205     <div id="docheadwrapper">
    206       <div id="documentinfo">
    207    
    208     <xsl:choose>
    209       <xsl:when test="$bookswitch = 'on'">
    210         <xsl:if test="string($doCoverImage) != 'false' and (@docType='paged' or @docType='hierarchy')">
    211           <div id="headingimage">
    212         <xsl:call-template name="coverImage"/>
    213           </div>
    214         </xsl:if>
    215       </xsl:when>
    216       <xsl:otherwise>
    217         <xsl:if test="string($doCoverImage) != 'false' and (@docType='paged' or @docType='hierarchy')">
    218           <div id="headingimage">
    219         <xsl:call-template name="coverImage"/>
    220           </div>
    221         </xsl:if>
     212                <xsl:choose>
     213                    <xsl:when test="$bookswitch = 'on'">
     214                        <xsl:if test="string($doCoverImage) != 'false' and (@docType='paged' or @docType='hierarchy')">
     215                            <div id="headingimage">
     216                                <xsl:call-template name="coverImage"/>
     217                            </div>
     218                        </xsl:if>
     219                    </xsl:when>
     220                    <xsl:otherwise>
     221                        <xsl:if test="string($doCoverImage) != 'false' and (@docType='paged' or @docType='hierarchy')">
     222                            <div id="headingimage">
     223                                <xsl:call-template name="coverImage"/>
     224                            </div>
     225                        </xsl:if>
    222226       
    223         <ul id="docbuttons" >
    224           <xsl:call-template name="documentButtons">
    225         <xsl:with-param name="collName" select="$collName"/>
    226           </xsl:call-template>
    227         </ul>
    228       </xsl:otherwise>
    229     </xsl:choose>     
    230       </div>
    231       <!--<div><xsl:call-template name="enrichServices">
    232       <xsl:with-param name="collName" select="$collName"/>
    233     </xsl:call-template></div>-->
    234       <xsl:if test="$bookswitch = 'off'">
    235     <xsl:if test="string($doTOC) != 'false'">
    236       <div id="toc">
    237         <xsl:call-template name="TOC">
    238           <xsl:with-param name="collName" select="$collName"/>
    239         </xsl:call-template>
    240       </div>
    241     </xsl:if>
    242       </xsl:if> 
    243     </div>
    244   </xsl:template>
    245 
    246   <xsl:template name="coverImage">
    247     <xsl:choose>
    248       <xsl:when test="$bookswitch = 'on'">
    249     <script type="text/javascript">
    250       <xsl:text disable-output-escaping="yes">var img_cover = '</xsl:text><xsl:value-of select="/page/pageResponse/collection/metadataList/metadata[@name='httpPath']"/>/index/assoc/<xsl:value-of select="metadataList/metadata[@name='archivedir']"/>/cover.jpg<xsl:text disable-output-escaping="yes">';</xsl:text>
    251     </script>
    252       </xsl:when>
    253       <xsl:otherwise>
    254     <img><xsl:attribute name="src"><xsl:value-of select="/page/pageResponse/collection/metadataList/metadata[@name='httpPath']"/>/index/assoc/<xsl:value-of select="metadataList/metadata[@name='archivedir']"/>/cover.jpg</xsl:attribute></img>
    255       </xsl:otherwise>
    256     </xsl:choose>
    257   </xsl:template>
    258 
    259   <xsl:template name="documentButtons">
    260     <xsl:param name="collName"/>
    261     <xsl:variable name="docID" select="/page/pageRequest/paramList/param[@name='d']/@value"/>
    262     <xsl:variable name="sib" select="/page/pageRequest/paramList/param[@name='sib']/@value"/>
    263     <xsl:variable name="ec" select="/page/pageRequest/paramList/param[@name='ec']/@value"/>
    264     <xsl:variable name="ed" select="/page/pageRequest/paramList/param[@name='ed']/@value"/>
     227                        <ul id="docbuttons" >
     228                            <xsl:call-template name="documentButtons">
     229                                <xsl:with-param name="collName" select="$collName"/>
     230                            </xsl:call-template>
     231                        </ul>
     232                    </xsl:otherwise>
     233                </xsl:choose>     
     234            </div>
     235            <!--<div><xsl:call-template name="enrichServices">
     236                <xsl:with-param name="collName" select="$collName"/>
     237                </xsl:call-template></div>-->
     238            <xsl:if test="$bookswitch = 'off'">
     239                <xsl:if test="string($doTOC) != 'false'">
     240                    <div id="toc">
     241                        <xsl:call-template name="TOC">
     242                            <xsl:with-param name="collName" select="$collName"/>
     243                        </xsl:call-template>
     244                    </div>
     245                </xsl:if>
     246            </xsl:if> 
     247        </div>
     248    </xsl:template>
     249
     250    <xsl:template name="coverImage">
     251        <xsl:choose>
     252            <xsl:when test="$bookswitch = 'on'">
     253                <script type="text/javascript">
     254                    <xsl:text disable-output-escaping="yes">var img_cover = '</xsl:text><xsl:value-of select="/page/pageResponse/collection/metadataList/metadata[@name='httpPath']"/>/index/assoc/<xsl:value-of select="metadataList/metadata[@name='archivedir']"/>/cover.jpg<xsl:text disable-output-escaping="yes">';</xsl:text>
     255                </script>
     256            </xsl:when>
     257            <xsl:otherwise>
     258                <img><xsl:attribute name="src"><xsl:value-of select="/page/pageResponse/collection/metadataList/metadata[@name='httpPath']"/>/index/assoc/<xsl:value-of select="metadataList/metadata[@name='archivedir']"/>/cover.jpg</xsl:attribute></img>
     259            </xsl:otherwise>
     260        </xsl:choose>
     261    </xsl:template>
     262
     263    <xsl:template name="documentButtons">
     264        <xsl:param name="collName"/>
     265        <xsl:variable name="docID" select="/page/pageRequest/paramList/param[@name='d']/@value"/>
     266        <xsl:variable name="sib" select="/page/pageRequest/paramList/param[@name='sib']/@value"/>
     267        <xsl:variable name="ec" select="/page/pageRequest/paramList/param[@name='ec']/@value"/>
     268        <xsl:variable name="ed" select="/page/pageRequest/paramList/param[@name='ed']/@value"/>
    265269   
    266270   
    267     <!-- expand document -->
    268     <xsl:if test="@docType = 'hierarchy' or @docType = 'paged'">
    269       <li>
    270         <xsl:choose><xsl:when test="string($ed)='1'">
    271         <a href="{$library_name}?a=d&amp;amp;d={$docID}&amp;amp;c={$collName}&amp;amp;sib={$sib}&amp;amp;ed=0" class="getTextFor doc.contract_doc_b this.title.doc.contract_doc_tip"></a>
    272       </xsl:when>
    273       <xsl:otherwise>
    274         <a href="{$library_name}?a=d&amp;amp;d={$docID}&amp;amp;c={$collName}&amp;amp;sib={$sib}&amp;amp;ed=1" class="getTextFor doc.expand_doc_b this.title.doc.expand_doc_tip"></a>
    275       </xsl:otherwise>
    276     </xsl:choose>
    277       </li>
    278     </xsl:if>
     271        <!-- expand document -->
     272        <xsl:if test="@docType = 'hierarchy' or @docType = 'paged'">
     273            <li>
     274                <xsl:choose>
     275                    <xsl:when test="string($ed)='1'">
     276                        <a href="{$library_name}?a=d&amp;amp;d={$docID}&amp;amp;c={$collName}&amp;amp;sib={$sib}&amp;amp;ed=0" class="getTextFor doc.contract_doc_b this.title.doc.contract_doc_tip"></a>
     277                    </xsl:when>
     278                    <xsl:otherwise>
     279                        <a href="{$library_name}?a=d&amp;amp;d={$docID}&amp;amp;c={$collName}&amp;amp;sib={$sib}&amp;amp;ed=1" class="getTextFor doc.expand_doc_b this.title.doc.expand_doc_tip"></a>
     280                    </xsl:otherwise>
     281                </xsl:choose>
     282            </li>
     283        </xsl:if>
    279284   
    280     <!-- expand contents -->
    281     <xsl:if test="@docType = 'hierarchy' and string(/page/pageResponse/format/gsf:option[@name='documentTOC']/@value) != 'false'">
    282       <li>
    283     <xsl:choose><xsl:when test="string($ec)='1'">
    284         <a href="{$library_name}?a=d&amp;amp;d={$docID}&amp;amp;c={$collName}&amp;amp;sib={$sib}&amp;amp;ec=0" class="getTextFor doc.contract_contents_b this.title.doc.contract_contents_tip"></a>
    285       </xsl:when>
    286       <xsl:otherwise>
    287         <a  href="{$library_name}?a=d&amp;amp;d={$docID}&amp;amp;c={$collName}&amp;amp;sib={$sib}&amp;amp;ec=1" class="getTextFor doc.expand_contents_b this.title.doc.expand_contents_tip"></a>
    288       </xsl:otherwise>
    289     </xsl:choose>
    290       </li>
    291     </xsl:if>
    292 
    293     <!-- detach page -->
    294     <xsl:variable name="paramList" select="/page/pageRequest/paramList"/>
    295     <li>
    296       <a target="_blank" class="getTextFor doc.detach_page_b this.title.doc.detach_page_tip"><xsl:attribute name="href"><xsl:value-of select="$library_name"/>?a=d&amp;amp;d=<xsl:value-of select="$docID"/>&amp;amp;c=<xsl:value-of select="$collName"/>&amp;amp;sib=<xsl:value-of select="$sib"/>&amp;amp;dt=<xsl:value-of select="$paramList/param[@name='dt']/@value"/>&amp;amp;ec=<xsl:value-of select="$paramList/param[@name='ec']/@value"/>&amp;amp;et=<xsl:value-of select="$paramList/param[@name='et']/@value"/>&amp;amp;p.a=<xsl:value-of select="$paramList/param[@name='p.a']/@value"/>&amp;amp;p.s=<xsl:value-of select="$paramList/param[@name='p.s']/@value"/>&amp;amp;p.sa=<xsl:value-of select="$paramList/param[@name='p.sa']/@value"/></xsl:attribute></a></li>
    297   </xsl:template>
    298 
    299   <xsl:template name="TOC">
    300     <xsl:param name="collName"/>
    301     <xsl:choose>
    302       <xsl:when test="@docType='hierarchy'">
    303     <xsl:call-template name="hierarchicalContents">
    304       <xsl:with-param name="collName" select="$collName"/>
    305     </xsl:call-template>
    306       </xsl:when>
    307       <xsl:when test="@docType='paged'">
    308     <xsl:call-template name="pagedContents">
    309       <xsl:with-param name="collName" select="$collName"/>
    310     </xsl:call-template>
    311       </xsl:when>
    312     </xsl:choose>
    313   </xsl:template>
    314  
    315   <xsl:template name="hierarchicalContents">
    316     <xsl:param name="collName"/>
    317     <xsl:variable name="oc" select="/page/pageRequest/paramList/param[@name='oc']/@value"/>
    318     <xsl:variable name="d" select="/page/pageRequest/paramList/param[@name='d']/@value"/>
    319     <xsl:variable name="sib" select="/page/pageRequest/paramList/param[@name='sib']/@value"/>
    320     <xsl:variable name="ec" select="/page/pageRequest/paramList/param[@name='ec']/@value"/>
    321     <xsl:variable name="p.s" select="/page/pageRequest/paramList/param[@name='p.s']/@value"/>
    322     <xsl:variable name="p.sa" select="/page/pageRequest/paramList/param[@name='p.sa']/@value"/>
    323     <xsl:variable name="p.a" select="/page/pageRequest/paramList/param[@name='p.a']/@value"/>
    324     <xsl:variable name="p.c"><xsl:choose><xsl:when test="/page/pageRequest/paramList/param[@name='p.c']"><xsl:value-of select="/page/pageRequest/paramList/param[@name='p.c']/@value"/></xsl:when><xsl:otherwise><xsl:value-of select="$collName"/></xsl:otherwise></xsl:choose></xsl:variable>
    325     <script type="text/javascript">
    326       <xsl:text>
    327         // Load up the initial document using AJAX!
    328         var initialHash = '</xsl:text>
    329       <xsl:value-of select="$d" /><xsl:text>';
    330       </xsl:text>
    331     </script>
    332     <xsl:if test="documentNode[@nodeID]">     
    333       <ul id="tocnodes">
    334     <li id="tocstart">
    335       <xsl:choose><xsl:when test="string($oc)='0'">
    336           <a href="{$library_name}?a=d&amp;amp;c={$collName}&amp;amp;d={$d}&amp;amp;sib={$sib}&amp;amp;oc=1&amp;amp;p.s={$p.s}&amp;amp;p.sa={$p.sa}&amp;amp;p.a={$p.a}&amp;amp;p.c={$p.c}"><xsl:call-template name="closedfolderimg"><xsl:with-param name="title"><xsl:value-of select="'doc.open_toc'"/></xsl:with-param></xsl:call-template></a>
    337         </xsl:when>
    338         <xsl:otherwise><a href="{$library_name}?a=d&amp;amp;c={$collName}&amp;amp;d={$d}&amp;amp;sib={$sib}&amp;amp;oc=0&amp;amp;p.s={$p.s}&amp;amp;p.sa={$p.sa}&amp;amp;p.a={$p.a}&amp;amp;p.c={$p.c}"><xsl:call-template name="openfolderimg"><xsl:with-param name="title"><xsl:value-of select="'doc.close_toc'"/></xsl:with-param></xsl:call-template></a></xsl:otherwise></xsl:choose><span class="getTextFor doc.table_of_contents">&amp;amp;nbsp;</span>
    339       <xsl:if test="string($oc)!='0'">
    340         <ul class="tocnode">
    341           <xsl:for-each select="documentNode/documentNode[@nodeID]">
    342         <xsl:apply-templates select='.'><xsl:with-param name="collName" select="$collName"/><xsl:with-param name="ec" select="$ec"/><xsl:with-param name="p.a" select="$p.a"/><xsl:with-param name="p.s" select="$p.s"/><xsl:with-param name="p.sa" select="$p.sa"/><xsl:with-param name="p.c" select="$p.c"/></xsl:apply-templates>
    343           </xsl:for-each>
    344             </ul>
    345       </xsl:if>
    346         </li>
    347       </ul>
    348     </xsl:if>
    349   </xsl:template>
    350  
    351   <!-- each icon-title pair is a row in a table. children go in a table in another row -->
    352   <xsl:template match="documentNode">
    353     <xsl:param name="collName"/>
    354     <xsl:param name="ec"/>
    355     <xsl:param name="p.a"/>
    356     <xsl:param name="p.s"/>
    357     <xsl:param name="p.sa"/>
    358     <xsl:param name="p.c"/>
    359     <!-- Display the appropriate image, depending on the node type -->
    360     <li>
    361       <a><xsl:attribute name="href"><xsl:value-of select="$library_name"/>?a=d&amp;amp;c=<xsl:value-of select="$collName"/>&amp;amp;d=<xsl:value-of select="@nodeID"/><xsl:if test="documentNode">.pr</xsl:if>&amp;amp;sib=1<xsl:if test="string($ec) = '1'">&amp;amp;ec=1</xsl:if>&amp;amp;p.a=<xsl:value-of select="$p.a"/>&amp;amp;p.sa=<xsl:value-of select="$p.sa"/>&amp;amp;p.s=<xsl:value-of select="$p.s"/>&amp;amp;p.c=<xsl:value-of select="$p.c"/></xsl:attribute>
    362     <xsl:apply-templates select="." mode="displayNodeIcon"/>
    363       </a>
    364      
    365       <!-- Display associated title, bolded if the node has content -->
    366       <xsl:choose>
    367     <xsl:when test="nodeContent">
    368       <span class="bold"><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name='Title']"/></span>
    369     </xsl:when>
    370     <xsl:otherwise>
    371       <span><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name='Title']"/></span>
    372     </xsl:otherwise>
    373       </xsl:choose>
    374       <!-- Apply recursively to the children of this node -->
    375       <xsl:if test="documentNode[@nodeID]">
    376     <ul class="tocnode"> <xsl:apply-templates select="documentNode[@nodeID]">
    377         <xsl:with-param name="collName" select="$collName"/>
    378         <xsl:with-param name="ec" select="$ec"/>
    379         <xsl:with-param name="p.a" select="$p.a"/><xsl:with-param name="p.s" select="$p.s"/><xsl:with-param name="p.sa" select="$p.sa"/><xsl:with-param name="p.c" select="$p.c"/>
    380         <!--<xsl:with-param name="depth" select="$depth + 1"/>-->
    381       </xsl:apply-templates>
    382     </ul>
    383       </xsl:if>
    384     </li>
    385   </xsl:template>
    386  
    387   <!-- default content is to print the title and content of any documentNodes that have nodeContent -->
    388   <xsl:template name="documentContent">
    389     <div class="documenttext">
    390       <xsl:choose>
    391     <xsl:when test="@docType='simple'"><xsl:apply-templates select="nodeContent"/></xsl:when>
    392     <xsl:otherwise>
    393       <!--<xsl:apply-templates select="descendant-or-self::node()/documentNode" mode="content"/>-->
    394     </xsl:otherwise>
    395       </xsl:choose>
    396     </div>
    397   </xsl:template>
    398  
    399   <xsl:template match="documentNode" mode="content">
    400     <xsl:if test="nodeContent">
    401       <xsl:if test="metadataList/metadata[@name='Title']">
    402     <h3><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name='Title']"/></h3>
    403       </xsl:if>
    404       <xsl:apply-templates select="nodeContent"/>
    405     </xsl:if>
    406   </xsl:template>
    407 
    408   <!-- the actual text/content -->
    409   <xsl:template match="nodeContent">
    410     <xsl:for-each select="node()">
    411       <xsl:choose>
    412     <xsl:when test="not(name())">
    413       <xsl:value-of select="." disable-output-escaping="yes" />
    414     </xsl:when>
    415     <xsl:otherwise><xsl:apply-templates select="."/></xsl:otherwise>
    416       </xsl:choose>
    417     </xsl:for-each>
    418   </xsl:template>
    419  
    420   <xsl:template name="xmldocumentContentPeeling">
    421     <xsl:choose>
    422       <xsl:when test="@docType='simple'">
    423     <xsl:apply-templates select="nodeContent"/>
    424       </xsl:when>
    425       <xsl:otherwise>
    426     <xsl:call-template name="xmlpeelingContents" />
    427       </xsl:otherwise>
    428     </xsl:choose>
    429   </xsl:template>
    430  
    431   <xsl:template name="xmlpeelingContents">
    432     <xsl:if test="documentNode">
    433       <xsl:apply-templates select="documentNode" mode="xmlpeeling" />
    434     </xsl:if>
    435   </xsl:template>
    436 
    437   <xsl:template match="documentNode" mode="xmlpeeling">
    438     <!-- get title -->
    439     <xsl:choose>
    440       <xsl:when test="nodeContent">
    441     <xsl:text disable-output-escaping="yes">
    442       &amp;lt;Section&amp;gt;
    443       &amp;lt;Description&amp;gt;
    444       &amp;lt;Metadata name="Title"&amp;gt;
    445     </xsl:text>
    446     <xsl:value-of select="normalize-space(metadataList/metadata[@name='Title'])"/>
    447     <xsl:text disable-output-escaping="yes">
    448       &amp;lt;/Metadata&amp;gt;
    449       &amp;lt;/Description&amp;gt;
    450     </xsl:text>
    451     <xsl:value-of select="normalize-space(nodeContent)" disable-output-escaping="yes"/>
    452     <xsl:text disable-output-escaping="yes">&amp;lt;/Sec&amp;gt;</xsl:text>
    453       </xsl:when>
    454     </xsl:choose>
    455 
    456     <!-- recurse to the children -->
    457     <xsl:if test="documentNode">
    458       <xsl:apply-templates select="documentNode" mode="xmlpeeling" />
    459     </xsl:if>
    460 
    461     <!-- end the section -->
    462     <xsl:text disable-output-escaping="yes">
    463       &amp;lt;/Section&amp;gt;
    464     </xsl:text>
    465   </xsl:template>
    466  
    467   <!-- match any file nodes -->
    468   <xsl:template match="file">
    469     <xsl:variable name="httpPath" select="/page/pageResponse/collection/metadataList/metadata[@name='httpPath']"/>
    470     <xsl:choose>
    471       <xsl:when test="starts-with(@mimeType, 'image/')">
    472     <img src="{$httpPath}/{@href}"/>
    473       </xsl:when>
    474       <xsl:otherwise>
    475     <a href="{$httpPath}/{@href}"><xsl:value-of select="@href"/></a>
    476       </xsl:otherwise>
    477     </xsl:choose>
    478   </xsl:template>
    479  
    480   <!-- match any link nodes -->
    481   <xsl:template match="link">
    482     <xsl:variable name="collName" select="/page/pageRequest/paramList/param[@name='c']/@value"/>
    483     <xsl:variable name="actionargs">
    484       <xsl:choose>
    485     <xsl:when test="@type='document'">a=d</xsl:when>
    486     <xsl:when test="@type='query'">a=q&amp;amp;s=<xsl:value-of select="@service"/>&amp;amp;rt=rd</xsl:when>
    487     <xsl:otherwise>
    488     p
    489     </xsl:otherwise>
    490       </xsl:choose>
    491     </xsl:variable>
    492     <xsl:variable name="serviceargs">
    493       <xsl:for-each select="param">&amp;amp;s1.<xsl:value-of select="@name"/>=<xsl:value-of select="@value"/></xsl:for-each>
    494     </xsl:variable>
    495     <a href="{$library_name}?{$actionargs}&amp;amp;c={$collName}{$serviceargs}"><xsl:value-of disable-output-escaping="yes" select="."/></a>
    496   </xsl:template>
    497 
    498   <!-- match any annotations and make them span elements -->
    499   <xsl:template match="annotation">
    500     <span class="{@type}"><xsl:value-of disable-output-escaping="yes" select="."/></span>
    501   </xsl:template>
    502  
    503   <!-- paged naviagtion : INCOMPLETE!!-->
    504   <xsl:template name="pagedContents">
    505     <xsl:param name="collName"/>
    506     <xsl:variable name="pos" select="nodeStructureInfo/info[@name='siblingPosition']/@value"/>
    507     <xsl:variable name="length" select="nodeStructureInfo/info[@name='numSiblings']/@value"/>
    508     <xsl:variable name="children" select="nodeStructureInfo/info[@name='numChildren']/@value"/>
    509     <table>
    510       <xsl:choose>
    511     <xsl:when test="$pos=-1"><!-- a doc -->
    512       <tr valign="top">
    513         <td align="left">
    514         </td>
    515         <td align="center"><center>
    516         <b class="getTextFor doc.pages"></b>
    517           </center></td>
    518         <td align="right">
    519           <a href="{$library_name}?a=d&amp;amp;c={$collName}&amp;amp;d={@selectedNode}.fc"><img src="interfaces/default/images/more.gif" border="0" align="absbottom" /></a>
    520         </td>
    521       </tr>
    522     </xsl:when>
    523    
    524     <xsl:otherwise> <!-- an internal node -->     
    525       <tr valign="top">
    526         <td align="left">
    527           <xsl:if test=" not ( $pos = 1 )">
    528         <a href="{$library_name}?a=d&amp;amp;c={$collName}&amp;amp;d={@selectedNode}.ps"><img src="interfaces/default/images/less.gif" border="0" align="absbottom" /></a>
    529           </xsl:if>
    530         </td>
    531         <td align="center"><center>
    532         <b><xsl:attribute name="class"><xsl:value-of select="concat('getTextFor null this.innerText.doc.pageof|', $pos, ';', $length)"/></xsl:attribute></b>
    533           </center></td>
    534         <td align="right">
    535           <xsl:if test=" not($pos = $length)">
    536         <a href="{$library_name}?a=d&amp;amp;c={$collName}&amp;amp;d={@selectedNode}.ns"><img src="interfaces/default/images/more.gif" border="0" align="absbottom" /></a>
    537           </xsl:if>
    538         </td>
    539       </tr>
    540     </xsl:otherwise>
    541       </xsl:choose>
    542       <tr valign="middle">
    543     <td align='center' valign='top' colspan='3'>
    544       <form name="GotoForm" method="get" action="{$library_name}">
    545         <input type='hidden' name='a' value='d'/>
    546         <input type='hidden' name='c' value='{$collName}'/>
    547         <input type='hidden' name='d' value='{@selectedNode}'/>
    548         <input type="text" name="gp" size="3" maxlength="4"/>
    549         <input type="submit" class="getTextFor null this.value.doc.gotopage"></input>
    550       </form>
    551     </td>
    552       </tr>
    553     </table>
    554   </xsl:template>
    555  
    556   <xsl:template name="enrichServices">
    557     <xsl:param name="collName"/>
    558     <xsl:variable name="docID" select="/page/pageRequest/paramList/param[@name='d']/@value"/>
    559     <xsl:variable name="request-params" select="/page/pageRequest/paramList"/>
    560     <xsl:for-each select="../serviceList/service">
    561       <table border='1' cellspacing='0'>
    562     <tr><td>
    563         <p /><xsl:value-of select="displayItem[@name='name']"/><p/>
    564         <form name="EnrichForm" method="get" action="{$library_name}">
    565           <xsl:apply-templates select="paramList"/>
    566           <input type="hidden" name="a" value="d"/>
    567           <input type="hidden" name="d" value="{$docID}"/>
    568           <input type="hidden" name="c" value="{$collName}"/>
    569           <xsl:if test="$request-params/param[@name='sib']">
    570         <input type="hidden" name="sib"><xsl:attribute name="value"><xsl:value-of select="$request-params/param[@name='sib']/@value"/></xsl:attribute></input></xsl:if>
    571           <input type="hidden" name="s" value="{@name}"/>
    572           <input type="hidden" name="p.a"><xsl:attribute name="value"><xsl:value-of select="$request-params/param[@name='p.a']"/></xsl:attribute></input>
    573           <input type="hidden" name="p.sa"><xsl:attribute name="value"><xsl:value-of select="$request-params/param[@name='p.sa']"/></xsl:attribute></input>
    574           <input type="hidden" name="p.s"><xsl:attribute name="value"><xsl:value-of select="$request-params/param[@name='p.s']"/></xsl:attribute></input>
    575           <input type="hidden" name="end" value='1'/>
    576           <input type="submit"><xsl:attribute name="value"><xsl:value-of select="displayItem[@name='submit']"/></xsl:attribute></input>
    577         </form>
    578       </td></tr>
    579       </table>
    580     </xsl:for-each>
    581   </xsl:template>
    582 
    583   <xsl:template match="paramList" mode="hidden">
    584     <xsl:for-each select="param">
    585       <input type='hidden' name='{@name}' value='{@value}'/><xsl:text>
    586       </xsl:text>
    587     </xsl:for-each>
    588   </xsl:template>
    589  
    590   <xsl:template name="documentArrows">
    591     <xsl:param name="collName"/>
    592     <xsl:variable name="ed" select="/page/pageRequest/paramList/param[@name='ed']/@value"/>
    593    
    594     <div class="documentarrows">
    595       <xsl:if test="not(string($ed)='1')">
    596     <xsl:call-template name="documentArrow">
    597       <xsl:with-param name="collName" select="$collName"/>
    598       <xsl:with-param name="direction">back</xsl:with-param>
    599     </xsl:call-template>
    600     <xsl:call-template name="documentArrow">
    601       <xsl:with-param name="collName" select="$collName"/>
    602       <xsl:with-param name="direction">forward</xsl:with-param>
    603     </xsl:call-template>
    604       </xsl:if>
    605     </div>
    606    
    607   </xsl:template>
    608  
    609   <xsl:template name="documentArrow">
    610     <xsl:param name="collName"/>
    611     <xsl:param name="direction"/>
    612     <xsl:variable name="request-params" select="/page/pageRequest/paramList"/>
    613     <xsl:if test="$request-params/param[@name='dt']/@value != 'simple'"> 
    614       <a><xsl:attribute name="href"><xsl:value-of select="$library_name"/>?a=d&amp;amp;c=<xsl:value-of select="$collName"/>&amp;amp;d=<xsl:value-of select="@selectedNode"/><xsl:choose><xsl:when test="$direction='back'">.pp</xsl:when><xsl:otherwise>.np</xsl:otherwise></xsl:choose>&amp;amp;sib=1&amp;amp;p.s=<xsl:value-of select="$request-params/param[@name='p.s']/@value"/>&amp;amp;p.sa=<xsl:value-of select="$request-params/param[@name='p.sa']/@value"/>&amp;amp;p.a=<xsl:value-of select="$request-params/param[@name='p.a']/@value"/></xsl:attribute><xsl:choose><xsl:when test="$direction='back'"><img class="lessarrow" src="interfaces/default/images/less.gif" /></xsl:when><xsl:otherwise><img class="morearrow" src="interfaces/default/images/more.gif"  /></xsl:otherwise></xsl:choose></a>
    615     </xsl:if>
    616   </xsl:template>
    617 
    618   <xsl:template name="externalPage">
    619     <xsl:param name="external"/>
    620     <xsl:variable name="go_forward_link"><a class="getTextfor external.go_forward"><xsl:attribute name="href"><xsl:value-of select="$external"/></xsl:attribute></a></xsl:variable>
    621     <h2 class="getTextFor external.title"></h2>
    622     <p><xsl:attribute name="class"><xsl:value-of select="concat('getTextFor null this.innerText.external.text|', $go_forward_link)" /></xsl:attribute>
    623     </p>
    624   </xsl:template>
     285        <!-- expand contents -->
     286        <xsl:if test="@docType = 'hierarchy' and string(/page/pageResponse/format/gsf:option[@name='documentTOC']/@value) != 'false'">
     287            <li>
     288                <xsl:choose>
     289                    <xsl:when test="string($ec)='1'">
     290                        <a href="{$library_name}?a=d&amp;amp;d={$docID}&amp;amp;c={$collName}&amp;amp;sib={$sib}&amp;amp;ec=0" class="getTextFor doc.contract_contents_b this.title.doc.contract_contents_tip"></a>
     291                    </xsl:when>
     292                    <xsl:otherwise>
     293                        <a  href="{$library_name}?a=d&amp;amp;d={$docID}&amp;amp;c={$collName}&amp;amp;sib={$sib}&amp;amp;ec=1" class="getTextFor doc.expand_contents_b this.title.doc.expand_contents_tip"></a>
     294                    </xsl:otherwise>
     295                </xsl:choose>
     296            </li>
     297        </xsl:if>
     298
     299        <!-- detach page -->
     300        <xsl:variable name="paramList" select="/page/pageRequest/paramList"/>
     301        <li>
     302            <a target="_blank" class="getTextFor doc.detach_page_b this.title.doc.detach_page_tip">
     303                <xsl:attribute name="href">
     304                    <xsl:value-of select="$library_name"/>?a=d&amp;amp;d=<xsl:value-of select="$docID"/>&amp;amp;c=<xsl:value-of select="$collName"/>&amp;amp;sib=<xsl:value-of select="$sib"/>&amp;amp;dt=<xsl:value-of select="$paramList/param[@name='dt']/@value"/>&amp;amp;ec=<xsl:value-of select="$paramList/param[@name='ec']/@value"/>&amp;amp;et=<xsl:value-of select="$paramList/param[@name='et']/@value"/>&amp;amp;p.a=<xsl:value-of select="$paramList/param[@name='p.a']/@value"/>&amp;amp;p.s=<xsl:value-of select="$paramList/param[@name='p.s']/@value"/>&amp;amp;p.sa=<xsl:value-of select="$paramList/param[@name='p.sa']/@value"/>
     305                </xsl:attribute>
     306            </a>
     307        </li>
     308    </xsl:template>
     309
     310    <xsl:template name="TOC">
     311        <xsl:param name="collName"/>
     312        <xsl:choose>
     313            <xsl:when test="@docType='hierarchy'">
     314                <xsl:call-template name="hierarchicalContents">
     315                    <xsl:with-param name="collName" select="$collName"/>
     316                </xsl:call-template>
     317            </xsl:when>
     318            <xsl:when test="@docType='paged'">
     319                <xsl:call-template name="pagedContents">
     320                    <xsl:with-param name="collName" select="$collName"/>
     321                </xsl:call-template>
     322            </xsl:when>
     323        </xsl:choose>
     324    </xsl:template>
     325 
     326    <xsl:template name="hierarchicalContents">
     327        <xsl:param name="collName"/>
     328        <xsl:variable name="oc" select="/page/pageRequest/paramList/param[@name='oc']/@value"/>
     329        <xsl:variable name="d" select="/page/pageRequest/paramList/param[@name='d']/@value"/>
     330        <xsl:variable name="sib" select="/page/pageRequest/paramList/param[@name='sib']/@value"/>
     331        <xsl:variable name="ec" select="/page/pageRequest/paramList/param[@name='ec']/@value"/>
     332        <xsl:variable name="p.s" select="/page/pageRequest/paramList/param[@name='p.s']/@value"/>
     333        <xsl:variable name="p.sa" select="/page/pageRequest/paramList/param[@name='p.sa']/@value"/>
     334        <xsl:variable name="p.a" select="/page/pageRequest/paramList/param[@name='p.a']/@value"/>
     335        <xsl:variable name="p.c"><xsl:choose><xsl:when test="/page/pageRequest/paramList/param[@name='p.c']"><xsl:value-of select="/page/pageRequest/paramList/param[@name='p.c']/@value"/></xsl:when><xsl:otherwise><xsl:value-of select="$collName"/></xsl:otherwise></xsl:choose></xsl:variable>
     336        <script type="text/javascript">
     337            <xsl:text>
     338                // Load up the initial document using AJAX!
     339                var initialHash = '</xsl:text>
     340                <xsl:value-of select="$d" /><xsl:text>';
     341            </xsl:text>
     342        </script>
     343        <xsl:if test="documentNode[@nodeID]">     
     344            <ul id="tocnodes">
     345                <li id="tocstart">
     346                    <xsl:choose>
     347                        <xsl:when test="string($oc)='0'">
     348                            <a href="{$library_name}?a=d&amp;amp;c={$collName}&amp;amp;d={$d}&amp;amp;sib={$sib}&amp;amp;oc=1&amp;amp;p.s={$p.s}&amp;amp;p.sa={$p.sa}&amp;amp;p.a={$p.a}&amp;amp;p.c={$p.c}"><xsl:call-template name="closedfolderimg"><xsl:with-param name="title"><xsl:value-of select="'doc.open_toc'"/></xsl:with-param></xsl:call-template></a>
     349                        </xsl:when>
     350                        <xsl:otherwise>
     351                            <a href="{$library_name}?a=d&amp;amp;c={$collName}&amp;amp;d={$d}&amp;amp;sib={$sib}&amp;amp;oc=0&amp;amp;p.s={$p.s}&amp;amp;p.sa={$p.sa}&amp;amp;p.a={$p.a}&amp;amp;p.c={$p.c}"><xsl:call-template name="openfolderimg"><xsl:with-param name="title"><xsl:value-of select="'doc.close_toc'"/></xsl:with-param></xsl:call-template></a>
     352                        </xsl:otherwise>
     353                    </xsl:choose>
     354                    <span class="getTextFor doc.table_of_contents">&amp;amp;nbsp;</span>
     355                    <xsl:if test="string($oc)!='0'">
     356                        <ul class="tocnode">
     357                            <xsl:for-each select="documentNode/documentNode[@nodeID]">
     358                                <xsl:apply-templates select='.'><xsl:with-param name="collName" select="$collName"/><xsl:with-param name="ec" select="$ec"/><xsl:with-param name="p.a" select="$p.a"/><xsl:with-param name="p.s" select="$p.s"/><xsl:with-param name="p.sa" select="$p.sa"/><xsl:with-param name="p.c" select="$p.c"/></xsl:apply-templates>
     359                            </xsl:for-each>
     360                        </ul>
     361                    </xsl:if>
     362                </li>
     363            </ul>
     364        </xsl:if>
     365    </xsl:template>
     366 
     367    <!-- each icon-title pair is a row in a table. children go in a table in another row -->
     368    <xsl:template match="documentNode">
     369        <xsl:param name="collName"/>
     370        <xsl:param name="ec"/>
     371        <xsl:param name="p.a"/>
     372        <xsl:param name="p.s"/>
     373        <xsl:param name="p.sa"/>
     374        <xsl:param name="p.c"/>
     375        <!-- Display the appropriate image, depending on the node type -->
     376        <li>
     377            <a><xsl:attribute name="href"><xsl:value-of select="$library_name"/>?a=d&amp;amp;c=<xsl:value-of select="$collName"/>&amp;amp;d=<xsl:value-of select="@nodeID"/><xsl:if test="documentNode">.pr</xsl:if>&amp;amp;sib=1<xsl:if test="string($ec) = '1'">&amp;amp;ec=1</xsl:if>&amp;amp;p.a=<xsl:value-of select="$p.a"/>&amp;amp;p.sa=<xsl:value-of select="$p.sa"/>&amp;amp;p.s=<xsl:value-of select="$p.s"/>&amp;amp;p.c=<xsl:value-of select="$p.c"/></xsl:attribute>
     378                <xsl:apply-templates select="." mode="displayNodeIcon"/>
     379            </a>
     380         
     381            <!-- Display associated title, bolded if the node has content -->
     382            <xsl:choose>
     383                <xsl:when test="nodeContent">
     384                    <span class="bold"><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name='Title']"/></span>
     385                </xsl:when>
     386                <xsl:otherwise>
     387                    <span><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name='Title']"/></span>
     388                </xsl:otherwise>
     389            </xsl:choose>
     390            <!-- Apply recursively to the children of this node -->
     391            <xsl:if test="documentNode[@nodeID]">
     392                <ul class="tocnode">
     393                    <xsl:apply-templates select="documentNode[@nodeID]">
     394                        <xsl:with-param name="collName" select="$collName"/>
     395                        <xsl:with-param name="ec" select="$ec"/>
     396                        <xsl:with-param name="p.a" select="$p.a"/><xsl:with-param name="p.s" select="$p.s"/><xsl:with-param name="p.sa" select="$p.sa"/><xsl:with-param name="p.c" select="$p.c"/>
     397                        <!--<xsl:with-param name="depth" select="$depth + 1"/>-->
     398                    </xsl:apply-templates>
     399                </ul>
     400            </xsl:if>
     401        </li>
     402    </xsl:template>
     403 
     404    <!-- default content is to print the title and content of any documentNodes that have nodeContent -->
     405    <xsl:template name="documentContent">
     406        <div class="documenttext">
     407            <xsl:choose>
     408                <xsl:when test="@docType='simple'"><xsl:apply-templates select="nodeContent"/></xsl:when>
     409                <xsl:otherwise>
     410                    <!--<xsl:apply-templates select="descendant-or-self::node()/documentNode" mode="content"/>-->
     411                </xsl:otherwise>
     412            </xsl:choose>
     413        </div>
     414    </xsl:template>
     415 
     416    <xsl:template match="documentNode" mode="content">
     417        <xsl:if test="nodeContent">
     418            <xsl:if test="metadataList/metadata[@name='Title']">
     419                <h3><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name='Title']"/></h3>
     420            </xsl:if>
     421            <xsl:apply-templates select="nodeContent"/>
     422        </xsl:if>
     423    </xsl:template>
     424
     425    <!-- the actual text/content -->
     426    <xsl:template match="nodeContent">
     427        <xsl:for-each select="node()">
     428            <xsl:choose>
     429                <xsl:when test="not(name())">
     430                    <xsl:value-of select="." disable-output-escaping="yes" />
     431                </xsl:when>
     432                <xsl:otherwise><xsl:apply-templates select="."/></xsl:otherwise>
     433            </xsl:choose>
     434        </xsl:for-each>
     435    </xsl:template>
     436 
     437    <xsl:template name="xmldocumentContentPeeling">
     438        <xsl:choose>
     439            <xsl:when test="@docType='simple'">
     440                <xsl:apply-templates select="nodeContent"/>
     441            </xsl:when>
     442            <xsl:otherwise>
     443                <xsl:call-template name="xmlpeelingContents" />
     444            </xsl:otherwise>
     445        </xsl:choose>
     446    </xsl:template>
     447 
     448    <xsl:template name="xmlpeelingContents">
     449        <xsl:if test="documentNode">
     450            <xsl:apply-templates select="documentNode" mode="xmlpeeling" />
     451        </xsl:if>
     452    </xsl:template>
     453
     454    <xsl:template match="documentNode" mode="xmlpeeling">
     455        <!-- get title -->
     456        <xsl:if test="nodeContent">
     457            <xsl:text disable-output-escaping="yes">
     458                &lt;Section&gt;
     459                &lt;Description&gt;
     460                &lt;Metadata name="Title"&gt;
     461            </xsl:text>
     462            <xsl:value-of select="normalize-space(metadataList/metadata[@name='Title'])"/>
     463            <xsl:text disable-output-escaping="yes">
     464                &lt;/Metadata&gt;
     465                &lt;/Description&gt;
     466            </xsl:text>
     467            <xsl:value-of select="normalize-space(nodeContent)" disable-output-escaping="yes"/>
     468            <xsl:text disable-output-escaping="yes">
     469                &lt;/Section&gt;
     470            </xsl:text>
     471        </xsl:if>
     472
     473        <!-- recurse to the children -->
     474        <xsl:if test="documentNode">
     475            <xsl:apply-templates select="documentNode" mode="xmlpeeling" />
     476        </xsl:if>
     477
     478        <xsl:if test="nodeContent">
     479            <!-- end the section -->
     480            <xsl:text disable-output-escaping="yes">
     481                &amp;lt;/Section&amp;gt;
     482            </xsl:text>
     483        </xsl:if>
     484    </xsl:template>
     485 
     486    <!-- match any file nodes -->
     487    <xsl:template match="file">
     488        <xsl:variable name="httpPath" select="/page/pageResponse/collection/metadataList/metadata[@name='httpPath']"/>
     489        <xsl:choose>
     490            <xsl:when test="starts-with(@mimeType, 'image/')">
     491                <img src="{$httpPath}/{@href}"/>
     492            </xsl:when>
     493            <xsl:otherwise>
     494                <a href="{$httpPath}/{@href}"><xsl:value-of select="@href"/></a>
     495            </xsl:otherwise>
     496        </xsl:choose>
     497    </xsl:template>
     498 
     499    <!-- match any link nodes -->
     500    <xsl:template match="link">
     501        <xsl:variable name="collName" select="/page/pageRequest/paramList/param[@name='c']/@value"/>
     502        <xsl:variable name="actionargs">
     503            <xsl:choose>
     504                <xsl:when test="@type='document'">a=d</xsl:when>
     505                <xsl:when test="@type='query'">a=q&amp;amp;s=<xsl:value-of select="@service"/>&amp;amp;rt=rd</xsl:when>
     506                <xsl:otherwise>
     507                    p
     508                </xsl:otherwise>
     509            </xsl:choose>
     510        </xsl:variable>
     511        <xsl:variable name="serviceargs">
     512            <xsl:for-each select="param">&amp;amp;s1.<xsl:value-of select="@name"/>=<xsl:value-of select="@value"/></xsl:for-each>
     513        </xsl:variable>
     514        <a href="{$library_name}?{$actionargs}&amp;amp;c={$collName}{$serviceargs}"><xsl:value-of disable-output-escaping="yes" select="."/></a>
     515    </xsl:template>
     516
     517    <!-- match any annotations and make them span elements -->
     518    <xsl:template match="annotation">
     519        <span class="{@type}"><xsl:value-of disable-output-escaping="yes" select="."/></span>
     520    </xsl:template>
     521 
     522    <!-- paged naviagtion : INCOMPLETE!!-->
     523    <xsl:template name="pagedContents">
     524        <xsl:param name="collName"/>
     525        <xsl:variable name="pos" select="nodeStructureInfo/info[@name='siblingPosition']/@value"/>
     526        <xsl:variable name="length" select="nodeStructureInfo/info[@name='numSiblings']/@value"/>
     527        <xsl:variable name="children" select="nodeStructureInfo/info[@name='numChildren']/@value"/>
     528        <table>
     529            <xsl:choose>
     530                <xsl:when test="$pos=-1"><!-- a doc -->
     531                    <tr valign="top">
     532                        <td align="left">
     533                        </td>
     534                        <td align="center">
     535                            <center>
     536                                <b class="getTextFor doc.pages"></b>
     537                            </center>
     538                        </td>
     539                        <td align="right">
     540                            <a href="{$library_name}?a=d&amp;amp;c={$collName}&amp;amp;d={@selectedNode}.fc"><img src="interfaces/default/images/more.gif" border="0" align="absbottom" /></a>
     541                        </td>
     542                    </tr>
     543                </xsl:when>
     544
     545                <xsl:otherwise> <!-- an internal node -->     
     546                    <tr valign="top">
     547                        <td align="left">
     548                            <xsl:if test=" not ( $pos = 1 )">
     549                                <a href="{$library_name}?a=d&amp;amp;c={$collName}&amp;amp;d={@selectedNode}.ps"><img src="interfaces/default/images/less.gif" border="0" align="absbottom" /></a>
     550                            </xsl:if>
     551                        </td>
     552                        <td align="center">
     553                            <center>
     554                                <b><xsl:attribute name="class"><xsl:value-of select="concat('getTextFor null this.innerText.doc.pageof|', $pos, ';', $length)"/></xsl:attribute></b>
     555                            </center>
     556                        </td>
     557                        <td align="right">
     558                            <xsl:if test=" not($pos = $length)">
     559                                <a href="{$library_name}?a=d&amp;amp;c={$collName}&amp;amp;d={@selectedNode}.ns"><img src="interfaces/default/images/more.gif" border="0" align="absbottom" /></a>
     560                            </xsl:if>
     561                        </td>
     562                    </tr>
     563                </xsl:otherwise>
     564            </xsl:choose>
     565            <tr valign="middle">
     566                <td align='center' valign='top' colspan='3'>
     567                    <form name="GotoForm" method="get" action="{$library_name}">
     568                        <input type='hidden' name='a' value='d'/>
     569                        <input type='hidden' name='c' value='{$collName}'/>
     570                        <input type='hidden' name='d' value='{@selectedNode}'/>
     571                        <input type="text" name="gp" size="3" maxlength="4"/>
     572                        <input type="submit" class="getTextFor null this.value.doc.gotopage"></input>
     573                    </form>
     574                </td>
     575            </tr>
     576        </table>
     577    </xsl:template>
     578 
     579    <xsl:template name="enrichServices">
     580        <xsl:param name="collName"/>
     581        <xsl:variable name="docID" select="/page/pageRequest/paramList/param[@name='d']/@value"/>
     582        <xsl:variable name="request-params" select="/page/pageRequest/paramList"/>
     583        <xsl:for-each select="../serviceList/service">
     584             <table border='1' cellspacing='0'>
     585                <tr><td>
     586                    <p /><xsl:value-of select="displayItem[@name='name']"/><p/>
     587                    <form name="EnrichForm" method="get" action="{$library_name}">
     588                        <xsl:apply-templates select="paramList"/>
     589                        <input type="hidden" name="a" value="d"/>
     590                        <input type="hidden" name="d" value="{$docID}"/>
     591                        <input type="hidden" name="c" value="{$collName}"/>
     592                        <xsl:if test="$request-params/param[@name='sib']">
     593                        <input type="hidden" name="sib"><xsl:attribute name="value"><xsl:value-of select="$request-params/param[@name='sib']/@value"/></xsl:attribute></input></xsl:if>
     594                        <input type="hidden" name="s" value="{@name}"/>
     595                        <input type="hidden" name="p.a"><xsl:attribute name="value"><xsl:value-of select="$request-params/param[@name='p.a']"/></xsl:attribute></input>
     596                        <input type="hidden" name="p.sa"><xsl:attribute name="value"><xsl:value-of select="$request-params/param[@name='p.sa']"/></xsl:attribute></input>
     597                        <input type="hidden" name="p.s"><xsl:attribute name="value"><xsl:value-of select="$request-params/param[@name='p.s']"/></xsl:attribute></input>
     598                        <input type="hidden" name="end" value='1'/>
     599                        <input type="submit"><xsl:attribute name="value"><xsl:value-of select="displayItem[@name='submit']"/></xsl:attribute></input>
     600                    </form>
     601                </td></tr>
     602             </table>
     603        </xsl:for-each>
     604    </xsl:template>
     605
     606    <xsl:template match="paramList" mode="hidden">
     607        <xsl:for-each select="param">
     608            <input type='hidden' name='{@name}' value='{@value}'/><xsl:text>
     609            </xsl:text>
     610        </xsl:for-each>
     611    </xsl:template>
     612 
     613    <xsl:template name="documentArrows">
     614        <xsl:param name="collName"/>
     615        <xsl:variable name="ed" select="/page/pageRequest/paramList/param[@name='ed']/@value"/>
     616
     617        <div class="documentarrows">
     618            <xsl:if test="not(string($ed)='1')">
     619                <xsl:call-template name="documentArrow">
     620                    <xsl:with-param name="collName" select="$collName"/>
     621                    <xsl:with-param name="direction">back</xsl:with-param>
     622                </xsl:call-template>
     623                <xsl:call-template name="documentArrow">
     624                    <xsl:with-param name="collName" select="$collName"/>
     625                    <xsl:with-param name="direction">forward</xsl:with-param>
     626                </xsl:call-template>
     627            </xsl:if>
     628        </div>
     629
     630    </xsl:template>
     631 
     632    <xsl:template name="documentArrow">
     633        <xsl:param name="collName"/>
     634        <xsl:param name="direction"/>
     635        <xsl:variable name="request-params" select="/page/pageRequest/paramList"/>
     636        <xsl:if test="$request-params/param[@name='dt']/@value != 'simple'"> 
     637            <a><xsl:attribute name="href"><xsl:value-of select="$library_name"/>?a=d&amp;amp;c=<xsl:value-of select="$collName"/>&amp;amp;d=<xsl:value-of select="@selectedNode"/><xsl:choose><xsl:when test="$direction='back'">.pp</xsl:when><xsl:otherwise>.np</xsl:otherwise></xsl:choose>&amp;amp;sib=1&amp;amp;p.s=<xsl:value-of select="$request-params/param[@name='p.s']/@value"/>&amp;amp;p.sa=<xsl:value-of select="$request-params/param[@name='p.sa']/@value"/>&amp;amp;p.a=<xsl:value-of select="$request-params/param[@name='p.a']/@value"/></xsl:attribute><xsl:choose><xsl:when test="$direction='back'"><img class="lessarrow" src="interfaces/default/images/less.gif" /></xsl:when><xsl:otherwise><img class="morearrow" src="interfaces/default/images/more.gif"  /></xsl:otherwise></xsl:choose></a>
     638        </xsl:if>
     639    </xsl:template>
     640
     641    <xsl:template name="externalPage">
     642        <xsl:param name="external"/>
     643        <xsl:variable name="go_forward_link"><a class="getTextfor external.go_forward"><xsl:attribute name="href"><xsl:value-of select="$external"/></xsl:attribute></a></xsl:variable>
     644        <h2 class="getTextFor external.title"></h2>
     645        <p><xsl:attribute name="class"><xsl:value-of select="concat('getTextFor null this.innerText.external.text|', $go_forward_link)" /></xsl:attribute>
     646        </p>
     647    </xsl:template>
    625648
    626649</xsl:stylesheet>
  • main/trunk/greenstone3/web/interfaces/oran/style/core.css

    r23989 r24009  
    7373}
    7474
     75.classifierContainer {
     76    padding-left:1.5em;
     77}
     78
    7579.icon{
    76     background-repeat: no-repeat;
     80    cursor:pointer;
     81    padding:2px;
     82}
     83
     84.emptyIcon {
    7785    height:16px;
    7886    width:16px;
    79     cursor:pointer;
    80 }
    81 
    82 .toggleImageExpand {
    83     background-image: url('../images/expand.png');
    84     background-position: 2px 2px;
    85 }
    86 
    87 .toggleImageCollapse {
    88     background-image: url('../images/collapse.png');
    89     background-position: 2px 2px;
    90 }
    91 
    92 .toggleImagePage {
    93     background-image: url('../images/page.png');
    94     background-position: 2px 2px;
    95 }
    96 
    97 .toggleImageChapter {
    98     background-image: url('../images/chapter.png');
    99 }
    100 
    101 .realisticBookIcon {
     87}
     88
     89#rbOptionDiv {
    10290    background-repeat: no-repeat;
    10391    background-image: url('../images/rbook.png');
     
    10694}
    10795
     96#highlightOptionDiv {
     97    background-repeat: no-repeat;
     98    background-image: url('../images/hl.png');
     99    height: 32px;
     100    width: 32px;
     101}
     102
     103.optionCheckBox {
     104    margin-left:35px;
     105    margin-top:10px;
     106}
     107
     108#bookdiv {
     109   
     110}
     111
    108112.backToTop {
    109113    font-size:0.7em;
    110114    padding-left: 2em;
     115    text-align:center;
     116}
     117
     118#prevArrowTD {
     119    text-align:right;
     120    width:10%;
     121}
     122
     123#nextArrowTD {
     124    text-align:left;
     125    width:10%;
     126}
     127
     128#prevTD {
     129    text-align:left;
     130    width:20%;
     131}
     132
     133#nextTD {
     134    text-align:right;
     135    width:20%;
     136}
     137
     138#searchResultNavTable {
     139    width:100%;
     140}
     141
     142#searchResultsStatusBar {
    111143    text-align:center;
    112144}
     
    152184.viewOptions {
    153185    width: 100%;
    154     text-align:center;
    155186    background:#008800;
    156187}
    157188
    158189.viewOptions td {
    159     padding-top:4px;
    160     padding-bottom:4px;
     190    padding: 5px;
    161191}
    162192
     
    205235    position: relative;
    206236    display: block;
    207     height: 30px;
    208237    background: transparent url('../images/gsdlhead.gif') scroll no-repeat left top;
    209238    margin: 0 auto;
     
    212241    font-size: 70%;
    213242    color: #fff;
     243    padding-top:5px;
     244    padding-bottom:5px;
    214245}
    215246
     
    252283
    253284#quicksearcharea table{
    254     font-size:10px;
     285    font-size:70%;
    255286    margin:0;
    256287    float: right;
     
    258289
    259290#quicksearcharea a{
    260     font-size: 11px;
    261291    color:white;
    262292    text-transform:lowercase;
     
    416446#results .document a { background-image: url('../images/book.png'); }
    417447#results .document a:visited { background-image: url('../images/book-visited.png'); color: #999; }
    418 
    419448#results .shelf>a { background-image: url('../images/bookshelf.png'); }
     449c
    420450
    421451/* corners of the banner */
     
    453483a:link, a:hover, a:active, a:visited { color: #050; }
    454484
    455 /*
    456 
    457 ul li>select, ul li>input {
    458   padding: 0;
    459   margin-left:5px;
    460 }
    461 
    462 
    463 
    464 div#banner ul, ul#resultlist, ul#tocnodes, ul#docbuttons, ul.tocnode, ul#bannerlist, ul#navbarlist, ul#collectionlist, ul#servicelist, ul#classifierlist, ul#classifiernodelist, ul#queryitemlist{
    465   list-style-type:none;
    466   margin:0;
    467   padding:0;
    468 }
    469 
    470 div#banner ul li, ul#bannerlist li, ul#navbarlist li {
    471   display: inline;
    472   margin:0;
    473   padding:0;   
    474 }
    475 
    476 
    477 
    478 div#banner p {
    479   margin:0;
    480   padding: 0;
    481   float:left;
    482   font-size: 16px;
    483   text-align: left;
    484   overflow:hidden   
    485 }
    486 
    487 div#banner p a {
    488   background-image: url('../images/banner_bg.png');
    489   background-repeat: repeat-y;
    490 }
    491 
    492 
    493 div#banner ul{
    494   margin:0;
    495   padding:0;
    496   float:right;
    497   font-size: 12px; 
    498 }
    499 
    500 div#banner a{
    501   text-decoration: none;
    502   color:#000000;
    503 }
    504 
    505 
    506 
    507 ul#bannerlist li a {
    508   padding: 0 10px 0 10px;
    509   text-decoration: none;
    510 }
    511 
    512 ul#bannerlist li a:link, ul#bannerlist li a:visited
    513 {
    514  background-color: #DEE79C;
    515  background-image: url('../images/bg_off.png');
    516  text-decoration: none
    517 }
    518 
    519 ul#bannerlist li a:hover{
    520  background-color: #FFFF66;
    521  background-image: url('../images/bg_on.png') ;
    522  text-decoration: none
    523 }
    524 
    525 
    526 div#navbar{
    527   clear:both;
    528 }
    529 
    530 ul#navbarlist{
    531   margin:0;
    532   padding:0;
    533   list-style-type: none;
    534   text-align:center;
    535   width: 100%;
    536   font-size: 80%;
    537   background-image: url('../images/bg_green.png');   
    538   background-color: #99CC99
    539  }
    540 
    541 ul#navbarlist li a {
    542   padding: 0 20px 0 20px;
    543   margin: 0;
    544   color: #000000;
    545   text-decoration: none;
    546 }
    547 
    548 ul#navbarlist li a:link, ul#navbarlist li a:visited{
    549    background-image: url('../images/bg_off.png') ;
    550  }
    551 
    552 ul#navbarlist li a:hover{
    553   background-image: url('../images/bg_on.png') ;
    554 }
    555 
    556 
    557 ul#collectionlist li, ul#servicelist li{
    558   display:block;
    559   padding:0;
    560   margin: .2em 0 0 0;
    561   overflow:hidden;
    562 }
    563 
    564 
    565 ul#collectionlist img{
    566   margin:0;
    567   padding:0;
    568   width: 150px;
    569   height: 45px;
    570   border: 1px solid black;
    571   background-image: url('../images/collectimg_bg.png');
    572   background-repeat: repeat-y;
    573   overflow:hidden
    574 }
    575 
    576 ul#collectionlist li a.noimage{
    577   display: block;
    578   margin:0;
    579   width: 145px;
    580   height: 40px;
    581   border: 1px solid black;
    582   background-image: url('../images/collectimg_bg.png');
    583   background-repeat: repeat-y;
    584   overflow:hidden; padding-left:5px; padding-right:0; padding-top:5px; padding-bottom:0
    585 
    586 }
    587 
    588 ul#collectionlist li a{
    589   font-size: 16px;
    590   color: #000000;
    591   text-decoration: none; 
    592   font-weight: bold;
    593 }
    594 
    595 ul#servicelist li a{
    596   margin:0 .5em 0 0;
    597 }
    598 
    599 ul#queryitemlist li{
    600   display:block;
    601   margin: .2em 0 .2em 0;
    602 }
    603 
    604 ul#classifierlist li{
    605   list-style: none;
    606   margin: 0 0 5px 0;
    607   padding: 0;
    608   display: block;
    609   color:#000;
    610 }
    611 
    612 ul#classifierlist li#activeclassifier{
    613   font-weight:bold;
    614   padding: 0 0 0 5px;
    615   margin:0 0 5px 0;
    616 }
    617 
    618  ul#classifierlist li a:link, ul#classifierlist li a:visited 
    619 {
    620    display:block;
    621    margin:0;
    622    background-image: url('../images/bg_off.png');
    623    text-decoration: none;
    624    color:#000;
    625    width:100%; padding-left:5px; padding-right:0; padding-top:2px; padding-bottom:2px
    626  }
    627 
    628 ul#classifierlist li a:hover, ul#classifierlist li a:active
    629 {
    630   display:block;
    631   margin:0;
    632   background-image: url('../images/bg_on.png');
    633   text-decoration: none; padding-left:5px; padding-right:0; padding-top:2px; padding-bottom:2px
    634  
    635 }
    636 
    637 ul#classifierlist{
    638    float:left;
    639    font-size: 14px;
    640    text-align: left;
    641    width: 15%;
    642    margin:0;
    643    padding:0;
    644 }
    645 
    646 div#classifiers{
    647   float:left;
    648   width: 75%;
    649   margin:0;
    650   padding:0 0 0 10px;
    651  }
    652 
    653 ul#classifiernodelist li{
    654   list-style: none;
    655   margin: 0;
    656   padding: 5px 0 0 0;
    657   display: block;
    658  }
    659 
    660 ul.childrenlist{
    661   margin: 0 0 0 0;
    662   padding: 0 0 0 20px;
    663   display: block;
    664   width: 100%;
    665 }
    666 
    667 div#content{
    668  clear: both;
    669  overflow: hidden;
    670  margin: .2em 0 0 0;
    671 }
    672 
    673485/* bg image set in style macro */
    674486div.divbar {
     
    703515  display:block;
    704516}
    705 
    706 
    707517
    708518div#documentheading{
  • main/trunk/greenstone3/web/interfaces/oran/transform/document-scripts.xsl

    r23989 r24009  
    1111        <script type="text/javascript">
    1212            <xsl:text disable-output-escaping="yes">
     13                var collapseImageURL = "</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'collapse_image')"/><xsl:text disable-output-escaping="yes">";
     14                var expandImageURL = "</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'expand_image')"/><xsl:text disable-output-escaping="yes">";
     15                var chapterImageURL = "</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'chapter_image')"/><xsl:text disable-output-escaping="yes">";
     16                var pageImageURL = "</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'page_image')"/><xsl:text disable-output-escaping="yes">";
     17               
    1318                function toggleSection(sectionID)
    1419                {
     
    2126                    if(docElem.style.display == "none")
    2227                    {
    23                         var imageClass = (docToggleElem.getAttribute("class").indexOf("leafNode") != -1) ? "icon toggleImageCollapse leafNode" : "icon toggleImageCollapse";
    24                        
    2528                        docElem.style.display = "block";
    26                         docToggleElem.setAttribute("class", imageClass);
     29                        docToggleElem.setAttribute("src", collapseImageURL);
    2730                       
    2831                        if(tocToggleElem)
    2932                        {
    30                             tocToggleElem.setAttribute("class", imageClass);
     33                            tocToggleElem.setAttribute("src", collapseImageURL);
    3134                        }
    3235                       
     
    4144                       
    4245                        //Use the page image if this is a leaf node and the chapter image if it not
    43                         //var imageClass = (docToggleElem.getAttribute("class").indexOf("leafNode") != -1) ? "icon toggleImagePage leafNode" : "icon toggleImageChapter";
    44                         var imageClass = (docToggleElem.getAttribute("class").indexOf("leafNode") != -1) ? "icon toggleImageExpand leafNode" : "icon toggleImageExpand";
    45                         docToggleElem.setAttribute("class", imageClass);
     46                        docToggleElem.setAttribute("src", expandImageURL);
    4647                       
    4748                        if(tocToggleElem)
    4849                        {
    49                             tocToggleElem.setAttribute("class", imageClass);
     50                            tocToggleElem.setAttribute("src", expandImageURL);
    5051                        }
    5152                       
     
    132133                   
    133134                    var option = document.getElementById("highlightOption");
    134                     option.innerHTML = "No Highlighting";
    135                     option.setAttribute("href", "javascript:removeHighlight();");
     135                    option.setAttribute("onclick", "removeHighlight();");
    136136                }
    137137               
     
    149149                   
    150150                    var option = document.getElementById("highlightOption");
    151                     option.innerHTML = "Highlighting";
    152                     option.setAttribute("href", "javascript:addHighlight();");
     151                    option.setAttribute("onclick", "addHighlight();");
    153152                }
    154153            </xsl:text>
     
    157156   
    158157    <xsl:template name="realisticBooksScript">
    159         <div id="bookdiv"/>
    160158        <script type="text/javascript">
    161159            <xsl:text disable-output-escaping="yes">
     160                function bookInit()
     161                {
     162                    loadBook();
     163                    hideText();
     164                    showBook();
     165                    swapLinkJavascript(false);
     166                }
     167               
     168                function hideText()
     169                {
     170                    var textDiv = document.getElementById("gs-document-text");
     171                    textDiv.style.display = "none";
     172                }
     173               
     174                function showText()
     175                {
     176                    var textDiv = document.getElementById("gs-document-text");
     177                    textDiv.style.display = "block";
     178                }
     179               
     180                function hideBook()
     181                {
     182                    var bookDiv = document.getElementById("bookdiv");
     183                    bookDiv.style.visibility = "hidden";
     184                    bookDiv.style.height = "0px";
     185                }
     186               
     187                function showBook()
     188                {
     189                    var bookDiv = document.getElementById("bookdiv");
     190                    bookDiv.style.visibility = "visible";
     191                    bookDiv.style.height = "600px";
     192                }
    162193               
    163194                //Helper function to create param elements
     
    170201                }
    171202               
    172                 //Work out the URL to the cover image and the document
    173                 var img_cover = '</xsl:text><xsl:value-of select="/page/pageResponse/collection/metadataList/metadata[@name='httpPath']"/>/index/assoc/<xsl:value-of select="metadataList/metadata[@name='assocfilepath']"/>/cover.jpg<xsl:text disable-output-escaping="yes">';
    174                 var doc_url = document.URL;
    175                 doc_url = doc_url.replace(/(&amp;|\?)book=[a-z]+/gi,'');
    176                 doc_url += '&amp;book=flashxml';   
    177                
    178                 //The outer OBJECT element
    179                 var objectElem = document.createElement("OBJECT");
    180                 objectElem.setAttribute("align", "middle");
    181                 objectElem.setAttribute("classid", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000");
    182                 objectElem.setAttribute("codebase", "http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0");
    183                 objectElem.setAttribute("height", "600px");
    184                 objectElem.setAttribute("width", "100%");
    185                
    186                 //Parameter list
    187                 var params = new Array();
    188                 params[0] = createParam("allowScriptAccess", "always");
    189                 params[1] = createParam("movie", "Book.swf?src_image=" + escape(img_cover) + "&amp;doc_url=" + escape(doc_url));
    190                 params[2] = createParam("quality", "high");
    191                 params[3] = createParam("bgcolor", "#FFFFFF");
    192                
    193                 //The embed element that goes into the object element
    194                 var embedElem = document.createElement("EMBED");
    195                 embedElem.setAttribute("allowScriptAccess", "always");
    196                 embedElem.setAttribute("swLiveConnect", "true");
    197                 embedElem.setAttribute("bgcolor", "#FFFFFF");
    198                 embedElem.setAttribute("height", "600px");
    199                 embedElem.setAttribute("name", "Book");
    200                 embedElem.setAttribute("pluginspage", "http://www.macromedia.com/go/getflashplayer");
    201                 embedElem.setAttribute("quality", "high");
    202                 embedElem.setAttribute("src", "Book.swf?src_image=" + escape(img_cover) + "&amp;doc_url=" + escape(doc_url));
    203                 embedElem.setAttribute("type", "application/x-shockwave-flash");
    204                 embedElem.setAttribute("width", "100%");
    205                
    206                 //Append the param and embed elements to the object element
    207                 for(var i = 0; i &lt; params.length; i++)
    208                 {
    209                     objectElem.appendChild(params[i]);
    210                 }
    211                 objectElem.appendChild(embedElem);
    212                
    213                 //Append the object element to the page
    214                 var flashDiv = document.getElementById("bookdiv");
    215                 flashDiv.appendChild(objectElem);
     203                function swapLinkJavascript(rbOn)
     204                {
     205                    var option = document.getElementById("rbOption");
     206                    if(rbOn)
     207                    {
     208                        option.setAttribute("onclick", "hideText(); showBook(); swapLinkJavascript(false);");
     209                    }
     210                    else
     211                    {
     212                        option.setAttribute("onclick", "hideBook(); showText(); swapLinkJavascript(true);");
     213                    }
     214                }
     215               
     216                function loadBook()
     217                {
     218                    //Work out the URL to the cover image and the document
     219                    var img_cover = '</xsl:text><xsl:value-of select="/page/pageResponse/collection/metadataList/metadata[@name='httpPath']"/>/index/assoc/<xsl:value-of select="metadataList/metadata[@name='assocfilepath']"/>/cover.jpg<xsl:text disable-output-escaping="yes">';
     220                    var doc_url = document.URL;
     221                    doc_url = doc_url.replace(/(&amp;|\?)book=[a-z]+/gi,'');
     222                    doc_url += '&amp;book=flashxml';   
     223                   
     224                    //The outer OBJECT element
     225                    var objectElem = document.createElement("OBJECT");
     226                    objectElem.setAttribute("align", "middle");
     227                    objectElem.setAttribute("classid", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000");
     228                    objectElem.setAttribute("codebase", "http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0");
     229                    objectElem.setAttribute("height", "600px");
     230                    objectElem.setAttribute("width", "70%");
     231                    objectElem.setAttribute("id", "bookObject");
     232                   
     233                    //Parameter list
     234                    var params = new Array();
     235                    params[0] = createParam("allowScriptAccess", "always");
     236                    params[1] = createParam("movie", "RealisticBook.swf?src_image=" + escape(img_cover) + "&amp;doc_url=" + escape(doc_url));
     237                    params[2] = createParam("quality", "high");
     238                    params[3] = createParam("bgcolor", "#FFFFFF");
     239                   
     240                    //The embed element that goes into the object element
     241                    var embedElem = document.createElement("EMBED");
     242                    embedElem.setAttribute("allowScriptAccess", "always");
     243                    embedElem.setAttribute("swLiveConnect", "true");
     244                    embedElem.setAttribute("bgcolor", "#FFFFFF");
     245                    embedElem.setAttribute("height", "600px");
     246                    embedElem.setAttribute("name", "Book");
     247                    embedElem.setAttribute("pluginspage", "http://www.macromedia.com/go/getflashplayer");
     248                    embedElem.setAttribute("quality", "high");
     249                    embedElem.setAttribute("src", "RealisticBook.swf?src_image=" + escape(img_cover) + "&amp;doc_url=" + escape(doc_url));
     250                    embedElem.setAttribute("type", "application/x-shockwave-flash");
     251                    embedElem.setAttribute("width", "70%");
     252                   
     253                    //Append the param and embed elements to the object element
     254                    for(var i = 0; i &lt; params.length; i++)
     255                    {
     256                        objectElem.appendChild(params[i]);
     257                    }
     258                    objectElem.appendChild(embedElem);
     259                   
     260                    //Append the object element to the page
     261                    var flashDiv = document.getElementById("bookdiv");
     262                    flashDiv.appendChild(objectElem);
     263                }
    216264            </xsl:text>
    217265        </script>
  • main/trunk/greenstone3/web/interfaces/oran/transform/layouts/header.xsl

    r23989 r24009  
    114114                <!-- home -->
    115115                <li>
    116                     <a href="{$library_name}?a=p&amp;amp;sa=home">
     116                    <a href="{$library_name}?a=p&amp;amp;sa=about&amp;amp;c={$collNameChecked}">
    117117                        <xsl:attribute name="title"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'home_tip')"/></xsl:attribute>
    118                         <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'home_b')"/>
     118                        <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'about_b')"/>
    119119                    </a>
    120120                </li>
     
    132132                    <xsl:choose>
    133133                        <xsl:when test="string-length($pageTitleVar) &lt; 20">
    134                             font-size: 24px; line-height: 26px;
     134                            font-size: 1.5em; line-height: 1.5em;
    135135                        </xsl:when>
    136136                        <xsl:when test="string-length($pageTitleVar) &lt; 30">
    137                             font-size: 22px; line-height: 24px;
     137                            font-size: 1.4em; line-height: 1.4em;
    138138                        </xsl:when>
    139139                        <xsl:when test="string-length($pageTitleVar) &lt; 40">
    140                             font-size: 20px; line-height: 22px;
     140                            font-size: 1.3em; line-height: 1.3em;
    141141                        </xsl:when>
    142142                        <xsl:when test="string-length($pageTitleVar) &lt; 50">
    143                             font-size: 18px; line-height: 20px;
     143                            font-size: 1.2em; line-height: 1.2em;
    144144                        </xsl:when>
    145145                        <xsl:when test="string-length($pageTitleVar) &lt; 60">
    146                             font-size: 16px; line-height: 18px;
     146                            font-size: 1.1em; line-height: 1.2em;
    147147                        </xsl:when>
    148148                        <xsl:when test="string-length($pageTitleVar) &lt; 70">
    149                             font-size: 15px; line-height: 17px;
     149                            font-size: 1em; line-height: 1.1em;
    150150                        </xsl:when>
    151151                        <xsl:when test="string-length($pageTitleVar) &lt; 80">
    152                             font-size: 14px; line-height: 16px;
     152                            font-size: 0.9em; line-height: 1em;
    153153                        </xsl:when>
    154154                        <xsl:when test="string-length($pageTitleVar) &lt; 90">
    155                             font-size: 13px; line-height: 15px;
     155                            font-size: 0.8em; line-height: 0.9em;
    156156                        </xsl:when>
    157157                        <xsl:otherwise>
    158                             font-size: 12px; line-height: 14px;
     158                            font-size: 0.7em; line-height: 0.9em;
    159159                        </xsl:otherwise>
    160160                    </xsl:choose>
     
    179179                    <input type="hidden" name="c" value="{$collNameChecked}"/>
    180180                    <input type="hidden" name="startPage" value="1"/>
     181                    <xsl:choose>
     182                        <xsl:when test="/page/pageRequest/paramList/param[@name = 's1.maxDocs']">
     183                            <input type="hidden" name="s1.maxDocs">
     184                                <xsl:attribute name="value">
     185                                    <xsl:value-of select="/page/pageRequest/paramList/param[@name = 's1.maxDocs']/@value"/>
     186                                </xsl:attribute>
     187                            </input>
     188                        </xsl:when>
     189                        <xsl:otherwise>
     190                            <input type="hidden" name="s1.maxDocs" value="100"/>
     191                        </xsl:otherwise>
     192                    </xsl:choose>
     193                    <xsl:choose>
     194                        <xsl:when test="/page/pageRequest/paramList/param[@name = 's1.hitsPerPage']">
     195                            <input type="hidden" name="s1.hitsPerPage">
     196                                <xsl:attribute name="value">
     197                                    <xsl:value-of select="/page/pageRequest/paramList/param[@name = 's1.hitsPerPage']/@value"/>
     198                                </xsl:attribute>
     199                            </input>
     200                        </xsl:when>
     201                        <xsl:otherwise>
     202                            <input type="hidden" name="s1.hitsPerPage" value="20"/>
     203                        </xsl:otherwise>
     204                    </xsl:choose>
     205                   
    181206                    <!-- The query text box -->
    182207                    <span class="querybox">
  • main/trunk/greenstone3/web/interfaces/oran/transform/pages/classifier.xsl

    r23989 r24009  
    1919    <!-- the page content -->
    2020    <xsl:template match="/page/pageResponse">
    21 
    22         <!-- show the classifiers if more than one (title, subject, etc.) -->
    23         <!--<xsl:if test="service/classifierList/classifier[2]">
    24             <div id="classifierList" class="navList">
    25                 <ul>
    26                     <xsl:for-each select="service/classifierList/classifier">
    27                         <li><gslib:classifierLink/></li>
    28                     </xsl:for-each>
    29                 </ul>
    30                 <div class="clear"><xsl:text> </xsl:text></div>
    31             </div>
    32         </xsl:if>-->
    33 
     21        <xsl:call-template name="classifierLoadScript"/>
    3422        <!-- this right sidebar -->
    3523        <xsl:if test="$berryBasketOn">
     
    7866    <xsl:template match="classifierNode" priority="3">
    7967
    80         <li class="shelf">
     68        <table id="title{@nodeID}"><tr>
     69            <!-- Expand/collapse button -->
     70            <td class="headerTD">
     71                <img id="toggle{@nodeID}" onclick="toggleSection('{@nodeID}');" class="icon">           
     72                    <xsl:attribute name="src">
     73                        <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'expand_image')"/>
     74                    </xsl:attribute>
     75                </img>
     76            </td>
     77            <!-- Bookshelf icon -->
     78            <td>
     79                <img>
     80                    <xsl:attribute name="src"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'bookshelf_image')"/></xsl:attribute>
     81                </img>
     82            </td>
     83            <!-- Link title -->
     84            <td>
     85                <a href="javascript:toggleSection('{@nodeID}');">
     86                    <xsl:value-of disable-output-escaping="yes"  select="metadataList/metadata[@name='Title']"/>
     87                </a>
     88            </td>
     89        </tr></table>
     90       
     91        <!-- Show any documents or sub-groups in this group -->
     92        <xsl:if test="documentNode|classifierNode">
     93            <div id="div{@nodeID}" class="classifierContainer" style="display:block;">
     94                <xsl:apply-templates select="documentNode|classifierNode"/>
     95            </div>
     96        </xsl:if>
     97    </xsl:template>
     98   
     99    <xsl:template name="classifierLoadScript">
     100        <script type="text/javascript">
     101            <xsl:text disable-output-escaping="yes">
     102                var collapseImageURL = "</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'collapse_image')"/><xsl:text disable-output-escaping="yes">";
     103                var expandImageURL = "</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'expand_image')"/><xsl:text disable-output-escaping="yes">";
     104                var loadingImageURL = "</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'loading_image')"/><xsl:text disable-output-escaping="yes">";
     105                var inProgress = new Array();
     106           
     107                function isExpanded(sectionID)
     108                {
     109                    var divElem = document.getElementById("div" + sectionID);
     110                    if(divElem.style.display == "block")
     111                    {
     112                        return true;
     113                    }
     114                    return false;
     115                }
     116           
     117                function toggleSection(sectionID)
     118                {
     119                    var section = document.getElementById("div" + sectionID);
     120                    var sectionToggle = document.getElementById("toggle" + sectionID);
     121                   
     122                    if(section)
     123                    {
     124                        if(isExpanded(sectionID))
     125                        {
     126                            section.style.display = "none";
     127                            sectionToggle.setAttribute("src", expandImageURL);
     128                        }
     129                        else
     130                        {
     131                            section.style.display = "block";
     132                            sectionToggle.setAttribute("src", collapseImageURL);
     133                        }
     134                    }
     135                    else
     136                    {
     137                        httpRequest(sectionID);
     138                    }
     139                }
     140               
     141                function httpRequest(sectionID)
     142                {
     143                    if(!inProgress[sectionID])
     144                    {
     145                        inProgress[sectionID] = true;
     146                        var httpRequest;
     147                        if (window.XMLHttpRequest) {
     148                            httpRequest = new XMLHttpRequest();
     149                        }
     150                        else if (window.ActiveXObject) {
     151                            httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
     152                        }
     153                       
     154                        var sectionToggle = document.getElementById("toggle" + sectionID);
     155                        sectionToggle.setAttribute("src", loadingImageURL);
    81156
    82             <a>
    83                 <xsl:attribute name="href">
    84                     <xsl:value-of select="$library_name"/>?a=b&amp;rt=r&amp;s=<xsl:value-of select="/page/pageResponse/service/@name"/>&amp;c=<xsl:value-of select="/page/pageResponse/collection/@name"/>&amp;cl=<xsl:value-of select='@nodeID'/><xsl:if test="classifierNode|documentNode">.pr</xsl:if></xsl:attribute>
    85                 <xsl:value-of disable-output-escaping="yes"  select="metadataList/metadata[@name='Title']"/>
    86             </a>
     157                        var url = document.URL;
     158                        url = url.replace(/(&amp;|\?)cl=([a-z\.0-9]+)/gi, "$1cl=" + sectionID + "&amp;excerptid=div" + sectionID);
    87159
    88             <!-- show any documents or sub-groups in this group -->
    89             <xsl:if test="documentNode|classifierNode">
    90                 <ul>
    91                     <xsl:apply-templates select="documentNode|classifierNode"/>
    92                 </ul>
    93             </xsl:if>
    94         </li>
     160                        httpRequest.open('GET', url, true);
     161                        httpRequest.onreadystatechange = function()
     162                        {
     163                            if (httpRequest.readyState == 4)
     164                            {
     165                                if (httpRequest.status == 200)
     166                                {
     167                                    var newDiv = document.createElement("div");         
     168                                    var sibling = document.getElementById("title" + sectionID);
     169                                    var parent = sibling.parentNode;
     170                                   
     171                                    if(sibling.nextSibling)
     172                                    {
     173                                        parent.insertBefore(newDiv, sibling.nextSibling);
     174                                    }
     175                                    else
     176                                    {
     177                                        parent.appendChild(newDiv);
     178                                    }
    95179
     180                                    newDiv.innerHTML = httpRequest.responseText;
     181                                    sectionToggle.setAttribute("src", collapseImageURL);
     182                                }
     183                                else
     184                                {
     185                                    sectionToggle.setAttribute("src", expandImageURL);
     186                                }
     187                                inProgress[sectionID] = false;
     188                            }
     189                        }
     190                        httpRequest.send();
     191                    }
     192                }
     193            </xsl:text>
     194        </script>
    96195    </xsl:template>
    97196
  • main/trunk/greenstone3/web/interfaces/oran/transform/pages/document.xsl

    r23989 r24009  
    3939                <gslib:documentTitle/>
    4040            </xsl:variable>
    41             Document
     41            <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'doc.document')"/>
    4242        </a>
    4343    </xsl:template>
     
    6363    <xsl:template match="/page/pageResponse/document">
    6464        <xsl:if test="$bookswitch = 'off'">
     65            <div id="bookdiv" style="visibility:hidden; height:0px;"><xsl:text> </xsl:text></div>
    6566            <!-- Add the Javascript that adds and removes highlighting ( *** in document-scripts.xsl *** ) -->
    6667            <xsl:call-template name="highlightingScript"/>
     
    111112                <div id="gs-document-text" class="documenttext">
    112113                    <xsl:apply-templates select="documentNode" mode="document"/>
    113                 </div>
     114                </div> 
    114115            </xsl:otherwise>
    115116        </xsl:choose>
     
    137138            <!-- Expand/collapse button -->
    138139            <td class="headerTD">
    139                 <div id="dtoggle{@nodeID}" onclick="toggleSection('{@nodeID}');">           
    140                     <xsl:attribute name="class">
    141                     <xsl:choose>
    142                         <xsl:when test="nodeContent and not(documentNode)">icon leafNode toggleImageCollapse</xsl:when>
    143                         <xsl:otherwise>icon toggleImageCollapse</xsl:otherwise>
    144                     </xsl:choose>
     140                <img id="dtoggle{@nodeID}" onclick="toggleSection('{@nodeID}');" class="icon">         
     141                    <xsl:attribute name="src">
     142                        <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'collapse_image')"/>
    145143                    </xsl:attribute>
    146                 </div>
     144                </img>
    147145            </td>
    148146           
     
    166164                <td class="backToTop headerTD">
    167165                    <a href="#top">
    168                         <xsl:text disable-output-escaping="yes">&#9650;back to top</xsl:text>
     166                        <xsl:text disable-output-escaping="yes">&#9650;</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'doc.back_to_top')"/>
    169167                    </a>
    170168                </td>
     
    211209                        <xsl:choose>
    212210                            <xsl:when test="not(nodeContent and not(documentNode))">
    213                                 <div id="ttoggle{@nodeID}" onclick="toggleSection('{@nodeID}');" class="icon toggleImageCollapse"/>
     211                                <img id="ttoggle{@nodeID}" onclick="toggleSection('{@nodeID}');" class="icon">
     212                                    <xsl:attribute name="src">
     213                                        <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'collapse_image')"/>
     214                                    </xsl:attribute>
     215                                </img>
    214216                            </xsl:when>
    215217                            <xsl:otherwise>
    216                                 <div class="icon"/>
     218                                <xsl:attribute name="class">emptyIcon</xsl:attribute>
    217219                            </xsl:otherwise>
    218220                        </xsl:choose>
     
    222224                <!-- The chapter/page icon -->
    223225                <td>
    224                     <div>
    225                         <xsl:attribute name="class">
     226                    <img>
     227                        <xsl:if test="nodeContent and not(documentNode)">
     228                            <xsl:attribute name="class">leafNode</xsl:attribute>
     229                        </xsl:if>
     230                       
     231                        <xsl:attribute name="src">
    226232                            <xsl:choose>
    227233                                <xsl:when test="nodeContent and not(documentNode)">
    228                                     icon leafNode toggleImagePage
     234                                    <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'page_image')"/>
    229235                                </xsl:when>
    230236                                <xsl:otherwise>
    231                                     icon toggleImageChapter
     237                                    <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'chapter_image')"/>
    232238                                </xsl:otherwise>
    233239                            </xsl:choose>
    234240                        </xsl:attribute>
    235                     </div>
     241                    </img>
    236242                </td>
    237243               
    238244                <!-- The section name, links to the section in the document -->
    239245                <td>               
    240                     <!-- display this item from the table of contents -->
    241                     <xsl:if test="$isCurrent"><xsl:attribute name="class">current</xsl:attribute></xsl:if>
    242246                    <a>
    243247                        <xsl:attribute name="href">#<xsl:value-of select="@nodeID"/></xsl:attribute>
     
    302306   
    303307    <xsl:template name="viewOptions">
     308        <xsl:call-template name="realisticBooksScript"/>
    304309        <table class="viewOptions"><tr>
     310            <!-- Realistic books link -->
     311            <xsl:if test="/page/pageResponse/collection[@name = $collName]/metadataList/metadata[@name = 'tidyoption'] = 'tidy'">
     312                <td>
     313                    <!-- old url = {$library_name}?a=d&amp;c={$collName}&amp;d={/page/pageResponse/document/documentNode[1]/@nodeID}&amp;dt={/page/pageResponse/document/documentNode/@docType}&amp;p.a=b&amp;p.s={/page/pageResponse/service/@name}&amp;book=on&amp;ed=1 -->
     314                    <div title="Realistic book view" id="rbOptionDiv"><input id="rbOption" type="checkbox" onclick="bookInit();" class="optionCheckBox"/></div>
     315                </td>
     316            </xsl:if>
     317           
    305318            <!-- Highlight on/off button -->
    306319            <xsl:if test="/page/pageRequest/paramList/param[@name = 'p.a']/@value = 'q'">
    307320                <td>
    308                     <a id="highlightOption">
    309                         <xsl:choose>
    310                             <xsl:when test="/page/pageRequest/paramList/param[@name = 'hl']/@value = 'on'">
    311                                 <xsl:attribute name="href">
    312                                     <xsl:text>javascript:removeHighlight();</xsl:text>
    313                                 </xsl:attribute>
    314                                 <xsl:text>No Highlighting</xsl:text>
    315                             </xsl:when>
    316                             <xsl:otherwise>
    317                                 <xsl:attribute name="href">
    318                                     <xsl:text>javascript:addHighlight();</xsl:text>
    319                                 </xsl:attribute>
    320                                 <xsl:text>Highlighting</xsl:text>
    321                             </xsl:otherwise>
    322                         </xsl:choose>
    323                     </a>
    324                 </td>
    325             </xsl:if>
    326            
    327             <!-- Realistic books link -->
    328             <xsl:if test="/page/pageResponse/collection[@name = $collName]/metadataList/metadata[@name = 'tidyoption'] = 'tidy'">
    329                 <td>
    330                     <a title="Realistic book view" href="{$library_name}?a=d&amp;c={$collName}&amp;d={/page/pageResponse/document/documentNode[1]/@nodeID}&amp;dt={/page/pageResponse/document/documentNode/@docType}&amp;p.a=b&amp;p.s={/page/pageResponse/service/@name}&amp;book=on&amp;ed=1">
    331                         <img src="interfaces/oran/images/rbook.png"/>
    332                     </a>
     321                    <div id="highlightOptionDiv" title="Search term highlighting">
     322                        <input id="highlightOption" type="checkbox" class="optionCheckBox">
     323                            <xsl:choose>
     324                                <xsl:when test="/page/pageRequest/paramList/param[@name = 'hl']/@value = 'on'">
     325                                    <xsl:attribute name="onclick">
     326                                        <xsl:text>removeHighlight();</xsl:text>
     327                                    </xsl:attribute>
     328                                    <xsl:attribute name="checked">true</xsl:attribute>
     329                                </xsl:when>
     330                                <xsl:otherwise>
     331                                    <xsl:attribute name="onclick">
     332                                        <xsl:text>addHighlight();</xsl:text>
     333                                    </xsl:attribute>
     334                                </xsl:otherwise>
     335                            </xsl:choose>
     336                        </input>
     337                    </div>
    333338                </td>
    334339            </xsl:if>
  • main/trunk/greenstone3/web/interfaces/oran/transform/pages/pref.xsl

    r23989 r24009  
    186186                                <xsl:value-of select="/page/pageRequest/paramList/param[@name='hitsPerPage']/@value"/>
    187187                            </xsl:when>
     188                            <xsl:when test="/page/pageRequest/paramList/param[@name='s1.hitsPerPage']">
     189                                <xsl:value-of select="/page/pageRequest/paramList/param[@name='s1.hitsPerPage']/@value"/>
     190                            </xsl:when>
    188191                            <xsl:otherwise>
    189192                                20
     
    195198                    </div>
    196199                    <div class="paramValue">
    197                         <select name="hitsPerPage">
     200                        <select name="s1.hitsPerPage">
    198201                            <option value="20">
    199202                                <xsl:if test="$hits=20">
     
    230233                                <xsl:value-of select="/page/pageRequest/paramList/param[@name='maxDocs']/@value"/>
    231234                            </xsl:when>
     235                            <xsl:when test="/page/pageRequest/paramList/param[@name='s1.maxDocs']">
     236                                <xsl:value-of select="/page/pageRequest/paramList/param[@name='s1.maxDocs']/@value"/>
     237                            </xsl:when>
    232238                            <xsl:otherwise>100</xsl:otherwise>
    233239                        </xsl:choose>
     
    237243                    </div>
    238244                    <div class="paramValue">
    239                         <input name="maxDocs" size="3" value="{$mdocs}" />
     245                        <input name="s1.maxDocs" size="3" value="{$mdocs}" />
    240246                    </div>
    241247                   
  • main/trunk/greenstone3/web/interfaces/oran/transform/pages/query.xsl

    r23989 r24009  
    3232                                <input type="hidden" name="startPage" value="1"/>
    3333                            </xsl:if>
     34                            <xsl:choose>
     35                                <xsl:when test="/page/pageRequest/paramList/param[@name = 's1.maxDocs']">
     36                                    <input type="hidden" name="s1.maxDocs">
     37                                        <xsl:attribute name="value">
     38                                            <xsl:value-of select="/page/pageRequest/paramList/param[@name = 's1.maxDocs']/@value"/>
     39                                        </xsl:attribute>
     40                                    </input>
     41                                </xsl:when>
     42                                <xsl:otherwise>
     43                                    <input type="hidden" name="s1.maxDocs" value="100"/>
     44                                </xsl:otherwise>
     45                            </xsl:choose>
     46                            <xsl:choose>
     47                                <xsl:when test="/page/pageRequest/paramList/param[@name = 's1.hitsPerPage']">
     48                                    <input type="hidden" name="s1.hitsPerPage">
     49                                        <xsl:attribute name="value">
     50                                            <xsl:value-of select="/page/pageRequest/paramList/param[@name = 's1.hitsPerPage']/@value"/>
     51                                        </xsl:attribute>
     52                                    </input>
     53                                </xsl:when>
     54                                <xsl:otherwise>
     55                                    <input type="hidden" name="s1.hitsPerPage" value="20"/>
     56                                </xsl:otherwise>
     57                            </xsl:choose>
    3458
    3559                            <xsl:variable name="ns">s1.</xsl:variable>
     
    6387                    </form>
    6488                </xsl:for-each>
    65 
    6689            </xsl:when>
    6790
    6891            <xsl:otherwise>
     92                <!-- The list of search terms with their frequency and document count -->
    6993                <p class="termList">
    7094                    <xsl:choose>
     95                        <!-- If there is only one or two search terms then show the expanded information -->
    7196                        <xsl:when test="count(/page/pageResponse/termList/term) &lt; 3">
    7297                            <xsl:for-each select="/page/pageResponse/termList/term">
    73                                 <span style="font-style:italic;"><xsl:value-of select="@name"/></span> occurs <xsl:value-of select="@freq"/> times in <xsl:value-of select="@numDocsMatch"/> document(s) <br />
     98                                <span style="font-style:italic;"><xsl:value-of select="@name"/></span>
     99                                <xsl:text> </xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.occurs')"/><xsl:text> </xsl:text>
     100                                <xsl:value-of select="@freq"/>
     101                                <xsl:choose>
     102                                    <xsl:when test="@freq = 1">
     103                                        <xsl:text> </xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.time')"/>
     104                                    </xsl:when>
     105                                    <xsl:otherwise>
     106                                        <xsl:text> </xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.time_plural')"/>
     107                                    </xsl:otherwise>
     108                                </xsl:choose>
     109                                <xsl:text> </xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.in')"/><xsl:text> </xsl:text>
     110                                <xsl:value-of select="@numDocsMatch"/>
     111                                <xsl:choose>
     112                                    <xsl:when test="@numDocsMatch = 1">
     113                                        <xsl:text> </xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.document')"/>
     114                                    </xsl:when>
     115                                    <xsl:otherwise>
     116                                        <xsl:text> </xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.document_plural')"/>
     117                                    </xsl:otherwise>
     118                                </xsl:choose>
     119                                <br />
    74120                            </xsl:for-each>
    75121                        </xsl:when>
    76122                        <xsl:otherwise>
    77123                            <xsl:for-each select="/page/pageResponse/termList/term">
    78                                 <span style="font-style:italic;"><xsl:value-of select="@name"/></span> (<xsl:value-of select="@freq"/>);
     124                                <span style="font-style:italic;"><xsl:value-of select="@name"/></span> (<xsl:value-of select="@freq"/>)
    79125                            </xsl:for-each>
    80126                        </xsl:otherwise>
     
    110156                        </li>
    111157                    </xsl:for-each>
     158                    <br/>
     159                   
     160                    <!-- Previous/Next buttons-->
     161                    <xsl:call-template name="prevNextButtons"/>
    112162                </ul>
    113163            </xsl:otherwise>
    114 
     164           
    115165        </xsl:choose>
    116166
    117167    </xsl:template>
    118 
    119  
     168   
     169    <xsl:template name="prevNextButtons">   
     170        <!-- Current page -->
     171        <xsl:variable name="currentPage">
     172            <xsl:choose>
     173                <xsl:when test="/page/pageRequest/paramList/param[@name='startPage']/@value">
     174                    <xsl:value-of select="/page/pageRequest/paramList/param[@name='startPage']/@value" />
     175                </xsl:when>
     176                <xsl:when test="/page/pageRequest/paramList/param[@name='s1.startPage']/@value">
     177                    <xsl:value-of select="/page/pageRequest/paramList/param[@name='s1.startPage']/@value" />
     178                </xsl:when>
     179                <xsl:otherwise>1</xsl:otherwise>
     180            </xsl:choose>
     181        </xsl:variable>
     182   
     183        <!-- Find the total number of documents returned -->
     184        <xsl:variable name="docMax">
     185            <xsl:choose>
     186                <xsl:when test="/page/pageResponse/metadataList/metadata[@name = 'numDocsReturned']">
     187                    <xsl:value-of select="/page/pageResponse/metadataList/metadata[@name = 'numDocsReturned']"/>
     188                </xsl:when>
     189                <xsl:when test="/page/pageResponse/metadataList/metadata[@name = 'numDocsMatched']">
     190                    <xsl:value-of select="/page/pageResponse/metadataList/metadata[@name = 'numDocsMatched']"/>
     191                </xsl:when>
     192                <xsl:otherwise><xsl:value-of select="count(/page/pageResponse/documentNodeList/documentNode)"/></xsl:otherwise>
     193            </xsl:choose>
     194        </xsl:variable>
     195       
     196        <!-- Find the number of documents displayed per page -->
     197        <xsl:variable name="docsPerPage">
     198            <xsl:choose>
     199                <xsl:when test="/page/pageRequest/paramList/param[@name='hitsPerPage']">
     200                    <xsl:value-of select="/page/pageRequest/paramList/param[@name='hitsPerPage']/@value" />
     201                </xsl:when>
     202                <xsl:when test="/page/pageRequest/paramList/param[@name='s1.hitsPerPage']">
     203                    <xsl:value-of select="/page/pageRequest/paramList/param[@name='s1.hitsPerPage']/@value" />
     204                </xsl:when>
     205                <xsl:otherwise>20</xsl:otherwise>
     206            </xsl:choose>
     207        </xsl:variable>
     208       
     209            <table id="searchResultNavTable"><tr>
     210                <!-- Previous button -->
     211                <td id="prevArrowTD">
     212                    <xsl:if test="$currentPage != 1">
     213                        <a href="{$library_name}?a=q&amp;sa={/page/pageRequest/@subaction}&amp;c={$collName}&amp;s={/page/pageResponse/service/@name}&amp;rt=rd&amp;startPage={$currentPage - 1}">
     214                            <img src="interfaces/oran/images/previous.png"/>
     215                        </a>
     216                    </xsl:if>
     217                </td>
     218                <td id="prevTD">
     219                    <xsl:if test="$currentPage != 1">
     220                        <a href="{$library_name}?a=q&amp;sa={/page/pageRequest/@subaction}&amp;c={$collName}&amp;s={/page/pageResponse/service/@name}&amp;rt=rd&amp;startPage={$currentPage - 1}">Previous</a>
     221                    </xsl:if>
     222                </td>
     223               
     224                <!-- Search result status bar (in english it reads "Displaying X to Y of Z documents") -->
     225                <xsl:if test="$docMax &gt; 0">
     226                    <td id="searchResultsStatusBar">
     227                        <!-- "Displaying" -->
     228                        <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.displaying')"/><xsl:text> </xsl:text>
     229                        <!-- "X" -->
     230                        <xsl:value-of select="($currentPage - 1) * $docsPerPage + 1"/>
     231                        <!-- "to" -->
     232                        <xsl:text> </xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.to')"/><xsl:text> </xsl:text>
     233                        <!-- "Y" -->
     234                        <xsl:choose>
     235                            <xsl:when test="($currentPage * $docsPerPage + 1) &gt; $docMax">
     236                                <xsl:value-of select="$docMax"/>
     237                            </xsl:when>
     238                            <xsl:otherwise>
     239                                <xsl:value-of select="$currentPage * $docsPerPage"/>
     240                            </xsl:otherwise>
     241                        </xsl:choose>
     242                        <!-- "of" -->
     243                        <xsl:text> </xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.of')"/><xsl:text> </xsl:text>
     244                        <!-- "Z" -->
     245                        <xsl:value-of select="$docMax"/>
     246                        <!-- "document[s]"-->
     247                        <xsl:choose>
     248                            <xsl:when test="$docMax = 1">
     249                                <xsl:text> </xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.document')"/>
     250                            </xsl:when>
     251                            <xsl:otherwise>
     252                                <xsl:text> </xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.document_plural')"/>
     253                            </xsl:otherwise>
     254                        </xsl:choose>
     255                    </td>
     256                </xsl:if>
     257               
     258                <!-- Next button -->
     259                <td id="nextTD">
     260                    <xsl:if test="($currentPage * $docsPerPage + 1) &lt; $docMax">
     261                        <a href="{$library_name}?a=q&amp;sa={/page/pageRequest/paramList/param[@name = 'sa']/@value}&amp;c={$collName}&amp;s={/page/pageResponse/service/@name}&amp;rt=rd&amp;startPage={$currentPage + 1}">Next</a>
     262                    </xsl:if>
     263                </td>
     264                <td id="nextArrowTD">
     265                    <xsl:if test="($currentPage * $docsPerPage + 1) &lt; $docMax">
     266                        <a href="{$library_name}?a=q&amp;sa={/page/pageRequest/paramList/param[@name = 'sa']/@value}&amp;c={$collName}&amp;s={/page/pageResponse/service/@name}&amp;rt=rd&amp;startPage={$currentPage + 1}">
     267                            <img src="interfaces/oran/images/next.png"/>
     268                        </a>
     269                    </xsl:if>
     270                </td>
     271            </tr></table>
     272    </xsl:template>
     273
    120274    <!-- puts all the params into a=p&p=h type form - need to change this if use
    121275    multi params  -->
Note: See TracChangeset for help on using the changeset viewer.