home *** CD-ROM | disk | FTP | other *** search
/ Organic Chemistry (8th Edition) / Image.iso / pc / organic / media / glossary / glossary.xsl < prev    next >
Encoding:
Extensible Markup Language  |  2002-12-05  |  17.6 KB  |  491 lines

  1. <?xml version="1.0"?>
  2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xlink="http://www.w3.org/1999/xlink">
  3.  
  4. <!-- Edugen XSL Stylesheets V1.0 =======================================
  5.  
  6.      File glossary.xsl for GeoD
  7.      
  8.      This file is part of the Edugen XSL Stylesheets.
  9.      Copyright (c) 2002 WWL Corp. - A Subsidiary of John Wiley & Sons, Inc.
  10. ========================================================================= -->
  11.  
  12. <xsl:output method="html" indent="no"/>
  13.  
  14. <!-- version -->
  15. <xsl:param name="version">1.0</xsl:param>
  16. <!-- dynamic param -->
  17. <xsl:param name="selector" select="glossary"/>
  18.  
  19. <xsl:variable name="courseHttpPath"></xsl:variable>
  20. <xsl:variable name="edugenHttpPath"></xsl:variable>
  21. <xsl:variable name="courseFilePath"></xsl:variable>
  22. <xsl:variable name="edugenFilePath"></xsl:variable>
  23.  
  24. <xsl:variable name="courseHttpPath"><?11?>?sid=<?1003?>&msg=3&course=<?1008?>&file=</xsl:variable>
  25. <xsl:variable name="edugenHttpPath"><?11?>?sid=global&msg=300&file=</xsl:variable>
  26. <xsl:variable name="courseFilePath"><?303?></xsl:variable>
  27. <xsl:variable name="edugenFilePath"><?301?></xsl:variable>
  28.  
  29. <xsl:variable name="file"><xsl:value-of select="/*/@id"/>.xml</xsl:variable>
  30. <xsl:variable name="filebase"><xsl:value-of select="/*/@xml:base"/></xsl:variable>
  31.  
  32. <xsl:attribute-set name="body_attributes">
  33.     <!-- <xsl:attribute name="bgcolor">#ffffff</xsl:attribute> -->
  34.     <xsl:attribute name="text">#000000</xsl:attribute>
  35.     <xsl:attribute name="leftmargin">5</xsl:attribute>
  36.     <xsl:attribute name="topmargin">5</xsl:attribute>
  37.     <xsl:attribute name="marginwidth">5</xsl:attribute>
  38.     <xsl:attribute name="marginheight">5</xsl:attribute>
  39.     <xsl:attribute name="onresize">javascript:if(navigator.appName.indexOf('Netscape')!=-1)self.location.reload();</xsl:attribute>
  40.     <xsl:attribute name="onload">javascript:doOnload();</xsl:attribute>
  41.     <xsl:attribute name="onunload">javascript:doOnunload();</xsl:attribute>
  42. </xsl:attribute-set>
  43.  
  44.  
  45. <!-- ============= root =============================== -->
  46. <xsl:template match="/">
  47. <html>
  48. <xsl:comment>
  49. Copyright (c) 2002 WWL Corp. - A Subsidiary of John Wiley & Sons, Inc.
  50. Thank you for examining our code
  51. </xsl:comment>
  52. <head>
  53. <title>
  54. <xsl:choose>
  55.     <xsl:when test="$selector/title"><xsl:value-of select="$selector/title"/></xsl:when>
  56.     <xsl:otherwise>Page</xsl:otherwise>
  57. </xsl:choose>
  58. </title>
  59. <meta name="generator" content="Edugen XSL Stylesheets V{$version}"/>
  60. <link rel="STYLESHEET" type="text/css" href="{$courseHttpPath}media/content/css/style<?1007?>.css"/>
  61. <link rel="STYLESHEET" type="text/css" href="{$courseHttpPath}media/content/css/font<?1006?>.css"/>
  62.  
  63. <script type="text/javascript" language="JavaScript" src="{$edugenHttpPath}media/js/button.js"></script>
  64. <!-- <script type="text/javascript" language="JavaScript" src="{$edugenHttpPath}media/js/overlay.js"></script> -->
  65. <script type="text/javascript" language="JavaScript" src="{$edugenHttpPath}media/js/misc.js"></script>
  66. <script type="text/javascript" language="JavaScript" src="{$edugenHttpPath}media/js/windows.js"></script>
  67.  
  68. <script type="text/javascript" language="JavaScript"><![CDATA[
  69. function doOnload()
  70. {
  71.     
  72. }
  73. function doOnunload()
  74. {
  75.     closeWindows();
  76. }
  77.  
  78.  
  79. var cur_href,cur_id,cur_xsl,cur_url;
  80.  
  81. function glossaryReplace(in_base,in_file,in_href,in_role)
  82. {
  83.     
  84.     top.frames.words.location = "<?11?>?sid=<?1003?>&msg=4" +
  85.         "&xsl=/media/glossary/glossary.xsl" +
  86.         "&name=selector" +
  87.         "&select=letter" +
  88.         "&xml=/" + in_base + in_href;
  89.                                 
  90.     top.frames.entry.location = "<?11?>?sid=<?1003?>&msg=4" +
  91.         "&xsl=/media/glossary/glossary.xsl" +
  92.         "&name=selector" +
  93.         "&select=letter/entry[1]" +
  94.         "&xml=/" + in_base + in_href;
  95.                                 
  96. }
  97.  
  98. function termReplace(in_base,in_file,in_href)
  99. {
  100.     top.frames.entry.location = "<?11?>?sid=<?1003?>&msg=4" +
  101.         "&xsl=/media/glossary/glossary.xsl" +
  102.         "&name=selector" +
  103.         "&select=letter/entry[@id%3D'" + in_href + "']" +
  104.         "&xml=/" + in_base + in_file;
  105.                                 
  106. }
  107.  
  108. function viewImage(in_base,in_file,in_href,in_name)
  109. {
  110.     cur_url = "<?11?>?sid=<?1003?>&msg=4" +
  111.         "&xsl=/media/glossary/glos_ill.xsl" +
  112.         "&name=selector" +
  113.         "&select=letter/entry[@id%3D'" + in_href + "']/illustration/image[@name%3D'" + in_name + "']" +
  114.         "&xml=/" + in_base + in_file;
  115.     
  116. <!--    var win_param = "width=300,height=400,left=100,top=100,resizable=yes,copyhistory=no,directories=no,location=no,menubar=no,scrollbars=yes,status=no,toolbar=no";-->
  117.  
  118.     var win_param = "left=100,top=100,resizable=yes,copyhistory=no,directories=no,location=no,menubar=no,scrollbars=yes,status=no,toolbar=no";
  119.     
  120.     if (arguments[4]!="")
  121.     {
  122.         var win_width = "width=" + arguments[4];
  123.     }
  124.     else
  125.     {
  126.         var win_width = "width=300";
  127.     }
  128.     
  129.     if (arguments[5]!="")
  130.     {
  131.         var win_height = "height=" + arguments[5];
  132.     }
  133.     else
  134.     {
  135.         var win_height = "height=400";
  136.     }
  137.     
  138.     win_param = win_param + "," + win_width + "," + win_height;
  139.     
  140.     createWindow(cur_url,"illustration",win_param)                    
  141. }
  142. ]]></script>
  143.  
  144. </head>
  145.  
  146. <body xsl:use-attribute-sets="body_attributes">
  147. <xsl:attribute name="bgcolor">
  148.     <xsl:choose>
  149.         <xsl:when test="name($selector)='glossary'">#FFDEBD</xsl:when>
  150.         <xsl:otherwise>#ffffff</xsl:otherwise>
  151.     </xsl:choose>
  152. </xsl:attribute>
  153.  
  154. <xsl:apply-templates select="$selector"/>
  155.  
  156. </body>
  157. </html>
  158. </xsl:template>
  159. <!-- ====== end of root =============================== -->
  160.  
  161.  
  162. <!-- ============= glossary =============================== -->
  163. <xsl:template match="glossary">
  164. <table align="center" bgcolor="#FFDEBD" cellpadding="0" cellspacing="0" border="0" width="100%" height="100%">
  165.     <tr>
  166.         <xsl:for-each select="letter">
  167.             <td><span class="letter"><xsl:apply-templates select="." mode="letter"/></span></td>
  168.         </xsl:for-each>
  169.     </tr>
  170. </table>
  171. <!-- <nobr>
  172. <xsl:for-each select="letter">
  173. <xsl:apply-templates select="." mode="letter"/>
  174. </xsl:for-each>
  175. </nobr> -->
  176. </xsl:template>
  177. <!-- ====== end of glossary =============================== -->
  178.  
  179.  
  180. <!-- ============= letter =============================== -->
  181. <xsl:template match="letter">
  182. <xsl:for-each select="entry">
  183. <span class="words"><xsl:apply-templates select="term" mode="term_link"/></span>
  184. </xsl:for-each>
  185. </xsl:template>
  186.  
  187. <xsl:template match="letter" mode="letter">
  188. <xsl:apply-templates/>
  189. </xsl:template>
  190. <!-- ====== end of letter =============================== -->
  191.  
  192.  
  193. <!-- ============= entry =============================== -->
  194. <xsl:template match="entry">
  195. <table cellspacing="2">
  196. <tr>
  197.     <td align="left" valign="middle"><xsl:apply-templates select="illustration"/>
  198.     <xsl:apply-templates select="audio"/>
  199.     <span class="glterm"><xsl:apply-templates select="term"/></span></td>
  200. </tr>
  201. <tr>
  202.     <td align="left"><span class="gldefinition"><xsl:apply-templates select="definition"/></span></td>
  203. </tr>
  204. </table>
  205. <!--<p><xsl:apply-templates select="term"/></p>-->
  206. <!--<p><xsl:apply-templates select="definition"/></p>-->
  207. </xsl:template>
  208. <!-- ====== end of entry =============================== -->
  209.  
  210.  
  211. <!-- ============= term =============================== -->
  212. <xsl:template match="term">
  213. <span style="font-weight:bold;"><xsl:apply-templates/></span>
  214. </xsl:template>
  215.  
  216. <xsl:template match="term" mode="term_link">
  217. <xsl:variable name="base"><xsl:value-of select="/*/@xml:base"/></xsl:variable>
  218. <a name="{../@id}"></a><a href="javascript:termReplace('{$base}','{$file}','{../@id}');"><xsl:apply-templates/></a><br/>
  219. </xsl:template>
  220. <!-- ====== end of term =============================== -->
  221.  
  222.  
  223. <!-- ============= definition =============================== -->
  224. <xsl:template match="definition">
  225. <xsl:apply-templates/>
  226. </xsl:template>
  227. <!-- ====== end of definition =============================== -->
  228.  
  229. <xsl:template match="definition/para">
  230. <p class="gltext">
  231. <xsl:if test="@align!=''"><xsl:attribute name="align"><xsl:value-of select="@align"/></xsl:attribute></xsl:if>
  232. <xsl:call-template name="anchorname"/>
  233. <xsl:call-template name="anchor"/>
  234. </p>
  235. </xsl:template>
  236.  
  237. <xsl:template match="definition/title">
  238. <p class="gltitle">
  239. <xsl:if test="@align!=''"><xsl:attribute name="align"><xsl:value-of select="@align"/></xsl:attribute></xsl:if>
  240. <xsl:call-template name="anchorname"/>
  241. <xsl:call-template name="anchor"/>
  242. </p>
  243. </xsl:template>
  244.  
  245.  
  246. <!-- ============= anchor =============================== -->
  247. <xsl:template name="anchor">
  248. <xsl:variable name="base">
  249.     <xsl:choose>
  250.         <xsl:when test="@xml:base"><xsl:value-of select="@xml:base"/></xsl:when>
  251.         <xsl:otherwise><xsl:value-of select="$filebase"/></xsl:otherwise>
  252.     </xsl:choose>
  253. </xsl:variable>
  254. <xsl:choose>
  255.     <xsl:when test="@role">
  256.         <xsl:choose>
  257.             <xsl:when test="@role='glossary'">
  258.                 <a href="javascript:glossaryReplace('{$base}','{$file}','{@xlink:href}','{@role}');">
  259.                     <xsl:attribute name="class">
  260.                         <xsl:choose>
  261.                             <xsl:when test="@class"><xsl:value-of select="@class"/></xsl:when>
  262.                             <xsl:otherwise>letter</xsl:otherwise>
  263.                         </xsl:choose>
  264.                     </xsl:attribute>
  265.                     <xsl:apply-templates/>
  266.                 </a>
  267.             </xsl:when>
  268.             <xsl:otherwise>
  269.                 <a href="javascript:winOpen('{$base}','{$file}','{@xlink:href}','{@role}');">
  270.                     <xsl:attribute name="class">
  271.                         <xsl:choose>
  272.                             <xsl:when test="@class"><xsl:value-of select="@class"/></xsl:when>
  273.                             <xsl:otherwise>link</xsl:otherwise>
  274.                         </xsl:choose>
  275.                     </xsl:attribute>
  276.                     <xsl:apply-templates/>
  277.                 </a>
  278.             </xsl:otherwise>
  279.         </xsl:choose>
  280.     </xsl:when>
  281.     <xsl:otherwise>
  282.         <xsl:choose>
  283.             <xsl:when test="@xlink:actuate='new'">
  284.                 <a href="{@xlink:href}" target="_blank" class="link"><xsl:apply-templates/></a>
  285.             </xsl:when>
  286.             <xsl:when test="@xlink:actuate='replace'">
  287.                 <a href="javascript:gotoPage('{$base}','{$file}','{@xlink:href}');" class="link"><xsl:apply-templates/></a>
  288.             </xsl:when>
  289.             <xsl:otherwise><xsl:apply-templates/></xsl:otherwise>
  290.         </xsl:choose>
  291.     </xsl:otherwise>
  292. </xsl:choose>
  293. </xsl:template>
  294.  
  295. <xsl:template name="anchor_attrib">
  296. <xsl:choose>
  297. <xsl:when test="@xlink:href">
  298.     <xsl:choose>
  299.         <xsl:when test="@xlink:actuate='new'">javascript:overWinOpen('overlay','<xsl:value-of select="substring-after(@xlink:href,'#')"/>','<xsl:value-of select="$file"/>','overlay.xsl');</xsl:when>
  300.         <xsl:when test="@xlink:actuate='embed'"></xsl:when>
  301.         <xsl:when test="@xlink:actuate='replace'"></xsl:when>
  302.         <xsl:otherwise></xsl:otherwise>
  303.     </xsl:choose>
  304. </xsl:when>
  305. <xsl:otherwise></xsl:otherwise>
  306. </xsl:choose>
  307. </xsl:template>
  308.  
  309. <xsl:template name="anchorname">
  310. <xsl:param name="process_node" select="."/>
  311. <xsl:choose>
  312.     <xsl:when test="$process_node/@id!=''">
  313.         <a name="{@id}"></a>
  314.     </xsl:when>
  315.     <xsl:otherwise></xsl:otherwise>
  316. </xsl:choose>
  317. </xsl:template>
  318.  
  319. <xsl:template name="parent_anchorname">
  320. <xsl:choose>
  321.     <xsl:when test="../@id!=''">
  322.         <a name="{../@id}"></a>
  323.     </xsl:when>
  324.     <xsl:otherwise></xsl:otherwise>
  325. </xsl:choose>
  326. </xsl:template>
  327.  
  328. <xsl:template match="a">
  329. <xsl:call-template name="anchor"/>
  330. </xsl:template>
  331. <!-- ====== end of anchor =============================== -->
  332.  
  333.  
  334. <!-- ============= illustration =============================== -->
  335. <xsl:template match="illustration">
  336. <xsl:variable name="base">
  337.     <xsl:choose>
  338.         <xsl:when test="@xml:base"><xsl:value-of select="@xml:base"/></xsl:when>
  339.         <xsl:otherwise><xsl:value-of select="$filebase"/></xsl:otherwise>
  340.     </xsl:choose>
  341. </xsl:variable>
  342. <xsl:variable name="width"><xsl:value-of select="@width"/></xsl:variable>
  343. <xsl:variable name="height"><xsl:value-of select="@height"/></xsl:variable>
  344. <xsl:choose>
  345.     <xsl:when test="image/@src!=''">
  346.         <xsl:for-each select="image">
  347.             <a href="javascript:viewImage('{$base}','{$file}','{../../@id}','{@name}','{$width}','{$height}');"><img src="{$courseFilePath}media/glossary/{@preview}" height="70" width="70" alt="View" border="0" align="absmiddle"/></a>
  348.         </xsl:for-each>
  349.     </xsl:when>
  350.     <xsl:otherwise>
  351.         <a href="javascript:alert('Not implemented yet!');"><img src="{$courseFilePath}media/glossary/graphics/pict.gif" width="23" height="20" alt="View" border="0" align="middle"/></a>
  352.     </xsl:otherwise>
  353. </xsl:choose>
  354. </xsl:template>
  355.  
  356. <xsl:template match="illustration/alternative">
  357. </xsl:template>
  358. <!-- ====== end of illustration =============================== -->
  359.  
  360.  
  361. <!-- ============= audio =============================== -->
  362. <xsl:template match="audio">
  363. <xsl:apply-templates/>
  364. </xsl:template>
  365.  
  366. <xsl:template match="audio/alternative">
  367. </xsl:template>
  368. <!-- ====== end of audio =============================== -->
  369.  
  370.  
  371. <!-- ============== blob =============================== -->
  372. <xsl:template match="image">
  373. <img src="{$courseFilePath}media/glossary/{@src}">
  374. <xsl:if test="@width"><xsl:copy-of select="@width"/></xsl:if>
  375. <xsl:if test="@height"><xsl:copy-of select="@height"/></xsl:if>
  376. <xsl:if test="@border"><xsl:copy-of select="@border"/></xsl:if>
  377. <xsl:if test="@align"><xsl:copy-of select="@align"/></xsl:if>
  378. <xsl:if test="@vspace"><xsl:copy-of select="@vspace"/></xsl:if>
  379. <xsl:if test="@hspace"><xsl:copy-of select="@hspace"/></xsl:if>
  380. <xsl:if test="@usemap"><xsl:copy-of select="@usemap"/></xsl:if>
  381. <xsl:if test="@alt"><xsl:copy-of select="@alt"/></xsl:if>
  382. </img>
  383. </xsl:template>
  384.  
  385. <xsl:template match="area">
  386. <area>
  387. <xsl:if test="@alt"><xsl:attribute name="alt"><xsl:value-of select="@alt"/></xsl:attribute></xsl:if>
  388. <xsl:if test="@shape"><xsl:attribute name="shape"><xsl:value-of select="@shape"/></xsl:attribute></xsl:if>
  389. <xsl:if test="@coords"><xsl:attribute name="coords"><xsl:value-of select="@coords"/></xsl:attribute></xsl:if>
  390.  
  391. <xsl:if test="@xlink:href">
  392. <xsl:attribute name="href">
  393. <xsl:call-template name="anchor2"/>
  394. </xsl:attribute>
  395. </xsl:if>
  396.  
  397. </area>
  398. </xsl:template>
  399.  
  400.  
  401. <xsl:template match="flash">
  402. <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#version=4,0,0,0">
  403. <xsl:if test="@width"><xsl:copy-of select="@width"/></xsl:if>
  404. <xsl:if test="@height"><xsl:copy-of select="@height"/></xsl:if>
  405. <xsl:if test="@border"><xsl:copy-of select="@border"/></xsl:if>
  406. <xsl:element name="param">
  407. <xsl:attribute name="name">movie</xsl:attribute>
  408. <xsl:attribute name="value"><xsl:value-of select="$courseFilePath"/>media/glossary/<xsl:value-of select="@src"/></xsl:attribute>
  409. </xsl:element>
  410. <xsl:if test="@loop!=''">
  411. <xsl:element name="param">
  412. <xsl:attribute name="name">loop</xsl:attribute>
  413. <xsl:attribute name="value"><xsl:value-of select="@loop"/></xsl:attribute>
  414. </xsl:element>
  415. </xsl:if>
  416. <xsl:if test="@menu!=''">
  417. <xsl:element name="param">
  418. <xsl:attribute name="name">menu</xsl:attribute>
  419. <xsl:attribute name="value"><xsl:value-of select="@menu"/></xsl:attribute>
  420. </xsl:element>
  421. </xsl:if>
  422. <xsl:if test="@quality!=''">
  423. <xsl:element name="param">
  424. <xsl:attribute name="name">quality</xsl:attribute>
  425. <xsl:attribute name="value"><xsl:value-of select="@quality"/></xsl:attribute>
  426. </xsl:element>
  427. </xsl:if>
  428. <xsl:if test="@bgcolor!=''">
  429. <xsl:element name="param">
  430. <xsl:attribute name="name">bgcolor</xsl:attribute>
  431. <xsl:attribute name="value"><xsl:value-of select="@bgcolor"/></xsl:attribute>
  432. </xsl:element>
  433. </xsl:if>
  434. <embed type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"  swliveconnect="true">
  435. <xsl:attribute name="src"><xsl:value-of select="$courseFilePath"/>media/glossary/<xsl:value-of select="@src"/></xsl:attribute>
  436. <xsl:if test="@width"><xsl:copy-of select="@width"/></xsl:if>
  437. <xsl:if test="@height"><xsl:copy-of select="@height"/></xsl:if>
  438. <xsl:if test="@border"><xsl:copy-of select="@border"/></xsl:if>
  439. <xsl:if test="@loop!=''"><xsl:attribute name="loop"><xsl:value-of select="@loop"/></xsl:attribute></xsl:if>
  440. <xsl:if test="@menu!=''"><xsl:attribute name="menu"><xsl:value-of select="@menu"/></xsl:attribute></xsl:if>
  441. <xsl:if test="@quality!=''"><xsl:attribute name="quality"><xsl:value-of select="@quality"/></xsl:attribute></xsl:if>
  442. <xsl:if test="@bgcolor!=''"><xsl:attribute name="bgcolor"><xsl:value-of select="@bgcolor"/></xsl:attribute></xsl:if>
  443. </embed>
  444. </object>
  445. </xsl:template>
  446. <!-- ====== end of blob =============================== -->
  447.  
  448.  
  449. <!-- ============= formatting =============================== -->
  450. <!-- italic, bold, underline, monospace -->
  451. <xsl:template match="emphasis">
  452. <xsl:choose>
  453.     <xsl:when test="@role='b'">
  454.         <span style="font-weight:600;"><xsl:apply-templates/></span>
  455.     </xsl:when>
  456.     <xsl:when test="@role='ib'">
  457.         <span style="font-style:italic;font-weight:600;"><xsl:apply-templates/></span>
  458.     </xsl:when>
  459.     <xsl:when test="@role='bu'">
  460.         <span style="font-weight:600;text-decoration:underline;"><xsl:apply-templates/></span>
  461.     </xsl:when>
  462.     <xsl:when test="@role='bm'">
  463.         <span style="font-weight:600;font-family:monospace;"><xsl:apply-templates/></span>
  464.     </xsl:when>
  465.     <xsl:when test="@role='u'">
  466.         <span style="text-decoration:underline;"><xsl:apply-templates/></span>
  467.     </xsl:when>
  468.     <xsl:when test="@role='iu'">
  469.         <span style="font-style:italic;text-decoration:underline;"><xsl:apply-templates/></span>
  470.     </xsl:when>
  471.     <xsl:when test="@role='m'">
  472.         <span style="font-family:monospace;"><xsl:apply-templates/></span>
  473.     </xsl:when>
  474.     <xsl:when test="@role='im'">
  475.         <span style="font-style:italic;font-family:monospace;"><xsl:apply-templates/></span>
  476.     </xsl:when>
  477.     <xsl:otherwise>
  478.         <span style="font-style:italic;"><xsl:apply-templates/></span>
  479.     </xsl:otherwise>
  480. </xsl:choose>
  481. </xsl:template>
  482. <!-- ====== end of formatting =============================== -->
  483.  
  484.  
  485. <!-- =========================================================================
  486.      Thank you for examining our code.
  487.      Please direct all questions, bug reports, or suggestions for changes
  488.      to the info@maris.com
  489. ========================================================================== -->
  490.  
  491. </xsl:stylesheet>