]> git.stg.codes - stg.git/blob - doc/xslt/slides/html/frames.xsl
Show info about period.
[stg.git] / doc / xslt / slides / html / frames.xsl
1 <?xml version="1.0"?>
2 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
3                 version="1.0">
4
5 <xsl:import href="slides-common.xsl"/>
6
7 <xsl:param name="titlefoil.html" select="concat('titlepg', $html.ext)"/>
8
9 <xsl:param name="css.stylesheet" select="'slides-frames.css'"/>
10
11 <!-- ====================================================================== -->
12
13 <xsl:template name="doctype-public">
14   <xsl:param name="frameset" select="0"/> 
15   <xsl:choose>
16     <xsl:when test="$stylesheet.result.type='html'"> 
17       <xsl:choose>
18         <!-- Assume when chunker.output.doctype-public is set the user
19              wants to have doctypes written out. If frameset is set
20              then overide with a frameset public identifier. -->
21         <xsl:when test="$chunker.output.doctype-public != '' and $frameset != 0"> 
22           <xsl:text>-//W3C//DTD HTML 4.01 Frameset//EN</xsl:text>
23         </xsl:when>
24         <xsl:otherwise>
25           <xsl:value-of select="$chunker.output.doctype-public"/>
26         </xsl:otherwise>
27       </xsl:choose>
28     </xsl:when>
29     <xsl:when test="$stylesheet.result.type='xhtml'"> 
30       <xsl:choose>
31         <xsl:when test="$frameset != 0">
32           <xsl:text>-//W3C//DTD XHTML 1.0 Frameset//EN</xsl:text>
33         </xsl:when>
34         <xsl:otherwise>
35           <xsl:text>-//W3C//DTD XHTML 1.0 Transitional//EN</xsl:text>
36         </xsl:otherwise>
37       </xsl:choose>
38     </xsl:when>
39   </xsl:choose>
40 </xsl:template>
41
42 <xsl:template name="doctype-system">
43   <xsl:param name="frameset" select="0"/>
44   <xsl:choose>
45     <xsl:when test="$stylesheet.result.type='html'"> 
46       <xsl:choose>
47         <!-- Assume when chunker.output.doctype-system is set the user
48              wants to have doctypes written out. If frameset is set
49              then overide with a frameset system identifier. -->
50         <xsl:when test="$chunker.output.doctype-system != '' and $frameset != 0">
51           <xsl:text>http://www.w3.org/TR/html4/loose.dtd</xsl:text>
52         </xsl:when>
53         <xsl:otherwise>
54           <xsl:value-of select="$chunker.output.doctype-system"/>
55         </xsl:otherwise>
56       </xsl:choose>
57     </xsl:when>
58     <xsl:when test="$stylesheet.result.type='xhtml'"> 
59       <xsl:choose>
60         <xsl:when test="$frameset != 0">
61           <xsl:text>http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd</xsl:text>
62         </xsl:when>
63         <xsl:otherwise>
64           <xsl:text>http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</xsl:text>
65         </xsl:otherwise>
66       </xsl:choose>
67     </xsl:when>
68   </xsl:choose>
69 </xsl:template>
70
71 <!-- ====================================================================== -->
72
73 <xsl:template match="slides">
74   <xsl:variable name="title">
75     <xsl:choose>
76       <xsl:when test="(slidesinfo/titleabbrev|titleabbrev)">
77         <xsl:value-of select="(slidesinfo/titleabbrev|titleabbrev)[1]"/>
78       </xsl:when>
79       <xsl:otherwise>
80         <xsl:value-of select="(slidesinfo/title|title)[1]"/>
81       </xsl:otherwise>
82     </xsl:choose>
83   </xsl:variable>
84   <xsl:variable name="toc.rows" select="1+count(//foilgroup)+count(//foil)"/>
85   <xsl:variable name="toc.height" select="$toc.rows * $toc.row.height"/>
86
87   <xsl:if test="$overlay != 0 and $multiframe != 0">
88     <xsl:message terminate='yes'>
89       <xsl:text>Multiframe and overlay are mutually exclusive.</xsl:text>
90     </xsl:message>
91   </xsl:if>
92
93   <xsl:variable name="doctype-public">
94     <xsl:call-template name="doctype-public">
95       <xsl:with-param name="frameset" select="1"/>
96     </xsl:call-template>
97   </xsl:variable>
98   <xsl:variable name="doctype-system">
99     <xsl:call-template name="doctype-system">
100       <xsl:with-param name="frameset" select="1"/>
101     </xsl:call-template>
102   </xsl:variable>
103
104   <xsl:call-template name="write.chunk">
105     <xsl:with-param name="indent" select="$output.indent"/>
106     <xsl:with-param name="doctype-public" select="$doctype-public"/>
107     <xsl:with-param name="doctype-system" select="$doctype-system"/>
108     <xsl:with-param name="filename" select="concat($base.dir,'frames', $html.ext)"/>
109     <xsl:with-param name="content">
110       <html>
111         <head>
112           <title><xsl:value-of select="$title"/></title>
113         </head>
114         <frameset cols="{$toc.width},*" id="topframe">
115           <frame src="{concat('toc', $html.ext)}" name="toc" id="toc" frameborder="1"/>
116           <frame src="{$titlefoil.html}" name="foil" id="foil"/>
117           <noframes>
118             <body class="frameset">
119               <xsl:call-template name="body.attributes"/>
120               <a href="{concat('titleframe', $html.ext)}">
121                 <xsl:text>Your browser doesn't support frames.</xsl:text>
122               </a>
123             </body>
124           </noframes>
125         </frameset>
126       </html>
127     </xsl:with-param>
128   </xsl:call-template>
129
130   <xsl:call-template name="write.chunk">
131     <xsl:with-param name="indent" select="$output.indent"/>
132     <xsl:with-param name="filename" select="concat($base.dir,'toc',$html.ext)"/>
133     <xsl:with-param name="content">
134       <html>
135         <head>
136           <title>TOC - <xsl:value-of select="$title"/></title>
137           <xsl:call-template name="system.head.content"/>
138           <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
139           <xsl:if test="$css.stylesheet != ''">
140             <link type="text/css" rel="stylesheet">
141               <xsl:attribute name="href">
142                 <xsl:call-template name="css.stylesheet"/>
143               </xsl:attribute>
144             </link>
145           </xsl:if>
146           <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
147
148           <xsl:if test="$overlay != 0 or $keyboard.nav != 0
149                         or $dynamic.toc != 0 or $active.toc != 0
150                         or $overlay.logo != ''">
151             <script language="javascript" type="text/javascript">
152               <xsl:text> </xsl:text>
153             </script>
154           </xsl:if>
155
156           <xsl:if test="$keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
157             <xsl:call-template name="ua.js"/>
158             <xsl:call-template name="xbDOM.js">
159               <xsl:with-param name="language" select="'javascript'"/>
160             </xsl:call-template>
161             <xsl:call-template name="xbLibrary.js"/>
162             <script language="javascript" type="text/javascript">
163               <xsl:text disable-output-escaping="yes">
164                 &lt;!--
165                 xblibrary = new xbLibrary('</xsl:text>
166               <xsl:call-template name="script-dir"/>
167               <xsl:text disable-output-escaping="yes">');
168                 // --&gt;
169               </xsl:text>
170             </script>
171             <xsl:call-template name="xbStyle.js"/>
172             <xsl:call-template name="xbCollapsibleLists.js"/>
173             <xsl:call-template name="slides.js">
174               <xsl:with-param name="language" select="'javascript'"/>
175             </xsl:call-template>
176           </xsl:if>
177
178           <xsl:if test="$overlay != '0' or $overlay.logo != ''">
179             <xsl:call-template name="overlay.js">
180               <xsl:with-param name="language" select="'javascript'"/>
181             </xsl:call-template>
182           </xsl:if>
183
184           <xsl:if test="$dynamic.toc != 0">
185             <script language="javascript" type="text/javascript">
186               <xsl:text disable-output-escaping="yes">
187                 &lt;!--
188 function init() {
189   var width = </xsl:text>
190 <xsl:value-of select="$toc.width"/>
191 <xsl:text>, height = </xsl:text>
192 <xsl:value-of select="$toc.row.height"/>
193 <xsl:text>;
194   myList = new List(true, width, height, "</xsl:text>
195 <xsl:value-of select="$toc.bg.color"/>
196 <xsl:text>","</xsl:text>
197 <xsl:call-template name="plus.image"/>
198 <xsl:text>","</xsl:text>
199 <xsl:call-template name="minus.image"/>
200 <xsl:text>");
201 </xsl:text>
202 <xsl:apply-templates mode="ns-toc"/>
203               <xsl:text disable-output-escaping="yes">
204   myList.build(0,0);
205 }
206                 // --&gt;
207 </xsl:text>
208             </script>
209             <style type="text/css">
210               <xsl:text>#spacer { position: absolute; height: </xsl:text>
211               <xsl:value-of select="$toc.height"/>
212   <xsl:text>; }
213 </xsl:text>
214             </style>
215           </xsl:if>
216
217           <xsl:call-template name="user.head.content"/>
218         </head>
219         <body class="toc">
220           <xsl:call-template name="body.attributes"/>
221
222           <xsl:if test="$overlay.logo != ''">
223             <xsl:attribute name="onload">
224               <xsl:text>overlaySetup('ll');</xsl:text>
225             </xsl:attribute>
226           </xsl:if>
227
228           <xsl:if test="$dynamic.toc != 0">
229             <xsl:attribute name="onload">
230               <xsl:text>init(</xsl:text>
231               <xsl:value-of select="$overlay"/>
232               <xsl:text>);</xsl:text>
233               <xsl:if test="$overlay.logo != ''">
234                 <xsl:text>overlaySetup('ll');</xsl:text>
235               </xsl:if>
236             </xsl:attribute>
237           </xsl:if>
238
239           <xsl:choose>
240             <xsl:when test="$dynamic.toc = 0">
241               <div class="toc">
242                 <xsl:apply-templates mode="toc"/>
243               </div>
244             </xsl:when>
245             <xsl:otherwise>
246               <div id="spacer"/>
247             </xsl:otherwise>
248           </xsl:choose>
249
250           <xsl:if test="$overlay.logo != ''">
251             <div style="position: absolute; visibility: visible;" id="overlayDiv">
252               <img src="{$overlay.logo}" alt="logo" vspace="20"/>
253             </div>
254           </xsl:if>
255         </body>
256       </html>
257     </xsl:with-param>
258   </xsl:call-template>
259
260   <xsl:apply-templates/>
261 </xsl:template>
262
263 <!-- ====================================================================== -->
264
265 <xsl:template match="slidesinfo">
266   <xsl:variable name="next" select="(following::foil
267                                     |following::foilgroup)[1]"/>
268
269   <xsl:variable name="doctype-public">
270     <xsl:call-template name="doctype-public">
271       <xsl:with-param name="frameset" select="$multiframe"/>
272     </xsl:call-template>
273   </xsl:variable>
274
275   <xsl:variable name="doctype-system">
276     <xsl:call-template name="doctype-system">
277       <xsl:with-param name="frameset" select="$multiframe"/>
278     </xsl:call-template>
279   </xsl:variable>
280
281   <xsl:call-template name="write.chunk">
282     <xsl:with-param name="indent" select="$output.indent"/>
283     <xsl:with-param name="doctype-public" select="$doctype-public"/>
284     <xsl:with-param name="doctype-system" select="$doctype-system"/>
285     <xsl:with-param name="filename"
286                     select="concat($base.dir,$titlefoil.html)"/>
287     <xsl:with-param name="content">
288       <html>
289         <head>
290           <title><xsl:value-of select="title"/></title>
291
292           <xsl:call-template name="system.head.content">
293             <xsl:with-param name="node" select=".."/>
294           </xsl:call-template>
295
296           <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
297
298           <xsl:if test="$css.stylesheet != ''">
299             <link type="text/css" rel="stylesheet">
300               <xsl:attribute name="href">
301                 <xsl:call-template name="css.stylesheet"/>
302               </xsl:attribute>
303             </link>
304           </xsl:if>
305           <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
306
307           <xsl:call-template name="links">
308             <xsl:with-param name="next" select="$next"/>
309           </xsl:call-template>
310
311           <xsl:if test="$overlay != 0 or $keyboard.nav != 0
312                         or $dynamic.toc != 0 or $active.toc != 0">
313             <script language="javascript" type="text/javascript">
314               <xsl:text> </xsl:text>
315             </script>
316           </xsl:if>
317
318           <xsl:if test="$keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
319             <xsl:call-template name="ua.js"/>
320             <xsl:call-template name="xbDOM.js">
321               <xsl:with-param name="language" select="'javascript'"/>
322             </xsl:call-template>
323             <xsl:call-template name="xbLibrary.js"/>
324             <script language="javascript" type="text/javascript">
325               <xsl:text disable-output-escaping="yes">
326                 &lt;!--
327                 xblibrary = new xbLibrary('</xsl:text>
328               <xsl:call-template name="script-dir"/>
329               <xsl:text disable-output-escaping="yes">');
330                 // --&gt;
331               </xsl:text>
332             </script>
333             <xsl:call-template name="xbStyle.js"/>
334             <xsl:call-template name="xbCollapsibleLists.js"/>
335             <xsl:call-template name="slides.js">
336               <xsl:with-param name="language" select="'javascript'"/>
337             </xsl:call-template>
338           </xsl:if>
339
340           <xsl:if test="$overlay != '0'">
341             <xsl:call-template name="overlay.js">
342               <xsl:with-param name="language" select="'javascript'"/>
343             </xsl:call-template>
344           </xsl:if>
345
346           <xsl:call-template name="user.head.content">
347             <xsl:with-param name="node" select=".."/>
348           </xsl:call-template>
349         </head>
350         <xsl:choose>
351           <xsl:when test="$multiframe != 0">
352             <xsl:apply-templates select="." mode="multiframe"/>
353           </xsl:when>
354           <xsl:otherwise>
355             <xsl:apply-templates select="." mode="singleframe"/>
356           </xsl:otherwise>
357         </xsl:choose>
358       </html>
359     </xsl:with-param>
360   </xsl:call-template>
361
362   <xsl:if test="$multiframe != 0">
363     <xsl:apply-templates select="." mode="multiframe-top"/>
364     <xsl:apply-templates select="." mode="multiframe-body"/>
365     <xsl:apply-templates select="." mode="multiframe-bottom"/>
366   </xsl:if>
367 </xsl:template>
368
369 <xsl:template match="slidesinfo" mode="multiframe">
370   <xsl:variable name="thisfoil">
371     <xsl:value-of select="$titlefoil.html"/>
372   </xsl:variable>
373
374   <frameset rows="{$multiframe.navigation.height},*,{$multiframe.navigation.height}" id="foil">
375     <xsl:attribute name="onload">
376       <xsl:text>javascript:body.focus()</xsl:text>
377       </xsl:attribute>
378     <frame src="top-{$thisfoil}" name="top" id="top" marginheight="0" frameborder="0">
379     </frame>
380     <frame src="body-{$thisfoil}" name="body" id="body" marginheight="0" frameborder="0">
381     </frame>
382     <frame src="bot-{$thisfoil}" name="bottom" id="bottom" marginheight="0" frameborder="0">
383     </frame>
384     <noframes>
385       <body class="frameset">
386         <xsl:call-template name="body.attributes"/>
387         <p>
388           <xsl:text>Your browser doesn't support frames.</xsl:text>
389         </p>
390       </body>
391     </noframes>
392   </frameset>
393 </xsl:template>
394
395 <xsl:template match="slidesinfo" mode="multiframe-top">
396   <xsl:variable name="thisfoil">
397     <xsl:value-of select="$titlefoil.html"/>
398   </xsl:variable>
399
400   <xsl:variable name="next" select="(following::foil
401                                     |following::foilgroup)[1]"/>
402
403   <xsl:call-template name="write.chunk">
404     <xsl:with-param name="indent" select="$output.indent"/>
405     <xsl:with-param name="filename" select="concat($base.dir,'top-',$thisfoil)"/>
406     <xsl:with-param name="content">
407       <html>
408         <head>
409           <title>Navigation</title>
410
411           <xsl:call-template name="system.head.content">
412             <xsl:with-param name="node" select=".."/>
413           </xsl:call-template>
414
415           <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
416
417           <xsl:if test="$css.stylesheet != ''">
418             <link type="text/css" rel="stylesheet">
419               <xsl:attribute name="href">
420                 <xsl:call-template name="css.stylesheet"/>
421               </xsl:attribute>
422             </link>
423           </xsl:if>
424           <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
425
426           <xsl:call-template name="links">
427             <xsl:with-param name="next" select="$next"/>
428           </xsl:call-template>
429
430           <xsl:if test="$overlay != 0 or $keyboard.nav != 0
431                         or $dynamic.toc != 0 or $active.toc != 0">
432             <script language="javascript" type="text/javascript">
433               <xsl:text> </xsl:text>
434             </script>
435           </xsl:if>
436
437           <xsl:if test="$keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
438             <xsl:call-template name="ua.js"/>
439             <xsl:call-template name="xbDOM.js">
440               <xsl:with-param name="language" select="'javascript'"/>
441             </xsl:call-template>
442             <xsl:call-template name="xbLibrary.js"/>
443             <script language="javascript" type="text/javascript">
444               <xsl:text disable-output-escaping="yes">
445                 &lt;!--
446                 xblibrary = new xbLibrary('</xsl:text>
447               <xsl:call-template name="script-dir"/>
448               <xsl:text disable-output-escaping="yes">');
449                 // --&gt;
450               </xsl:text>
451             </script>
452             <xsl:call-template name="xbStyle.js"/>
453             <xsl:call-template name="xbCollapsibleLists.js"/>
454             <xsl:call-template name="slides.js">
455               <xsl:with-param name="language" select="'javascript'"/>
456             </xsl:call-template>
457           </xsl:if>
458
459           <xsl:if test="$overlay != '0' or $overlay.logo != ''">
460             <xsl:call-template name="overlay.js">
461               <xsl:with-param name="language" select="'javascript'"/>
462             </xsl:call-template>
463           </xsl:if>
464
465           <xsl:call-template name="user.head.content">
466             <xsl:with-param name="node" select=".."/>
467           </xsl:call-template>
468         </head>
469         <body class="topnavigation" bgcolor="{$multiframe.top.bgcolor}">
470           <xsl:call-template name="foil-top-nav">
471             <xsl:with-param name="next" select="$next"/>
472           </xsl:call-template>
473         </body>
474       </html>
475     </xsl:with-param>
476   </xsl:call-template>
477 </xsl:template>
478
479 <xsl:template match="slidesinfo" mode="multiframe-body">
480   <xsl:variable name="thisfoil">
481     <xsl:value-of select="$titlefoil.html"/>
482   </xsl:variable>
483
484   <xsl:variable name="next" select="(following::foil
485                                     |following::foilgroup)[1]"/>
486
487   <xsl:call-template name="write.chunk">
488     <xsl:with-param name="indent" select="$output.indent"/>
489     <xsl:with-param name="filename" select="concat($base.dir,'body-',$thisfoil)"/>
490     <xsl:with-param name="content">
491       <html>
492         <head>
493           <title>Body</title>
494
495           <xsl:call-template name="system.head.content">
496             <xsl:with-param name="node" select=".."/>
497           </xsl:call-template>
498
499           <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
500
501           <xsl:if test="$css.stylesheet != ''">
502             <link type="text/css" rel="stylesheet">
503               <xsl:attribute name="href">
504                 <xsl:call-template name="css.stylesheet"/>
505               </xsl:attribute>
506             </link>
507           </xsl:if>
508           <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
509
510           <xsl:call-template name="links">
511             <xsl:with-param name="next" select="$next"/>
512           </xsl:call-template>
513
514           <xsl:if test="$overlay != 0 or $keyboard.nav != 0
515                         or $dynamic.toc != 0 or $active.toc != 0">
516             <script language="javascript" type="text/javascript">
517               <xsl:text> </xsl:text>
518             </script>
519           </xsl:if>
520
521           <xsl:if test="$keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
522             <xsl:call-template name="ua.js"/>
523             <xsl:call-template name="xbDOM.js">
524               <xsl:with-param name="language" select="'javascript'"/>
525             </xsl:call-template>
526             <xsl:call-template name="xbLibrary.js"/>
527             <script language="javascript" type="text/javascript">
528               <xsl:text disable-output-escaping="yes">
529                 &lt;!--
530                 xblibrary = new xbLibrary('</xsl:text>
531               <xsl:call-template name="script-dir"/>
532               <xsl:text disable-output-escaping="yes">');
533                 // --&gt;
534               </xsl:text>
535             </script>
536             <xsl:call-template name="xbStyle.js"/>
537             <xsl:call-template name="xbCollapsibleLists.js"/>
538             <xsl:call-template name="slides.js">
539               <xsl:with-param name="language" select="'javascript'"/>
540             </xsl:call-template>
541           </xsl:if>
542
543           <xsl:call-template name="user.head.content">
544             <xsl:with-param name="node" select=".."/>
545           </xsl:call-template>
546         </head>
547         <xsl:apply-templates select="." mode="singleframe"/>
548       </html>
549     </xsl:with-param>
550   </xsl:call-template>
551 </xsl:template>
552
553 <xsl:template match="slidesinfo" mode="multiframe-bottom">
554   <xsl:variable name="thisfoil">
555     <xsl:value-of select="$titlefoil.html"/>
556   </xsl:variable>
557
558   <xsl:variable name="next" select="(following::foil
559                                     |following::foilgroup)[1]"/>
560
561   <xsl:call-template name="write.chunk">
562     <xsl:with-param name="indent" select="$output.indent"/>
563     <xsl:with-param name="filename" select="concat($base.dir,'bot-',$thisfoil)"/>
564     <xsl:with-param name="content">
565       <html>
566         <head>
567           <title>Navigation</title>
568
569           <xsl:call-template name="system.head.content">
570             <xsl:with-param name="node" select=".."/>
571           </xsl:call-template>
572
573           <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
574
575           <xsl:if test="$css.stylesheet != ''">
576             <link type="text/css" rel="stylesheet">
577               <xsl:attribute name="href">
578                 <xsl:call-template name="css.stylesheet"/>
579               </xsl:attribute>
580             </link>
581           </xsl:if>
582           <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
583
584           <xsl:call-template name="links">
585             <xsl:with-param name="next" select="$next"/>
586           </xsl:call-template>
587
588           <xsl:if test="$overlay != 0 or $keyboard.nav != 0
589                         or $dynamic.toc != 0 or $active.toc != 0">
590             <script language="javascript" type="text/javascript">
591               <xsl:text> </xsl:text>
592             </script>
593           </xsl:if>
594
595           <xsl:if test="$keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
596             <xsl:call-template name="ua.js"/>
597             <xsl:call-template name="xbDOM.js">
598               <xsl:with-param name="language" select="'javascript'"/>
599             </xsl:call-template>
600             <xsl:call-template name="xbLibrary.js"/>
601             <script language="javascript" type="text/javascript">
602               <xsl:text disable-output-escaping="yes">
603                 &lt;!--
604                 xblibrary = new xbLibrary('</xsl:text>
605               <xsl:call-template name="script-dir"/>
606               <xsl:text disable-output-escaping="yes">');
607                 // --&gt;
608               </xsl:text>
609             </script>
610             <xsl:call-template name="xbStyle.js"/>
611             <xsl:call-template name="xbCollapsibleLists.js"/>
612             <xsl:call-template name="slides.js">
613               <xsl:with-param name="language" select="'javascript'"/>
614             </xsl:call-template>
615           </xsl:if>
616
617           <xsl:if test="$overlay != '0'">
618             <xsl:call-template name="overlay.js">
619               <xsl:with-param name="language" select="'javascript'"/>
620             </xsl:call-template>
621           </xsl:if>
622
623           <xsl:call-template name="user.head.content">
624             <xsl:with-param name="node" select=".."/>
625           </xsl:call-template>
626         </head>
627         <body class="botnavigation" bgcolor="{$multiframe.bottom.bgcolor}">
628           <xsl:call-template name="foil-bottom-nav">
629             <xsl:with-param name="next" select="$next"/>
630           </xsl:call-template>
631         </body>
632       </html>
633     </xsl:with-param>
634   </xsl:call-template>
635 </xsl:template>
636
637 <xsl:template match="slidesinfo" mode="singleframe">
638   <xsl:param name="thisfoil">
639     <xsl:value-of select="$titlefoil.html"/>
640   </xsl:param>
641
642   <xsl:variable name="id">
643     <xsl:call-template name="object.id"/>
644   </xsl:variable>
645
646   <xsl:variable name="next" select="(following::foil
647                                     |following::foilgroup)[1]"/>
648
649   <body class="titlepage">
650     <xsl:call-template name="body.attributes"/>
651     <xsl:choose>
652       <xsl:when test="$active.toc != 0">
653         <xsl:attribute name="onload">
654           <xsl:text>newPage('</xsl:text>
655           <xsl:value-of select="$titlefoil.html"/>
656           <xsl:text>',</xsl:text>
657           <xsl:value-of select="$overlay"/>
658           <xsl:text>);</xsl:text>
659         </xsl:attribute>
660       </xsl:when>
661       <xsl:when test="$overlay != 0">
662         <xsl:attribute name="onload">
663           <xsl:text>overlaySetup('lc');</xsl:text>
664         </xsl:attribute>
665       </xsl:when>
666     </xsl:choose>
667
668     <xsl:if test="$keyboard.nav != 0">
669       <xsl:attribute name="onload">
670         <xsl:text>this.focus()</xsl:text>
671       </xsl:attribute>
672       <xsl:attribute name="onkeypress">
673         <xsl:text>navigate(event)</xsl:text>
674       </xsl:attribute>
675     </xsl:if>
676
677     <div class="{name(.)}">
678       <xsl:apply-templates mode="titlepage.mode"/>
679     </div>
680
681     <xsl:if test="$multiframe=0">
682       <div id="overlayDiv" class="navfoot">
683         <xsl:choose>
684           <xsl:when test="$overlay != 0">
685             <xsl:attribute name="style">
686               <xsl:text>position:absolute;visibility:visible;</xsl:text>
687             </xsl:attribute>
688           </xsl:when>
689           <xsl:otherwise>
690             <xsl:attribute name="style">
691               <xsl:text>padding-top: 2in;</xsl:text>
692             </xsl:attribute>
693           </xsl:otherwise>
694         </xsl:choose>
695
696         <table width="100%" border="0"
697                cellspacing="0" cellpadding="0"
698                summary="Navigation">
699           <tr>
700             <td align="left" width="80%" valign="top">
701               <span class="navfooter">
702                 <!-- suppress copyright here; it's probably already on the titlepage
703                 <xsl:apply-templates select="/slides/slidesinfo/copyright"
704                                      mode="slide.footer.mode"/>
705                 -->
706                 <xsl:text>&#160;</xsl:text>
707               </span>
708             </td>
709             <td align="right" width="20%" valign="top">
710               <a>
711                 <xsl:attribute name="href">
712                   <xsl:apply-templates select="$next" mode="filename"/>
713                 </xsl:attribute>
714                 <img alt="{$text.next}" border="0">
715                   <xsl:attribute name="src">
716                     <xsl:call-template name="next.image"/>
717                   </xsl:attribute>
718                 </img>
719               </a>
720             </td>
721           </tr>
722         </table>
723       </div>
724     </xsl:if>
725   </body>
726 </xsl:template>
727
728 <!-- ====================================================================== -->
729
730 <xsl:template name="top-nav">
731   <xsl:param name="home"/>
732   <xsl:param name="up"/>
733   <xsl:param name="next"/>
734   <xsl:param name="prev"/>
735   <xsl:param name="tocfile" select="$toc.html"/>
736
737   <div class="navhead">
738     <table border="0" width="100%" cellspacing="0" cellpadding="0"
739            summary="Navigation table">
740       <tr>
741         <td align="left" valign="bottom" width="10%">
742           <xsl:choose>
743             <xsl:when test="$prev">
744               <span class="link-text">
745                 <a>
746                   <xsl:attribute name="href">
747                     <xsl:apply-templates select="$prev" mode="filename"/>
748                   </xsl:attribute>
749                   <xsl:if test="$multiframe != 0">
750                     <xsl:attribute name="target">foil</xsl:attribute>
751                   </xsl:if>
752                   <img alt="{$text.prev}" border="0">
753                     <xsl:attribute name="src">
754                       <xsl:call-template name="prev.image"/>
755                     </xsl:attribute>
756                   </img>
757                 </a>
758               </span>
759             </xsl:when>
760             <xsl:otherwise>
761               <span class="no-link-text">&#160;</span>
762             </xsl:otherwise>
763           </xsl:choose>
764           <xsl:text>&#160;</xsl:text>
765         </td>
766         <td width="80%" align="center" valign="bottom">
767           <xsl:call-template name="foil.number"/>
768         </td>
769         <td align="right" valign="bottom" width="10%">
770           <xsl:choose>
771             <xsl:when test="$next">
772               <span class="link-text">
773                 <a>
774                   <xsl:attribute name="href">
775                     <xsl:apply-templates select="$next" mode="filename"/>
776                   </xsl:attribute>
777                   <xsl:if test="$multiframe != 0">
778                     <xsl:attribute name="target">foil</xsl:attribute>
779                   </xsl:if>
780                   <img alt="{$text.next}" border="0">
781                     <xsl:attribute name="src">
782                       <xsl:call-template name="next.image"/>
783                     </xsl:attribute>
784                   </img>
785                 </a>
786               </span>
787             </xsl:when>
788             <xsl:otherwise>
789               <span class="no-link-text">&#160;</span>
790             </xsl:otherwise>
791           </xsl:choose>
792           <xsl:text>&#160;</xsl:text>
793         </td>
794       </tr>
795     </table>
796     <hr class="top-nav-sep"/>
797   </div>
798 </xsl:template>
799
800 <xsl:template name="bottom-nav">
801   <xsl:param name="home"/>
802   <xsl:param name="up"/>
803   <xsl:param name="next"/>
804   <xsl:param name="prev"/>
805   <xsl:param name="tocfile" select="$toc.html"/>
806
807   <div class="navfoot">
808     <hr class="bottom-nav-sep"/>
809     <table border="0" width="100%" cellspacing="0" cellpadding="0"
810            summary="Navigation table">
811       <tr>
812         <td align="left" valign="top">
813           <xsl:apply-templates select="/slides/slidesinfo/copyright"
814                                mode="slide.footer.mode"/>
815           <xsl:text>&#160;</xsl:text>
816         </td>
817
818         <td align="right" valign="top">
819           <xsl:choose>
820             <xsl:when test="$prev">
821               <span class="link-text">
822                 <a>
823                   <xsl:attribute name="href">
824                     <xsl:apply-templates select="$prev" mode="filename"/>
825                   </xsl:attribute>
826                   <xsl:if test="$multiframe != 0">
827                     <xsl:attribute name="target">foil</xsl:attribute>
828                   </xsl:if>
829                   <img alt="{$text.prev}" border="0">
830                     <xsl:attribute name="src">
831                       <xsl:call-template name="prev.image"/>
832                     </xsl:attribute>
833                   </img>
834                 </a>
835               </span>
836             </xsl:when>
837             <xsl:otherwise>
838               <span class="no-link-text">&#160;</span>
839             </xsl:otherwise>
840           </xsl:choose>
841           <xsl:text>&#160;</xsl:text>
842
843           <xsl:choose>
844             <xsl:when test="$next">
845               <span class="link-text">
846                 <a>
847                   <xsl:attribute name="href">
848                     <xsl:apply-templates select="$next" mode="filename"/>
849                   </xsl:attribute>
850                   <xsl:if test="$multiframe != 0">
851                     <xsl:attribute name="target">foil</xsl:attribute>
852                   </xsl:if>
853                   <img alt="{$text.next}" border="0">
854                     <xsl:attribute name="src">
855                       <xsl:call-template name="next.image"/>
856                     </xsl:attribute>
857                   </img>
858                 </a>
859               </span>
860             </xsl:when>
861             <xsl:otherwise>
862               <span class="no-link-text">&#160;</span>
863             </xsl:otherwise>
864           </xsl:choose>
865           <xsl:text>&#160;</xsl:text>
866         </td>
867       </tr>
868     </table>
869   </div>
870 </xsl:template>
871
872 <!-- ====================================================================== -->
873
874 <xsl:template match="foilgroup">
875   <xsl:param name="thisfoilgroup">
876     <xsl:apply-templates select="." mode="filename"/>
877   </xsl:param>
878
879   <xsl:variable name="doctype-public">
880     <xsl:call-template name="doctype-public">
881       <xsl:with-param name="frameset" select="$multiframe"/>
882     </xsl:call-template>
883   </xsl:variable>
884
885   <xsl:variable name="doctype-system">
886     <xsl:call-template name="doctype-system">
887       <xsl:with-param name="frameset" select="$multiframe"/>
888     </xsl:call-template>
889   </xsl:variable>
890
891   <xsl:variable name="home" select="/slides"/>
892   <xsl:variable name="up" select="(parent::slides|parent::foilgroup)[1]"/>
893   <xsl:variable name="next" select="foil[1]"/>
894   <xsl:variable name="prev" select="(preceding::foil|parent::foilgroup|/slides)[last()]"/>
895   <xsl:call-template name="write.chunk">
896     <xsl:with-param name="indent" select="$output.indent"/>
897     <xsl:with-param name="doctype-public" select="$doctype-public"/>
898     <xsl:with-param name="doctype-system" select="$doctype-system"/>
899     <xsl:with-param name="filename" select="concat($base.dir,$thisfoilgroup)"/>
900     <xsl:with-param name="content">
901       <html>
902         <head>
903           <title><xsl:value-of select="title"/></title>
904
905           <xsl:call-template name="system.head.content"/>
906           
907           <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
908
909           <xsl:if test="$css.stylesheet != ''">
910             <link type="text/css" rel="stylesheet">
911               <xsl:attribute name="href">
912                 <xsl:call-template name="css.stylesheet"/>
913               </xsl:attribute>
914             </link>
915           </xsl:if>
916           <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
917           
918           <xsl:call-template name="links">
919             <xsl:with-param name="home" select="$home"/>
920             <xsl:with-param name="up" select="$up"/>
921             <xsl:with-param name="next" select="$next"/>
922             <xsl:with-param name="prev" select="$prev"/>
923           </xsl:call-template>
924           
925           <xsl:if test="$overlay != 0 or $keyboard.nav != 0
926                   or $dynamic.toc != 0 or $active.toc != 0">
927             <script language="javascript" type="text/javascript">
928               <xsl:text> </xsl:text>
929             </script>
930           </xsl:if>
931           
932           <xsl:if test="$keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
933             <xsl:call-template name="ua.js"/>
934             <xsl:call-template name="xbDOM.js">
935               <xsl:with-param name="language" select="'javascript'"/>
936             </xsl:call-template>
937             <xsl:call-template name="xbLibrary.js"/>
938             <script language="javascript" type="text/javascript">
939               <xsl:text disable-output-escaping="yes">
940                 &lt;!--
941                 xblibrary = new xbLibrary('</xsl:text>
942               <xsl:call-template name="script-dir"/>
943               <xsl:text disable-output-escaping="yes">');
944                 // --&gt;
945               </xsl:text>
946             </script>
947             <xsl:call-template name="xbStyle.js"/>
948             <xsl:call-template name="xbCollapsibleLists.js"/>
949             <xsl:call-template name="slides.js">
950               <xsl:with-param name="language" select="'javascript'"/>
951             </xsl:call-template>
952           </xsl:if>
953           
954           <xsl:if test="$overlay != '0'">
955             <xsl:call-template name="overlay.js">
956               <xsl:with-param name="language" select="'javascript'"/>
957             </xsl:call-template>
958           </xsl:if>
959           
960           <xsl:call-template name="user.head.content"/>
961         </head>
962         <xsl:choose>
963           <xsl:when test="$multiframe != 0">
964             <xsl:apply-templates select="." mode="multiframe"/>
965           </xsl:when>
966           <xsl:otherwise>
967             <xsl:apply-templates select="." mode="singleframe"/>
968           </xsl:otherwise>
969         </xsl:choose>
970       </html>
971     </xsl:with-param>
972   </xsl:call-template>
973
974   <xsl:if test="$multiframe != 0">
975     <xsl:apply-templates select="." mode="multiframe-top"/>
976     <xsl:apply-templates select="." mode="multiframe-body"/>
977     <xsl:apply-templates select="." mode="multiframe-bottom"/>
978   </xsl:if>
979
980   <xsl:apply-templates select="foil"/>
981 </xsl:template>
982
983 <xsl:template match="foilgroup" mode="multiframe">
984   <xsl:variable name="thisfoilgroup">
985     <xsl:text>foilgroup</xsl:text>
986     <xsl:number count="foilgroup" level="any" format="01"/>
987     <xsl:value-of select="$html.ext"/>
988   </xsl:variable>
989
990   <frameset rows="{$multiframe.navigation.height},*,{$multiframe.navigation.height}" id="foil">
991     <xsl:attribute name="onload">
992       <xsl:text>javascript:body.focus()</xsl:text>
993     </xsl:attribute>
994     <frame src="top-{$thisfoilgroup}" name="top" id="top" marginheight="0" frameborder="0"/>
995     <frame src="body-{$thisfoilgroup}" name="body" id="body" marginheight="0" frameborder="0"/>
996     <frame src="bot-{$thisfoilgroup}" name="bottom" id="bottom" marginheight="0" frameborder="0"/>
997     <noframes>
998       <body class="frameset">
999         <xsl:call-template name="body.attributes"/>
1000         <p>
1001           <xsl:text>Your browser doesn't support frames.</xsl:text>
1002         </p>
1003       </body>
1004     </noframes>
1005   </frameset>
1006 </xsl:template>
1007
1008 <xsl:template match="foilgroup" mode="multiframe-top">
1009   <xsl:variable name="foilgroup">
1010     <xsl:text>foilgroup</xsl:text>
1011     <xsl:number count="foilgroup" level="any" format="01"/>
1012     <xsl:value-of select="$html.ext"/>
1013   </xsl:variable>
1014
1015   <xsl:variable name="home" select="/slides"/>
1016   <xsl:variable name="up" select="(parent::slides|parent::foilgroup)[1]"/>
1017   <xsl:variable name="next" select="foil[1]"/>
1018   <xsl:variable name="prev" select="(preceding::foil|parent::foilgroup|/slides)[last()]"/>
1019
1020   <xsl:call-template name="write.chunk">
1021     <xsl:with-param name="indent" select="$output.indent"/>
1022     <xsl:with-param name="filename" select="concat($base.dir,'top-',$foilgroup)"/>
1023     <xsl:with-param name="content">
1024       <html>
1025         <head>
1026           <title>Navigation</title>
1027
1028           <xsl:call-template name="system.head.content"/>
1029
1030           <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
1031
1032           <xsl:if test="$css.stylesheet != ''">
1033             <link type="text/css" rel="stylesheet">
1034               <xsl:attribute name="href">
1035                 <xsl:call-template name="css.stylesheet"/>
1036               </xsl:attribute>
1037             </link>
1038           </xsl:if>
1039           <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
1040
1041           <xsl:call-template name="links">
1042             <xsl:with-param name="home" select="$home"/>
1043             <xsl:with-param name="up" select="$up"/>
1044             <xsl:with-param name="next" select="$next"/>
1045             <xsl:with-param name="prev" select="$prev"/>
1046           </xsl:call-template>
1047
1048           <xsl:if test="$overlay != 0 or $keyboard.nav != 0
1049                         or $dynamic.toc != 0 or $active.toc != 0">
1050             <script language="javascript" type="text/javascript">
1051               <xsl:text> </xsl:text>
1052             </script>
1053           </xsl:if>
1054
1055           <xsl:if test="$keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
1056             <xsl:call-template name="ua.js"/>
1057             <xsl:call-template name="xbDOM.js">
1058               <xsl:with-param name="language" select="'javascript'"/>
1059             </xsl:call-template>
1060             <xsl:call-template name="xbLibrary.js"/>
1061             <xsl:call-template name="xbStyle.js"/>
1062             <xsl:call-template name="xbCollapsibleLists.js"/>
1063             <xsl:call-template name="slides.js">
1064               <xsl:with-param name="language" select="'javascript'"/>
1065             </xsl:call-template>
1066           </xsl:if>
1067
1068           <xsl:if test="$overlay != '0'">
1069             <xsl:call-template name="overlay.js">
1070               <xsl:with-param name="language" select="'javascript'"/>
1071             </xsl:call-template>
1072           </xsl:if>
1073
1074           <xsl:call-template name="user.head.content"/>
1075         </head>
1076         <body class="topnavigation" bgcolor="{$multiframe.top.bgcolor}">
1077           <xsl:call-template name="foilgroup-top-nav">
1078             <xsl:with-param name="home" select="$home"/>
1079             <xsl:with-param name="up" select="$up"/>
1080             <xsl:with-param name="next" select="$next"/>
1081             <xsl:with-param name="prev" select="$prev"/>
1082           </xsl:call-template>
1083         </body>
1084       </html>
1085     </xsl:with-param>
1086   </xsl:call-template>
1087 </xsl:template>
1088
1089 <xsl:template match="foilgroup" mode="multiframe-body">
1090   <xsl:variable name="id">
1091     <xsl:call-template name="object.id"/>
1092   </xsl:variable>
1093
1094   <xsl:variable name="home" select="/slides"/>
1095   <xsl:variable name="up" select="(parent::slides|parent::foilgroup)[1]"/>
1096   <xsl:variable name="next" select="foil[1]"/>
1097   <xsl:variable name="prev" select="(preceding::foil|parent::foilgroup|/slides)[last()]"/>
1098
1099   <xsl:variable name="thisfoilgroup">
1100     <xsl:text>foilgroup</xsl:text>
1101     <xsl:number count="foilgroup" level="any" format="01"/>
1102     <xsl:value-of select="$html.ext"/>
1103   </xsl:variable>
1104
1105   <xsl:call-template name="write.chunk">
1106     <xsl:with-param name="indent" select="$output.indent"/>
1107     <xsl:with-param name="filename" select="concat($base.dir,'body-',$thisfoilgroup)"/>
1108     <xsl:with-param name="content">
1109       <html>
1110         <head>
1111           <title>Body</title>
1112
1113           <xsl:call-template name="system.head.content"/>
1114
1115           <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
1116
1117           <xsl:if test="$css.stylesheet != ''">
1118             <link type="text/css" rel="stylesheet">
1119               <xsl:attribute name="href">
1120                 <xsl:call-template name="css.stylesheet"/>
1121               </xsl:attribute>
1122             </link>
1123           </xsl:if>
1124           <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
1125
1126           <xsl:call-template name="links">
1127             <xsl:with-param name="home" select="$home"/>
1128             <xsl:with-param name="up" select="$up"/>
1129             <xsl:with-param name="next" select="$next"/>
1130             <xsl:with-param name="prev" select="$prev"/>
1131           </xsl:call-template>
1132
1133           <xsl:if test="$overlay != 0 or $keyboard.nav != 0
1134                         or $dynamic.toc != 0 or $active.toc != 0">
1135             <script language="javascript" type="text/javascript">
1136               <xsl:text> </xsl:text>
1137             </script>
1138           </xsl:if>
1139
1140           <xsl:if test="$keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
1141             <xsl:call-template name="ua.js"/>
1142             <xsl:call-template name="xbDOM.js">
1143               <xsl:with-param name="language" select="'javascript'"/>
1144             </xsl:call-template>
1145             <xsl:call-template name="xbLibrary.js"/>
1146             <script language="javascript" type="text/javascript">
1147               <xsl:text disable-output-escaping="yes">
1148                 &lt;!--
1149                 xblibrary = new xbLibrary('</xsl:text>
1150               <xsl:call-template name="script-dir"/>
1151               <xsl:text disable-output-escaping="yes">');
1152                 // --&gt;
1153               </xsl:text>
1154             </script>
1155             <xsl:call-template name="xbStyle.js"/>
1156             <xsl:call-template name="xbCollapsibleLists.js"/>
1157             <xsl:call-template name="slides.js">
1158               <xsl:with-param name="language" select="'javascript'"/>
1159             </xsl:call-template>
1160           </xsl:if>
1161
1162           <xsl:if test="$overlay != '0'">
1163             <xsl:call-template name="overlay.js">
1164               <xsl:with-param name="language" select="'javascript'"/>
1165             </xsl:call-template>
1166           </xsl:if>
1167
1168           <xsl:call-template name="user.head.content"/>
1169         </head>
1170         <xsl:apply-templates select="." mode="singleframe"/>
1171       </html>
1172     </xsl:with-param>
1173   </xsl:call-template>
1174 </xsl:template>
1175
1176 <xsl:template match="foilgroup" mode="multiframe-bottom">
1177   <xsl:variable name="thisfoilgroup">
1178     <xsl:text>foilgroup</xsl:text>
1179     <xsl:number count="foilgroup" level="any" format="01"/>
1180     <xsl:value-of select="$html.ext"/>
1181   </xsl:variable>
1182
1183   <xsl:variable name="home" select="/slides"/>
1184   <xsl:variable name="up" select="(parent::slides|parent::foilgroup)[1]"/>
1185   <xsl:variable name="next" select="foil[1]"/>
1186   <xsl:variable name="prev" select="(preceding::foil|parent::foilgroup|/slides)[last()]"/>
1187
1188   <xsl:call-template name="write.chunk">
1189     <xsl:with-param name="indent" select="$output.indent"/>
1190     <xsl:with-param name="filename" select="concat($base.dir,'bot-',$thisfoilgroup)"/>
1191     <xsl:with-param name="content">
1192       <html>
1193         <head>
1194           <title>Navigation</title>
1195
1196           <xsl:call-template name="system.head.content"/>
1197
1198           <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
1199
1200           <xsl:if test="$css.stylesheet != ''">
1201             <link type="text/css" rel="stylesheet">
1202               <xsl:attribute name="href">
1203                 <xsl:call-template name="css.stylesheet"/>
1204               </xsl:attribute>
1205             </link>
1206           </xsl:if>
1207           <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
1208
1209           <xsl:call-template name="links">
1210             <xsl:with-param name="home" select="$home"/>
1211             <xsl:with-param name="up" select="$up"/>
1212             <xsl:with-param name="next" select="$next"/>
1213             <xsl:with-param name="prev" select="$prev"/>
1214           </xsl:call-template>
1215
1216           <xsl:if test="$overlay != 0 or $keyboard.nav != 0
1217                         or $dynamic.toc != 0 or $active.toc != 0">
1218             <script language="javascript" type="text/javascript">
1219               <xsl:text> </xsl:text>
1220             </script>
1221           </xsl:if>
1222
1223           <xsl:if test="$keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
1224             <xsl:call-template name="ua.js"/>
1225             <xsl:call-template name="xbDOM.js">
1226               <xsl:with-param name="language" select="'javascript'"/>
1227             </xsl:call-template>
1228             <xsl:call-template name="xbLibrary.js"/>
1229             <script language="javascript" type="text/javascript">
1230               <xsl:text disable-output-escaping="yes">
1231                 &lt;!--
1232                 xblibrary = new xbLibrary('</xsl:text>
1233               <xsl:call-template name="script-dir"/>
1234               <xsl:text disable-output-escaping="yes">');
1235                 // --&gt;
1236               </xsl:text>
1237             </script>
1238             <xsl:call-template name="xbStyle.js"/>
1239             <xsl:call-template name="xbCollapsibleLists.js"/>
1240             <xsl:call-template name="slides.js">
1241               <xsl:with-param name="language" select="'javascript'"/>
1242             </xsl:call-template>
1243           </xsl:if>
1244
1245           <xsl:if test="$overlay != '0'">
1246             <xsl:call-template name="overlay.js">
1247               <xsl:with-param name="language" select="'javascript'"/>
1248             </xsl:call-template>
1249           </xsl:if>
1250
1251           <xsl:call-template name="user.head.content"/>
1252         </head>
1253         <body class="botnavigation" bgcolor="{$multiframe.bottom.bgcolor}">
1254           <xsl:call-template name="foilgroup-bottom-nav">
1255             <xsl:with-param name="home" select="$home"/>
1256             <xsl:with-param name="up" select="$up"/>
1257             <xsl:with-param name="next" select="$next"/>
1258             <xsl:with-param name="prev" select="$prev"/>
1259           </xsl:call-template>
1260         </body>
1261       </html>
1262     </xsl:with-param>
1263   </xsl:call-template>
1264 </xsl:template>
1265
1266 <xsl:template match="foilgroup" mode="singleframe">
1267   <xsl:param name="thisfoilgroup">
1268     <xsl:apply-templates select="." mode="filename"/>
1269   </xsl:param>
1270
1271   <xsl:variable name="id">
1272     <xsl:call-template name="object.id"/>
1273   </xsl:variable>
1274
1275   <xsl:variable name="home" select="/slides"/>
1276   <xsl:variable name="up" select="(parent::slides|parent::foilgroup)[1]"/>
1277   <xsl:variable name="next" select="foil[1]"/>
1278   <xsl:variable name="prev" select="(preceding::foil|parent::foilgroup|/slides)[last()]"/>
1279   <body class="foilgroup">
1280     <xsl:call-template name="body.attributes"/>
1281     <xsl:choose>
1282       <xsl:when test="$active.toc != 0">
1283         <xsl:attribute name="onload">
1284           <xsl:text>newPage('</xsl:text>
1285           <xsl:value-of select="$thisfoilgroup"/>
1286           <xsl:text>',</xsl:text>
1287           <xsl:value-of select="$overlay"/>
1288           <xsl:text>);</xsl:text>
1289         </xsl:attribute>
1290       </xsl:when>
1291       <xsl:when test="$overlay != 0">
1292         <xsl:attribute name="onload">
1293           <xsl:text>overlaySetup('lc');</xsl:text>
1294         </xsl:attribute>
1295       </xsl:when>
1296     </xsl:choose>
1297
1298
1299     <xsl:if test="$keyboard.nav != 0">
1300       <xsl:attribute name="onkeypress">
1301         <xsl:text>navigate(event)</xsl:text>
1302       </xsl:attribute>
1303     </xsl:if>
1304
1305     <div class="{name(.)}" id="{$id}">
1306       <xsl:if test="$multiframe=0">
1307         <xsl:call-template name="foilgroup-top-nav">
1308           <xsl:with-param name="home" select="$home"/>
1309           <xsl:with-param name="up" select="$up"/>
1310           <xsl:with-param name="next" select="$next"/>
1311           <xsl:with-param name="prev" select="$prev"/>
1312         </xsl:call-template>
1313       </xsl:if>
1314
1315       <div class="foilgroup-body" id="{$id}">
1316         <xsl:call-template name="foilgroup-body">
1317           <xsl:with-param name="home" select="$home"/>
1318           <xsl:with-param name="up" select="$up"/>
1319           <xsl:with-param name="next" select="$next"/>
1320           <xsl:with-param name="prev" select="$prev"/>
1321         </xsl:call-template>
1322       </div>
1323
1324       <xsl:if test="$multiframe=0">
1325         <div id="overlayDiv">
1326           <xsl:if test="$overlay != 0">
1327             <xsl:attribute name="style">
1328               <xsl:text>position:absolute;visibility:visible;</xsl:text>
1329             </xsl:attribute>
1330           </xsl:if>
1331           <xsl:call-template name="foilgroup-bottom-nav">
1332             <xsl:with-param name="home" select="$home"/>
1333             <xsl:with-param name="up" select="$up"/>
1334             <xsl:with-param name="next" select="$next"/>
1335             <xsl:with-param name="prev" select="$prev"/>
1336           </xsl:call-template>
1337         </div>
1338       </xsl:if>
1339     </div>
1340
1341     <xsl:call-template name="process.footnotes"/>
1342   </body>
1343 </xsl:template>
1344
1345 <!-- ====================================================================== -->
1346
1347 <xsl:template match="foil">
1348   <xsl:variable name="thisfoil">
1349     <xsl:apply-templates select="." mode="filename"/>
1350   </xsl:variable>
1351
1352   <xsl:variable name="home" select="/slides"/>
1353   <xsl:variable name="up"   select="(parent::slides|parent::foilgroup)[1]"/>
1354   <xsl:variable name="next" select="(following::foil
1355                                     |following::foilgroup)[1]"/>
1356   <xsl:variable name="prev" select="(preceding-sibling::foil[1]
1357                                     |parent::foilgroup[1]
1358                                     |/slides)[last()]"/>
1359
1360   <xsl:variable name="doctype-public">
1361     <xsl:call-template name="doctype-public">
1362       <xsl:with-param name="frameset" select="$multiframe"/>
1363     </xsl:call-template>
1364   </xsl:variable>
1365
1366   <xsl:variable name="doctype-system">
1367     <xsl:call-template name="doctype-system">
1368       <xsl:with-param name="frameset" select="$multiframe"/>
1369     </xsl:call-template>
1370   </xsl:variable>
1371
1372   <xsl:call-template name="write.chunk">
1373     <xsl:with-param name="indent" select="$output.indent"/>
1374     <xsl:with-param name="doctype-public" select="$doctype-public"/>
1375     <xsl:with-param name="doctype-system" select="$doctype-system"/>
1376     <xsl:with-param name="filename" select="concat($base.dir,$thisfoil)"/>
1377     <xsl:with-param name="content">
1378       <html>
1379         <head>
1380           <title><xsl:value-of select="title"/></title>
1381
1382           <xsl:call-template name="system.head.content"/>
1383
1384           <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
1385
1386           <xsl:if test="$css.stylesheet != ''">
1387             <link type="text/css" rel="stylesheet">
1388               <xsl:attribute name="href">
1389                 <xsl:call-template name="css.stylesheet"/>
1390               </xsl:attribute>
1391             </link>
1392           </xsl:if>
1393           <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
1394
1395           <xsl:call-template name="links">
1396             <xsl:with-param name="home" select="$home"/>
1397             <xsl:with-param name="up" select="$up"/>
1398             <xsl:with-param name="next" select="$next"/>
1399             <xsl:with-param name="prev" select="$prev"/>
1400           </xsl:call-template>
1401
1402           <xsl:if test="$overlay != 0 or $keyboard.nav != 0
1403                   or $dynamic.toc != 0 or $active.toc != 0">
1404             <script language="javascript" type="text/javascript">
1405               <xsl:text> </xsl:text>
1406             </script>
1407           </xsl:if>
1408
1409           <xsl:if test="$keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
1410             <xsl:call-template name="ua.js"/>
1411             <xsl:call-template name="xbDOM.js">
1412               <xsl:with-param name="language" select="'javascript'"/>
1413             </xsl:call-template>
1414             <xsl:call-template name="xbLibrary.js"/>
1415             <script language="javascript" type="text/javascript">
1416               <xsl:text disable-output-escaping="yes">
1417                 &lt;!--
1418                 xblibrary = new xbLibrary('</xsl:text>
1419               <xsl:call-template name="script-dir"/>
1420               <xsl:text disable-output-escaping="yes">');
1421                 // --&gt;
1422               </xsl:text>
1423             </script>
1424             <xsl:call-template name="xbStyle.js"/>
1425             <xsl:call-template name="xbCollapsibleLists.js"/>
1426             <xsl:call-template name="slides.js">
1427               <xsl:with-param name="language" select="'javascript'"/>
1428             </xsl:call-template>
1429           </xsl:if>
1430
1431           <xsl:if test="$overlay != '0'">
1432             <xsl:call-template name="overlay.js">
1433               <xsl:with-param name="language" select="'javascript'"/>
1434             </xsl:call-template>
1435           </xsl:if>
1436
1437           <xsl:call-template name="user.head.content"/>
1438         </head>
1439         <xsl:choose>
1440           <xsl:when test="$multiframe != 0">
1441             <xsl:apply-templates select="." mode="multiframe"/>
1442           </xsl:when>
1443           <xsl:otherwise>
1444             <xsl:apply-templates select="." mode="singleframe"/>
1445           </xsl:otherwise>
1446         </xsl:choose>
1447       </html>
1448     </xsl:with-param>
1449   </xsl:call-template>
1450
1451   <xsl:if test="$multiframe != 0">
1452     <xsl:apply-templates select="." mode="multiframe-top"/>
1453     <xsl:apply-templates select="." mode="multiframe-body"/>
1454     <xsl:apply-templates select="." mode="multiframe-bottom"/>
1455   </xsl:if>
1456 </xsl:template>
1457
1458 <xsl:template match="foil" mode="multiframe">
1459   <xsl:variable name="foilgroup" select="ancestor::foilgroup"/>
1460
1461   <xsl:variable name="thisfoil">
1462     <xsl:apply-templates select="." mode="filename"/>
1463   </xsl:variable>
1464
1465   <frameset rows="{$multiframe.navigation.height},*,{$multiframe.navigation.height}" id="foil">
1466     <xsl:attribute name="onload">
1467       <xsl:text>javascript:body.focus()</xsl:text>
1468       </xsl:attribute>
1469     <frame src="top-{$thisfoil}" name="top" id="top" marginheight="0" frameborder="0">
1470     </frame>
1471     <frame src="body-{$thisfoil}" name="body" id="body" marginheight="0" frameborder="0">
1472     </frame>
1473     <frame src="bot-{$thisfoil}" name="bottom" id="bottom" marginheight="0" frameborder="0">
1474     </frame>
1475     <noframes>
1476       <body class="frameset">
1477         <xsl:call-template name="body.attributes"/>
1478         <p>
1479           <xsl:text>Your browser doesn't support frames.</xsl:text>
1480         </p>
1481       </body>
1482     </noframes>
1483   </frameset>
1484 </xsl:template>
1485
1486 <xsl:template match="foil" mode="multiframe-top">
1487   <xsl:variable name="thisfoil">
1488     <xsl:apply-templates select="." mode="filename"/>
1489   </xsl:variable>
1490
1491   <xsl:variable name="home" select="/slides"/>
1492   <xsl:variable name="up"   select="(parent::slides|parent::foilgroup)[1]"/>
1493   <xsl:variable name="next" select="(following::foil
1494                                     |following::foilgroup)[1]"/>
1495   <xsl:variable name="prev" select="(preceding-sibling::foil[1]
1496                                     |parent::foilgroup[1]
1497                                     |/slides)[last()]"/>
1498
1499   <xsl:call-template name="write.chunk">
1500     <xsl:with-param name="indent" select="$output.indent"/>
1501     <xsl:with-param name="filename" select="concat($base.dir,'top-',$thisfoil)"/>
1502     <xsl:with-param name="content">
1503       <html>
1504         <head>
1505           <title>Navigation</title>
1506
1507           <xsl:call-template name="system.head.content"/>
1508
1509           <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
1510
1511           <xsl:if test="$css.stylesheet != ''">
1512             <link type="text/css" rel="stylesheet">
1513               <xsl:attribute name="href">
1514                 <xsl:call-template name="css.stylesheet"/>
1515               </xsl:attribute>
1516             </link>
1517           </xsl:if>
1518           <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
1519
1520           <xsl:if test="$overlay != 0 or $keyboard.nav != 0
1521                         or $dynamic.toc != 0 or $active.toc != 0">
1522             <script language="javajcript" type="text/javascript">
1523               <xsl:text> </xsl:text>
1524             </script>
1525           </xsl:if>
1526
1527           <xsl:if test="$keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
1528             <xsl:call-template name="ua.js"/>
1529             <xsl:call-template name="xbDOM.js">
1530               <xsl:with-param name="language" select="'javascript'"/>
1531             </xsl:call-template>
1532             <xsl:call-template name="xbLibrary.js"/>
1533             <script language="javascript" type="text/javascript">
1534               <xsl:text disable-output-escaping="yes">
1535                 &lt;!--
1536                 xblibrary = new xbLibrary('</xsl:text>
1537               <xsl:call-template name="script-dir"/>
1538               <xsl:text disable-output-escaping="yes">');
1539                 // --&gt;
1540               </xsl:text>
1541             </script>
1542             <xsl:call-template name="xbStyle.js"/>
1543             <xsl:call-template name="xbCollapsibleLists.js"/>
1544             <xsl:call-template name="slides.js">
1545               <xsl:with-param name="language" select="'javascript'"/>
1546             </xsl:call-template>
1547           </xsl:if>
1548
1549           <xsl:if test="$overlay != '0'">
1550             <xsl:call-template name="overlay.js">
1551               <xsl:with-param name="language" select="'javascript'"/>
1552             </xsl:call-template>
1553           </xsl:if>
1554
1555           <xsl:call-template name="user.head.content"/>
1556         </head>
1557         <body class="topnavigation" bgcolor="{$multiframe.top.bgcolor}">
1558           <xsl:call-template name="foil-top-nav">
1559             <xsl:with-param name="home" select="$home"/>
1560             <xsl:with-param name="up" select="$up"/>
1561             <xsl:with-param name="next" select="$next"/>
1562             <xsl:with-param name="prev" select="$prev"/>
1563           </xsl:call-template>
1564         </body>
1565       </html>
1566     </xsl:with-param>
1567   </xsl:call-template>
1568 </xsl:template>
1569
1570 <xsl:template match="foil" mode="multiframe-body">
1571   <xsl:variable name="thisfoil">
1572     <xsl:apply-templates select="." mode="filename"/>
1573   </xsl:variable>
1574
1575   <xsl:call-template name="write.chunk">
1576     <xsl:with-param name="indent" select="$output.indent"/>
1577     <xsl:with-param name="filename" select="concat($base.dir,'body-',$thisfoil)"/>
1578     <xsl:with-param name="content">
1579       <html>
1580         <head>
1581           <title>Body</title>
1582
1583           <xsl:call-template name="system.head.content"/>
1584
1585           <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
1586
1587           <xsl:if test="$css.stylesheet != ''">
1588             <link type="text/css" rel="stylesheet">
1589               <xsl:attribute name="href">
1590                 <xsl:call-template name="css.stylesheet"/>
1591               </xsl:attribute>
1592             </link>
1593           </xsl:if>
1594           <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
1595
1596           <xsl:if test="$overlay != 0 or $keyboard.nav != 0
1597                         or $dynamic.toc != 0 or $active.toc != 0">
1598             <script language="javascript" type="text/javascript">
1599               <xsl:text> </xsl:text>
1600             </script>
1601           </xsl:if>
1602
1603           <xsl:if test="$keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
1604             <xsl:variable name="home" select="/slides"/>
1605             <xsl:variable name="up"   select="(parent::slides|parent::foilgroup)[1]"/>
1606             <xsl:variable name="next" select="(following::foil
1607                                               |following::foilgroup)[1]"/>
1608             <xsl:variable name="prev" select="(preceding-sibling::foil[1]
1609                                               |parent::foilgroup[1]
1610                                               |/slides)[last()]"/>
1611
1612             <xsl:call-template name="links">
1613               <xsl:with-param name="home" select="$home"/>
1614               <xsl:with-param name="up" select="$up"/>
1615               <xsl:with-param name="next" select="$next"/>
1616               <xsl:with-param name="prev" select="$prev"/>
1617             </xsl:call-template>
1618
1619             <xsl:call-template name="ua.js"/>
1620             <xsl:call-template name="xbDOM.js">
1621               <xsl:with-param name="language" select="'javascript'"/>
1622             </xsl:call-template>
1623             <xsl:call-template name="xbLibrary.js"/>
1624             <script language="javascript" type="text/javascript">
1625               <xsl:text disable-output-escaping="yes">
1626                 &lt;!--
1627                 xblibrary = new xbLibrary('</xsl:text>
1628               <xsl:call-template name="script-dir"/>
1629               <xsl:text disable-output-escaping="yes">');
1630                 // --&gt;
1631               </xsl:text>
1632             </script>
1633             <xsl:call-template name="xbStyle.js"/>
1634             <xsl:call-template name="xbCollapsibleLists.js"/>
1635             <xsl:call-template name="slides.js">
1636               <xsl:with-param name="language" select="'javascript'"/>
1637             </xsl:call-template>
1638           </xsl:if>
1639
1640           <xsl:if test="$overlay != '0'">
1641             <xsl:call-template name="overlay.js">
1642               <xsl:with-param name="language" select="'javascript'"/>
1643             </xsl:call-template>
1644           </xsl:if>
1645
1646           <xsl:call-template name="user.head.content"/>
1647
1648         </head>
1649         <xsl:apply-templates select="." mode="singleframe"/>
1650       </html>
1651     </xsl:with-param>
1652   </xsl:call-template>
1653 </xsl:template>
1654
1655 <xsl:template match="foil" mode="multiframe-bottom">
1656   <xsl:variable name="thisfoil">
1657     <xsl:apply-templates select="." mode="filename"/>
1658   </xsl:variable>
1659
1660   <xsl:variable name="home" select="/slides"/>
1661   <xsl:variable name="up"   select="(parent::slides|parent::foilgroup)[1]"/>
1662   <xsl:variable name="next" select="(following::foil
1663                                     |following::foilgroup)[1]"/>
1664   <xsl:variable name="prev" select="(preceding-sibling::foil[1]
1665                                     |parent::foilgroup[1]
1666                                     |/slides)[last()]"/>
1667
1668   <xsl:call-template name="write.chunk">
1669     <xsl:with-param name="indent" select="$output.indent"/>
1670     <xsl:with-param name="filename" select="concat($base.dir,'bot-',$thisfoil)"/>
1671     <xsl:with-param name="content">
1672       <html>
1673         <head>
1674           <title>Navigation</title>
1675
1676           <xsl:call-template name="system.head.content"/>
1677
1678           <meta name="generator" content="DocBook Slides Stylesheets V{$VERSION}"/>
1679
1680           <xsl:if test="$css.stylesheet != ''">
1681             <link type="text/css" rel="stylesheet">
1682               <xsl:attribute name="href">
1683                 <xsl:call-template name="css.stylesheet"/>
1684               </xsl:attribute>
1685             </link>
1686           </xsl:if>
1687           <xsl:apply-templates select="/processing-instruction('dbhtml')" mode="css.pi"/>
1688
1689           <xsl:if test="$overlay != 0 or $keyboard.nav != 0
1690                         or $dynamic.toc != 0 or $active.toc != 0">
1691             <script language="javascript" type="text/javascript">
1692               <xsl:text> </xsl:text>
1693             </script>
1694           </xsl:if>
1695
1696           <xsl:if test="$keyboard.nav != 0 or $dynamic.toc != 0 or $active.toc != 0">
1697             <xsl:call-template name="ua.js"/>
1698             <xsl:call-template name="xbDOM.js">
1699               <xsl:with-param name="language" select="'javascript'"/>
1700             </xsl:call-template>
1701             <xsl:call-template name="xbLibrary.js"/>
1702             <script language="javascript" type="text/javascript">
1703               <xsl:text disable-output-escaping="yes">
1704                 &lt;!--
1705                 xblibrary = new xbLibrary('</xsl:text>
1706               <xsl:call-template name="script-dir"/>
1707               <xsl:text disable-output-escaping="yes">');
1708                 // --&gt;
1709               </xsl:text>
1710             </script>
1711             <xsl:call-template name="xbStyle.js"/>
1712             <xsl:call-template name="xbCollapsibleLists.js"/>
1713             <xsl:call-template name="slides.js">
1714               <xsl:with-param name="language" select="'javascript'"/>
1715             </xsl:call-template>
1716           </xsl:if>
1717
1718           <xsl:if test="$overlay != '0'">
1719             <xsl:call-template name="overlay.js">
1720               <xsl:with-param name="language" select="'javascript'"/>
1721             </xsl:call-template>
1722           </xsl:if>
1723
1724           <xsl:call-template name="user.head.content"/>
1725         </head>
1726         <body class="botnavigation" bgcolor="{$multiframe.bottom.bgcolor}">
1727           <xsl:call-template name="foil-bottom-nav">
1728             <xsl:with-param name="home" select="$home"/>
1729             <xsl:with-param name="up" select="$up"/>
1730             <xsl:with-param name="next" select="$next"/>
1731             <xsl:with-param name="prev" select="$prev"/>
1732           </xsl:call-template>
1733         </body>
1734       </html>
1735     </xsl:with-param>
1736   </xsl:call-template>
1737 </xsl:template>
1738
1739 <xsl:template match="foil" mode="singleframe">
1740   <xsl:param name="thisfoil">
1741     <xsl:apply-templates select="." mode="filename"/>
1742   </xsl:param>
1743
1744   <xsl:variable name="id">
1745     <xsl:call-template name="object.id"/>
1746   </xsl:variable>
1747
1748   <xsl:variable name="home" select="/slides"/>
1749   <xsl:variable name="up"   select="(parent::slides|parent::foilgroup)[1]"/>
1750   <xsl:variable name="next" select="(following::foil
1751                                     |following::foilgroup)[1]"/>
1752   <xsl:variable name="prev" select="(preceding-sibling::foil[1]
1753                                     |parent::foilgroup[1]
1754                                     |/slides)[last()]"/>
1755
1756   <body class="foil">
1757     <xsl:call-template name="body.attributes"/>
1758     <xsl:choose>
1759       <xsl:when test="$active.toc != 0">
1760         <xsl:attribute name="onload">
1761           <xsl:text>newPage('</xsl:text>
1762           <xsl:value-of select="$thisfoil"/>
1763           <xsl:text>',</xsl:text>
1764           <xsl:value-of select="$overlay"/>
1765           <xsl:text>);</xsl:text>
1766         </xsl:attribute>
1767       </xsl:when>
1768       <xsl:when test="$overlay != 0">
1769         <xsl:attribute name="onload">
1770           <xsl:text>overlaySetup('lc');</xsl:text>
1771         </xsl:attribute>
1772       </xsl:when>
1773     </xsl:choose>
1774
1775     <xsl:if test="$keyboard.nav != 0">
1776       <xsl:attribute name="onkeypress">
1777         <xsl:text>navigate(event)</xsl:text>
1778       </xsl:attribute>
1779     </xsl:if>
1780
1781     <div class="{name(.)}" id="{$id}">
1782       <xsl:if test="$multiframe=0">
1783         <xsl:call-template name="foil-top-nav">
1784           <xsl:with-param name="home" select="$home"/>
1785           <xsl:with-param name="up" select="$up"/>
1786           <xsl:with-param name="next" select="$next"/>
1787           <xsl:with-param name="prev" select="$prev"/>
1788         </xsl:call-template>
1789       </xsl:if>
1790
1791       <div class="foil-body">
1792         <xsl:apply-templates/>
1793       </div>
1794
1795       <xsl:if test="$multiframe=0">
1796         <div id="overlayDiv">
1797           <xsl:if test="$overlay != 0">
1798             <xsl:attribute name="style">
1799               <xsl:text>position:absolute;visibility:visible;</xsl:text>
1800             </xsl:attribute>
1801           </xsl:if>
1802           <xsl:call-template name="foil-bottom-nav">
1803             <xsl:with-param name="home" select="$home"/>
1804             <xsl:with-param name="up" select="$up"/>
1805             <xsl:with-param name="next" select="$next"/>
1806             <xsl:with-param name="prev" select="$prev"/>
1807           </xsl:call-template>
1808         </div>
1809       </xsl:if>
1810     </div>
1811
1812     <xsl:call-template name="process.footnotes"/>
1813   </body>
1814 </xsl:template>
1815
1816 <!-- ============================================================ -->
1817
1818 <xsl:template match="slidesinfo" mode="toc">
1819   <xsl:variable name="id">
1820     <xsl:call-template name="object.id"/>
1821   </xsl:variable>
1822   <div id="{$id}" class="toc-slidesinfo">
1823     <a href="{$titlefoil.html}" target="foil">
1824       <xsl:choose>
1825         <xsl:when test="titleabbrev">
1826           <xsl:apply-templates select="titleabbrev" mode="toc"/>
1827         </xsl:when>
1828         <xsl:otherwise>
1829           <xsl:apply-templates select="title" mode="toc"/>
1830         </xsl:otherwise>
1831       </xsl:choose>
1832     </a>
1833     <hr/>
1834   </div>
1835 </xsl:template>
1836
1837 <xsl:template match="foilgroup" mode="toc">
1838   <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
1839
1840   <xsl:variable name="thisfoilgroup">
1841     <xsl:text>foilgroup</xsl:text>
1842     <xsl:number count="foilgroup" level="any" format="01"/>
1843     <xsl:value-of select="$html.ext"/>
1844   </xsl:variable>
1845
1846   <div class="toc-foilgroup" id="{$id}">
1847     <img alt="-">
1848       <xsl:attribute name="src">
1849         <xsl:call-template name="minus.image"/>
1850       </xsl:attribute>
1851     </img>
1852     <a href="{$thisfoilgroup}" target="foil">
1853       <xsl:choose>
1854         <xsl:when test="titleabbrev">
1855           <xsl:apply-templates select="titleabbrev" mode="toc"/>
1856         </xsl:when>
1857         <xsl:otherwise>
1858           <xsl:apply-templates select="title" mode="toc"/>
1859         </xsl:otherwise>
1860       </xsl:choose>
1861     </a>
1862     <xsl:apply-templates select="foil" mode="toc"/>
1863   </div>
1864 </xsl:template>
1865
1866 <xsl:template match="foil" mode="toc">
1867   <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
1868   <xsl:variable name="foil">
1869     <xsl:apply-templates select="." mode="filename"/>
1870   </xsl:variable>
1871
1872   <div id="{$id}" class="toc-foil">
1873     <img alt="-">
1874       <xsl:attribute name="src">
1875         <xsl:call-template name="bullet.image"/>
1876       </xsl:attribute>
1877     </img>
1878     <a href="{$foil}" target="foil">
1879       <xsl:choose>
1880         <xsl:when test="titleabbrev">
1881           <xsl:apply-templates select="titleabbrev" mode="toc"/>
1882         </xsl:when>
1883         <xsl:otherwise>
1884           <xsl:apply-templates select="title" mode="toc"/>
1885         </xsl:otherwise>
1886       </xsl:choose>
1887     </a>
1888   </div>
1889 </xsl:template>
1890
1891 <!-- ====================================================================== -->
1892
1893 <xsl:template match="slidesinfo" mode="ns-toc">
1894   <xsl:variable name="id">
1895     <xsl:call-template name="object.id"/>
1896   </xsl:variable>
1897
1898   <xsl:text>myList.addItem('</xsl:text>
1899
1900   <xsl:text disable-output-escaping="yes">&lt;div id="</xsl:text>
1901   <xsl:value-of select="$id"/>
1902   <xsl:text disable-output-escaping="yes">" class="toc-slidesinfo"&gt;</xsl:text>
1903
1904   <xsl:text disable-output-escaping="yes">&lt;a href="</xsl:text>
1905   <xsl:value-of select="$titlefoil.html"/>
1906   <xsl:text disable-output-escaping="yes">" target="foil"&gt;</xsl:text>
1907
1908   <xsl:call-template name="string.subst">
1909     <xsl:with-param name="string">
1910       <xsl:choose>
1911         <xsl:when test="titleabbrev">
1912           <xsl:value-of select="titleabbrev"/>
1913         </xsl:when>
1914         <xsl:otherwise>
1915           <xsl:value-of select="title"/>
1916         </xsl:otherwise>
1917       </xsl:choose>
1918     </xsl:with-param>
1919     <xsl:with-param name="target">'</xsl:with-param>
1920     <xsl:with-param name="replacement">\'</xsl:with-param>
1921   </xsl:call-template>
1922
1923   <xsl:text disable-output-escaping="yes">&lt;\/a&gt;&lt;\/div&gt;</xsl:text>
1924   <xsl:text>');&#10;</xsl:text>
1925 </xsl:template>
1926
1927 <xsl:template match="foilgroup" mode="ns-toc">
1928   <xsl:variable name="id">
1929     <xsl:call-template name="object.id"/>
1930   </xsl:variable>
1931
1932   <xsl:text>subList = new List(false, width, height, "</xsl:text>
1933 <xsl:value-of select="$toc.bg.color"/>
1934 <xsl:text>");&#10;</xsl:text>
1935   <xsl:text>subList.setIndent(12);&#10;</xsl:text>
1936   <xsl:apply-templates select="foil" mode="ns-toc"/>
1937
1938   <xsl:text>myList.addList(subList, '</xsl:text>
1939
1940   <xsl:text disable-output-escaping="yes">&lt;div id="</xsl:text>
1941   <xsl:value-of select="$id"/>
1942   <xsl:text disable-output-escaping="yes">" class="toc-foilgroup"&gt;</xsl:text>
1943
1944   <xsl:text disable-output-escaping="yes">&lt;a href="</xsl:text>
1945   <xsl:apply-templates select="." mode="filename"/>
1946   <xsl:text disable-output-escaping="yes">" target="foil"&gt;</xsl:text>
1947
1948   <xsl:call-template name="string.subst">
1949     <xsl:with-param name="string">
1950       <xsl:choose>
1951         <xsl:when test="titleabbrev">
1952           <xsl:value-of select="titleabbrev"/>
1953         </xsl:when>
1954         <xsl:otherwise>
1955           <xsl:value-of select="title"/>
1956         </xsl:otherwise>
1957       </xsl:choose>
1958     </xsl:with-param>
1959     <xsl:with-param name="target">'</xsl:with-param>
1960     <xsl:with-param name="replacement">\'</xsl:with-param>
1961   </xsl:call-template>
1962
1963   <xsl:text disable-output-escaping="yes">&lt;\/a&gt;&lt;\/div&gt;</xsl:text>
1964   <xsl:text>');&#10;</xsl:text>
1965 </xsl:template>
1966
1967 <xsl:template match="foil" mode="ns-toc">
1968   <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
1969
1970   <xsl:choose>
1971     <xsl:when test="ancestor::foilgroup">
1972       <xsl:text>subList.addItem('</xsl:text>
1973     </xsl:when>
1974     <xsl:otherwise>
1975       <xsl:text>myList.addItem('</xsl:text>
1976     </xsl:otherwise>
1977   </xsl:choose>
1978
1979   <xsl:text disable-output-escaping="yes">&lt;div id="</xsl:text>
1980   <xsl:value-of select="$id"/>
1981   <xsl:text disable-output-escaping="yes">" class="toc-foil"&gt;</xsl:text>
1982
1983   <xsl:text disable-output-escaping="yes">&lt;img alt="-" src="</xsl:text>
1984   <xsl:call-template name="bullet.image"/>
1985   <xsl:text disable-output-escaping="yes">"&gt;&lt;\/img&gt;</xsl:text>
1986
1987   <xsl:text disable-output-escaping="yes">&lt;a href="</xsl:text>
1988   <xsl:apply-templates select="." mode="filename"/>
1989   <xsl:text disable-output-escaping="yes">" target="foil"&gt;</xsl:text>
1990
1991   <xsl:call-template name="string.subst">
1992     <xsl:with-param name="string">
1993       <xsl:choose>
1994         <xsl:when test="titleabbrev">
1995           <xsl:value-of select="titleabbrev"/>
1996         </xsl:when>
1997         <xsl:otherwise>
1998           <xsl:value-of select="title"/>
1999         </xsl:otherwise>
2000       </xsl:choose>
2001     </xsl:with-param>
2002     <xsl:with-param name="target">'</xsl:with-param>
2003     <xsl:with-param name="replacement">\'</xsl:with-param>
2004   </xsl:call-template>
2005
2006   <xsl:text disable-output-escaping="yes">&lt;\/a&gt;&lt;\/div&gt;</xsl:text>
2007   <xsl:text>');&#10;</xsl:text>
2008 </xsl:template>
2009
2010 <xsl:template match="speakernotes" mode="ns-toc">
2011   <!-- nop -->
2012 </xsl:template>
2013
2014 <!-- ====================================================================== -->
2015
2016 </xsl:stylesheet>