﻿<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"
                xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">

    <xsl:template match="/">
        <xsl:variable name="ExtendedPeriodRange" select="LeaderBoardXML/ExtendedLeaderboardPeriodRange/."></xsl:variable>
        <xsl:variable name="ExtendedLeaderboard" select="LeaderBoardXML/ExtendedLeaderboard/."></xsl:variable>
        <xsl:variable name="ColumnCount" select="count($ExtendedPeriodRange/Period) + 2"></xsl:variable>

        <sheetData>
            <xsl:call-template name="Content">
                <xsl:with-param name="ExtendedPeriodRange" select="$ExtendedPeriodRange"></xsl:with-param>
                <xsl:with-param name="ExtendedLeaderboard" select="$ExtendedLeaderboard"></xsl:with-param>
            </xsl:call-template>
        </sheetData>


    </xsl:template>

    <xsl:template name="Content">
        <xsl:param name="ExtendedPeriodRange" select="'N/A'"></xsl:param>
        <xsl:param name="ExtendedLeaderboard" select="'N/A'"></xsl:param>

        <row r="1">
            <c r="A1" t="s">
                <v>0</v>
            </c>
            <c r="B1" t="s">
                <v>1</v>
            </c>

            <xsl:for-each select="$ExtendedPeriodRange/Period">
                <xsl:variable name="RowNum" select="position()"></xsl:variable>

                <xsl:variable name="ColRowName">
                    <xsl:choose>
                        <xsl:when test="position()=1">
                            <xsl:text>C</xsl:text>
                        </xsl:when>
                        <xsl:when test="position()=2">
                            <xsl:text>D</xsl:text>
                        </xsl:when>
                        <xsl:when test="position()=3">
                            <xsl:text>E</xsl:text>
                        </xsl:when>
                        <xsl:when test="position()=4">
                            <xsl:text>F</xsl:text>
                        </xsl:when>
                        <xsl:when test="position()=5">
                            <xsl:text>G</xsl:text>
                        </xsl:when>
                        <xsl:when test="position()=6">
                            <xsl:text>H</xsl:text>
                        </xsl:when>
                        <xsl:when test="position()=7">
                            <xsl:text>I</xsl:text>
                        </xsl:when>
                        <xsl:when test="position()=8">
                            <xsl:text>J</xsl:text>
                        </xsl:when>
                        <xsl:when test="position()=9">
                            <xsl:text>K</xsl:text>
                        </xsl:when>
                        <xsl:when test="position()=10">
                            <xsl:text>L</xsl:text>
                        </xsl:when>
                        <xsl:when test="position()=11">
                            <xsl:text>M</xsl:text>
                        </xsl:when>
                        <xsl:when test="position()=12">
                            <xsl:text>N</xsl:text>
                        </xsl:when>
                        <xsl:when test="position()=13">
                            <xsl:text>O</xsl:text>
                        </xsl:when>
                        <xsl:when test="position()=14">
                            <xsl:text>P</xsl:text>
                        </xsl:when>
                        <xsl:when test="position()=15">
                            <xsl:text>Q</xsl:text>
                        </xsl:when>
                        <xsl:when test="position()=16">
                            <xsl:text>R</xsl:text>
                        </xsl:when>
                        <xsl:when test="position()=17">
                            <xsl:text>S</xsl:text>
                        </xsl:when>
                        <xsl:when test="position()=18">
                            <xsl:text>T</xsl:text>
                        </xsl:when>
                        <xsl:when test="position()=19">
                            <xsl:text>U</xsl:text>
                        </xsl:when>
                        <xsl:when test="position()=20">
                            <xsl:text>V</xsl:text>
                        </xsl:when>
                        <xsl:when test="position()=21">
                            <xsl:text>W</xsl:text>
                        </xsl:when>
                        <xsl:when test="position()=22">
                            <xsl:text>X</xsl:text>
                        </xsl:when>
                        <xsl:when test="position()=23">
                            <xsl:text>Y</xsl:text>
                        </xsl:when>
                        <xsl:when test="position()=24">
                            <xsl:text>Z</xsl:text>
                        </xsl:when>
                    </xsl:choose>
                    <xsl:number value="1"/>
                </xsl:variable>


                <c r="{$ColRowName}" t="s">
                    <v>
                        <xsl:value-of select="$RowNum+1"/>
                    </v>
                </c>
            </xsl:for-each>
        </row>
        <xsl:for-each select="$ExtendedLeaderboard/Record">
            <xsl:variable name="CurrentUserID" select="UserID"></xsl:variable>
            <xsl:variable name="RowID" select="position()"></xsl:variable>
            <xsl:variable name="ELPortalItemID" select="PortalItemID"></xsl:variable>

            <xsl:variable name="RowNum" select="position()+1"></xsl:variable>

            <row r="{position()+1}">
                <c r="A{$RowNum}" t="s">
                    <v>
                        <xsl:value-of select="position()+13"></xsl:value-of>
                    </v>
                </c>
                <c r="B{$RowNum}" t="n">
                    <v>
                        <xsl:value-of select="TotalAmount"/>
                    </v>
                </c>
                <xsl:for-each select="$ExtendedPeriodRange/Period">
                    <xsl:variable name="CurrentPeriodKey" select="PeriodKey"></xsl:variable>

                    <xsl:variable name="ColName">
                        <xsl:text>Col</xsl:text>
                        <xsl:value-of select="PeriodNumber"/>
                    </xsl:variable>

                    <xsl:variable name="ColRowName">
                        <xsl:choose>
                            <xsl:when test="position()=1">
                                <xsl:text>C</xsl:text>
                            </xsl:when>
                            <xsl:when test="position()=2">
                                <xsl:text>D</xsl:text>
                            </xsl:when>
                            <xsl:when test="position()=3">
                                <xsl:text>E</xsl:text>
                            </xsl:when>
                            <xsl:when test="position()=4">
                                <xsl:text>F</xsl:text>
                            </xsl:when>
                            <xsl:when test="position()=5">
                                <xsl:text>G</xsl:text>
                            </xsl:when>
                            <xsl:when test="position()=6">
                                <xsl:text>H</xsl:text>
                            </xsl:when>
                            <xsl:when test="position()=7">
                                <xsl:text>I</xsl:text>
                            </xsl:when>
                            <xsl:when test="position()=8">
                                <xsl:text>J</xsl:text>
                            </xsl:when>
                            <xsl:when test="position()=9">
                                <xsl:text>K</xsl:text>
                            </xsl:when>
                            <xsl:when test="position()=10">
                                <xsl:text>L</xsl:text>
                            </xsl:when>
                            <xsl:when test="position()=11">
                                <xsl:text>M</xsl:text>
                            </xsl:when>
                            <xsl:when test="position()=12">
                                <xsl:text>N</xsl:text>
                            </xsl:when>
                            <xsl:when test="position()=13">
                                <xsl:text>O</xsl:text>
                            </xsl:when>
                            <xsl:when test="position()=14">
                                <xsl:text>P</xsl:text>
                            </xsl:when>
                            <xsl:when test="position()=15">
                                <xsl:text>Q</xsl:text>
                            </xsl:when>
                            <xsl:when test="position()=16">
                                <xsl:text>R</xsl:text>
                            </xsl:when>
                            <xsl:when test="position()=17">
                                <xsl:text>S</xsl:text>
                            </xsl:when>
                            <xsl:when test="position()=18">
                                <xsl:text>T</xsl:text>
                            </xsl:when>
                            <xsl:when test="position()=19">
                                <xsl:text>U</xsl:text>
                            </xsl:when>
                            <xsl:when test="position()=20">
                                <xsl:text>V</xsl:text>
                            </xsl:when>
                            <xsl:when test="position()=21">
                                <xsl:text>W</xsl:text>
                            </xsl:when>
                            <xsl:when test="position()=22">
                                <xsl:text>X</xsl:text>
                            </xsl:when>
                            <xsl:when test="position()=23">
                                <xsl:text>Y</xsl:text>
                            </xsl:when>
                            <xsl:when test="position()=24">
                                <xsl:text>Z</xsl:text>
                            </xsl:when>
                        </xsl:choose>
                        <xsl:value-of select="$RowNum"/>
                    </xsl:variable>

                    <c r="{$ColRowName}" t="n">
                        <xsl:choose>
                            <xsl:when test="number($ExtendedLeaderboard/Record[UserID = $CurrentUserID and PortalItemID = $ELPortalItemID]/*[name() = $ColName]) > 0">
                                <v>
                                    <xsl:value-of select="$ExtendedLeaderboard/Record[UserID = $CurrentUserID and PortalItemID = $ELPortalItemID]/*[name() = $ColName]"/>
                                </v>
                            </xsl:when>
                            <xsl:otherwise>
                                <v></v>
                            </xsl:otherwise>
                        </xsl:choose>
                    </c>
                </xsl:for-each>
            </row>
        </xsl:for-each>
    </xsl:template>
</xsl:stylesheet>