﻿<?xml version="1.0" encoding="utf-8" ?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xhtml="http://www.w3.org/1999/xhtml" >
    <xsl:output method="xml" media-type="text/html"
        doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="DTD/xhtml1-strict.dtd"/>

    <xsl:template match="/">
        <html xmlns="http://www.w3.org/1999/xhtml">
            <head>
                <title>UO Packet Guide</title>
            </head>
            <body>
                <span id="top"/>
                <h2>UO Packet Guide (Compiled by Wyatt; Design: Garret)</h2>
                <h2>WARNING: NOT FOR RUNUO.COM USERS</h2>
                <h2>Last Update: 10/01/2011</h2>
                <h4>Notes: word = 2 bytes, dword = 4 bytes, qword = 8 bytes, char = 1 byte, uchar = 2 bytes, sbyte = signed byte, loop and endloop = cycle.</h4>
                <table style="display:inline;float:right;border:solid 1px black;">
                    <tr>
                        <th>Table of contents</th>
                    </tr>
                    <xsl:if test="Packets/Packet[@from='client']">
                        <tr>
                            <td>Client:</td>
                        </tr>
                    </xsl:if>
                    <xsl:for-each select="Packets/Packet[@from='client']">
                        <tr>
                            <td>
                                <a href="#{concat(@from,@id)}">
                                    <xsl:value-of select="concat(@id,' - ',Name)"/>
                                </a>
                            </td>
                        </tr>
                    </xsl:for-each>
                    <xsl:if test="Packets/Packet[@from='server']">
                        <tr>
                            <td></td>
                        </tr>
                        <tr>
                            <td>Server:</td>
                        </tr>
                    </xsl:if>
                    <xsl:for-each select="Packets/Packet[@from='server']">
                        <tr>
                            <td>
                                <a href="#{concat(@from,@id)}">
                                    <xsl:value-of select="concat(@id,' - ',Name)"/>
                                </a>
                            </td>
                        </tr>
                    </xsl:for-each>
                    <xsl:if test="Packets/Packet[@from='both']">
                        <tr>
                            <td></td>
                        </tr>
                        <tr>
                            <td>Both:</td>
                        </tr>
                    </xsl:if>
                    <xsl:for-each select="Packets/Packet[@from='both']">
                        <tr>
                            <td>
                                <a href="#{concat(@from,@id)}">
                                    <xsl:value-of select="concat(@id,' - ',Name)"/>
                                </a>
                            </td>
                        </tr>
                    </xsl:for-each>
                    <xsl:if test="Packets/Packet[@from='old']">
                        <tr>
                            <td></td>
                        </tr>
                        <tr>
                            <td>No longer used:</td>
                        </tr>
                    </xsl:if>
                    <xsl:for-each select="Packets/Packet[@from='old']">
                        <tr>
                            <td>
                                <a href="#{concat(@from,@id)}">
                                    <xsl:value-of select="concat(@id,' - ',Name)"/>
                                </a>
                            </td>
                        </tr>
                    </xsl:for-each>
                    <xsl:if test="Packets/Packet[@from='godclient']">
                        <tr>
                            <td></td>
                        </tr>
                        <tr>
                            <td>God Client:</td>
                        </tr>
                    </xsl:if>
                    <xsl:for-each select="Packets/Packet[@from='godclient']">
                        <tr>
                            <td>
                                <a href="#{concat(@from,@id)}">
                                    <xsl:value-of select="concat(@id,' - ',Name)"/>
                                </a>
                            </td>
                        </tr>
                    </xsl:for-each>
                    <xsl:if test="Packets/Packet[@from='unknown']">
                        <tr>
                            <td></td>
                        </tr>
                        <tr>
                            <td>Unknown:</td>
                        </tr>
                    </xsl:if>
                    <xsl:for-each select="Packets/Packet[@from='unknown']">
                        <tr>
                            <td>
                                <a href="#{concat(@from,@id)}">
                                    <xsl:value-of select="concat(@id,' - ',Name)"/>
                                </a>
                            </td>
                        </tr>
                    </xsl:for-each>
                </table>
                <xsl:for-each select="Packets/Packet">
                    <span id="{concat(@from,@id)}"/>
                    <table style="border: 2px solid #808080; width:600px; background-color:#FFF8DC; border-collapse:collapse;">
                        <tr>
                            <td colspan="2" style="background-color: #FFD700; text-align: right;">
                                <xsl:value-of select="concat(@id,' - ',Name)"/>
                            </td>
                        </tr>
                        <tr>
                            <td colspan="2">
                                <div style="display: inline; float: left;">
                                    <xsl:value-of select="Desc"/>
                                    <br />
                                    <xsl:if test="@size&gt;-1">
                                        <xsl:value-of select="concat(@size,' byte')"/>
                                        <xsl:if test="@size&gt;1">
                                            <xsl:text>s</xsl:text>
                                        </xsl:if>
                                    </xsl:if>
                                </div>
                                <div style="display: inline; float: right;">
                                    <xsl:value-of select="concat('from ',@from)"/>
                                </div>
                            </td>
                        </tr>
                        <xsl:for-each select="Data">
                            <tr>
                                <td style="border-style: solid none solid solid; border-width:1px; border-color:#808080; width:70px;">
                                    <xsl:value-of select="@type"/>
                                    <xsl:if test="@amount&gt;0">
                                        <xsl:value-of select="concat('[',@amount,']')"/>
                                    </xsl:if>
                                </td>
                                <td style="border-style: solid solid solid none; border-width: 1px; border-color: #808080; width:524px;">
                                    <xsl:value-of select="."/>
                                </td>
                            </tr>
                        </xsl:for-each>
                        <xsl:if test="Note">
                            <tr>
                                <td colspan="2">
                                                   <xsl:value-of select="Note"/>
                                </td>
                            </tr>
                        </xsl:if>
                        <xsl:if test="Note2">
                            <tr>
                                <td colspan="2">
                                                   <xsl:value-of select="Note2"/>
                                </td>
                            </tr>
                        </xsl:if>
                      <xsl:if test="Link">
                        <tr>
                          <td colspan="2">
<a>
<xsl:attribute name="href"><xsl:value-of select="Link"/></xsl:attribute>
<xsl:value-of select="LinkTitle"/>
</a>                          </td>
                        </tr>
                      </xsl:if>
                    </table>
                    <br/>
                    <a href="#top" style="float:right;">&#8593;</a>
                </xsl:for-each>
            </body>
        </html>
    </xsl:template>
</xsl:stylesheet>