Bug 6553 - Parentheses in Corporate author break tracings
[koha-equinox.git] / koha-tmpl / opac-tmpl / prog / en / xslt / MARC21slim2OPACDetail.xsl
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- $Id: MARC21slim2DC.xsl,v 1.1 2003/01/06 08:20:27 adam Exp $ -->
3 <!DOCTYPE stylesheet [<!ENTITY nbsp "&#160;" >]>
4 <xsl:stylesheet version="1.0"
5   xmlns:marc="http://www.loc.gov/MARC21/slim"
6   xmlns:items="http://www.koha-community.org/items"
7   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
8   exclude-result-prefixes="marc items">
9     <xsl:import href="MARC21slimUtils.xsl"/>
10     <xsl:output method = "html" indent="yes" omit-xml-declaration = "yes" encoding="UTF-8"/>
11     <xsl:template match="/">
12             <xsl:apply-templates/>
13     </xsl:template>
14
15     <xsl:template match="marc:record">
16
17         <!-- Option: Display Alternate Graphic Representation (MARC 880)  -->
18         <xsl:variable name="display880" select="boolean(marc:datafield[@tag=880])"/>
19
20     <xsl:variable name="UseControlNumber" select="marc:sysprefs/marc:syspref[@name='UseControlNumber']"/>
21     <xsl:variable name="DisplayOPACiconsXSLT" select="marc:sysprefs/marc:syspref[@name='DisplayOPACiconsXSLT']"/>
22     <xsl:variable name="OPACURLOpenInNewWindow" select="marc:sysprefs/marc:syspref[@name='OPACURLOpenInNewWindow']"/>
23     <xsl:variable name="URLLinkText" select="marc:sysprefs/marc:syspref[@name='URLLinkText']"/>
24     
25     <xsl:variable name="SubjectModifier"><xsl:if test="marc:sysprefs/marc:syspref[@name='TraceCompleteSubfields']='1'">,complete-subfield</xsl:if></xsl:variable>
26     <xsl:variable name="UseAuthoritiesForTracings" select="marc:sysprefs/marc:syspref[@name='UseAuthoritiesForTracings']"/>
27     <xsl:variable name="TraceSubjectSubdivisions" select="marc:sysprefs/marc:syspref[@name='TraceSubjectSubdivisions']"/>
28     <xsl:variable name="Show856uAsImage" select="marc:sysprefs/marc:syspref[@name='OPACDisplay856uAsImage']"/>
29     <xsl:variable name="OPACTrackClicks" select="marc:sysprefs/marc:syspref[@name='TrackClicks']"/>
30     <xsl:variable name="biblionumber" select="marc:datafield[@tag=999]/marc:subfield[@code='c']"/>
31     <xsl:variable name="TracingQuotesLeft">
32       <xsl:choose>
33         <xsl:when test="marc:sysprefs/marc:syspref[@name='UseICU']='1'">{</xsl:when>
34         <xsl:otherwise>"</xsl:otherwise>
35       </xsl:choose>
36     </xsl:variable>
37     <xsl:variable name="TracingQuotesRight">
38       <xsl:choose>
39         <xsl:when test="marc:sysprefs/marc:syspref[@name='UseICU']='1'">}</xsl:when>
40         <xsl:otherwise>"</xsl:otherwise>
41       </xsl:choose>
42     </xsl:variable>
43         <xsl:variable name="leader" select="marc:leader"/>
44         <xsl:variable name="leader6" select="substring($leader,7,1)"/>
45         <xsl:variable name="leader7" select="substring($leader,8,1)"/>
46         <xsl:variable name="leader19" select="substring($leader,20,1)"/>
47         <xsl:variable name="controlField008" select="marc:controlfield[@tag=008]"/>
48         <xsl:variable name="materialTypeCode">
49             <xsl:choose>
50                 <xsl:when test="$leader19='a'">ST</xsl:when>
51                 <xsl:when test="$leader6='a'">
52                     <xsl:choose>
53                         <xsl:when test="$leader7='c' or $leader7='d' or $leader7='m'">BK</xsl:when>
54                         <xsl:when test="$leader7='i' or $leader7='s'">SE</xsl:when>
55                         <xsl:when test="$leader7='a' or $leader7='b'">AR</xsl:when>
56                     </xsl:choose>
57                 </xsl:when>
58                 <xsl:when test="$leader6='t'">BK</xsl:when>
59                 <xsl:when test="$leader6='o' or $leader6='p'">MX</xsl:when>
60                 <xsl:when test="$leader6='m'">CF</xsl:when>
61                 <xsl:when test="$leader6='e' or $leader6='f'">MP</xsl:when>
62                 <xsl:when test="$leader6='g' or $leader6='k' or $leader6='r'">VM</xsl:when>
63                 <xsl:when test="$leader6='i' or $leader6='j'">MU</xsl:when>
64                 <xsl:when test="$leader6='c' or $leader6='d'">PR</xsl:when>
65             </xsl:choose>
66         </xsl:variable>
67         <xsl:variable name="materialTypeLabel">
68             <xsl:choose>
69                 <xsl:when test="$leader19='a'">Set</xsl:when>
70                 <xsl:when test="$leader6='a'">
71                     <xsl:choose>
72                         <xsl:when test="$leader7='c' or $leader7='d' or $leader7='m'">Book</xsl:when>
73                         <xsl:when test="$leader7='i' or $leader7='s'">
74                             <xsl:choose>
75                                 <xsl:when test="substring($controlField008,22,1)!='m'">Continuing Resource</xsl:when>
76                                 <xsl:otherwise>Series</xsl:otherwise>
77                             </xsl:choose>
78                         </xsl:when>
79                         <xsl:when test="$leader7='a' or $leader7='b'">Article</xsl:when>
80                     </xsl:choose>
81                 </xsl:when>
82                 <xsl:when test="$leader6='t'">Book</xsl:when>
83                                 <xsl:when test="$leader6='o'">Kit</xsl:when>
84                 <xsl:when test="$leader6='p'">Mixed materials</xsl:when>
85                 <xsl:when test="$leader6='m'">Computer file</xsl:when>
86                 <xsl:when test="$leader6='e' or $leader6='f'">Map</xsl:when>
87                 <xsl:when test="$leader6='g' or $leader6='k' or $leader6='r'">Visual material</xsl:when>
88                 <xsl:when test="$leader6='j'">Music</xsl:when>
89                 <xsl:when test="$leader6='i'">Sound</xsl:when>
90                 <xsl:when test="$leader6='c' or $leader6='d'">Score</xsl:when>
91             </xsl:choose>
92         </xsl:variable>
93
94         <!-- Title Statement -->
95         <!-- Alternate Graphic Representation (MARC 880) -->
96         <xsl:if test="$display880">
97             <h1 class="title">
98                 <xsl:call-template name="m880Select">
99                     <xsl:with-param name="basetags">245</xsl:with-param>
100                     <xsl:with-param name="codes">abhfgknps</xsl:with-param>
101                 </xsl:call-template>
102             </h1>
103         </xsl:if>
104
105         <xsl:if test="marc:datafield[@tag=245]">
106         <h1 class="title">
107             <xsl:for-each select="marc:datafield[@tag=245]">
108                     <xsl:call-template name="subfieldSelect">
109                         <xsl:with-param name="codes">a</xsl:with-param>
110                     </xsl:call-template>
111                     <xsl:if test="marc:subfield[@code='h']">
112                         <xsl:text> </xsl:text>
113                         <xsl:call-template name="subfieldSelect">
114                             <xsl:with-param name="codes">h</xsl:with-param>
115                         </xsl:call-template>
116                     </xsl:if>
117                     <xsl:if test="marc:subfield[@code='b']">
118                         <xsl:text> </xsl:text>
119                         <xsl:call-template name="subfieldSelect">
120                             <xsl:with-param name="codes">b</xsl:with-param>
121                         </xsl:call-template>
122                     </xsl:if>
123                 <xsl:text> </xsl:text>
124                     <xsl:call-template name="subfieldSelect">
125                         <xsl:with-param name="codes">fgknps</xsl:with-param>
126                     </xsl:call-template>
127             </xsl:for-each>
128         </h1>
129         </xsl:if>
130
131         <!-- Author Statement: Alternate Graphic Representation (MARC 880) -->
132         <xsl:if test="$display880">
133             <h5 class="author">
134                 <xsl:call-template name="m880Select">
135                     <xsl:with-param name="basetags">100,110,111,700,710,711</xsl:with-param>
136                     <xsl:with-param name="codes">abc</xsl:with-param>
137                     <xsl:with-param name="index">au</xsl:with-param>
138                     <!-- do not use label 'by ' here, it would be repeated for every occurence of 100,110,111,700,710,711 -->
139                 </xsl:call-template>
140             </h5>
141         </xsl:if>
142         <xsl:choose>
143             <xsl:when test="marc:datafield[@tag=100] or marc:datafield[@tag=110] or marc:datafield[@tag=111] or marc:datafield[@tag=700] or marc:datafield[@tag=710] or marc:datafield[@tag=711]">
144                 <h5 class="author">by
145                     <xsl:call-template name="showAuthor">
146                         <xsl:with-param name="authorfield" select="marc:datafield[@tag=100 or @tag=110 or @tag=111 or @tag=700 or @tag=710 or @tag=711]"/>
147                         <xsl:with-param name="UseAuthoritiesForTracings" select="$UseAuthoritiesForTracings"/>
148                     </xsl:call-template>
149                 </h5>
150             </xsl:when>
151         </xsl:choose>
152
153    <xsl:if test="$DisplayOPACiconsXSLT!='0'">
154         <xsl:if test="$materialTypeCode!=''">
155         <span class="results_summary type"><span class="label">Type: </span>
156         <xsl:element name="img"><xsl:attribute name="src">/opac-tmpl/lib/famfamfam/<xsl:value-of select="$materialTypeCode"/>.png</xsl:attribute><xsl:attribute name="alt">materialTypeLabel</xsl:attribute><xsl:attribute name="class">materialtype</xsl:attribute></xsl:element>
157         <xsl:value-of select="$materialTypeLabel"/>
158         </span>
159         </xsl:if>
160    </xsl:if>
161
162         <!--Series: Alternate Graphic Representation (MARC 880) -->
163         <xsl:if test="$display880">
164             <xsl:call-template name="m880Select">
165                 <xsl:with-param name="basetags">440,490</xsl:with-param>
166                 <xsl:with-param name="codes">av</xsl:with-param>
167                 <xsl:with-param name="class">results_summary series</xsl:with-param>
168                 <xsl:with-param name="label">Series: </xsl:with-param>
169                 <xsl:with-param name="index">se</xsl:with-param>
170             </xsl:call-template>
171         </xsl:if>
172
173         <!-- Series -->
174         <xsl:if test="marc:datafield[@tag=440 or @tag=490]">
175         <span class="results_summary series"><span class="label">Series: </span>
176         <!-- 440 -->
177         <xsl:for-each select="marc:datafield[@tag=440]">
178             <a><xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=se,phr:"<xsl:value-of select="marc:subfield[@code='a']"/>"</xsl:attribute>
179             <xsl:call-template name="chopPunctuation">
180                             <xsl:with-param name="chopString">
181                                 <xsl:call-template name="subfieldSelect">
182                                     <xsl:with-param name="codes">av</xsl:with-param>
183                                 </xsl:call-template>
184                             </xsl:with-param>
185                         </xsl:call-template>
186             </a>
187             <xsl:call-template name="part"/>
188             <xsl:choose><xsl:when test="position()=last()"><xsl:text>. </xsl:text></xsl:when><xsl:otherwise><xsl:text> ; </xsl:text></xsl:otherwise></xsl:choose>
189         </xsl:for-each>
190
191         <!-- 490 Series not traced, Ind1 = 0 -->
192         <xsl:for-each select="marc:datafield[@tag=490][@ind1!=1]">
193             <a><xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=se,phr:"<xsl:value-of select="marc:subfield[@code='a']"/>"</xsl:attribute>
194                         <xsl:call-template name="chopPunctuation">
195                             <xsl:with-param name="chopString">
196                                 <xsl:call-template name="subfieldSelect">
197                                     <xsl:with-param name="codes">av</xsl:with-param>
198                                 </xsl:call-template>
199                             </xsl:with-param>
200                         </xsl:call-template>
201             </a>
202                     <xsl:call-template name="part"/>
203         <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
204         </xsl:for-each>
205         <!-- 490 Series traced, Ind1 = 1 -->
206         <xsl:if test="marc:datafield[@tag=490][@ind1=1]">
207             <xsl:for-each select="marc:datafield[@tag=800 or @tag=810 or @tag=811 or @tag=830]">
208                 <xsl:choose>
209                     <xsl:when test="$UseControlNumber = '1' and marc:subfield[@code='w']">
210                         <a href="/cgi-bin/koha/opac-search.pl?q=rcn:{marc:subfield[@code='w']}">
211                             <xsl:call-template name="chopPunctuation">
212                                 <xsl:with-param name="chopString">
213                                     <xsl:call-template name="subfieldSelect">
214                                         <xsl:with-param name="codes">a_t</xsl:with-param>
215                                     </xsl:call-template>
216                                 </xsl:with-param>
217                             </xsl:call-template>
218                         </a>
219                     </xsl:when>
220                     <xsl:otherwise>
221                         <a><xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=se,phr:"<xsl:value-of select="marc:subfield[@code='a']"/>"</xsl:attribute>
222                             <xsl:call-template name="chopPunctuation">
223                                 <xsl:with-param name="chopString">
224                                     <xsl:call-template name="subfieldSelect">
225                                         <xsl:with-param name="codes">a_t</xsl:with-param>
226                                     </xsl:call-template>
227                                 </xsl:with-param>
228                             </xsl:call-template>
229                         </a>
230                         <xsl:call-template name="part"/>
231                     </xsl:otherwise>
232                 </xsl:choose>
233                 <xsl:text>: </xsl:text>
234                 <xsl:value-of  select="marc:subfield[@code='v']" />
235             <xsl:choose><xsl:when test="position()=last()"><xsl:text></xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
236             </xsl:for-each>
237         </xsl:if>
238         </span>
239         </xsl:if>
240         
241         <!-- Analytics -->
242         <xsl:if test="$leader7='s'">
243         <span class="results_summary analytics"><span class="label">Analytics: </span>
244             <a>
245             <xsl:choose>
246             <xsl:when test="$UseControlNumber = '1' and marc:controlfield[@tag=001]">
247                 <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=rcn:<xsl:value-of select="marc:controlfield[@tag=001]"/>+and+(bib-level:a+or+bib-level:b)</xsl:attribute>
248             </xsl:when>
249             <xsl:otherwise>
250                 <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=Host-item:<xsl:value-of select="translate(marc:datafield[@tag=245]/marc:subfield[@code='a'], '/', '')"/></xsl:attribute>
251             </xsl:otherwise>
252             </xsl:choose>
253             <xsl:text>Show analytics</xsl:text>
254             </a>
255         </span>
256         </xsl:if>
257
258         <!-- Volumes of sets and traced series -->
259         <xsl:if test="$materialTypeCode='ST' or substring($controlField008,22,1)='m'">
260         <span class="results_summary volumes"><span class="label">Volumes: </span>
261             <a>
262             <xsl:choose>
263             <xsl:when test="$UseControlNumber = '1' and marc:controlfield[@tag=001]">
264                 <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=rcn:<xsl:value-of select="marc:controlfield[@tag=001]"/>+not+(bib-level:a+or+bib-level:b)</xsl:attribute>
265             </xsl:when>
266             <xsl:otherwise>
267                 <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=ti,phr:<xsl:value-of select="translate(marc:datafield[@tag=245]/marc:subfield[@code='a'], '/', '')"/></xsl:attribute>
268             </xsl:otherwise>
269             </xsl:choose>
270             <xsl:text>Show volumes</xsl:text>
271             </a>
272         </span>
273         </xsl:if>
274
275         <!-- Set -->
276         <xsl:if test="$leader19='c'">
277         <span class="results_summary set"><span class="label">Set: </span>
278         <xsl:for-each select="marc:datafield[@tag=773]">
279             <a>
280             <xsl:choose>
281             <xsl:when test="$UseControlNumber = '1' and marc:subfield[@code='w']">
282                 <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=Control-number:<xsl:call-template name="extractControlNumber"><xsl:with-param name="subfieldW" select="marc:subfield[@code='w']"/></xsl:call-template></xsl:attribute>
283             </xsl:when>
284             <xsl:otherwise>
285                 <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=ti,phr:<xsl:value-of select="translate(//marc:datafield[@tag=245]/marc:subfield[@code='a'], '.', '')"/></xsl:attribute>
286             </xsl:otherwise>
287             </xsl:choose>
288             <xsl:value-of select="translate(//marc:datafield[@tag=245]/marc:subfield[@code='a'], '.', '')" />
289             </a>
290             <xsl:choose>
291                 <xsl:when test="position()=last()"></xsl:when>
292                 <xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise>
293             </xsl:choose>
294         </xsl:for-each>
295         </span>
296         </xsl:if>
297
298         <!-- Publisher Statement: Alternate Graphic Representation (MARC 880) -->
299         <xsl:if test="$display880">
300             <xsl:call-template name="m880Select">
301                 <xsl:with-param name="basetags">260</xsl:with-param>
302                 <xsl:with-param name="codes">abcg</xsl:with-param>
303                 <xsl:with-param name="class">results_summary publisher</xsl:with-param>
304                 <xsl:with-param name="label">Publisher: </xsl:with-param>
305             </xsl:call-template>
306         </xsl:if>
307
308         <xsl:if test="marc:datafield[@tag=260]">
309         <span class="results_summary publisher"><span class="label">Publisher: </span>
310             <xsl:for-each select="marc:datafield[@tag=260]">
311                 <xsl:if test="marc:subfield[@code='a']">
312                     <xsl:call-template name="subfieldSelect">
313                         <xsl:with-param name="codes">a</xsl:with-param>
314                     </xsl:call-template>
315                 </xsl:if>
316                 <xsl:text> </xsl:text>
317                 <xsl:if test="marc:subfield[@code='b']">
318                 <a href="/cgi-bin/koha/opac-search.pl?q=pb:{marc:subfield[@code='b']}">
319                     <xsl:call-template name="subfieldSelect">
320                         <xsl:with-param name="codes">b</xsl:with-param>
321                     </xsl:call-template>
322                </a>
323                </xsl:if>
324                <xsl:text> </xsl:text>
325                 <xsl:call-template name="chopPunctuation">
326                   <xsl:with-param name="chopString">
327                     <xsl:call-template name="subfieldSelect">
328                         <xsl:with-param name="codes">cg</xsl:with-param>
329                     </xsl:call-template>
330                    </xsl:with-param>
331                </xsl:call-template>
332                     <xsl:choose><xsl:when test="position()=last()"><xsl:text></xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
333             </xsl:for-each>
334         </span>
335         </xsl:if>
336
337         <!-- Edition Statement: Alternate Graphic Representation (MARC 880) -->
338         <xsl:if test="$display880">
339             <xsl:call-template name="m880Select">
340                 <xsl:with-param name="basetags">250</xsl:with-param>
341                 <xsl:with-param name="codes">ab</xsl:with-param>
342                 <xsl:with-param name="class">results_summary edition</xsl:with-param>
343                 <xsl:with-param name="label">Edition: </xsl:with-param>
344             </xsl:call-template>
345         </xsl:if>
346
347         <xsl:if test="marc:datafield[@tag=250]">
348         <span class="results_summary edition"><span class="label">Edition: </span>
349             <xsl:for-each select="marc:datafield[@tag=250]">
350                 <xsl:call-template name="chopPunctuation">
351                   <xsl:with-param name="chopString">
352                     <xsl:call-template name="subfieldSelect">
353                         <xsl:with-param name="codes">ab</xsl:with-param>
354                     </xsl:call-template>
355                    </xsl:with-param>
356                </xsl:call-template>
357                     <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
358             </xsl:for-each>
359         </span>
360         </xsl:if>
361
362         <!-- Description: Alternate Graphic Representation (MARC 880) -->
363         <xsl:if test="$display880">
364             <xsl:call-template name="m880Select">
365                 <xsl:with-param name="basetags">300</xsl:with-param>
366                 <xsl:with-param name="codes">abceg</xsl:with-param>
367                 <xsl:with-param name="class">results_summary description</xsl:with-param>
368                 <xsl:with-param name="label">Description: </xsl:with-param>
369             </xsl:call-template>
370         </xsl:if>
371
372         <xsl:if test="marc:datafield[@tag=300]">
373         <span class="results_summary description"><span class="label">Description: </span>
374             <xsl:for-each select="marc:datafield[@tag=300]">
375                 <xsl:call-template name="chopPunctuation">
376                   <xsl:with-param name="chopString">
377                     <xsl:call-template name="subfieldSelect">
378                         <xsl:with-param name="codes">abceg</xsl:with-param>
379                     </xsl:call-template>
380                    </xsl:with-param>
381                </xsl:call-template>
382                     <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
383             </xsl:for-each>
384         </span>
385        </xsl:if>
386
387        <xsl:if test="marc:datafield[@tag=020]">
388         <span class="results_summary isbn"><span class="label">ISBN: </span>
389         <xsl:for-each select="marc:datafield[@tag=020]">
390         <xsl:variable name="isbn" select="marc:subfield[@code='a']"/>
391                 <xsl:value-of select="marc:subfield[@code='a']"/>
392                 <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
393         </xsl:for-each>
394         </span>
395         </xsl:if>
396
397         <xsl:if test="marc:datafield[@tag=022]">
398         <span class="results_summary issn"><span class="label">ISSN: </span>
399         <xsl:for-each select="marc:datafield[@tag=022]">
400                 <xsl:value-of select="marc:subfield[@code='a']"/>
401                 <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
402         </xsl:for-each>
403         </span>
404         </xsl:if>
405
406         <xsl:if test="marc:datafield[@tag=013]">
407             <span class="results_summary patent_info">
408                 <span class="label">Patent information: </span>
409                 <xsl:for-each select="marc:datafield[@tag=013]">
410                     <xsl:call-template name="subfieldSelect">
411                         <xsl:with-param name="codes">acdef</xsl:with-param>
412                         <xsl:with-param name="delimeter">, </xsl:with-param>
413                     </xsl:call-template>
414                 <xsl:choose><xsl:when test="position()=last()"><xsl:text></xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
415                 </xsl:for-each>
416             </span>
417         </xsl:if>
418
419         <xsl:if test="marc:datafield[@tag=088]">
420             <span class="results_summary report_number">
421                 <span class="label">Report number: </span>
422                 <xsl:for-each select="marc:datafield[@tag=088]">
423                     <xsl:call-template name="subfieldSelect">
424                         <xsl:with-param name="codes">a</xsl:with-param>
425                     </xsl:call-template>
426                 <xsl:choose><xsl:when test="position()=last()"><xsl:text></xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
427                 </xsl:for-each>
428             </span>
429         </xsl:if>
430
431         <!-- Other Title  Statement: Alternate Graphic Representation (MARC 880) -->
432         <xsl:if test="$display880">
433             <xsl:call-template name="m880Select">
434                 <xsl:with-param name="basetags">246</xsl:with-param>
435                 <xsl:with-param name="codes">abhfgnp</xsl:with-param>
436                 <xsl:with-param name="class">results_summary other_title</xsl:with-param>
437                 <xsl:with-param name="label">Other title: </xsl:with-param>
438             </xsl:call-template>
439         </xsl:if>
440
441         <xsl:if test="marc:datafield[@tag=246]">
442         <span class="results_summary other_title"><span class="label">Other title: </span>
443             <xsl:for-each select="marc:datafield[@tag=246]">
444                 <xsl:call-template name="chopPunctuation">
445                   <xsl:with-param name="chopString">
446                     <xsl:call-template name="subfieldSelect">
447                         <xsl:with-param name="codes">iabhfgnp</xsl:with-param>
448                     </xsl:call-template>
449                    </xsl:with-param>
450                </xsl:call-template>
451                     <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
452             </xsl:for-each>
453         </span>
454        </xsl:if>
455
456
457         <xsl:if test="marc:datafield[@tag=242]">
458         <span class="results_summary translated_title"><span class="label">Title translated: </span>
459             <xsl:for-each select="marc:datafield[@tag=242]">
460                 <xsl:call-template name="chopPunctuation">
461                   <xsl:with-param name="chopString">
462                     <xsl:call-template name="subfieldSelect">
463                         <xsl:with-param name="codes">abchnp</xsl:with-param>
464                     </xsl:call-template>
465                    </xsl:with-param>
466                </xsl:call-template>
467                     <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
468             </xsl:for-each>
469         </span>
470        </xsl:if>
471
472         <!-- Uniform Title  Statement: Alternate Graphic Representation (MARC 880) -->
473         <xsl:if test="$display880">
474             <xsl:call-template name="m880Select">
475                 <xsl:with-param name="basetags">130,240</xsl:with-param>
476                 <xsl:with-param name="codes">adfklmor</xsl:with-param>
477                 <xsl:with-param name="class">results_summary uniform_title</xsl:with-param>
478                 <xsl:with-param name="label">Uniform titles: </xsl:with-param>
479             </xsl:call-template>
480         </xsl:if>
481
482         <xsl:if test="marc:datafield[@tag=130]|marc:datafield[@tag=240]|marc:datafield[@tag=730][@ind2!=2]">
483         <span class="results_summary uniform_titles"><span class="label">Uniform titles: </span>
484         <xsl:for-each select="marc:datafield[@tag=130]|marc:datafield[@tag=240]|marc:datafield[@tag=730][@ind2!=2]">
485             <xsl:variable name="str">
486                 <xsl:for-each select="marc:subfield">
487                     <xsl:if test="(contains('adfklmor',@code) and (not(../marc:subfield[@code='n' or @code='p']) or (following-sibling::marc:subfield[@code='n' or @code='p'])))">
488                         <xsl:value-of select="text()"/>
489                         <xsl:text> </xsl:text>
490                      </xsl:if>
491                 </xsl:for-each>
492             </xsl:variable>
493             <xsl:call-template name="chopPunctuation">
494                 <xsl:with-param name="chopString">
495                     <xsl:value-of select="substring($str,1,string-length($str)-1)"/>
496
497                 </xsl:with-param>
498             </xsl:call-template>
499             <xsl:choose><xsl:when test="position()=last()"><xsl:text>.</xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
500         </xsl:for-each>
501         </span>
502         </xsl:if>
503
504         <xsl:if test="marc:datafield[substring(@tag, 1, 1) = '6']">
505             <span class="results_summary subjects"><span class="label">Subject(s): </span>
506             <xsl:for-each select="marc:datafield[substring(@tag, 1, 1) = '6']">
507             <a>
508             <xsl:choose>
509             <xsl:when test="marc:subfield[@code=9] and $UseAuthoritiesForTracings='1'">
510                 <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=an:<xsl:value-of select="marc:subfield[@code=9]"/></xsl:attribute>
511             </xsl:when>
512             <xsl:when test="$TraceSubjectSubdivisions='1'">
513                 <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=<xsl:call-template name="subfieldSelect">
514                         <xsl:with-param name="codes">abcdfgklmnopqrstvxyz</xsl:with-param>
515                         <xsl:with-param name="delimeter"> AND </xsl:with-param>
516                         <xsl:with-param name="prefix">(su<xsl:value-of select="$SubjectModifier"/>:<xsl:value-of select="$TracingQuotesLeft"/></xsl:with-param>
517                         <xsl:with-param name="suffix"><xsl:value-of select="$TracingQuotesRight"/>)</xsl:with-param>
518                     </xsl:call-template>
519                 </xsl:attribute>
520             </xsl:when>
521             <xsl:otherwise>
522                 <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=su<xsl:value-of select="$SubjectModifier"/>:<xsl:value-of select="$TracingQuotesLeft"/><xsl:value-of select="marc:subfield[@code='a']"/><xsl:value-of select="$TracingQuotesRight"/></xsl:attribute>
523             </xsl:otherwise>
524             </xsl:choose>
525             <xsl:call-template name="chopPunctuation">
526                 <xsl:with-param name="chopString">
527                     <xsl:call-template name="subfieldSelect">
528                         <xsl:with-param name="codes">abcdfgklmnopqrstvxyz</xsl:with-param>
529                         <xsl:with-param name="subdivCodes">vxyz</xsl:with-param>
530                         <xsl:with-param name="subdivDelimiter">-- </xsl:with-param>
531                     </xsl:call-template>
532                 </xsl:with-param>
533             </xsl:call-template>
534             </a>
535             <xsl:if test="marc:subfield[@code=9]">
536                 <a class='authlink'>
537                     <xsl:attribute name="href">/cgi-bin/koha/opac-authoritiesdetail.pl?authid=<xsl:value-of select="marc:subfield[@code=9]"/></xsl:attribute>
538                     <img style="vertical-align:middle" height="15" width="15" src="/opac-tmpl/prog/images/filefind.png"/>
539                 </a>
540             </xsl:if>
541             <xsl:choose>
542             <xsl:when test="position()=last()"></xsl:when>
543             <xsl:otherwise> | </xsl:otherwise>
544             </xsl:choose>
545
546             </xsl:for-each>
547             </span>
548         </xsl:if>
549
550 <!-- Image processing code added here, takes precedence over text links including y3z text   -->
551         <xsl:if test="marc:datafield[@tag=856]">
552         <span class="results_summary online_resources"><span class="label">Online resources: </span>
553         <xsl:for-each select="marc:datafield[@tag=856]">
554             <xsl:variable name="SubqText"><xsl:value-of select="marc:subfield[@code='q']"/></xsl:variable>
555             <a>
556             <xsl:choose>
557               <xsl:when test="$OPACTrackClicks='track'">
558                 <xsl:attribute name="href">/cgi-bin/koha/tracklinks.pl?uri=<xsl:value-of select="marc:subfield[@code='u']"/>;biblionumber=<xsl:value-of select="$biblionumber"/></xsl:attribute>
559               </xsl:when>
560               <xsl:when test="$OPACTrackClicks='anonymous'">
561                 <xsl:attribute name="href">/cgi-bin/koha/tracklinks.pl?uri=<xsl:value-of select="marc:subfield[@code='u']"/>;biblionumber=<xsl:value-of select="$biblionumber"/></xsl:attribute>
562               </xsl:when>
563               <xsl:otherwise>
564                 <xsl:attribute name="href"><xsl:value-of select="marc:subfield[@code='u']"/></xsl:attribute>
565               </xsl:otherwise>
566             </xsl:choose>
567             <xsl:if test="$OPACURLOpenInNewWindow='1'">
568                 <xsl:attribute name="target">_blank</xsl:attribute>
569             </xsl:if>
570             <xsl:choose>
571             <xsl:when test="($Show856uAsImage='Details' or $Show856uAsImage='Both') and (substring($SubqText,1,6)='image/' or $SubqText='img' or $SubqText='bmp' or $SubqText='cod' or $SubqText='gif' or $SubqText='ief' or $SubqText='jpe' or $SubqText='jpeg' or $SubqText='jpg' or $SubqText='jfif' or $SubqText='png' or $SubqText='svg' or $SubqText='tif' or $SubqText='tiff' or $SubqText='ras' or $SubqText='cmx' or $SubqText='ico' or $SubqText='pnm' or $SubqText='pbm' or $SubqText='pgm' or $SubqText='ppm' or $SubqText='rgb' or $SubqText='xbm' or $SubqText='xpm' or $SubqText='xwd')">
572                 <xsl:element name="img"><xsl:attribute name="src"><xsl:value-of select="marc:subfield[@code='u']"/></xsl:attribute><xsl:attribute name="alt"><xsl:value-of select="marc:subfield[@code='y']"/></xsl:attribute><xsl:attribute name="height">100</xsl:attribute></xsl:element><xsl:text></xsl:text>
573             </xsl:when>                                    
574             <xsl:when test="marc:subfield[@code='y' or @code='3' or @code='z']">
575                 <xsl:call-template name="subfieldSelect">
576                     <xsl:with-param name="codes">y3z</xsl:with-param>
577                 </xsl:call-template>
578             </xsl:when>
579             <xsl:when test="$URLLinkText!=''">
580                 <xsl:value-of select="$URLLinkText"/>
581             </xsl:when>
582             <xsl:otherwise>
583                 <xsl:text>Click here to access online</xsl:text>
584             </xsl:otherwise>
585             </xsl:choose>
586             </a>
587             <xsl:choose>
588             <xsl:when test="position()=last()"><xsl:text>  </xsl:text></xsl:when>
589             <xsl:otherwise> | </xsl:otherwise>
590             </xsl:choose>
591         </xsl:for-each>
592         </span>
593         </xsl:if>
594
595         <!-- 530 -->
596         <xsl:if test="marc:datafield[@tag=530]">
597         <xsl:for-each select="marc:datafield[@tag=530]">
598         <span class="results_summary additionalforms">
599             <xsl:call-template name="subfieldSelect">
600                 <xsl:with-param name="codes">abcd</xsl:with-param>
601             </xsl:call-template>
602             <xsl:for-each select="marc:subfield[@code='u']">
603                 <a><xsl:attribute name="href"><xsl:value-of select="text()"/></xsl:attribute>
604                 <xsl:if test="$OPACURLOpenInNewWindow='1'">
605                     <xsl:attribute name="target">_blank</xsl:attribute>
606                 </xsl:if>
607                 <xsl:value-of select="text()"/>
608                 </a>
609             </xsl:for-each>
610         </span>
611         </xsl:for-each>
612         </xsl:if>
613
614         <!-- 505 -->
615         <xsl:if test="marc:datafield[@tag=505]">
616         <div class="results_summary contents">
617         <xsl:for-each select="marc:datafield[@tag=505]">
618         <xsl:if test="position()=1">
619             <xsl:choose>
620             <xsl:when test="@ind1=1">
621                 <span class="label">Incomplete contents:</span>
622             </xsl:when>
623             <xsl:when test="@ind1=2">
624                 <span class="label">Partial contents:</span>
625             </xsl:when>
626             <xsl:otherwise>
627                 <span class="label">Contents:</span>
628             </xsl:otherwise>
629             </xsl:choose>
630         </xsl:if>
631         <div class='contentblock'>
632         <xsl:choose>
633         <xsl:when test="@ind2=0">
634             <xsl:call-template name="subfieldSelectSpan">
635                 <xsl:with-param name="codes">tru</xsl:with-param>
636             </xsl:call-template>
637         </xsl:when>
638         <xsl:otherwise>
639             <xsl:call-template name="subfieldSelectSpan">
640                 <xsl:with-param name="codes">atru</xsl:with-param>
641             </xsl:call-template>
642         </xsl:otherwise>
643         </xsl:choose>
644         </div>
645         </xsl:for-each>
646         </div>
647         </xsl:if>
648
649         <!-- 583 -->
650         <xsl:if test="marc:datafield[@tag=583]">
651         <xsl:for-each select="marc:datafield[@tag=583]">
652             <xsl:if test="@ind1=1 or @ind1=' '">
653             <span class="results_summary actionnote">
654                 <xsl:choose>
655                 <xsl:when test="marc:subfield[@code='z']">
656                     <xsl:value-of select="marc:subfield[@code='z']"/>
657                 </xsl:when>
658                 <xsl:otherwise>
659                     <xsl:call-template name="subfieldSelect">
660                         <xsl:with-param name="codes">abcdefgijklnou</xsl:with-param>
661                     </xsl:call-template>
662                 </xsl:otherwise>
663                 </xsl:choose>
664             </span>
665             </xsl:if>
666         </xsl:for-each>
667         </xsl:if>
668
669         <!-- 586 -->
670         <xsl:if test="marc:datafield[@tag=586]">
671         <xsl:for-each select="marc:datafield[@tag=586]">
672             <span class="results_summary awardsnote">
673                 <xsl:if test="@ind1=' '">
674                 <span class="label">Awards: </span>
675                 </xsl:if>
676                 <xsl:value-of select="marc:subfield[@code='a']"/>
677             </span>
678         </xsl:for-each>
679         </xsl:if>
680
681         <!-- 773 -->
682         <xsl:if test="marc:datafield[@tag=773]">
683         <xsl:for-each select="marc:datafield[@tag=773]">
684         <xsl:if test="@ind1=0">
685         <span class="results_summary in"><span class="label">
686         <xsl:choose>
687         <xsl:when test="@ind2=' '">
688             In:
689         </xsl:when>
690         <xsl:when test="@ind2=8">
691             <xsl:if test="marc:subfield[@code='i']">
692                 <xsl:value-of select="marc:subfield[@code='i']"/>
693             </xsl:if>
694         </xsl:when>
695         </xsl:choose>
696         </span>
697                 <xsl:variable name="f773">
698                     <xsl:call-template name="chopPunctuation"><xsl:with-param name="chopString"><xsl:call-template name="subfieldSelect">
699                         <xsl:with-param name="codes">a_t</xsl:with-param>
700                     </xsl:call-template></xsl:with-param></xsl:call-template>
701                 </xsl:variable>
702             <xsl:choose>
703                 <xsl:when test="$UseControlNumber = '1' and marc:subfield[@code='w']">
704                     <a><xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=Control-number:<xsl:call-template name="extractControlNumber"><xsl:with-param name="subfieldW" select="marc:subfield[@code='w']"/></xsl:call-template></xsl:attribute>
705                         <xsl:value-of select="translate($f773, '()', '')"/>
706                     </a>
707                     <xsl:if test="marc:subfield[@code='g']"><xsl:text> </xsl:text><xsl:value-of select="marc:subfield[@code='g']"/></xsl:if>
708                 </xsl:when>
709                 <xsl:when test="marc:subfield[@code='0']">
710                     <a><xsl:attribute name="href">/cgi-bin/koha/opac-detail.pl?biblionumber=<xsl:value-of select="marc:subfield[@code='0']"/></xsl:attribute>
711                         <xsl:value-of select="$f773"/>
712                     </a>
713                 </xsl:when>
714                 <xsl:otherwise>
715                     <a><xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=ti,phr:<xsl:value-of select="translate($f773, '()', '')"/></xsl:attribute>
716                         <xsl:value-of select="$f773"/>
717                     </a>
718                     <xsl:if test="marc:subfield[@code='g']"><xsl:text> </xsl:text><xsl:value-of select="marc:subfield[@code='g']"/></xsl:if>
719                 </xsl:otherwise>
720             </xsl:choose>
721         </span>
722
723         <xsl:if test="marc:subfield[@code='n']">
724             <span class="results_summary"><xsl:value-of select="marc:subfield[@code='n']"/></span>
725         </xsl:if>
726
727         </xsl:if>
728         </xsl:for-each>
729         </xsl:if>
730
731         <xsl:for-each select="marc:datafield[@tag=511]">
732             <span class="results_summary perf_note">
733                 <span class="label">
734                     <xsl:if test="@ind1=1"><xsl:text>Cast: </xsl:text></xsl:if>
735                 </span>
736                 <xsl:call-template name="subfieldSelect">
737                     <xsl:with-param name="codes">a</xsl:with-param>
738                 </xsl:call-template>
739             </span>
740         </xsl:for-each>
741
742         <xsl:if test="marc:datafield[@tag=502]">
743             <span class="results_summary diss_note">
744                 <span class="label">Dissertation note: </span>
745                 <xsl:for-each select="marc:datafield[@tag=502]">
746                     <xsl:call-template name="subfieldSelect">
747                         <xsl:with-param name="codes">abcdgo</xsl:with-param>
748                     </xsl:call-template>
749                 </xsl:for-each>
750                 <xsl:choose><xsl:when test="position()=last()"><xsl:text></xsl:text></xsl:when><xsl:otherwise><xsl:text> </xsl:text></xsl:otherwise></xsl:choose>
751             </span>
752         </xsl:if>
753
754         <xsl:for-each select="marc:datafield[@tag=520]">
755         <span class="results_summary summary"><span class="label">
756         <xsl:choose>
757           <xsl:when test="@ind1=0"><xsl:text>Subject: </xsl:text></xsl:when>
758           <xsl:when test="@ind1=1"><xsl:text>Review: </xsl:text></xsl:when>
759           <xsl:when test="@ind1=2"><xsl:text>Scope and content: </xsl:text></xsl:when>
760           <xsl:when test="@ind1=3"><xsl:text>Abstract: </xsl:text></xsl:when>
761           <xsl:when test="@ind1=4"><xsl:text>Content advice: </xsl:text></xsl:when>
762           <xsl:otherwise><xsl:text>Summary: </xsl:text></xsl:otherwise>
763         </xsl:choose>
764         </span>
765         <xsl:call-template name="subfieldSelect">
766           <xsl:with-param name="codes">abcu</xsl:with-param>
767         </xsl:call-template>
768         </span>
769         </xsl:for-each>
770
771         <!-- 866 textual holdings -->
772         <xsl:if test="marc:datafield[@tag=866]">
773             <span class="results_summary holdings_note"><span class="label">Holdings note: </span>
774                 <xsl:for-each select="marc:datafield[@tag=866]">
775                     <xsl:call-template name="subfieldSelect">
776                         <xsl:with-param name="codes">az</xsl:with-param>
777                     </xsl:call-template>
778                     <xsl:choose><xsl:when test="position()=last()"><xsl:text></xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
779                 </xsl:for-each>
780             </span>
781         </xsl:if>
782
783         <!--  775 Other Edition  -->
784         <xsl:if test="marc:datafield[@tag=775]">
785         <span class="results_summary other_editions"><span class="label">Other editions: </span>
786         <xsl:for-each select="marc:datafield[@tag=775]">
787             <xsl:variable name="f775">
788                 <xsl:call-template name="chopPunctuation"><xsl:with-param name="chopString"><xsl:call-template name="subfieldSelect">
789                 <xsl:with-param name="codes">a_t</xsl:with-param>
790                 </xsl:call-template></xsl:with-param></xsl:call-template>
791             </xsl:variable>
792             <xsl:if test="marc:subfield[@code='i']">
793                 <xsl:call-template name="subfieldSelect">
794                     <xsl:with-param name="codes">i</xsl:with-param>
795                 </xsl:call-template>
796                 <xsl:text>: </xsl:text>
797             </xsl:if>
798             <a>
799             <xsl:choose>
800             <xsl:when test="$UseControlNumber = '1' and marc:subfield[@code='w']">
801                 <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=Control-number:<xsl:call-template name="extractControlNumber"><xsl:with-param name="subfieldW" select="marc:subfield[@code='w']"/></xsl:call-template></xsl:attribute>
802             </xsl:when>
803             <xsl:otherwise>
804                 <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=ti,phr:<xsl:value-of select="translate($f775, '()', '')"/></xsl:attribute>
805             </xsl:otherwise>
806             </xsl:choose>
807             <xsl:call-template name="subfieldSelect">
808                 <xsl:with-param name="codes">a_t</xsl:with-param>
809             </xsl:call-template>
810             </a>
811             <xsl:choose>
812                 <xsl:when test="position()=last()"></xsl:when>
813                 <xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise>
814             </xsl:choose>
815         </xsl:for-each>
816         </span>
817         </xsl:if>
818
819         <!-- 780 -->
820         <xsl:if test="marc:datafield[@tag=780]">
821         <xsl:for-each select="marc:datafield[@tag=780]">
822         <xsl:if test="@ind1=0">
823         <span class="results_summary preceeding_entry">
824         <xsl:choose>
825         <xsl:when test="@ind2=0">
826             <span class="label">Continues:</span>
827         </xsl:when>
828         <xsl:when test="@ind2=1">
829             <span class="label">Continues in part:</span>
830         </xsl:when>
831         <xsl:when test="@ind2=2">
832             <span class="label">Supersedes:</span>
833         </xsl:when>
834         <xsl:when test="@ind2=3">
835             <span class="label">Supersedes in part:</span>
836         </xsl:when>
837         <xsl:when test="@ind2=4">
838             <span class="label">Formed by the union: ... and: ...</span>
839         </xsl:when>
840         <xsl:when test="@ind2=5">
841             <span class="label">Absorbed:</span>
842         </xsl:when>
843         <xsl:when test="@ind2=6">
844             <span class="label">Absorbed in part:</span>
845         </xsl:when>
846         <xsl:when test="@ind2=7">
847             <span class="label">Separated from:</span>
848         </xsl:when>
849         </xsl:choose>
850         <xsl:text> </xsl:text>
851                 <xsl:variable name="f780">
852                     <xsl:call-template name="subfieldSelect">
853                         <xsl:with-param name="codes">a_t</xsl:with-param>
854                     </xsl:call-template>
855                 </xsl:variable>
856             <xsl:choose>
857                 <xsl:when test="$UseControlNumber = '1' and marc:subfield[@code='w']">
858                     <a><xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=Control-number:<xsl:call-template name="extractControlNumber"><xsl:with-param name="subfieldW" select="marc:subfield[@code='w']"/></xsl:call-template></xsl:attribute>
859                         <xsl:value-of select="translate($f780, '()', '')"/>
860                     </a>
861                 </xsl:when>
862                 <xsl:otherwise>
863                     <a><xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=<xsl:value-of select="translate($f780, '()', '')"/></xsl:attribute>
864                         <xsl:value-of select="translate($f780, '()', '')"/>
865                     </a>
866                 </xsl:otherwise>
867             </xsl:choose>
868         </span>
869
870         <xsl:if test="marc:subfield[@code='n']">
871             <span class="results_summary"><xsl:value-of select="marc:subfield[@code='n']"/></span>
872         </xsl:if>
873
874         </xsl:if>
875         </xsl:for-each>
876         </xsl:if>
877
878         <!-- 785 -->
879         <xsl:if test="marc:datafield[@tag=785]">
880         <xsl:for-each select="marc:datafield[@tag=785]">
881         <xsl:if test="@ind1=0">
882         <span class="results_summary succeeding_entry">
883         <xsl:choose>
884         <xsl:when test="@ind2=0">
885             <span class="label">Continued by:</span>
886         </xsl:when>
887         <xsl:when test="@ind2=1">
888             <span class="label">Continued in part by:</span>
889         </xsl:when>
890         <xsl:when test="@ind2=2">
891             <span class="label">Superseded by:</span>
892         </xsl:when>
893         <xsl:when test="@ind2=3">
894             <span class="label">Superseded in part by:</span>
895         </xsl:when>
896         <xsl:when test="@ind2=4">
897             <span class="label">Absorbed by:</span>
898         </xsl:when>
899         <xsl:when test="@ind2=5">
900             <span class="label">Absorbed in part by:</span>
901         </xsl:when>
902         <xsl:when test="@ind2=6">
903             <span class="label">Split into .. and ...:</span>
904         </xsl:when>
905         <xsl:when test="@ind2=7">
906             <span class="label">Merged with ... to form ...</span>
907         </xsl:when>
908         <xsl:when test="@ind2=8">
909             <span class="label">Changed back to:</span>
910         </xsl:when>
911         </xsl:choose>
912         <xsl:text> </xsl:text>
913                    <xsl:variable name="f785">
914                     <xsl:call-template name="subfieldSelect">
915                         <xsl:with-param name="codes">a_t</xsl:with-param>
916                     </xsl:call-template>
917                 </xsl:variable>
918
919             <xsl:choose>
920                 <xsl:when test="$UseControlNumber = '1' and marc:subfield[@code='w']">
921                     <a><xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=Control-number:<xsl:call-template name="extractControlNumber"><xsl:with-param name="subfieldW" select="marc:subfield[@code='w']"/></xsl:call-template></xsl:attribute>
922                         <xsl:value-of select="translate($f785, '()', '')"/>
923                     </a>
924                 </xsl:when>
925                 <xsl:otherwise>
926                     <a><xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=<xsl:value-of select="translate($f785, '()', '')"/></xsl:attribute>
927                         <xsl:value-of select="translate($f785, '()', '')"/>
928                     </a>
929                 </xsl:otherwise>
930             </xsl:choose>
931
932         </span>
933
934         <xsl:if test="marc:subfield[@code='n']">
935             <span class="results_summary"><xsl:value-of select="marc:subfield[@code='n']"/></span>
936         </xsl:if>
937
938         </xsl:if>
939         </xsl:for-each>
940         </xsl:if>
941
942     </xsl:template>
943
944     <xsl:template name="showAuthor">
945         <xsl:param name="authorfield" />
946         <xsl:param name="UseAuthoritiesForTracings" />
947         <xsl:for-each select="$authorfield">
948             <xsl:choose><xsl:when test="position()!=1"><xsl:text>; </xsl:text></xsl:when></xsl:choose>
949             <xsl:choose>
950                 <xsl:when test="not(@tag=111 or @tag=711)" />
951                 <xsl:when test="marc:subfield[@code='n']">
952                     <xsl:text> </xsl:text>
953                     <xsl:call-template name="subfieldSelect">
954                         <xsl:with-param name="codes">n</xsl:with-param>
955                     </xsl:call-template>
956                     <xsl:text> </xsl:text>
957                 </xsl:when>
958             </xsl:choose>
959             <a>
960                 <xsl:choose>
961                     <xsl:when test="marc:subfield[@code=9] and $UseAuthoritiesForTracings='1'">
962                         <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=an:"<xsl:value-of select="marc:subfield[@code=9]"/>"</xsl:attribute>
963                     </xsl:when>
964                     <xsl:otherwise>
965                         <xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=au:"<xsl:value-of select="marc:subfield[@code='a']"/>"</xsl:attribute>
966                     </xsl:otherwise>
967                 </xsl:choose>
968                 <xsl:choose>
969                     <xsl:when test="@tag=100 or @tag=700"><xsl:call-template name="nameABCDQ"/></xsl:when>
970                     <xsl:when test="@tag=110 or @tag=710"><xsl:call-template name="nameABCDN"/></xsl:when>
971                     <xsl:when test="@tag=111 or @tag=711"><xsl:call-template name="nameACDEQ"/></xsl:when>
972                 </xsl:choose>
973                 <!-- add relator code too between brackets-->
974                 <xsl:if test="marc:subfield[@code='4' or @code='e']">
975                     <span class="relatorcode">
976                     <xsl:text> [</xsl:text>
977                     <xsl:choose>
978                         <xsl:when test="marc:subfield[@code=4]"><xsl:value-of select="marc:subfield[@code=4]"/></xsl:when>
979                         <xsl:otherwise><xsl:value-of select="marc:subfield[@code='e']"/></xsl:otherwise>
980                     </xsl:choose>
981                     <xsl:text>]</xsl:text>
982                     </span>
983                 </xsl:if>
984             </a>
985             <xsl:if test="marc:subfield[@code=9]">
986                 <a class='authlink'>
987                     <xsl:attribute name="href">/cgi-bin/koha/opac-authoritiesdetail.pl?authid="<xsl:value-of select="marc:subfield[@code=9]"/>"</xsl:attribute>
988                     <img style="vertical-align:middle" height="15" width="15" src="/opac-tmpl/prog/images/filefind.png"/>
989                 </a>
990             </xsl:if>
991         </xsl:for-each>
992         <xsl:text>.</xsl:text>
993     </xsl:template>
994
995     <xsl:template name="nameABCDQ">
996             <xsl:call-template name="chopPunctuation">
997                 <xsl:with-param name="chopString">
998                     <xsl:call-template name="subfieldSelect">
999                         <xsl:with-param name="codes">aq</xsl:with-param>
1000                     </xsl:call-template>
1001                 </xsl:with-param>
1002                 <xsl:with-param name="punctuation">
1003                     <xsl:text>:,;/ </xsl:text>
1004                 </xsl:with-param>
1005             </xsl:call-template>
1006         <xsl:call-template name="termsOfAddress"/>
1007     </xsl:template>
1008
1009     <xsl:template name="nameABCDN">
1010         <xsl:for-each select="marc:subfield[@code='a']">
1011                 <xsl:call-template name="chopPunctuation">
1012                     <xsl:with-param name="chopString" select="."/>
1013                 </xsl:call-template>
1014         </xsl:for-each>
1015         <xsl:for-each select="marc:subfield[@code='b']">
1016             <xsl:value-of select="."/>
1017             <xsl:choose>
1018                 <xsl:when test="position() != last()">
1019                     <xsl:text> -- </xsl:text>
1020                 </xsl:when>
1021             </xsl:choose>
1022         </xsl:for-each>
1023         <xsl:if test="marc:subfield[@code='c'] or marc:subfield[@code='d'] or marc:subfield[@code='n']">
1024                 <xsl:call-template name="subfieldSelect">
1025                     <xsl:with-param name="codes">cdn</xsl:with-param>
1026                 </xsl:call-template>
1027         </xsl:if>
1028     </xsl:template>
1029
1030     <xsl:template name="nameACDEQ">
1031             <xsl:call-template name="subfieldSelect">
1032                 <xsl:with-param name="codes">acdeq</xsl:with-param>
1033             </xsl:call-template>
1034     </xsl:template>
1035     <xsl:template name="termsOfAddress">
1036         <xsl:if test="marc:subfield[@code='b' or @code='c']">
1037             <xsl:call-template name="chopPunctuation">
1038                 <xsl:with-param name="chopString">
1039                     <xsl:call-template name="subfieldSelect">
1040                         <xsl:with-param name="codes">bc</xsl:with-param>
1041                     </xsl:call-template>
1042                 </xsl:with-param>
1043             </xsl:call-template>
1044         </xsl:if>
1045     </xsl:template>
1046
1047     <xsl:template name="part">
1048         <xsl:variable name="partNumber">
1049             <xsl:call-template name="specialSubfieldSelect">
1050                 <xsl:with-param name="axis">n</xsl:with-param>
1051                 <xsl:with-param name="anyCodes">n</xsl:with-param>
1052                 <xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param>
1053             </xsl:call-template>
1054         </xsl:variable>
1055         <xsl:variable name="partName">
1056             <xsl:call-template name="specialSubfieldSelect">
1057                 <xsl:with-param name="axis">p</xsl:with-param>
1058                 <xsl:with-param name="anyCodes">p</xsl:with-param>
1059                 <xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param>
1060             </xsl:call-template>
1061         </xsl:variable>
1062         <xsl:if test="string-length(normalize-space($partNumber))">
1063                 <xsl:call-template name="chopPunctuation">
1064                     <xsl:with-param name="chopString" select="$partNumber"/>
1065                 </xsl:call-template>
1066         </xsl:if>
1067         <xsl:if test="string-length(normalize-space($partName))">
1068                 <xsl:call-template name="chopPunctuation">
1069                     <xsl:with-param name="chopString" select="$partName"/>
1070                 </xsl:call-template>
1071         </xsl:if>
1072     </xsl:template>
1073
1074     <xsl:template name="specialSubfieldSelect">
1075         <xsl:param name="anyCodes"/>
1076         <xsl:param name="axis"/>
1077         <xsl:param name="beforeCodes"/>
1078         <xsl:param name="afterCodes"/>
1079         <xsl:variable name="str">
1080             <xsl:for-each select="marc:subfield">
1081                 <xsl:if test="contains($anyCodes, @code)      or (contains($beforeCodes,@code) and following-sibling::marc:subfield[@code=$axis])      or (contains($afterCodes,@code) and preceding-sibling::marc:subfield[@code=$axis])">
1082                     <xsl:value-of select="text()"/>
1083                     <xsl:text> </xsl:text>
1084                 </xsl:if>
1085             </xsl:for-each>
1086         </xsl:variable>
1087         <xsl:value-of select="substring($str,1,string-length($str)-1)"/>
1088     </xsl:template>
1089 </xsl:stylesheet>