Changeset 24009

Show
Ignore:
Timestamp:
10.05.2011 14:33:12 (8 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 modified

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  -->