Changeset 33592

Show
Ignore:
Timestamp:
22.10.2019 13:51:02 (3 weeks ago)
Author:
kjdon
Message:

reindented the file

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone3/web/interfaces/default/transform/pages/query.xsl

    r33492 r33592  
    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:util="xalan://org.greenstone.gsdl3.util.XSLTUtil" 
    6     xmlns:gslib="http://www.greenstone.org/skinning" 
    7     xmlns:gsvar="http://www.greenstone.org/skinning-var" 
    8     xmlns:gsf="http://www.greenstone.org/greenstone3/schema/ConfigFormat" 
    9     extension-element-prefixes="java util" 
    10     exclude-result-prefixes="java util gsf"> 
    11  
    12     <!-- use the 'main' layout --> 
    13     <xsl:import href="layouts/main.xsl"/> 
    14     <xsl:import href="map-tools.xsl"/> 
    15     <xsl:import href="panorama-viewer-tools.xsl"/> 
    16  
    17     <!-- set page title --> 
    18     <xsl:template name="pageTitle"> 
    19         <gslib:serviceName/> 
    20     </xsl:template> 
    21  
    22     <!-- set page breadcrumbs --> 
    23     <xsl:template name="breadcrumbs"> 
    24         <gslib:siteLink/> 
    25         <gslib:rightArrow/> 
    26         <xsl:if test="/page/pageResponse/collection"> 
    27             <gslib:collectionNameLinked/> 
    28             <gslib:rightArrow/> 
    29         </xsl:if> 
    30     </xsl:template> 
    31  
    32     <!-- do we display the line 'displaying 0 to 20 of 40 documents'--> 
    33     <!-- on by default. To turn off, add the following in <search> element in collectionConfig.xml: 
    34          <gsf:option name="hideStatus" value="true"/> --> 
    35     <xsl:variable name="display_status_bar"> 
    36       <xsl:if test="/page/pageResponse/format[@type='search']/gsf:option[@name='hideStatus']/@value='true'">false</xsl:if></xsl:variable> 
    37     <!-- the page content --> 
    38     <xsl:template match="/page"> 
    39         <xsl:if test="not(/page/pageRequest/paramList/param[@name = 'qs']) or /page/pageRequest/paramList/param[@name = 'qs']/@value = ''"> 
    40             <xsl:call-template name="queryPage"/> 
    41         </xsl:if> 
     3        xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
     4        xmlns:java="http://xml.apache.org/xslt/java" 
     5        xmlns:util="xalan://org.greenstone.gsdl3.util.XSLTUtil" 
     6        xmlns:gslib="http://www.greenstone.org/skinning" 
     7        xmlns:gsvar="http://www.greenstone.org/skinning-var" 
     8        xmlns:gsf="http://www.greenstone.org/greenstone3/schema/ConfigFormat" 
     9        extension-element-prefixes="java util" 
     10        exclude-result-prefixes="java util gsf"> 
     11 
     12  <!-- use the 'main' layout --> 
     13  <xsl:import href="layouts/main.xsl"/> 
     14  <xsl:import href="map-tools.xsl"/> 
     15  <xsl:import href="panorama-viewer-tools.xsl"/> 
     16 
     17  <!-- set page title --> 
     18  <xsl:template name="pageTitle"> 
     19    <gslib:serviceName/> 
     20  </xsl:template> 
     21 
     22  <!-- set page breadcrumbs --> 
     23  <xsl:template name="breadcrumbs"> 
     24    <gslib:siteLink/> 
     25    <gslib:rightArrow/> 
     26    <xsl:if test="/page/pageResponse/collection"> 
     27      <gslib:collectionNameLinked/> 
     28      <gslib:rightArrow/> 
     29    </xsl:if> 
     30  </xsl:template> 
     31 
     32  <!-- do we display the line 'displaying 0 to 20 of 40 documents'--> 
     33  <!-- on by default. To turn off, add the following in <search> element in collectionConfig.xml: 
     34       <gsf:option name="hideStatus" value="true"/> --> 
     35  <xsl:variable name="display_status_bar"> 
     36  <xsl:if test="/page/pageResponse/format[@type='search']/gsf:option[@name='hideStatus']/@value='true'">false</xsl:if></xsl:variable> 
     37  <!-- the page content --> 
     38  <xsl:template match="/page"> 
     39    <xsl:if test="not(/page/pageRequest/paramList/param[@name = 'qs']) or /page/pageRequest/paramList/param[@name = 'qs']/@value = ''"> 
     40      <xsl:call-template name="queryPage"/> 
     41    </xsl:if> 
    4242    <xsl:if test="contains(/page/pageRequest/paramList/param[@name='rt']/@value, 'r')"> 
    43         <xsl:call-template name="resultsPage"/> 
    44    </xsl:if> 
    45     </xsl:template> 
    46  
    47     <xsl:template name="resultsPage"> 
    48         <xsl:call-template name="resultsPagePre"/> 
    49         <xsl:call-template name="displayMatchDocs"/> 
    50         <xsl:call-template name="displayTermInfo"/> 
    51         <xsl:call-template name="displayBaskets"/> 
    52         <xsl:call-template name="displayResults"/> 
    53         <xsl:call-template name="resultsPagePost"/> 
    54     </xsl:template> 
    55  
    56     <!-- optional cgi-params for links to document pages --> 
    57     <xsl:variable name="opt-doc-link-args">p.s=<gsvar:this-service/><xsl:if test="/page/pageRequest/paramList/param[@name ='s1.collection']">&amp;ck=TextQuery</xsl:if> 
    58     </xsl:variable> 
    59  
    60     <xsl:template name="displayBaskets"> 
    61       <xsl:if test="$berryBasketOn or $favouriteBasketOn or ($documentBasketOn and (util:contains(/page/pageRequest/userInformation/@groups, 'administrator') or util:contains(/page/pageRequest/userInformation/@groups, 'all-collections-editor') or util:contains(/page/pageRequest/userInformation/@groups, $thisCollectionEditor)))"> 
    62         <div id="rightSidebar"> 
    63           <xsl:if test="$berryBasketOn"> 
    64         <!-- show the berry basket if it's turned on --> 
    65         <gslib:berryBasket/> 
    66         <xsl:text> </xsl:text> 
     43      <xsl:call-template name="resultsPage"/> 
     44    </xsl:if> 
     45  </xsl:template> 
     46 
     47  <xsl:template name="resultsPage"> 
     48    <xsl:call-template name="resultsPagePre"/> 
     49    <xsl:call-template name="displayMatchDocs"/> 
     50    <xsl:call-template name="displayTermInfo"/> 
     51    <xsl:call-template name="displayBaskets"/> 
     52    <xsl:call-template name="displayResults"/> 
     53    <xsl:call-template name="resultsPagePost"/> 
     54  </xsl:template> 
     55 
     56  <!-- optional cgi-params for links to document pages --> 
     57  <xsl:variable name="opt-doc-link-args">p.s=<gsvar:this-service/><xsl:if test="/page/pageRequest/paramList/param[@name ='s1.collection']">&amp;ck=TextQuery</xsl:if> 
     58  </xsl:variable> 
     59 
     60  <xsl:template name="displayBaskets"> 
     61    <xsl:if test="$berryBasketOn or $favouriteBasketOn or ($documentBasketOn and (util:contains(/page/pageRequest/userInformation/@groups, 'administrator') or util:contains(/page/pageRequest/userInformation/@groups, 'all-collections-editor') or util:contains(/page/pageRequest/userInformation/@groups, $thisCollectionEditor)))"> 
     62      <div id="rightSidebar"> 
     63    <xsl:if test="$berryBasketOn"> 
     64      <!-- show the berry basket if it's turned on --> 
     65      <gslib:berryBasket/> 
     66      <xsl:text> </xsl:text> 
     67    </xsl:if> 
     68 
     69    <xsl:if test="$favouriteBasketOn"> 
     70      <!-- show the favourites 'basket' if it's turned on --> 
     71      <gslib:gotoFavourites/> 
     72      <xsl:text> </xsl:text> 
     73    </xsl:if> 
     74 
     75    <xsl:if test="$documentBasketOn and (util:contains(/page/pageRequest/userInformation/@groups, 'administrator') or util:contains(/page/pageRequest/userInformation/@groups, 'all-collections-editor') or util:contains(/page/pageRequest/userInformation/@groups, $thisCollectionEditor))"> 
     76      <gslib:documentBasket/> 
     77      <xsl:text> </xsl:text> 
     78    </xsl:if> 
     79      </div> 
     80    </xsl:if> 
     81  </xsl:template> 
     82 
     83  <xsl:template name="displayResults"> 
     84    <xsl:if test="/page/pageResponse/facetList/facet"> 
     85      <xsl:call-template name="displayFacets"/> 
     86    </xsl:if> 
     87    <div id="resultsArea"> 
     88      <xsl:attribute name="class"> 
     89    <xsl:if test="/page/pageResponse/facetList/facet">facetedResults</xsl:if> 
     90      </xsl:attribute> 
     91      <table id="resultsTable"> 
     92    <xsl:for-each select="pageResponse/documentNodeList/documentNode"> 
     93      <tr id="div{@nodeID}" class="document"> 
     94        <xsl:apply-templates select="."/> 
     95        <!-- The berry/favourite (optional) --> 
     96        <td valign="top"> 
     97          <xsl:if test="/page/pageResponse/interfaceOptions/option[@name = 'berryBasket']/@value = 'true'"> 
     98        <xsl:call-template name="documentBerryForClassifierOrSearchPage"/> 
    6799          </xsl:if> 
    68  
    69           <xsl:if test="$favouriteBasketOn"> 
    70         <!-- show the favourites 'basket' if it's turned on --> 
    71         <gslib:gotoFavourites/> 
    72         <xsl:text> </xsl:text> 
     100          <xsl:if test="/page/pageResponse/interfaceOptions/option[@name = 'favouriteBasket']/@value = 'true'"> 
     101        <xsl:call-template name="documentFavouriteForClassifierOrSearchPage"/> 
    73102          </xsl:if> 
    74  
    75           <xsl:if test="$documentBasketOn and (util:contains(/page/pageRequest/userInformation/@groups, 'administrator') or util:contains(/page/pageRequest/userInformation/@groups, 'all-collections-editor') or util:contains(/page/pageRequest/userInformation/@groups, $thisCollectionEditor))"> 
    76         <gslib:documentBasket/> 
    77         <xsl:text> </xsl:text> 
    78           </xsl:if> 
     103        </td> 
     104        <xsl:call-template name="highlightSnippet"> 
     105          <xsl:with-param name="nodeHASH"> 
     106        <xsl:value-of select="@nodeID"/> 
     107          </xsl:with-param> 
     108          <xsl:with-param name="collection" select="@collection"/> 
     109          <!--<xsl:choose> <xsl:when test="@collection"><xsl:value-of select="@collection"/></xsl:with-param>--> 
     110        </xsl:call-template> 
     111        <xsl:call-template name="documentNodePost"/> 
     112      </tr> 
     113    </xsl:for-each> 
     114    <br/> 
     115      </table> 
     116 
     117      <!-- Previous/Next buttons--> 
     118      <xsl:call-template name="prevNextButtons"/> 
     119    </div> 
     120    <xsl:if test="/page/pageResponse/facetList/facet"> 
     121      <div style="clear:both;"> 
     122    <xsl:text> </xsl:text> 
     123      </div> 
     124    </xsl:if> 
     125  </xsl:template> 
     126 
     127  <xsl:template name="displayFacets"> 
     128    <script type="text/javascript" src="interfaces/{$interface_name}/js/utility_scripts.js"><xsl:text> </xsl:text></script> 
     129    <script type="text/javascript" src="interfaces/{$interface_name}/js/facet-scripts.js"> 
     130      <xsl:text> </xsl:text> 
     131    </script> 
     132    <div id="facetSelector"> 
     133      <xsl:for-each select="/page/pageResponse/facetList/facet"> 
     134    <xsl:if test="count(count) > 0"> 
     135      <ul class="facetTable ui-widget-content" indexName="{@name}"> 
     136        <xsl:variable name="serviceName"> 
     137          <xsl:value-of select="/page/pageRequest/paramList/param[@name = 's']/@value"/> 
     138        </xsl:variable> 
     139        <xsl:variable name="indexShortName"> 
     140          <xsl:value-of select="@name"/> 
     141        </xsl:variable> 
     142        <xsl:variable name="countSize"> 
     143          <xsl:choose> 
     144        <xsl:when test="/page/pageResponse/format[@type='search']/gsf:option[@name='facetTableRows']"> 
     145          <xsl:value-of select="/page/pageResponse/format[@type='search']/gsf:option[@name='facetTableRows']/@value"/> 
     146        </xsl:when> 
     147        <xsl:otherwise>8</xsl:otherwise> 
     148          </xsl:choose> 
     149        </xsl:variable> 
     150 
     151        <li class="ui-widget-header" style="text-transform:capitalize; text-align:center;"> 
     152          <xsl:value-of select="displayItem[@name='name']"/> 
     153        </li> 
     154        <xsl:for-each select="count"> 
     155          <li> 
     156        <xsl:attribute name="style"> 
     157          <xsl:if test="position() > $countSize">display:none;<xsl:value-of select="$indexShortName"/> 
     158          </xsl:if> 
     159        </xsl:attribute> 
     160        <input type="checkbox" onclick="performRefinedSearch();"/> 
     161        <span> 
     162          <xsl:value-of select="@name"/> 
     163          </span>(<xsl:value-of select="."/>) 
     164          </li> 
     165        </xsl:for-each> 
     166        <xsl:if test="count(count) > $countSize"> 
     167          <li class="expandFacetList{$indexShortName}"> 
     168        <a class="expandFacetListLink{$indexShortName}" href="javascript:expandFacetList('{$indexShortName}', {$countSize});"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.facet.more')"/></a> 
     169          </li> 
     170          <li class="collapseFacetList{$indexShortName}" style="display: none;"> 
     171        <a  class="collapseFacetListLink{$indexShortName}" href="javascript:collapseFacetList('{$indexShortName}', {$countSize});"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.facet.less')"/></a> 
     172          </li> 
     173        </xsl:if> 
     174      </ul> 
     175    </xsl:if> 
     176      </xsl:for-each> 
     177    </div> 
     178 
     179  </xsl:template> 
     180  <!-- this usually gets overriden in collectionConfig.xml --> 
     181  <gsf:template match="documentNode"> 
     182    <td valign="top"> 
     183      <gsf:link type="document"> 
     184    <gsf:icon type="document"/> 
     185      </gsf:link> 
     186    </td> 
     187    <td> 
     188      <gsf:link type="document"> 
     189    <xsl:call-template name="choose-title"/> 
     190      </gsf:link> 
     191    </td> 
     192  </gsf:template> 
     193 
     194  <xsl:template name="highlightSnippet"> 
     195    <xsl:param name="nodeHASH"/> 
     196    <xsl:param name="collection"/> 
     197    <xsl:for-each select="/page/pageResponse/highlightSnippetList/highlightSnippet[@nodeID = $nodeHASH]"> 
     198      <xsl:if test="not($collection) or $collection = @collection"> 
     199        <tr> 
     200          <td> 
     201          </td> 
     202          <td> 
     203            <div class="HighlightSnippet"> 
     204              <xsl:value-of select="." disable-output-escaping="yes"/> 
    79205        </div> 
     206          </td> 
     207        </tr> 
     208      </xsl:if> 
     209    </xsl:for-each> 
     210  </xsl:template> 
     211   
     212  <xsl:template name="queryPage"> 
     213    <xsl:for-each select="pageResponse/service"> 
     214      <xsl:variable name="form_action"><xsl:value-of select="$library_name"/>/<xsl:if test="$collName">collection/<xsl:value-of select="$collName"/>/</xsl:if>search/<xsl:value-of select="@name"/></xsl:variable> 
     215      <form name="QueryForm" method="get" action="{$form_action}"> 
     216    <div> 
     217      <input type="hidden" name="a" value="q"/> 
     218      <input type="hidden" name="sa"> 
     219        <xsl:attribute name="value"> 
     220          <xsl:value-of select="/page/pageRequest/@subaction"/> 
     221        </xsl:attribute> 
     222      </input> 
     223      <input type="hidden" name="rt" value="rd"/> 
     224       
     225      <xsl:variable name="ns">s1.</xsl:variable> 
     226      <xsl:choose> 
     227        <xsl:when test="/page/pageResponse/hierarchy and paramList/param[@name ='collection']"> 
     228          <xsl:call-template name="CCSParams"> <!-- cross coll search --> 
     229        <xsl:with-param name="ns" select="$ns" /> 
     230          </xsl:call-template> 
     231        </xsl:when> 
     232        <xsl:otherwise> 
     233          <xsl:for-each select="paramList/param"> 
     234        <xsl:choose> 
     235          <xsl:when test="@type='multi'"> 
     236            <xsl:apply-templates select="."> 
     237              <xsl:with-param name="ns" select="$ns"/> 
     238            </xsl:apply-templates> 
     239          </xsl:when> 
     240          <xsl:otherwise> 
     241            <xsl:call-template name="param-display"> 
     242              <xsl:with-param name="ns" select="$ns"/> 
     243            </xsl:call-template> 
     244          </xsl:otherwise> 
     245        </xsl:choose> 
     246          </xsl:for-each> 
     247        </xsl:otherwise> 
     248      </xsl:choose> 
     249      <br/> 
     250      <input type="submit"> 
     251        <xsl:attribute name="value"> 
     252          <xsl:value-of select="displayItem[@name='submit']"/> 
     253        </xsl:attribute> 
     254      </input> 
     255    </div> 
     256      </form> 
     257    </xsl:for-each> 
     258  </xsl:template> 
     259 
     260  <xsl:template name="CCSParams"> 
     261    <xsl:param name="ns" /> 
     262    <xsl:variable name="currentSelection"><xsl:value-of select="util:getFormattedCCSSelection(/page/pageRequest/paramList/param[@name='s1.collection']/@value,/page/pageRequest/paramList/param[@name='s1.group']/@value)"/></xsl:variable> 
     263    <!-- display the collection param --> 
     264    <div class="paramLabel"> 
     265      <xsl:value-of select="paramList/param[@name='collection']/displayItem[@name='name']/text()" /> 
     266    </div> 
     267    <div class="paramValue"> 
     268      <select multiple="" size='10'> 
     269    <xsl:attribute name="name"> 
     270      <xsl:value-of select="$ns"></xsl:value-of> 
     271      <xsl:text>collection</xsl:text> 
     272    </xsl:attribute> 
     273    <xsl:for-each select="/page/pageResponse/hierarchy/*"> 
     274      <xsl:call-template name="hierarchy-display"> 
     275        <xsl:with-param name="padding">0</xsl:with-param> 
     276        <xsl:with-param name="currentSelection" select="$currentSelection"/> 
     277      </xsl:call-template> 
     278    </xsl:for-each> 
     279      </select> 
     280    </div> 
     281    <br class="clear" /> 
     282    <!-- display all the other params --> 
     283    <xsl:for-each select="paramList/param[@name !='collection']"> 
     284      <xsl:choose> 
     285    <xsl:when test="@type='multi'"> 
     286      <xsl:apply-templates select="."> 
     287        <xsl:with-param name="ns" select="$ns"/> 
     288      </xsl:apply-templates> 
     289    </xsl:when> 
     290    <xsl:otherwise> 
     291      <xsl:call-template name="param-display"> 
     292        <xsl:with-param name="ns" select="$ns"/> 
     293      </xsl:call-template> 
     294    </xsl:otherwise> 
     295      </xsl:choose> 
     296    </xsl:for-each> 
     297  </xsl:template> 
     298 
     299  <xsl:template name="hierarchy-display"> 
     300    <xsl:param name="padding" /> 
     301    <xsl:param name="path" /> 
     302    <xsl:param name="currentSelection"/> 
     303    <xsl:choose> 
     304      <xsl:when test="name(.) = 'group'"> 
     305    <xsl:variable name="group-name">group.<xsl:if test="$path"><xsl:value-of select="$path" />.</xsl:if><xsl:value-of select="@name" /></xsl:variable> 
     306    <option> 
     307      <xsl:attribute name="style"> 
     308        <xsl:text>padding-left: </xsl:text> 
     309        <xsl:value-of select="concat($padding,'px')" /> 
     310      </xsl:attribute> 
     311      <xsl:attribute name="value"><xsl:value-of select="$group-name"/></xsl:attribute> 
     312      <xsl:if test="util:csvContains($currentSelection, $group-name)"> 
     313        <xsl:attribute name="selected">selected</xsl:attribute> 
    80314      </xsl:if> 
    81     </xsl:template> 
    82  
    83     <xsl:template name="displayResults"> 
    84       <xsl:if test="/page/pageResponse/facetList/facet"> 
    85         <xsl:call-template name="displayFacets"/> 
     315      <xsl:value-of select="@title"></xsl:value-of> 
     316      <xsl:for-each select="./*"> 
     317        <xsl:call-template name="hierarchy-display"> 
     318          <xsl:with-param name="padding"> 
     319        <xsl:value-of select="$padding + 20" /> 
     320          </xsl:with-param> 
     321          <xsl:with-param name="path"><xsl:if test="$path"><xsl:value-of select="$path" />.</xsl:if><xsl:value-of select="../@name" /></xsl:with-param> 
     322          <xsl:with-param name="currentSelection" select="$currentSelection"/> 
     323        </xsl:call-template> 
     324      </xsl:for-each> 
     325    </option> 
     326      </xsl:when> 
     327      <xsl:otherwise> 
     328    <option> 
     329      <xsl:attribute name="style"> 
     330        <xsl:text>padding-left: </xsl:text> 
     331        <xsl:value-of select="$padding" />  
     332        <xsl:text>px</xsl:text> 
     333      </xsl:attribute> 
     334      <xsl:if   test="util:csvContains($currentSelection, @name)"> 
     335        <xsl:attribute name="selected">selected</xsl:attribute> 
    86336      </xsl:if> 
    87         <div id="resultsArea"> 
    88             <xsl:attribute name="class"> 
    89                 <xsl:if test="/page/pageResponse/facetList/facet">facetedResults</xsl:if> 
    90             </xsl:attribute> 
    91             <table id="resultsTable"> 
    92                 <xsl:for-each select="pageResponse/documentNodeList/documentNode"> 
    93                     <tr id="div{@nodeID}" class="document"> 
    94                         <xsl:apply-templates select="."/> 
    95                         <!-- The berry/favourite (optional) --> 
    96                         <td valign="top"> 
    97                           <xsl:if test="/page/pageResponse/interfaceOptions/option[@name = 'berryBasket']/@value = 'true'"> 
    98                             <xsl:call-template name="documentBerryForClassifierOrSearchPage"/> 
    99                           </xsl:if> 
    100                           <xsl:if test="/page/pageResponse/interfaceOptions/option[@name = 'favouriteBasket']/@value = 'true'"> 
    101                             <xsl:call-template name="documentFavouriteForClassifierOrSearchPage"/> 
    102                           </xsl:if> 
    103                         </td> 
    104                         <xsl:call-template name="highlightSnippet"> 
    105                             <xsl:with-param name="nodeHASH"> 
    106                                 <xsl:value-of select="@nodeID"/> 
    107                             </xsl:with-param> 
    108                             <xsl:with-param name="collection" select="@collection"/> 
    109                               <!--<xsl:choose> <xsl:when test="@collection"><xsl:value-of select="@collection"/></xsl:with-param>--> 
    110                         </xsl:call-template> 
    111                         <xsl:call-template name="documentNodePost"/> 
    112                     </tr> 
    113                 </xsl:for-each> 
    114                 <br/> 
    115             </table> 
    116  
    117             <!-- Previous/Next buttons--> 
    118             <xsl:call-template name="prevNextButtons"/> 
    119         </div> 
    120         <xsl:if test="/page/pageResponse/facetList/facet"> 
    121             <div style="clear:both;"> 
    122                 <xsl:text> </xsl:text> 
    123             </div> 
    124         </xsl:if> 
    125     </xsl:template> 
    126  
    127     <xsl:template name="displayFacets"> 
    128             <script type="text/javascript" src="interfaces/{$interface_name}/js/utility_scripts.js"><xsl:text> </xsl:text></script> 
    129             <script type="text/javascript" src="interfaces/{$interface_name}/js/facet-scripts.js"> 
    130                 <xsl:text> </xsl:text> 
    131             </script> 
    132             <div id="facetSelector"> 
    133                 <xsl:for-each select="/page/pageResponse/facetList/facet"> 
    134                     <xsl:if test="count(count) > 0"> 
    135                         <ul class="facetTable ui-widget-content" indexName="{@name}"> 
    136                             <xsl:variable name="serviceName"> 
    137                                 <xsl:value-of select="/page/pageRequest/paramList/param[@name = 's']/@value"/> 
    138                             </xsl:variable> 
    139                             <xsl:variable name="indexShortName"> 
    140                                 <xsl:value-of select="@name"/> 
    141                             </xsl:variable> 
    142                             <xsl:variable name="countSize"> 
    143                                 <xsl:choose> 
    144                                     <xsl:when test="/page/pageResponse/format[@type='search']/gsf:option[@name='facetTableRows']"> 
    145                                         <xsl:value-of select="/page/pageResponse/format[@type='search']/gsf:option[@name='facetTableRows']/@value"/> 
    146                                     </xsl:when> 
    147                                     <xsl:otherwise>8</xsl:otherwise> 
    148                                 </xsl:choose> 
    149                             </xsl:variable> 
    150  
    151                             <li class="ui-widget-header" style="text-transform:capitalize; text-align:center;"> 
    152                               <xsl:value-of select="displayItem[@name='name']"/> 
    153                             </li> 
    154                             <xsl:for-each select="count"> 
    155                                 <li> 
    156                                     <xsl:attribute name="style"> 
    157                                         <xsl:if test="position() > $countSize">display:none;<xsl:value-of select="$indexShortName"/> 
    158                                         </xsl:if> 
    159                                     </xsl:attribute> 
    160                                     <input type="checkbox" onclick="performRefinedSearch();"/> 
    161                                     <span> 
    162                                         <xsl:value-of select="@name"/> 
    163                                     </span>(<xsl:value-of select="."/>) 
    164                                 </li> 
    165                             </xsl:for-each> 
    166                             <xsl:if test="count(count) > $countSize"> 
    167                                 <li class="expandFacetList{$indexShortName}"> 
    168                                     <a class="expandFacetListLink{$indexShortName}" href="javascript:expandFacetList('{$indexShortName}', {$countSize});"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.facet.more')"/></a> 
    169                                 </li> 
    170                                 <li class="collapseFacetList{$indexShortName}" style="display: none;"> 
    171                                     <a  class="collapseFacetListLink{$indexShortName}" href="javascript:collapseFacetList('{$indexShortName}', {$countSize});"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.facet.less')"/></a> 
    172                                 </li> 
    173                             </xsl:if> 
    174                         </ul> 
    175                     </xsl:if> 
    176                 </xsl:for-each> 
    177             </div> 
    178  
    179     </xsl:template> 
    180     <!-- this usually gets overriden in collectionConfig.xml --> 
    181     <gsf:template match="documentNode"> 
    182       <td valign="top"> 
    183         <gsf:link type="document"> 
    184           <gsf:icon type="document"/> 
    185         </gsf:link> 
     337      <xsl:attribute name="value"> 
     338        <xsl:value-of select="current()/@name"></xsl:value-of> 
     339      </xsl:attribute> 
     340      <xsl:value-of 
     341          select="/page/pageResponse/service[@name = 'TextQuery']/paramList/param[@name = 'collection']/option[@name = current()/@name]/displayItem[@name = 'name']/text()"></xsl:value-of> 
     342    </option> 
     343      </xsl:otherwise> 
     344    </xsl:choose> 
     345  </xsl:template> 
     346 
     347  <xsl:template name="displayMatchDocs"> 
     348    <div id="matchdocs"> 
     349      <xsl:variable name="numDocsMatched" select="/page/pageResponse/metadataList/metadata[@name='numDocsMatched']"/> 
     350      <xsl:variable name="numDocsReturned" select="/page/pageResponse/metadataList/metadata[@name='numDocsReturned']"/> 
     351      <xsl:variable name="docLevel"> 
     352    <xsl:call-template name="documentLevel"/> 
     353      </xsl:variable> 
     354      <xsl:variable name="docLevelText"> 
     355    <xsl:call-template name="documentLevelText"> 
     356      <xsl:with-param name="numDocsMatched" select="$numDocsMatched"/> 
     357      <xsl:with-param name="level" select="$docLevel"/> 
     358    </xsl:call-template> 
     359      </xsl:variable> 
     360      <xsl:choose> 
     361    <xsl:when test="$numDocsMatched='0' or $numDocsReturned='0'"> 
     362      <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.nodocsmatch', $docLevelText)"/> 
     363    </xsl:when> 
     364    <xsl:when test="$numDocsMatched='1' or $numDocsReturned='1'"> 
     365      <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.onedocsmatch', $docLevelText)"/> 
     366    </xsl:when> 
     367    <xsl:when test="$numDocsMatched"> 
     368      <xsl:variable name="gitArgs1" select="concat($numDocsMatched, ';', $docLevelText)"/> 
     369      <xsl:variable name="gitArgs2" select="concat($numDocsReturned, ';', $docLevelText)"/> 
     370       
     371      <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.manydocsmatch', $gitArgs1)"/> 
     372      <xsl:if test="$numDocsReturned and not($numDocsMatched=$numDocsReturned)"> (<xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.docsreturned', $gitArgs2)"/>)</xsl:if> 
     373    </xsl:when> 
     374    <xsl:when test="$numDocsReturned"> 
     375      <xsl:variable name="gitArgs" select="concat($numDocsReturned, ';', $docLevelText)"/> 
     376      <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.atleastdocsmatch', $gitArgs)"/> 
     377    </xsl:when> 
     378      </xsl:choose> 
     379    </div> 
     380 
     381  </xsl:template> 
     382 
     383  <xsl:template name="documentLevel"> 
     384    <xsl:choose> 
     385      <xsl:when test="/page/pageRequest/paramList/param[@name='level']"> 
     386    <xsl:value-of select="/page/pageRequest/paramList/param[@name='level']/@value" /> 
     387      </xsl:when> 
     388      <xsl:when test="/page/pageRequest/paramList/param[@name='s1.level']"> 
     389    <xsl:value-of select="/page/pageRequest/paramList/param[@name='s1.level']/@value" /> 
     390      </xsl:when> 
     391      <xsl:otherwise>Doc</xsl:otherwise> 
     392    </xsl:choose> 
     393  </xsl:template> 
     394 
     395  <xsl:template name="documentLevelText"> 
     396    <xsl:param name="numDocsMatched">0</xsl:param> 
     397    <xsl:param name="level">Doc</xsl:param> 
     398    <xsl:choose>     
     399      <xsl:when test="$numDocsMatched = 1"> 
     400    <xsl:choose> 
     401      <xsl:when test="$level = 'Doc'"> 
     402        <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.document')"/> 
     403      </xsl:when> 
     404      <xsl:otherwise> 
     405        <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.section')"/> 
     406      </xsl:otherwise> 
     407    </xsl:choose> 
     408      </xsl:when> 
     409      <!-- 0 or more than one use plural. is that the case for all langs??--> 
     410      <xsl:otherwise> 
     411    <xsl:choose> 
     412      <xsl:when test="$level = 'Doc'"> 
     413        <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.document_plural')"/> 
     414      </xsl:when> 
     415      <xsl:otherwise> 
     416        <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.section_plural')"/> 
     417      </xsl:otherwise> 
     418    </xsl:choose> 
     419      </xsl:otherwise> 
     420    </xsl:choose> 
     421  </xsl:template> 
     422 
     423  <xsl:template name="displayTermInfo"> 
     424 
     425    <!-- Find the number of documents displayed per page --> 
     426    <xsl:variable name="level"> 
     427      <xsl:call-template name="documentLevel"/> 
     428    </xsl:variable> 
     429 
     430    <!-- The list of search terms with their frequency and document count --> 
     431    <p class="termList"> 
     432      <xsl:if test="count(/page/pageResponse/termList/stopword) &gt; 0"> 
     433    <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.common')"/> 
     434    <xsl:text> </xsl:text> 
     435    <xsl:for-each select="/page/pageResponse/termList/stopword"> 
     436      <span style="font-style:italic;"> 
     437        <xsl:value-of select="@name"/> 
     438      </span> 
     439      <xsl:text> </xsl:text> 
     440    </xsl:for-each> 
     441    <br /> 
     442    <br /> 
     443      </xsl:if> 
     444 
     445      <!-- If there is only one or two search terms then show the expanded information --> 
     446      <xsl:choose> 
     447    <xsl:when test="count(/page/pageResponse/termList/term) &lt; 3"> 
     448       
     449      <xsl:for-each select="/page/pageResponse/termList/term"> 
     450        <xsl:variable name="levelText"> 
     451          <!-- this gets document, section, documents, sections, depending on level and number --> 
     452          <xsl:call-template name="documentLevelText"> 
     453        <xsl:with-param name="level" select="$level"/> 
     454        <xsl:with-param name="numDocsMatched" select="@numDocsMatch"/> 
     455          </xsl:call-template> 
     456        </xsl:variable> 
     457        <span class="termInfo"> 
     458           
     459          <!-- For solr and mg collections, display:  
     460           term x occured y times 
     461           term a occured b times 
     462           For collections using all other indexers, display:  
     463           term x occurred y times in n sections/documents 
     464           term a occurred b times in m sections/docs 
     465          --> 
     466          <!-- not all these args are used in every case --> 
     467          <xsl:variable name="args" select="concat(@name,';', @freq, ';', @numDocsMatch,';',  $levelText)"/> 
     468          <xsl:choose> 
     469        <xsl:when test="@freq = 0"> 
     470          <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.termoccurs.0',$args)"/> 
     471        </xsl:when> 
     472        <xsl:when test="@freq = 1"> 
     473          <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.termoccurs.1',$args)"/> 
     474        </xsl:when> 
     475        <xsl:otherwise> <!-- more than one occurrance --> 
     476          <xsl:choose> 
     477            <xsl:when test="/page/pageResponse/collection[@type = 'solr'] or /page/pageResponse/collection[@type = 'mg']"> 
     478              <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.termoccurs.x',$args)"/> 
     479            </xsl:when> 
     480            <xsl:when test="@numDocsMatch = 1"> 
     481              <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.termoccurs.x.1',$args)"/> 
     482            </xsl:when> 
     483            <xsl:otherwise> 
     484              <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.termoccurs.x.x',$args)"/> 
     485            </xsl:otherwise> 
     486          </xsl:choose> 
     487        </xsl:otherwise> 
     488          </xsl:choose> 
     489           
     490        </span> 
     491        <br/> 
     492      </xsl:for-each> 
     493    </xsl:when> 
     494    <xsl:otherwise> 
     495      <xsl:for-each select="/page/pageResponse/termList/term"> 
     496        <span style="font-style:italic;"> 
     497          <xsl:value-of select="@name"/> 
     498          </span> (<xsl:value-of select="@freq"/>) 
     499      </xsl:for-each> 
     500    </xsl:otherwise> 
     501      </xsl:choose> 
     502    </p> 
     503  </xsl:template> 
     504 
     505  <xsl:template name="prevNextButtons">  
     506    <!-- Current page --> 
     507    <xsl:variable name="currentPage"> 
     508      <xsl:choose> 
     509    <xsl:when test="/page/pageRequest/paramList/param[@name='s1.startPage']/@value"> 
     510      <xsl:value-of select="/page/pageRequest/paramList/param[@name='s1.startPage']/@value" /> 
     511    </xsl:when> 
     512    <xsl:when test="/page/pageRequest/paramList/param[@name='startPage']/@value"> 
     513      <xsl:value-of select="/page/pageRequest/paramList/param[@name='startPage']/@value" /> 
     514    </xsl:when> 
     515    <xsl:otherwise>1</xsl:otherwise> 
     516      </xsl:choose> 
     517    </xsl:variable> 
     518    <xsl:variable name="usesS1"> 
     519      <xsl:choose> 
     520    <xsl:when test="/page/pageResponse/service/paramList/param[@name='startPage']">true</xsl:when> 
     521    <xsl:otherwise>false</xsl:otherwise> 
     522      </xsl:choose> 
     523    </xsl:variable> 
     524    <!-- Find the total number of documents returned/matched --> 
     525    <xsl:variable name="docMax"> 
     526      <xsl:choose> 
     527    <xsl:when test="/page/pageResponse/metadataList/metadata[@name = 'numDocsReturned']"> 
     528      <xsl:value-of select="/page/pageResponse/metadataList/metadata[@name = 'numDocsReturned']"/> 
     529    </xsl:when> 
     530    <xsl:when test="/page/pageResponse/metadataList/metadata[@name = 'numDocsMatched']"> 
     531      <xsl:value-of select="/page/pageResponse/metadataList/metadata[@name = 'numDocsMatched']"/> 
     532    </xsl:when> 
     533    <xsl:otherwise> 
     534      <xsl:value-of select="count(/page/pageResponse/documentNodeList/documentNode)"/> 
     535    </xsl:otherwise> 
     536      </xsl:choose> 
     537    </xsl:variable> 
     538    <!-- Find the number of documents displayed per page --> 
     539    <xsl:variable name="docsPerPage"> 
     540      <xsl:choose> 
     541    <xsl:when test="/page/pageRequest/paramList/param[@name='s1.hitsPerPage']"> 
     542      <xsl:value-of select="/page/pageRequest/paramList/param[@name='s1.hitsPerPage']/@value" /> 
     543    </xsl:when> 
     544    <xsl:when test="/page/pageResponse/service/paramList/param[@name='hitsPerPage']"> 
     545      <xsl:value-of select="/page/pageResponse/service/paramList/param[@name='hitsPerPage']/@default" /> 
     546    </xsl:when> 
     547    <xsl:otherwise><xsl:value-of select="count(/page/pageResponse/documentNodeList/documentNode)"/></xsl:otherwise> 
     548      </xsl:choose> 
     549    </xsl:variable> 
     550    <!-- Find the level --> 
     551    <xsl:variable name="level"> 
     552      <xsl:call-template name="documentLevel"/> 
     553    </xsl:variable> 
     554    <!-- we only need this if number of docs > docsperpage --> 
     555    <xsl:if test="$docMax &gt; $docsPerPage"> 
     556      <table id="searchResultNavTable"> 
     557    <tr> 
     558      <xsl:variable name="startPageName"> 
     559      <xsl:if test="$usesS1 = 'true'">s1.</xsl:if>startPage</xsl:variable> 
     560 
     561      <!-- Previous button --> 
     562      <td id="prevArrowTD"> 
     563        <xsl:if test="$currentPage != 1"> 
     564          <a href="{$library_name}?a=q&amp;sa={/page/pageRequest/@subaction}&amp;c={$collName}&amp;s={/page/pageResponse/service/@name}&amp;rt=rd&amp;{$startPageName}={$currentPage - 1}&amp;qs={/page/pageRequest/paramList/param[@name='qs']/@value}"> 
     565        <xsl:call-template name="previousArrowImage"/> 
     566          </a> 
     567        </xsl:if> 
    186568      </td> 
    187       <td> 
    188         <gsf:link type="document"> 
    189           <xsl:call-template name="choose-title"/> 
    190         </gsf:link> 
     569      <td id="prevTD"> 
     570        <xsl:if test="$currentPage != 1"> 
     571          <a href="{$library_name}?a=q&amp;sa={/page/pageRequest/@subaction}&amp;c={$collName}&amp;s={/page/pageResponse/service/@name}&amp;rt=rd&amp;{$startPageName}={$currentPage - 1}&amp;qs={/page/pageRequest/paramList/param[@name='qs']/@value}"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.results.previous')"/></a> 
     572        </xsl:if> 
    191573      </td> 
    192     </gsf:template> 
    193  
    194     <xsl:template name="highlightSnippet"> 
    195       <xsl:param name="nodeHASH"/> 
    196         <xsl:param name="collection"/> 
    197         <xsl:for-each select="/page/pageResponse/highlightSnippetList/highlightSnippet[@nodeID = $nodeHASH]"> 
    198           <xsl:if test="not($collection) or $collection = @collection"> 
    199                         <tr> 
    200                             <td> 
    201                                 </td> 
    202                                 <td> 
    203                                     <div class="HighlightSnippet"> 
    204                                         <xsl:value-of select="." disable-output-escaping="yes"/> 
    205                                     </div> 
    206                             </td> 
    207                     </tr> 
    208           </xsl:if> 
    209             </xsl:for-each> 
    210     </xsl:template> 
    211      
    212     <xsl:template name="queryPage"> 
    213         <xsl:for-each select="pageResponse/service"> 
    214           <xsl:variable name="form_action"><xsl:value-of select="$library_name"/>/<xsl:if test="$collName">collection/<xsl:value-of select="$collName"/>/</xsl:if>search/<xsl:value-of select="@name"/></xsl:variable> 
    215               <form name="QueryForm" method="get" action="{$form_action}"> 
    216               <div> 
    217                     <input type="hidden" name="a" value="q"/> 
    218                     <input type="hidden" name="sa"> 
    219                         <xsl:attribute name="value"> 
    220                             <xsl:value-of select="/page/pageRequest/@subaction"/> 
    221                         </xsl:attribute> 
    222                     </input> 
    223                     <input type="hidden" name="rt" value="rd"/> 
    224                      
    225                     <xsl:variable name="ns">s1.</xsl:variable> 
    226                     <xsl:choose> 
    227                         <xsl:when test="/page/pageResponse/hierarchy and paramList/param[@name ='collection']"> 
    228                             <xsl:call-template name="CCSParams"> <!-- cross coll search --> 
    229                                 <xsl:with-param name="ns" select="$ns" /> 
    230                             </xsl:call-template> 
    231                         </xsl:when> 
    232                         <xsl:otherwise> 
    233                     <xsl:for-each select="paramList/param"> 
    234                         <xsl:choose> 
    235                             <xsl:when test="@type='multi'"> 
    236                                 <xsl:apply-templates select="."> 
    237                                     <xsl:with-param name="ns" select="$ns"/> 
    238                                 </xsl:apply-templates> 
    239                             </xsl:when> 
    240                             <xsl:otherwise> 
    241                                 <xsl:call-template name="param-display"> 
    242                                     <xsl:with-param name="ns" select="$ns"/> 
    243                                 </xsl:call-template> 
    244                             </xsl:otherwise> 
    245                         </xsl:choose> 
    246                     </xsl:for-each> 
    247                         </xsl:otherwise> 
    248                     </xsl:choose> 
    249                     <br/> 
    250                     <input type="submit"> 
    251                         <xsl:attribute name="value"> 
    252                             <xsl:value-of select="displayItem[@name='submit']"/> 
    253                         </xsl:attribute> 
    254                     </input> 
    255                 </div> 
    256             </form> 
    257         </xsl:for-each> 
    258     </xsl:template> 
    259  
    260     <xsl:template name="CCSParams"> 
    261       <xsl:param name="ns" /> 
    262       <xsl:variable name="currentSelection"><xsl:value-of select="util:getFormattedCCSSelection(/page/pageRequest/paramList/param[@name='s1.collection']/@value,/page/pageRequest/paramList/param[@name='s1.group']/@value)"/></xsl:variable> 
    263       <!-- display the collection param --> 
    264       <div class="paramLabel"> 
    265             <xsl:value-of select="paramList/param[@name='collection']/displayItem[@name='name']/text()" /> 
    266         </div> 
    267         <div class="paramValue"> 
    268             <select multiple="" size='10'> 
    269                 <xsl:attribute name="name"> 
    270                         <xsl:value-of select="$ns"></xsl:value-of> 
    271                         <xsl:text>collection</xsl:text> 
    272                     </xsl:attribute> 
    273                 <xsl:for-each select="/page/pageResponse/hierarchy/*"> 
    274                     <xsl:call-template name="hierarchy-display"> 
    275                       <xsl:with-param name="padding">0</xsl:with-param> 
    276                       <xsl:with-param name="currentSelection" select="$currentSelection"/> 
    277                     </xsl:call-template> 
    278                 </xsl:for-each> 
    279             </select> 
    280         </div> 
    281         <br class="clear" /> 
    282         <!-- display all the other params --> 
    283         <xsl:for-each select="paramList/param[@name !='collection']"> 
    284             <xsl:choose> 
    285                 <xsl:when test="@type='multi'"> 
    286                     <xsl:apply-templates select="."> 
    287                         <xsl:with-param name="ns" select="$ns"/> 
    288                     </xsl:apply-templates> 
    289                 </xsl:when> 
    290                 <xsl:otherwise> 
    291                     <xsl:call-template name="param-display"> 
    292                         <xsl:with-param name="ns" select="$ns"/> 
    293                     </xsl:call-template> 
    294                 </xsl:otherwise> 
    295             </xsl:choose> 
    296         </xsl:for-each> 
    297     </xsl:template> 
    298  
    299     <xsl:template name="hierarchy-display"> 
    300         <xsl:param name="padding" /> 
    301         <xsl:param name="path" /> 
    302         <xsl:param name="currentSelection"/> 
     574 
     575      <xsl:if test="$display_status_bar != 'false'"> 
     576        <!-- Search result status bar (in english it reads "Displaying X to Y of Z documents") --> 
     577        <xsl:if test="$docsPerPage &gt; 0"> 
     578          <xsl:variable name="startdoc" select="($currentPage - 1) * $docsPerPage + 1"/> 
     579          <xsl:variable name="enddoc"> 
    303580        <xsl:choose> 
    304           <xsl:when test="name(.) = 'group'"> 
    305             <xsl:variable name="group-name">group.<xsl:if test="$path"><xsl:value-of select="$path" />.</xsl:if><xsl:value-of select="@name" /></xsl:variable> 
    306                 <option> 
    307                     <xsl:attribute name="style"> 
    308                         <xsl:text>padding-left: </xsl:text> 
    309                         <xsl:value-of select="concat($padding,'px')" /> 
    310                     </xsl:attribute> 
    311                     <xsl:attribute name="value"><xsl:value-of select="$group-name"/></xsl:attribute> 
    312                     <xsl:if test="util:csvContains($currentSelection, $group-name)"> 
    313                         <xsl:attribute name="selected">selected</xsl:attribute> 
    314                     </xsl:if> 
    315                     <xsl:value-of select="@title"></xsl:value-of> 
    316                     <xsl:for-each select="./*"> 
    317                         <xsl:call-template name="hierarchy-display"> 
    318                             <xsl:with-param name="padding"> 
    319                                 <xsl:value-of select="$padding + 20" /> 
    320                             </xsl:with-param> 
    321                             <xsl:with-param name="path"><xsl:if test="$path"><xsl:value-of select="$path" />.</xsl:if><xsl:value-of select="../@name" /></xsl:with-param> 
    322                             <xsl:with-param name="currentSelection" select="$currentSelection"/> 
    323                         </xsl:call-template> 
    324                     </xsl:for-each> 
    325                 </option> 
    326             </xsl:when> 
    327             <xsl:otherwise> 
    328                 <option> 
    329                     <xsl:attribute name="style"> 
    330                         <xsl:text>padding-left: </xsl:text> 
    331                         <xsl:value-of select="$padding" />  
    332                         <xsl:text>px</xsl:text> 
    333                     </xsl:attribute> 
    334                     <xsl:if test="util:csvContains($currentSelection, @name)"> 
    335                         <xsl:attribute name="selected">selected</xsl:attribute> 
    336                     </xsl:if> 
    337                     <xsl:attribute name="value"> 
    338                         <xsl:value-of select="current()/@name"></xsl:value-of> 
    339                     </xsl:attribute> 
    340                     <xsl:value-of 
    341                         select="/page/pageResponse/service[@name = 'TextQuery']/paramList/param[@name = 'collection']/option[@name = current()/@name]/displayItem[@name = 'name']/text()"></xsl:value-of> 
    342                 </option> 
    343             </xsl:otherwise> 
     581          <xsl:when test="($currentPage * $docsPerPage + 1) &gt; $docMax"> 
     582            <xsl:value-of select="$docMax"/> 
     583          </xsl:when> 
     584          <xsl:otherwise> 
     585            <xsl:value-of select="$currentPage * $docsPerPage"/> 
     586          </xsl:otherwise> 
    344587        </xsl:choose> 
    345     </xsl:template> 
    346  
    347     <xsl:template name="displayMatchDocs"> 
    348         <div id="matchdocs"> 
    349             <xsl:variable name="numDocsMatched" select="/page/pageResponse/metadataList/metadata[@name='numDocsMatched']"/> 
    350             <xsl:variable name="numDocsReturned" select="/page/pageResponse/metadataList/metadata[@name='numDocsReturned']"/> 
    351             <xsl:variable name="docLevel"> 
    352                 <xsl:call-template name="documentLevel"/> 
    353             </xsl:variable> 
    354             <xsl:variable name="docLevelText"> 
    355                 <xsl:call-template name="documentLevelText"> 
    356                     <xsl:with-param name="numDocsMatched" select="$numDocsMatched"/> 
    357                     <xsl:with-param name="level" select="$docLevel"/> 
    358                 </xsl:call-template> 
    359             </xsl:variable> 
    360             <xsl:choose> 
    361                 <xsl:when test="$numDocsMatched='0' or $numDocsReturned='0'"> 
    362                     <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.nodocsmatch', $docLevelText)"/> 
    363                 </xsl:when> 
    364                 <xsl:when test="$numDocsMatched='1' or $numDocsReturned='1'"> 
    365                     <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.onedocsmatch', $docLevelText)"/> 
    366                 </xsl:when> 
    367                 <xsl:when test="$numDocsMatched"> 
    368                         <xsl:variable name="gitArgs1" select="concat($numDocsMatched, ';', $docLevelText)"/> 
    369                         <xsl:variable name="gitArgs2" select="concat($numDocsReturned, ';', $docLevelText)"/> 
    370                      
    371                     <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.manydocsmatch', $gitArgs1)"/> 
    372                     <xsl:if test="$numDocsReturned and not($numDocsMatched=$numDocsReturned)"> (<xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.docsreturned', $gitArgs2)"/>)</xsl:if> 
    373                 </xsl:when> 
    374                 <xsl:when test="$numDocsReturned"> 
    375                         <xsl:variable name="gitArgs" select="concat($numDocsReturned, ';', $docLevelText)"/> 
    376                     <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.atleastdocsmatch', $gitArgs)"/> 
    377                 </xsl:when> 
    378             </xsl:choose> 
    379         </div> 
    380  
    381     </xsl:template> 
    382  
    383     <xsl:template name="documentLevel"> 
     588          </xsl:variable> 
     589          <xsl:variable name="levelString"> 
    384590        <xsl:choose> 
    385             <xsl:when test="/page/pageRequest/paramList/param[@name='level']"> 
    386                 <xsl:value-of select="/page/pageRequest/paramList/param[@name='level']/@value" /> 
    387             </xsl:when> 
    388             <xsl:when test="/page/pageRequest/paramList/param[@name='s1.level']"> 
    389                 <xsl:value-of select="/page/pageRequest/paramList/param[@name='s1.level']/@value" /> 
    390             </xsl:when> 
    391             <xsl:otherwise>Doc</xsl:otherwise> 
     591          <xsl:when test="$level = 'Doc'"> 
     592            <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.document_plural')"/> 
     593          </xsl:when> 
     594          <xsl:otherwise> 
     595            <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.section_plural')"/> 
     596          </xsl:otherwise> 
    392597        </xsl:choose> 
    393     </xsl:template> 
    394  
    395     <xsl:template name="documentLevelText"> 
    396         <xsl:param name="numDocsMatched">0</xsl:param> 
    397         <xsl:param name="level">Doc</xsl:param> 
    398         <xsl:choose>     
    399             <xsl:when test="$numDocsMatched = 1"> 
    400                 <xsl:choose> 
    401                     <xsl:when test="$level = 'Doc'"> 
    402                         <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.document')"/> 
    403                     </xsl:when> 
    404                     <xsl:otherwise> 
    405                         <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.section')"/> 
    406                     </xsl:otherwise> 
    407                 </xsl:choose> 
    408             </xsl:when> 
    409             <!-- 0 or more than one use plural. is that the case for all langs??--> 
    410             <xsl:otherwise> 
    411                 <xsl:choose> 
    412                     <xsl:when test="$level = 'Doc'"> 
    413                         <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.document_plural')"/> 
    414                     </xsl:when> 
    415                     <xsl:otherwise> 
    416                         <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.section_plural')"/> 
    417                     </xsl:otherwise> 
    418                 </xsl:choose> 
    419             </xsl:otherwise> 
    420         </xsl:choose> 
    421     </xsl:template> 
    422  
    423     <xsl:template name="displayTermInfo"> 
    424  
    425         <!-- Find the number of documents displayed per page --> 
    426         <xsl:variable name="level"> 
    427             <xsl:call-template name="documentLevel"/> 
    428         </xsl:variable> 
    429  
    430         <!-- The list of search terms with their frequency and document count --> 
    431         <p class="termList"> 
    432             <xsl:if test="count(/page/pageResponse/termList/stopword) &gt; 0"> 
    433                 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.common')"/> 
    434                 <xsl:text> </xsl:text> 
    435                 <xsl:for-each select="/page/pageResponse/termList/stopword"> 
    436                     <span style="font-style:italic;"> 
    437                         <xsl:value-of select="@name"/> 
    438                     </span> 
    439                     <xsl:text> </xsl:text> 
    440                 </xsl:for-each> 
    441                 <br /> 
    442                 <br /> 
    443             </xsl:if> 
    444  
    445             <!-- If there is only one or two search terms then show the expanded information --> 
    446             <xsl:choose> 
    447               <xsl:when test="count(/page/pageResponse/termList/term) &lt; 3"> 
    448                  
    449                 <xsl:for-each select="/page/pageResponse/termList/term"> 
    450                   <xsl:variable name="levelText"> 
    451                 <!-- this gets document, section, documents, sections, depending on level and number --> 
    452                 <xsl:call-template name="documentLevelText"> 
    453                   <xsl:with-param name="level" select="$level"/> 
    454                   <xsl:with-param name="numDocsMatched" select="@numDocsMatch"/> 
    455                 </xsl:call-template> 
    456                   </xsl:variable> 
    457                   <span class="termInfo"> 
    458                            
    459                 <!-- For solr and mg collections, display:  
    460                      term x occured y times 
    461                      term a occured b times 
    462                      For collections using all other indexers, display:  
    463                      term x occurred y times in n sections/documents 
    464                      term a occurred b times in m sections/docs 
    465                 --> 
    466                 <!-- not all these args are used in every case --> 
    467                 <xsl:variable name="args" select="concat(@name,';', @freq, ';', @numDocsMatch,';',  $levelText)"/> 
    468                 <xsl:choose> 
    469                   <xsl:when test="@freq = 0"> 
    470                     <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.termoccurs.0',$args)"/> 
    471                   </xsl:when> 
    472                   <xsl:when test="@freq = 1"> 
    473                     <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.termoccurs.1',$args)"/> 
    474                   </xsl:when> 
    475                   <xsl:otherwise> <!-- more than one occurrance --> 
    476                     <xsl:choose> 
    477                       <xsl:when test="/page/pageResponse/collection[@type = 'solr'] or /page/pageResponse/collection[@type = 'mg']"> 
    478                     <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.termoccurs.x',$args)"/> 
    479                       </xsl:when> 
    480                       <xsl:when test="@numDocsMatch = 1"> 
    481                     <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.termoccurs.x.1',$args)"/> 
    482                       </xsl:when> 
    483                       <xsl:otherwise> 
    484                     <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.termoccurs.x.x',$args)"/> 
    485                       </xsl:otherwise> 
    486                     </xsl:choose> 
    487                   </xsl:otherwise> 
    488                 </xsl:choose> 
    489                  
    490                   </span> 
    491                   <br/> 
    492                 </xsl:for-each> 
    493               </xsl:when> 
    494               <xsl:otherwise> 
    495                     <xsl:for-each select="/page/pageResponse/termList/term"> 
    496                         <span style="font-style:italic;"> 
    497                             <xsl:value-of select="@name"/> 
    498                         </span> (<xsl:value-of select="@freq"/>) 
    499                     </xsl:for-each> 
    500                 </xsl:otherwise> 
    501             </xsl:choose> 
    502         </p> 
    503     </xsl:template> 
    504  
    505     <xsl:template name="prevNextButtons">    
    506         <!-- Current page --> 
    507         <xsl:variable name="currentPage"> 
    508             <xsl:choose> 
    509                 <xsl:when test="/page/pageRequest/paramList/param[@name='s1.startPage']/@value"> 
    510                     <xsl:value-of select="/page/pageRequest/paramList/param[@name='s1.startPage']/@value" /> 
    511                 </xsl:when> 
    512                 <xsl:when test="/page/pageRequest/paramList/param[@name='startPage']/@value"> 
    513                     <xsl:value-of select="/page/pageRequest/paramList/param[@name='startPage']/@value" /> 
    514                 </xsl:when> 
    515                 <xsl:otherwise>1</xsl:otherwise> 
    516             </xsl:choose> 
    517         </xsl:variable> 
    518         <xsl:variable name="usesS1"> 
    519             <xsl:choose> 
    520                 <xsl:when test="/page/pageResponse/service/paramList/param[@name='startPage']">true</xsl:when> 
    521                 <xsl:otherwise>false</xsl:otherwise> 
    522             </xsl:choose> 
    523         </xsl:variable> 
    524         <!-- Find the total number of documents returned/matched --> 
    525         <xsl:variable name="docMax"> 
    526             <xsl:choose> 
    527                 <xsl:when test="/page/pageResponse/metadataList/metadata[@name = 'numDocsReturned']"> 
    528                     <xsl:value-of select="/page/pageResponse/metadataList/metadata[@name = 'numDocsReturned']"/> 
    529                 </xsl:when> 
    530                 <xsl:when test="/page/pageResponse/metadataList/metadata[@name = 'numDocsMatched']"> 
    531                     <xsl:value-of select="/page/pageResponse/metadataList/metadata[@name = 'numDocsMatched']"/> 
    532                 </xsl:when> 
    533                 <xsl:otherwise> 
    534                     <xsl:value-of select="count(/page/pageResponse/documentNodeList/documentNode)"/> 
    535                 </xsl:otherwise> 
    536             </xsl:choose> 
    537         </xsl:variable> 
    538         <!-- Find the number of documents displayed per page --> 
    539         <xsl:variable name="docsPerPage"> 
    540             <xsl:choose> 
    541                 <xsl:when test="/page/pageRequest/paramList/param[@name='s1.hitsPerPage']"> 
    542                     <xsl:value-of select="/page/pageRequest/paramList/param[@name='s1.hitsPerPage']/@value" /> 
    543                 </xsl:when> 
    544                 <xsl:when test="/page/pageResponse/service/paramList/param[@name='hitsPerPage']"> 
    545                   <xsl:value-of select="/page/pageResponse/service/paramList/param[@name='hitsPerPage']/@default" /> 
    546                   </xsl:when> 
    547                 <xsl:otherwise><xsl:value-of select="count(/page/pageResponse/documentNodeList/documentNode)"/></xsl:otherwise> 
    548             </xsl:choose> 
    549         </xsl:variable> 
    550         <!-- Find the level --> 
    551         <xsl:variable name="level"> 
    552           <xsl:call-template name="documentLevel"/> 
    553         </xsl:variable> 
    554         <!-- we only need this if number of docs > docsperpage --> 
    555         <xsl:if test="$docMax &gt; $docsPerPage"> 
    556         <table id="searchResultNavTable"> 
    557             <tr> 
    558                 <xsl:variable name="startPageName"> 
    559                     <xsl:if test="$usesS1 = 'true'">s1.</xsl:if>startPage</xsl:variable> 
    560  
    561                 <!-- Previous button --> 
    562                 <td id="prevArrowTD"> 
    563                     <xsl:if test="$currentPage != 1"> 
    564                         <a href="{$library_name}?a=q&amp;sa={/page/pageRequest/@subaction}&amp;c={$collName}&amp;s={/page/pageResponse/service/@name}&amp;rt=rd&amp;{$startPageName}={$currentPage - 1}&amp;qs={/page/pageRequest/paramList/param[@name='qs']/@value}"> 
    565                           <xsl:call-template name="previousArrowImage"/> 
    566                         </a> 
    567                     </xsl:if> 
    568                 </td> 
    569                 <td id="prevTD"> 
    570                     <xsl:if test="$currentPage != 1"> 
    571                         <a href="{$library_name}?a=q&amp;sa={/page/pageRequest/@subaction}&amp;c={$collName}&amp;s={/page/pageResponse/service/@name}&amp;rt=rd&amp;{$startPageName}={$currentPage - 1}&amp;qs={/page/pageRequest/paramList/param[@name='qs']/@value}"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.results.previous')"/></a> 
    572                     </xsl:if> 
    573                 </td> 
    574  
    575                 <xsl:if test="$display_status_bar != 'false'"> 
    576                 <!-- Search result status bar (in english it reads "Displaying X to Y of Z documents") --> 
    577                 <xsl:if test="$docsPerPage &gt; 0"> 
    578                     <xsl:variable name="startdoc" select="($currentPage - 1) * $docsPerPage + 1"/> 
    579                     <xsl:variable name="enddoc"> 
    580                         <xsl:choose> 
    581                             <xsl:when test="($currentPage * $docsPerPage + 1) &gt; $docMax"> 
    582                                 <xsl:value-of select="$docMax"/> 
    583                             </xsl:when> 
    584                             <xsl:otherwise> 
    585                                 <xsl:value-of select="$currentPage * $docsPerPage"/> 
    586                             </xsl:otherwise> 
    587                         </xsl:choose> 
    588                     </xsl:variable> 
    589                     <xsl:variable name="levelString"> 
    590                       <xsl:choose> 
    591                         <xsl:when test="$level = 'Doc'"> 
    592                           <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.document_plural')"/> 
    593                         </xsl:when> 
    594                         <xsl:otherwise> 
    595                           <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.section_plural')"/> 
    596                         </xsl:otherwise> 
    597                       </xsl:choose> 
    598                     </xsl:variable> 
    599                     <td id="searchResultsStatusBar"> 
    600                             <xsl:variable name="gitArgs" select="concat($startdoc,';', $enddoc, ';', $docMax, ';', $levelString)"/> 
    601                         <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.displayingnumdocs', $gitArgs)"/> 
    602                     </td> 
    603                 </xsl:if> 
    604                 </xsl:if> 
    605                 <!-- Next button --> 
    606                 <td id="nextTD"> 
    607                     <xsl:if test="$docsPerPage &gt; 0 and ($currentPage * $docsPerPage) &lt; $docMax"> 
    608                         <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;{$startPageName}={$currentPage + 1}&amp;qs={/page/pageRequest/paramList/param[@name='qs']/@value}"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.results.next')"/></a> 
    609                     </xsl:if> 
    610                 </td> 
    611                 <td id="nextArrowTD"> 
    612                     <xsl:if test="$docsPerPage &gt; 0 and ($currentPage * $docsPerPage) &lt; $docMax"> 
    613                         <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;{$startPageName}={$currentPage + 1}&amp;qs={/page/pageRequest/paramList/param[@name='qs']/@value}"> 
    614                             <xsl:call-template name="nextArrowImage"/> 
    615                         </a> 
    616                     </xsl:if> 
    617                 </td> 
    618             </tr> 
    619         </table> 
    620         </xsl:if> 
    621     </xsl:template> 
    622  
    623     <xsl:template name="previousArrowImage"> 
    624       <img src="interfaces/{$interface_name}/images/previous.png"/> 
    625     </xsl:template> 
    626     <xsl:template name="nextArrowImage"> 
    627       <img src="interfaces/{$interface_name}/images/next.png"/> 
    628     </xsl:template> 
    629     <!-- puts all the params into a=p&p=h type form - need to change this if use  
    630     multi params  --> 
    631     <xsl:template match="paramList" mode="cgi"> 
    632         <xsl:param name="ns">s1.</xsl:param> 
    633         <xsl:for-each select="param"> 
    634             <xsl:variable name='pname' select="@name"/> 
    635             <xsl:text>&amp;</xsl:text> 
    636             <xsl:value-of select="$ns"/> 
    637             <xsl:value-of select="@name"/>=<xsl:apply-templates select="." mode="calculate-default"> 
    638                 <xsl:with-param name='ns' select='$ns'/> 
    639             </xsl:apply-templates> 
    640         </xsl:for-each> 
    641     </xsl:template> 
    642  
    643     <xsl:template name="resultsPagePre"> 
    644         <!-- OVERWRITE TO INSERT CONTENT BEFORE THE RESULTS PAGE --> 
    645         <xsl:if test="/page/pageResponse/format[@type='display' or @type='browse' or @type='search']/gsf:option[@name='mapEnabled']/@value = 'true'"> 
    646             <xsl:call-template name="mapFeaturesJSONNodes"/> 
    647             <xsl:call-template name="mapFeaturesMap"/> 
    648         </xsl:if> 
    649     </xsl:template> 
    650  
    651     <xsl:template name="resultsPagePost"> 
    652         <!-- OVERWRITE TO INSERT CONTENT AFTER THE RESULTS PAGE --> 
    653     </xsl:template> 
    654  
    655     <xsl:template name="documentNodePre"> 
    656         <!-- OVERWRITE TO INSERT CONTENT BEFORE EVERY DOCUMENT NODE --> 
    657     </xsl:template> 
    658  
    659     <xsl:template name="documentNodePost"> 
    660         <!-- OVERWRITE TO INSERT CONTENT AFTER EVERY DOCUMENT NODE --> 
    661         <xsl:if test="/page/pageResponse/format[@type='display' or @type='browse' or @type='search']/gsf:option[@name='mapEnabled']/@value = 'true'"> 
    662             <xsl:call-template name="mapFeaturesIcon"/> 
    663         </xsl:if> 
    664  
    665         <xsl:if test="/page/pageResponse/format/gsf:option[@name='panoramaViewerEnabled']/@value = 'true'"> 
    666           <xsl:if test=" metadataList/metadata[@name = 'Coordinate'] or ( metadataList/metadata[@name = 'Latitude'] and metadataList/metadata[@name = 'Longitude'])"> 
    667                     <xsl:call-template name="panoramaViewerFeaturesIcon"/> 
    668                   </xsl:if> 
    669         </xsl:if> 
    670  
    671     </xsl:template> 
     598          </xsl:variable> 
     599          <td id="searchResultsStatusBar"> 
     600        <xsl:variable name="gitArgs" select="concat($startdoc,';', $enddoc, ';', $docMax, ';', $levelString)"/> 
     601        <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.displayingnumdocs', $gitArgs)"/> 
     602          </td> 
     603        </xsl:if> 
     604      </xsl:if> 
     605      <!-- Next button --> 
     606      <td id="nextTD"> 
     607        <xsl:if test="$docsPerPage &gt; 0 and ($currentPage * $docsPerPage) &lt; $docMax"> 
     608          <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;{$startPageName}={$currentPage + 1}&amp;qs={/page/pageRequest/paramList/param[@name='qs']/@value}"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.results.next')"/></a> 
     609        </xsl:if> 
     610      </td> 
     611      <td id="nextArrowTD"> 
     612        <xsl:if test="$docsPerPage &gt; 0 and ($currentPage * $docsPerPage) &lt; $docMax"> 
     613          <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;{$startPageName}={$currentPage + 1}&amp;qs={/page/pageRequest/paramList/param[@name='qs']/@value}"> 
     614        <xsl:call-template name="nextArrowImage"/> 
     615          </a> 
     616        </xsl:if> 
     617      </td> 
     618    </tr> 
     619      </table> 
     620    </xsl:if> 
     621  </xsl:template> 
     622 
     623  <xsl:template name="previousArrowImage"> 
     624    <img src="interfaces/{$interface_name}/images/previous.png"/> 
     625  </xsl:template> 
     626  <xsl:template name="nextArrowImage"> 
     627    <img src="interfaces/{$interface_name}/images/next.png"/> 
     628  </xsl:template> 
     629  <!-- puts all the params into a=p&p=h type form - need to change this if use  
     630       multi params  --> 
     631  <xsl:template match="paramList" mode="cgi"> 
     632    <xsl:param name="ns">s1.</xsl:param> 
     633    <xsl:for-each select="param"> 
     634      <xsl:variable name='pname' select="@name"/> 
     635      <xsl:text>&amp;</xsl:text> 
     636      <xsl:value-of select="$ns"/> 
     637      <xsl:value-of select="@name"/>=<xsl:apply-templates select="." mode="calculate-default"> 
     638      <xsl:with-param name='ns' select='$ns'/> 
     639    </xsl:apply-templates> 
     640    </xsl:for-each> 
     641  </xsl:template> 
     642 
     643  <xsl:template name="resultsPagePre"> 
     644    <!-- OVERWRITE TO INSERT CONTENT BEFORE THE RESULTS PAGE --> 
     645    <xsl:if test="/page/pageResponse/format[@type='display' or @type='browse' or @type='search']/gsf:option[@name='mapEnabled']/@value = 'true'"> 
     646      <xsl:call-template name="mapFeaturesJSONNodes"/> 
     647      <xsl:call-template name="mapFeaturesMap"/> 
     648    </xsl:if> 
     649  </xsl:template> 
     650 
     651  <xsl:template name="resultsPagePost"> 
     652    <!-- OVERWRITE TO INSERT CONTENT AFTER THE RESULTS PAGE --> 
     653  </xsl:template> 
     654 
     655  <xsl:template name="documentNodePre"> 
     656    <!-- OVERWRITE TO INSERT CONTENT BEFORE EVERY DOCUMENT NODE --> 
     657  </xsl:template> 
     658 
     659  <xsl:template name="documentNodePost"> 
     660    <!-- OVERWRITE TO INSERT CONTENT AFTER EVERY DOCUMENT NODE --> 
     661    <xsl:if test="/page/pageResponse/format[@type='display' or @type='browse' or @type='search']/gsf:option[@name='mapEnabled']/@value = 'true'"> 
     662      <xsl:call-template name="mapFeaturesIcon"/> 
     663    </xsl:if> 
     664 
     665    <xsl:if test="/page/pageResponse/format/gsf:option[@name='panoramaViewerEnabled']/@value = 'true'"> 
     666      <xsl:if test=" metadataList/metadata[@name = 'Coordinate'] or ( metadataList/metadata[@name = 'Latitude'] and metadataList/metadata[@name = 'Longitude'])"> 
     667        <xsl:call-template name="panoramaViewerFeaturesIcon"/> 
     668      </xsl:if> 
     669    </xsl:if> 
     670 
     671  </xsl:template> 
    672672 
    673673