﻿<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
	<xsl:output method="xml" indent="yes"/>

	<xsl:key name="uniqueBaseYearKey" match="Metric/Record/BaseYear" use="." />
	<xsl:key name="uniqueBaseIntervalKey" match="Metric/Record/BaseInterval" use="." />
	<xsl:template match="/">
		<xsl:variable name="MinimumYear" select="AjaxRequest/Params/MinimumYear"></xsl:variable>
		<xsl:variable name="SelectedYear" select="AjaxRequest/Params/SelectedYear"></xsl:variable>
		<xsl:variable name="PeriodType" select="AjaxRequest/Params/PeriodType"></xsl:variable>
		<xsl:variable name="MetricKey" select="AjaxRequest/Params/MetricKey"></xsl:variable>
		<xsl:variable name="MetricYTDList" select="AjaxRequest/Metric"></xsl:variable>
		<xsl:variable name="MetricYTDUniqueYearList">
			<xsl:copy-of select="$MetricYTDList/Record[BaseYear &gt;= $MinimumYear and BaseYear &lt;=$SelectedYear]/BaseYear[generate-id() = generate-id(key('uniqueBaseYearKey',.))]"/>
		</xsl:variable>
		<xsl:variable name="MetricYTDUniqueIntervalList">
			<xsl:copy-of select="$MetricYTDList/Record/BaseInterval[generate-id() = generate-id(key('uniqueBaseIntervalKey',.))]"/>
		</xsl:variable>
		<xsl:variable name="InputType" select="$MetricYTDList/InputType"></xsl:variable>
		<xsl:variable name="varCurrency">
			<xsl:choose>
				<xsl:when test="$InputType='TextCurrency'">
					<xsl:text>$</xsl:text>
				</xsl:when>
				<xsl:otherwise>
					<xsl:text></xsl:text>
				</xsl:otherwise>
			</xsl:choose>
		</xsl:variable>
		<table class="table-bordered table-condensed cf" cellspacing="5" cellpadding="7">
			<colgroup>
				<col span="4" style="background-color:#ecf1f7;"></col>
				<col style="background-color:#d9dadb;"></col>
			</colgroup>
			<thead class="cf">
				<tr>
					<th></th>
					<xsl:for-each select="msxsl:node-set($MetricYTDUniqueYearList)/child::node()">
						<xsl:sort select="."/>
						<th >
							<xsl:value-of select="."/>
						</th>
					</xsl:for-each>
				</tr>
			</thead>
			<tbody>
				<tr>

					<td data-title="2014" >
						YTD
					</td>
					<xsl:for-each select="msxsl:node-set($MetricYTDUniqueYearList)/child::node()">
						<xsl:variable name="varTotalBaseYear">
							<xsl:value-of select="."/>
						</xsl:variable>
						<xsl:variable name="TotalAmountCalc">
							<xsl:choose>
								<xsl:when test="sum($MetricYTDList/Record[BaseYear=$varTotalBaseYear]/Amount_calc) !=''">
									<xsl:value-of select="$varCurrency"/><xsl:value-of select="format-number(round(sum($MetricYTDList/Record[BaseYear=$varTotalBaseYear]/Amount_calc)), '###,###')"></xsl:value-of>
								</xsl:when>
								<xsl:otherwise>
									<xsl:text></xsl:text>
								</xsl:otherwise>
							</xsl:choose>
						</xsl:variable>
						<td>
							<xsl:value-of select="$TotalAmountCalc"></xsl:value-of>
						</td>
					</xsl:for-each>
				</tr>
				<xsl:for-each select="msxsl:node-set($MetricYTDUniqueIntervalList)/child::node()">
					<xsl:sort select="."/>
					<tr>
						<xsl:variable name="varBaseInterval">
							<xsl:value-of select="."/>
						</xsl:variable>
						<td data-title="2014" >
							Q<xsl:value-of select="$varBaseInterval"/>
						</td>
						<xsl:for-each select="msxsl:node-set($MetricYTDUniqueYearList)/child::node()">
							<xsl:sort select="."/>
							<xsl:variable name="varBaseYear">
								<xsl:value-of select="."/>
							</xsl:variable>
							<xsl:variable name="AmountCalc">
								<xsl:choose>
									<xsl:when test="$MetricYTDList/Record[BaseYear=$varBaseYear and BaseInterval=$varBaseInterval ]/Amount_calc !=''">
										<xsl:value-of select="$varCurrency"/><xsl:value-of select="format-number(round($MetricYTDList/Record[BaseYear=$varBaseYear and BaseInterval=$varBaseInterval ]/Amount_calc), '###,###')"/>
									</xsl:when>
									<xsl:otherwise>
										<xsl:text></xsl:text>
									</xsl:otherwise>
								</xsl:choose>
							</xsl:variable>
							<td data-title="numeric">
								<xsl:value-of select="$AmountCalc"/>
							</td>
						</xsl:for-each>
					</tr>
				</xsl:for-each>

			</tbody>
		</table>

	</xsl:template>
</xsl:stylesheet>
