<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" exclude-result-prefixes="#default" xmlns="http://www.w3.org/1999/xhtml">
  <xsl:output method="xml"
              indent="yes"
              media-type="application/xhtml+xml"
              omit-xml-declaration="no"
              encoding="utf-8"
              version="1.0"
              doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
              doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" />



  
  <!-- All tags -->
  <xsl:template match="//*" priority="50">
    <xsl:element name="{name()}">
      <xsl:copy-of select="@*"/>
      <xsl:apply-templates/>
    </xsl:element>
  </xsl:template>

  <!-- script tag -->
  <xsl:template match="//script" priority="100">
    <xsl:element name="script">
      <xsl:copy-of select="@*"/>

      <!-- Beginning of CDATA section -->
      <xsl:text disable-output-escaping="yes"><![CDATA[//<]]></xsl:text><xsl:text disable-output-escaping="yes">![CDATA[</xsl:text>
      
      <!-- original javascript -->
      <xsl:value-of select="." disable-output-escaping="yes"/>
      
      <!-- we can add some javascript here -->
      <xsl:text disable-output-escaping="yes">
        <![CDATA[
        function test(a, b)
        {
          alert( "This javascript was embedded in the xsl stylesheet : " + (a > b ? "a > b" : "a < b") ); 
        }
        ]]>
      </xsl:text>
      
      <!-- End of CDATA section -->
      <xsl:text>//]]</xsl:text><xsl:text disable-output-escaping="yes"><![CDATA[>]]></xsl:text>
      
    </xsl:element>
  </xsl:template>

  <!-- BOLD tag -->
  <xsl:template match="//bold" priority="50">
    <xsl:element name="strong">
      <xsl:copy-of select="@*"/>
      <xsl:copy-of select="node()"/>
    </xsl:element>
  </xsl:template>

  <!-- HIDDENLINK tag -->
  <xsl:template match="//hiddenlink" priority="50">
    <xsl:element name="a">
      
      <xsl:if test ="@destination">
        <xsl:attribute name="href">
          <xsl:value-of select="@destination"/>
        </xsl:attribute>
      </xsl:if>
      <xsl:if test ="@caption">
        <xsl:attribute name="title">
          <xsl:value-of select="@caption"/>
        </xsl:attribute>
      </xsl:if>
      <xsl:if test ="@anchorname">
        <xsl:attribute name="name">
          <xsl:value-of select="@anchorname"/>
        </xsl:attribute>
      </xsl:if>

      <xsl:if test ="@id | @class">
        <xsl:copy-of select="@id | @class"/>
      </xsl:if>
      
      <xsl:apply-templates/>
    </xsl:element>
  </xsl:template>

  <!-- FAQLIST tag -->
  <xsl:template match="//faqlist" priority="50">
    <xsl:element name="div">
      <xsl:copy-of select="@*"/>
      <xsl:attribute name="class">faqlist</xsl:attribute>
      <xsl:element name="h2">
        <xsl:element name="abbr">
          <xsl:attribute name="title">Frequently Answered Questions</xsl:attribute>
          <xsl:text>FAQ</xsl:text>
        </xsl:element>        
      </xsl:element>
      <xsl:for-each select="faq">
        <xsl:element name="dl">
          <xsl:attribute name="class">faq</xsl:attribute>
          <xsl:element name="dt">
            <xsl:attribute name="class">question</xsl:attribute>
            <xsl:apply-templates select="question/node()"/>
          </xsl:element>
          <xsl:element name="dd">
            <xsl:attribute name="class">answer</xsl:attribute>
            <xsl:apply-templates select="answer/node()"/>
          </xsl:element>
        </xsl:element>
      </xsl:for-each>
    </xsl:element>
  </xsl:template>

</xsl:stylesheet>
