<?xml version="1.0" encoding="ISO-8859-1"?> 
<xsl:transform version="1.0" 
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
	xmlns:mt="http://www.microsoft.com/schemas/MessageTracking"
	xmlns:mtp="http://www.microsoft.com/schemas/MessageTracking/PSS"
	xmlns="http://www.w3.org/1999/xhtml">

<xsl:template match="/">
	<html>
		<head>
			<title>Message Tracking History</title>
		</head>
		<xsl:apply-templates/>
	</html>
</xsl:template>

<xsl:template match="mt:TrackHistory">
	<body>
		<h2>Message Tracking History</h2>
		<p>
			<xsl:apply-templates/>
		</p>
	</body>
</xsl:template>

<xsl:template match="mt:Exchange_MessageTrackingEntry">
	<table border="2" width="800">

	<xsl:variable name="RecipString">
		<xsl:choose>
			<xsl:when test="mt:RecipientCount = 1"><xsl:value-of select="mt:RecipientAddress"/></xsl:when>
			<xsl:otherwise>multiple recipients</xsl:otherwise>
		</xsl:choose>
	</xsl:variable>

	<xsl:variable name="Partner">
		<xsl:value-of select="mt:PartnerServer"/>
	</xsl:variable>

	<tr>
		<td width="150">Event Time</td>
		<td><xsl:value-of select="mt:TimeLogged"/></td>
	</tr>

	<tr>
		<td width="150">Event Message</td>
		<td>
      <xsl:choose>
        <xsl:when test="mt:EntryType = -2"><xsl:value-of select="mt:Subject"/></xsl:when>
        <xsl:when test="mt:EntryType = 0">Message received from <xsl:value-of select="mt:PartnerServer"/> through X400</xsl:when>
        <xsl:when test="mt:EntryType = 2">Report received from <xsl:value-of select="mt:PartnerServer"/></xsl:when>
        <xsl:when test="mt:EntryType = 4">Message submitted by <xsl:value-of select="mt:SenderAddress"/></xsl:when>
        <xsl:when test="mt:EntryType = 7">Message transferred to <xsl:value-of select="mt:PartnerServer"/> through X400</xsl:when>
        <xsl:when test="mt:EntryType = 8">Report transferred to <xsl:value-of select="mt:PartnerServer"/></xsl:when>
        <xsl:when test="mt:EntryType = 9">Message delivered to <xsl:value-of select="$RecipString"/></xsl:when>
        <xsl:when test="mt:EntryType = 10">Report delivered to <xsl:value-of select="mt:SenderAddress"/></xsl:when>
        <xsl:when test="mt:EntryType = 26"><xsl:value-of select="mt:ExpansionDL"/> : Distribution list expanded</xsl:when>
        <xsl:when test="mt:EntryType = 28">Message redirected to <xsl:value-of select="$RecipString"/></xsl:when>
        <xsl:when test="mt:EntryType = 29">Message rerouted to <xsl:value-of select="mt:PartnerServer"/> 
			(originally to <xsl:value-of select="mt:AttemptedPartnerServer"/>)</xsl:when>
        <xsl:when test="mt:EntryType = 31">MTA downgraded <xsl:value-of select="mt:PartnerServer"/></xsl:when>
        <xsl:when test="mt:EntryType = 33">Report absorbed!</xsl:when>
        <xsl:when test="mt:EntryType = 34">Report generated internally</xsl:when>
        <xsl:when test="mt:EntryType = 43">Unroutable report discarded</xsl:when>
        <xsl:when test="mt:EntryType = 50">Message deleted by Administrator</xsl:when>
        <xsl:when test="mt:EntryType = 52">Report deleted by Administrator</xsl:when>
        <xsl:when test="mt:EntryType = 1000">Message delivered locally to <xsl:value-of select="$RecipString"/></xsl:when>
        <xsl:when test="mt:EntryType = 1001">Message transferred in (Backbone) from <xsl:value-of select="mt:PartnerServer"/></xsl:when>
        <xsl:when test="mt:EntryType = 1002">Message transferred out (Backbone) to <xsl:value-of select="mt:PartnerServer"/></xsl:when>
        <xsl:when test="mt:EntryType = 1003">Message transferred out (Gateway) to <xsl:value-of select="mt:PartnerServer"/></xsl:when>
        <xsl:when test="mt:EntryType = 1004">Message transferred in (Gateway) from <xsl:value-of select="mt:PartnerServer"/></xsl:when>
        <xsl:when test="mt:EntryType = 1005">Report transferred in (Gateway) from <xsl:value-of select="mt:PartnerServer"/></xsl:when>
        <xsl:when test="mt:EntryType = 1006">Report transferred out (Gateway) to <xsl:value-of select="mt:PartnerServer"/></xsl:when>
        <xsl:when test="mt:EntryType = 1007">Report generated internally</xsl:when>
        <xsl:when test="mt:EntryType = 1010">SMTP Queued Outbound</xsl:when>
        <xsl:when test="mt:EntryType = 1011">Message transferred to <xsl:value-of select="mt:PartnerServer"/> through SMTP</xsl:when>
        <xsl:when test="mt:EntryType = 1012">SMTP Inbound Received</xsl:when>
        <xsl:when test="mt:EntryType = 1013">SMTP Inbound Transferred</xsl:when>
        <xsl:when test="mt:EntryType = 1014">SMTP Rerouted</xsl:when>
        <xsl:when test="mt:EntryType = 1015">SMTP Report Transferred In</xsl:when>
        <xsl:when test="mt:EntryType = 1016">SMTP Report Transferred Out</xsl:when>
        <xsl:when test="mt:EntryType = 1017">SMTP Report Generated</xsl:when>
        <xsl:when test="mt:EntryType = 1018">SMTP Report Absorbed</xsl:when>
        <xsl:when test="mt:EntryType = 1019">SMTP: Message Submitted to Advanced Queuing</xsl:when>
        <xsl:when test="mt:EntryType = 1020">SMTP: Started Outbound Transfer of Message</xsl:when>
        <xsl:when test="mt:EntryType = 1021">SMTP: Message Sent to Badmail</xsl:when>
        <xsl:when test="mt:EntryType = 1022">SMTP: Advanced Queue Failure</xsl:when>
        <xsl:when test="mt:EntryType = 1023">SMTP: Message Delivered Locally to <xsl:value-of select="$RecipString"/></xsl:when>
        <xsl:when test="mt:EntryType = 1024">SMTP: Message Submitted to Categorizer</xsl:when>
        <xsl:when test="mt:EntryType = 1025">SMTP: Started Message Submission to Advanced Queue</xsl:when>
        <xsl:when test="mt:EntryType = 1026">SMTP: Advanced Queue Failed to Deliver Message</xsl:when>
        <xsl:when test="mt:EntryType = 1027">SMTP Store Driver: Message Submitted from Store</xsl:when>
        <xsl:when test="mt:EntryType = 1028">SMTP Store Driver: Message Delivered Locally to Store to <xsl:value-of select="$RecipString"/></xsl:when>
        <xsl:when test="mt:EntryType = 1029">SMTP Store Driver Submitted Message to MTA</xsl:when>
        <xsl:when test="mt:EntryType = 1030">SMTP: Non-Delivered Report (NDR) Generated</xsl:when>
        <xsl:when test="mt:EntryType = 1031">Message transferred to <xsl:value-of select="mt:PartnerServer"/> through SMTP</xsl:when>
        <xsl:when test="mt:EntryType = 1032">SMTP: Message Scheduled to Retry Categorization</xsl:when>
        <xsl:when test="mt:EntryType = 1033">SMTP: Message Categorized and Queued for Routing</xsl:when>
        <xsl:when test="mt:EntryType = 1034">SMTP: Message Routed and Queued for Remote Delivery</xsl:when>
        <xsl:when test="mt:EntryType = 1035">SMTP: Message Scheduled to Retry Routing</xsl:when>
        <xsl:when test="mt:EntryType = 1036">SMTP: Message Queued for Local Delivery</xsl:when>
        <xsl:when test="mt:EntryType = 1037">SMTP: Message Scheduled to Retry Local Delivery</xsl:when>
        <xsl:when test="mt:EntryType = 1038">SMTP: Message Routed and Queued for Gateway Delivery</xsl:when>
        <xsl:when test="mt:EntryType = 1039">SMTP: Message deleted by Intelligent Message Filtering</xsl:when>
        <xsl:when test="mt:EntryType = 1040">SMTP: Message rejected by Intelligent Message Filtering</xsl:when>
        <xsl:when test="mt:EntryType = 1041">SMTP: Message archived by Intelligent Message Filtering</xsl:when>
        <xsl:when test="mt:EntryType = 1042">Message redirected to the alternate recipient <xsl:value-of select="$RecipString"/></xsl:when>
        <xsl:otherwise><xsl:value-of select="mt:EntryType"/></xsl:otherwise>
      </xsl:choose>
	(<xsl:value-of select="mt:EntryType"/>)
    </td>
  </tr>

	<tr>
		<td width="150">From:</td>
		<td><xsl:value-of select="mt:SenderAddress"/></td>
	</tr>
	<tr>
		<td width="150">Message ID:</td>
		<td><xsl:value-of select="mt:MessageID"/></td>
	</tr>

	<xsl:if test="mt:Subject">
		<tr>
			<td width="150">Subject:</td>
			<td><xsl:value-of select="mt:Subject"/></td>
		</tr>
	</xsl:if>

	<xsl:if test="mt:Priority">
		<tr>
			<td width="150">Priority:</td>
			<td>
				<xsl:choose>
					<xsl:when test="mt:Priority = -1">Low</xsl:when>
					<xsl:when test="mt:Priority = 0">Normal</xsl:when>
					<xsl:when test="mt:Priority = 1">High</xsl:when>
					<xsl:when test="mt:Priority = 3">Bulk or non-Local</xsl:when>
				        <xsl:otherwise><xsl:value-of select="mt:Priority"/></xsl:otherwise>
				</xsl:choose>
			</td>
		</tr>
	</xsl:if>

	<xsl:if test="mt:OriginationTime">
		<tr>
			<td width="150">Message Origination Time:</td>
			<td><xsl:value-of select="mt:OriginationTime"/></td>
		</tr>
	</xsl:if>

	<xsl:if test="mt:Size">
		<tr>
			<td width="150">Size:</td>
			<td><xsl:value-of select="mt:Size"/></td>
		</tr>
	</xsl:if>

	<xsl:if test="mt:KeyID">
		<tr>
			<td width="150">KeyID:</td>
			<td><xsl:value-of select="mt:KeyID"/></td>
		</tr>
	</xsl:if>

	<xsl:if test="mt:ServerName">
		<tr>
			<td width="150">Server name:</td>
			<td><xsl:value-of select="mt:ServerName"/></td>
		</tr>
	</xsl:if>

<!--
	<Exchange_MessageTrackingEntry>
		<ParnerServer>188.16.240.220.dynamic.dsl.rns02-kent-syd.comindico.com.au</ParnerServer>
		<RecipientCount>1</RecipientCount>
		<RecipientAddress>goldman@pbmproducts.com</RecipientAddress>
		<RecipientStatus>0</RecipientStatus>
	</Exchange_MessageTrackingEntry>
-->

	<xsl:if test="mt:Exchange_MessageTrackingEntry">
		<tr><td colspan="2"><b>Start sub-entry </b>(<xsl:value-of select="mt:PartnerServer"/>)</td></tr>
			<xsl:apply-templates select="mt:Exchange_MessageTrackingEntry"/>
		<tr><td colspan="2"><b>End sub-entry </b>(<xsl:value-of select="mt:PartnerServer"/>)</td></tr>
	</xsl:if>
    </table>
</xsl:template>
</xsl:transform>

