<?xml version="1.0" encoding="iso-8859-1" ?>                   <!--*- sgml -*-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" />

<!-- *********************************************************************** -->
<xsl:template match="TAGLIST">

<!-- content generated from XML -->
<xsl:call-template name="report-table" />

</xsl:template>

<!-- *********************************************************************** -->
<xsl:template match="HEADER/text">
  <xsl:copy-of select="text()|*" />
</xsl:template>

<!-- *********************************************************************** -->
<xsl:template name="header">
  <h2><xsl:value-of select="HEADER/title" /></h2>
  <xsl:apply-templates select="HEADER/text" />
</xsl:template>

<!-- *********************************************************************** -->
<xsl:template name="report-table">
  <table class="ReportTable" id="report1" cellspacing="0">
    <xsl:call-template name="column-group" />
    <thead>
      <xsl:call-template name="header-row" />
    </thead>
    <tbody>
      <xsl:apply-templates select="ROWSET/ROW" />
    </tbody>
  </table>
  <xsl:call-template name="interactivity" />
</xsl:template>

<!-- *********************************************************************** -->
<xsl:template name="column-group">
  <colgroup>
    <col align="center" />
    <col align="right" />
    <col />
    <col />
    <col align="center" />
    <col align="center" />
    <col align="right" />
    <col align="right" />
    <col />
  </colgroup>
</xsl:template>

<!-- *********************************************************************** -->
<xsl:template name="header-row">
  <tr>
    <th>Tag (hex)</th>
    <th>Tag (dec)</th>
    <th>Key</th>
    <th>Type</th>
    <th><abbr title="Mandatory">M.</abbr></th>
    <th><abbr title="Repeatable">R.</abbr></th>
    <th>Min. bytes</th>
    <th>Max. bytes</th>
    <th>Tag description</th>
  </tr>
</xsl:template>

<!-- *********************************************************************** -->
<xsl:template match="ROWSET/ROW[position() mod 2 = 0]">
  <xsl:call-template name="data-row">
    <xsl:with-param name="rowClass" select="'EvenRow'" />
  </xsl:call-template>
</xsl:template>

<!-- *********************************************************************** -->
<xsl:template match="ROWSET/ROW[position() mod 2 = 1]">
  <xsl:call-template name="data-row">
    <xsl:with-param name="rowClass" select="'OddRow'" />
  </xsl:call-template>
</xsl:template>

<!-- *********************************************************************** -->
<xsl:template name="data-row">
  <xsl:param name="rowClass" />
  <tr><xsl:attribute name="class"><xsl:value-of select="$rowClass" /></xsl:attribute>
    <td><xsl:value-of select="taghex" /></td>
    <td><xsl:value-of select="tagdec" /></td>
    <td><xsl:value-of select="key" /></td>
    <td><xsl:value-of select="type" /></td>
    <td>
      <xsl:choose>
        <xsl:when test="mandatory = 'true'">
          <xsl:text>Yes</xsl:text>
        </xsl:when>
        <xsl:when test="mandatory = 'false'">
          <xsl:text>No</xsl:text>
        </xsl:when>
        <xsl:otherwise>
          <xsl:value-of select="mandatory" />
        </xsl:otherwise>
      </xsl:choose>
    </td>
    <td>
      <xsl:choose>
        <xsl:when test="repeatable = 'true'">
          <xsl:text>Yes</xsl:text>
        </xsl:when>
        <xsl:when test="repeatable = 'false'">
          <xsl:text>No</xsl:text>
        </xsl:when>
        <xsl:otherwise>
          <xsl:value-of select="repeatable" />
        </xsl:otherwise>
      </xsl:choose>
    </td>
    <td><xsl:value-of select="minbytes" /></td>
    <td><xsl:value-of select="maxbytes" /></td>
    <td><xsl:value-of select="tagdesc" /></td>
  </tr>
</xsl:template>

<!-- *********************************************************************** -->
<xsl:template name="interactivity">
  <script type="text/javascript">
  //<![CDATA[
  var report1 = new SortableTable(
    document.getElementById("report1"),
    ["String", "Number", "String", "String", "String", "String", "Number", "Number", "String"]
  );
  report1.onsort = function () { 
	var rows = report1.tBody.rows;
	var l = rows.length;
	for (var i = 0; i < l; i++) {
		removeClassName(rows[i], i % 2 ? "OddRow" : "EvenRow");
		addClassName(rows[i], i % 2 ? "EvenRow" : "OddRow");
	}
  };
  //]]>
</script>
</xsl:template>

<!-- *********************************************************************** -->
</xsl:stylesheet>
