﻿<?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:template match="/">
        <xsl:param name="BaseYear" select="/AjaxRequest/Params/BaseYear"></xsl:param>
        <xsl:variable name="PortalItemID" select="AjaxRequest/Params/PortalID"></xsl:variable>
        <xsl:variable name="TemplateURL" select="AjaxRequest/TemplateURL"></xsl:variable>
        <xsl:variable name="LeaderBoardDataXml" select="AjaxRequest/ExtendedLeaderboard/."></xsl:variable>
        <xsl:variable name="PageSize" select="AjaxRequest/Params/PageSize"></xsl:variable>
        <xsl:variable name="PageNumber" select="AjaxRequest/Params/PageNumber"></xsl:variable>
        <xsl:variable name="TemplateItemID" select="AjaxRequest/Params/TemplateItemID"></xsl:variable>
        <xsl:variable name="ExtendedPeriodRange" select="AjaxRequest/ExtendedLeaderboardPeriodRange/."></xsl:variable>
        <xsl:variable name="ExtendedLeaderboard" select="AjaxRequest/ExtendedLeaderboard/."></xsl:variable>
        <xsl:variable name="TotalPages">
            <xsl:choose>
                <xsl:when test="AjaxRequest/LeaderBoardData/TotalPages">
                    <xsl:value-of select="AjaxRequest/LeaderBoardData/TotalPages"/>
                </xsl:when>
                <xsl:otherwise>
                    <xsl:value-of select="AjaxRequest/LeaderBoardData/DefaultLeaderBoardData/TotalPages"/>
                </xsl:otherwise>
            </xsl:choose>
        </xsl:variable>
        <xsl:variable name="TotalRecords">
            <xsl:choose>
                <xsl:when test="AjaxRequest/LeaderBoardData/TotalRecords">
                    <xsl:value-of select="AjaxRequest/LeaderBoardData/TotalRecords"/>
                </xsl:when>
                <xsl:otherwise>
                    <xsl:value-of select="AjaxRequest/LeaderBoardData/DefaultLeaderBoardData/TotalRecords"/>
                </xsl:otherwise>
            </xsl:choose>
        </xsl:variable>
        <xsl:variable name="CurrentPageNumber" select="AjaxRequest/LeaderBoardData/CurrentPageNumber"></xsl:variable>
        <xsl:variable name="NodeCount" select="count($LeaderBoardDataXml/DefaultLeaderBoardData)"></xsl:variable>
        <xsl:variable name="Portals" select="AjaxRequest/Params/portals/."></xsl:variable>


        <xsl:call-template name="ReportingDashboardLeaderBoardData">
            <xsl:with-param name="BaseYear" select="$BaseYear"></xsl:with-param>
            <xsl:with-param name="LeaderBoardDataXml" select="$LeaderBoardDataXml"></xsl:with-param>
            <xsl:with-param name="TemplateURL" select="$TemplateURL"></xsl:with-param>
            <xsl:with-param name="PortalItemID" select="$PortalItemID"></xsl:with-param>
            <xsl:with-param name="PageSize" select="$PageSize"></xsl:with-param>
            <xsl:with-param name="PageNumber" select="$PageNumber"></xsl:with-param>
            <xsl:with-param name="TotalPages" select="$TotalPages"></xsl:with-param>
            <xsl:with-param name="TotalRecords" select="$TotalRecords"></xsl:with-param>
            <xsl:with-param name="CurrentPageNumber" select="$CurrentPageNumber"></xsl:with-param>
            <xsl:with-param name="NodeCount" select="$NodeCount"></xsl:with-param>
            <xsl:with-param name="ExtendedPeriodRange" select="$ExtendedPeriodRange"></xsl:with-param>
            <xsl:with-param name="ExtendedLeaderboard" select="$ExtendedLeaderboard"></xsl:with-param>
            <xsl:with-param name="TemplateItemID" select="$TemplateItemID"></xsl:with-param>
            <xsl:with-param name="Portals" select="$Portals"></xsl:with-param>
        </xsl:call-template>

    </xsl:template>


    <xsl:template name="ReportingDashboardLeaderBoardData">
        <xsl:param name="BaseYear" select="'N/A'"></xsl:param>
        <xsl:param name="LeaderBoardDataXml" select="'N/A'"></xsl:param>
        <xsl:param name="TemplateURL" select="'N/A'"></xsl:param>
        <xsl:param name="PortalItemID" select="'N/A'"></xsl:param>
        <xsl:param name="PageSize" select="'N/A'"></xsl:param>
        <xsl:param name="PageNumber" select="'N/A'"></xsl:param>
        <xsl:param name="TotalPages" select="'N/A'"></xsl:param>
        <xsl:param name="TotalRecords" select="'N/A'"></xsl:param>
        <xsl:param name="CurrentPageNumber" select="'N/A'"></xsl:param>
        <xsl:param name="NodeCount" select="'N/A'"></xsl:param>
        <xsl:param name="ExtendedPeriodRange" select="'N/A'"></xsl:param>
        <xsl:param name="ExtendedLeaderboard" select="'N/A'"></xsl:param>
        <xsl:param name="TemplateItemID" select="'N/A'"></xsl:param>
        <xsl:param name="Portals" select="'N/A'"></xsl:param>

        <div id="div_LeaderBoardData" class="marginTop20">
            <xsl:call-template name="ExtendedLeaderBoard">
                <xsl:with-param name="PortalItemID" select="$PortalItemID"></xsl:with-param>
                <xsl:with-param name="ExtendedPeriodRange" select="$ExtendedPeriodRange"></xsl:with-param>
                <xsl:with-param name="BaseYear" select="$BaseYear"></xsl:with-param>
                <xsl:with-param name="PageSize" select="$PageSize"></xsl:with-param>
                <xsl:with-param name="PageNumber" select="$ExtendedPeriodRange/Period/TotalPages"></xsl:with-param>
                <xsl:with-param name="PeriodType" select="$ExtendedPeriodRange/DesiredPeriodType"></xsl:with-param>
                <xsl:with-param name="ExtendedLeaderboard" select="$ExtendedLeaderboard"></xsl:with-param>
                <xsl:with-param name="LeaderBoardDataXml" select="$LeaderBoardDataXml"></xsl:with-param>
                <xsl:with-param name="TemplateItemID" select="$TemplateItemID"></xsl:with-param>
                <xsl:with-param name="TemplateURL" select="$TemplateURL"></xsl:with-param>
                <xsl:with-param name="TotalPages" select="$TotalPages"></xsl:with-param>
                <xsl:with-param name="CurrentPageNumber" select="$CurrentPageNumber"></xsl:with-param>
                <xsl:with-param name="TotalRecords" select="$TotalRecords"></xsl:with-param>
                <xsl:with-param name="NodeCount" select="$NodeCount"></xsl:with-param>
                <xsl:with-param name="Portals" select="$Portals"></xsl:with-param>
            </xsl:call-template>
        </div>
    </xsl:template>

    <xsl:template name="ExtendedLeaderBoard">
        <xsl:param name="PortalItemID" select="'N/A'"></xsl:param>
        <xsl:param name="ExtendedPeriodRange" select="'N/A'"></xsl:param>
        <xsl:param name="BaseYear" select="'N/A'"></xsl:param>
        <xsl:param name="PageSize" select="'N/A'"></xsl:param>
        <xsl:param name="PageNumber" select="'N/A'"></xsl:param>
        <xsl:param name="PeriodType" select="'N/A'"></xsl:param>
        <xsl:param name="ExtendedLeaderboard" select="'N/A'"></xsl:param>
        <xsl:param name="LeaderBoardDataXml" select="'N/A'"></xsl:param>
        <xsl:param name="TemplateItemID" select="'N/A'"></xsl:param>
        <xsl:param name="TemplateURL" select="'N/A'"></xsl:param>
        <xsl:param name="CurrentPageNumber" select="'N/A'"></xsl:param>
        <xsl:param name="TotalRecords" select="'N/A'"></xsl:param>
        <xsl:param name="NodeCount" select="'N/A'"></xsl:param>
        <xsl:param name="Portals" select="'N/A'"></xsl:param>

        <xsl:param name="CellID">
            <xsl:number value="1"/>
        </xsl:param>
        <xsl:param name="TotalPages" select="'N/A'"></xsl:param>

        <xsl:variable name="TableWidth">
            <xsl:value-of select="(100* count($ExtendedPeriodRange/Period))+250+100+5+5"/>
        </xsl:variable>
        <xsl:variable name="ScrollStyle">
            <xsl:choose>
                <xsl:when test="count($ExtendedPeriodRange/Period) &gt; 5">
                    overflow-x: scroll;
                </xsl:when>
            </xsl:choose>
        </xsl:variable>
        <div id="divLB" style="width:1024px;{$ScrollStyle}">
            <table style="width:{$TableWidth}px" cellspacing="0">
               
                <tr >
                    <td width="250px" height="50px">
                        <span class="mediumUserName">Team Member</span>
                    </td>

                    <td width="100px" class="textRight"  height="50px">
                        <span class="mediumUserName">Amount</span>
                    </td>
                    <xsl:variable name="ExtendedTableWidth">
                        <xsl:value-of select="(count($ExtendedPeriodRange/Period) * 80) + 10"/>
                        <xsl:text>px</xsl:text>
                    </xsl:variable>

                    <xsl:call-template name="ExtendedLeaderBoardHeader">
                        <xsl:with-param name="PortalItemID" select="$PortalItemID"></xsl:with-param>
                        <xsl:with-param name="ExtendedPeriodRange" select="$ExtendedPeriodRange"></xsl:with-param>
                        <xsl:with-param name="BaseYear" select="$BaseYear"></xsl:with-param>
                        <xsl:with-param name="PageSize" select="$ExtendedPeriodRange/PageSize"></xsl:with-param>
                        <xsl:with-param name="PageNumber" select="$ExtendedPeriodRange/Period/TotalPages"></xsl:with-param>
                        <xsl:with-param name="PeriodType" select="$ExtendedPeriodRange/DesiredPeriodType"></xsl:with-param>
                    </xsl:call-template>

                </tr>
                <xsl:call-template name="ExtendedLeadrBoardContentRow">
                    <xsl:with-param name="ExtendedPeriodRange" select="$ExtendedPeriodRange"></xsl:with-param>
                    <xsl:with-param name="ExtendedLeaderboard" select="$ExtendedLeaderboard"></xsl:with-param>
                    <xsl:with-param name="PortalItemID" select="$PortalItemID"></xsl:with-param>
                    <xsl:with-param name="TemplateItemID" select="$TemplateItemID"></xsl:with-param>
                    <xsl:with-param name="TemplateURL" select="$TemplateURL"></xsl:with-param>
                    <xsl:with-param name="Portals" select="$Portals"></xsl:with-param>
                    <xsl:with-param name="PageSize" select="$PageSize"></xsl:with-param>
                </xsl:call-template>


            </table>

        </div>
        <div  id="tblLBWrapper" style="position: fixed; width: 375px;
                 background: none repeat scroll 0% 0% rgb(255, 255, 255); overflow: hidden; 
                 z-index: 2; 
                 border-collapse: collapse; 
                 margin-top: 0px;">
        </div>
        <div>
            <tr>
                <td colspan="5" height="50px">

                </td>
            </tr>
        </div>
    </xsl:template>

    <xsl:template name="ExtendedLeaderBoardHeader">
        <xsl:param name="PortalItemID" select="'N/A'"></xsl:param>
        <xsl:param name="ExtendedPeriodRange" select="'N/A'"></xsl:param>
        <xsl:param name="BaseYear" select="'N/A'"></xsl:param>
        <xsl:param name="PageSize" select="'N/A'"></xsl:param>
        <xsl:param name="PageNumber" select="'N/A'"></xsl:param>
        <xsl:param name="PeriodType" select="'N/A'"></xsl:param>
        <xsl:param name="CellID">
            <xsl:number value="1"/>
        </xsl:param>

        <xsl:variable name="TableFirstCellID">
            <xsl:choose>
                <xsl:when test="$CellID = 1">
                    <xsl:text>td_ExtendedLBPage_Header_1</xsl:text>
                </xsl:when>
            </xsl:choose>
        </xsl:variable>
        <td id="{$TableFirstCellID}" width="5px" height="50px" class="textRight">
        </td>
        <xsl:for-each select="$ExtendedPeriodRange/Period">
            <xsl:variable name="TableCellID">
                <xsl:choose>
                    <xsl:when test="$CellID = 1">
                        <xsl:text>td_ExtendedLBPage_Header_</xsl:text>
                        <xsl:value-of select="position()+1"/>
                    </xsl:when>
                </xsl:choose>
            </xsl:variable>

            <td id="{$TableCellID}" width="100px" height="50px" class="textRight mediumUserName">
                <xsl:value-of select="DisplayPeriodKey"/>
            </td>
        </xsl:for-each>
        <xsl:variable name="TableLastCellID">
            <xsl:choose>
                <xsl:when test="$CellID = 1">
                    <xsl:text>td_ExtendedLBPage_Header_</xsl:text>
                    <xsl:value-of select="count($ExtendedPeriodRange/Period)+2"/>
                </xsl:when>
            </xsl:choose>
        </xsl:variable>
        <td id="{$TableLastCellID}" width="5px" height="50px" class="textRight">

        </td>
    </xsl:template>

    <xsl:template name="ExtendedLeadrBoardContentRow">
        <xsl:param name="ExtendedPeriodRange" select="'N/A'"></xsl:param>
        <xsl:param name="ExtendedLeaderboard" select="'N/A'"></xsl:param>
        <xsl:param name="PortalItemID" select="'N/A'"></xsl:param>
        <xsl:param name="TemplateItemID" select="'N/A'"></xsl:param>
        <xsl:param name="TemplateURL" select="'N/A'"></xsl:param>
        <xsl:param name="Portals" select="'N/A'"></xsl:param>
        <xsl:param name="PageSize" select="'N/A'"></xsl:param>
        <xsl:param name="CellID">
            <xsl:number value="1"/>
        </xsl:param>


        <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="TableFirstCellID">
                <xsl:choose>
                    <xsl:when test="$CellID = 1">
                        <xsl:text>td_ExtendedLBPage_Data_</xsl:text>
                        <xsl:value-of select="$RowID"/>
                        <xsl:text>_1</xsl:text>
                    </xsl:when>
                </xsl:choose>
            </xsl:variable>

            <xsl:variable name="ELBPageNumber">
                <xsl:value-of select="ceiling(position() div $PageSize)"/>
            </xsl:variable>
            <xsl:variable name="ELBPageNumberNext">
                <xsl:value-of select="ceiling(position() div $PageSize)+1"/>
            </xsl:variable>
            <xsl:variable name="ELBPageNumberPrev">
                <xsl:value-of select="ceiling(position() div $PageSize)-1"/>
            </xsl:variable>

            <xsl:variable name="DisplayStyle">
                <xsl:if test="$ELBPageNumber &gt; 1">
                    <xsl:text>display:none;</xsl:text>
                </xsl:if>
            </xsl:variable>

            <tr id="tr_Portals_{PortalItemID}_{UserID}" name="tr_Portals_{$PortalItemID}_{$ELBPageNumber}"
                    onmouseover="document.getElementById('tr_Portals_{PortalItemID}_{UserID}_Wrap').style.backgroundColor='#E1E1E1';
                            document.getElementById('tr_Portals_{PortalItemID}_{UserID}').style.backgroundColor='#E1E1E1';"
                    onmouseout="document.getElementById('tr_Portals_{PortalItemID}_{UserID}_Wrap').style.backgroundColor='';
                            document.getElementById('tr_Portals_{PortalItemID}_{UserID}').style.backgroundColor='';"
                    style="{$DisplayStyle}">

                <td class="verticallyMiddle" height="50px">
                    <table class="tableMaster">
                        <tr>
                            <td width="5%">

                                <span class="onMouseOver"
                                      onclick="LoadUserDetailInterface('{UserID}', '{$TemplateItemID}', '{PortalItemID}', 'div_UserDetailsBody', '1', '');">
                                    <xsl:choose>
                                        <xsl:when test="FbPicURL != ''">
                                            <img src="{FbPicURL}" height="35" width="35"></img>
                                        </xsl:when>
                                        <xsl:otherwise>
                                            <img src="{$TemplateURL}Web/Images/Ver_2_0/DefaultUserPic.jpg" height="35" width="35"></img>
                                        </xsl:otherwise>
                                    </xsl:choose>
                                </span>

                            </td>
                            <td width="95%" class="verticallyMiddle onMouseOver">

                                <div>
                                    <span onclick="LoadUserDetailInterface('{UserID}', '{$TemplateItemID}', '{PortalItemID}', 'div_UserDetailsBody', '1', '');"
                                          class="userName13 onMouseOver sentenceFont">
                                        <xsl:value-of select="DisplayName"/>
                                    </span>

                                </div>
                                <div>
                                    <span onclick="LoadUserDetailInterface('{UserID}', '{$TemplateItemID}', '{PortalItemID}', 'div_UserDetailsBody', '1', '');"
                                        class="publicationSummary onMouseOver">
                                        <xsl:value-of select="$Portals/portal[@id=$ELPortalItemID]"/>
                                    </span>
                                </div>
                            </td>
                        </tr>
                    </table>
                </td>
                <td class="verticallyMiddle textRight" nowrap="nowrap" height="50px">
                    <span class="userName13">
                        <span>
                            <xsl:if test="NumberFormat = '$'">
                                <xsl:value-of select="NumberFormat"/>
                            </xsl:if>
                        </span>
                        <span>
                            <xsl:value-of select="format-number(TotalAmount, '###,###')"/>
                        </span>
                    </span>
                </td>
                <td id="{$TableFirstCellID}" height="50px" class="packageTitle onMouseOver"></td>
                <xsl:for-each select="$ExtendedPeriodRange/Period">

                    <xsl:variable name="TableCellID">
                        <xsl:choose>
                            <xsl:when test="$CellID = 1">
                                <xsl:text>td_ExtendedLBPage_Data_</xsl:text>
                                <xsl:value-of select="$RowID"/>
                                <xsl:text>_</xsl:text>
                                <xsl:value-of select="position()+1"/>
                            </xsl:when>
                        </xsl:choose>
                    </xsl:variable>

                    <xsl:variable name="CurrentPeriodKey" select="PeriodKey"></xsl:variable>
                    <td id="{$TableCellID}" height="50px" class="verticallyMiddle textRight userName13" nowrap="nowrap">
                        <xsl:variable name="ColName">
                            <xsl:text>Col</xsl:text>
                            <xsl:value-of select="PeriodNumber"/>
                        </xsl:variable>
                        <xsl:if test="string(number($ExtendedLeaderboard/Record[UserID = $CurrentUserID and PortalItemID = $ELPortalItemID]/*[name() = $ColName])) != 'NaN'">
                            <xsl:value-of select="format-number($ExtendedLeaderboard/Record[UserID = $CurrentUserID and PortalItemID = $ELPortalItemID]/*[name() = $ColName], '###,###')"/>
                        </xsl:if>
                    </td>
                </xsl:for-each>

                <xsl:variable name="TableLastCellID">
                    <xsl:choose>
                        <xsl:when test="$CellID = 1">
                            <xsl:text>td_ExtendedLBPage_Data_</xsl:text>
                            <xsl:value-of select="$RowID"/>
                            <xsl:text>_</xsl:text>
                            <xsl:value-of select="count($ExtendedPeriodRange/Period)+2"/>
                        </xsl:when>
                    </xsl:choose>
                </xsl:variable>
                <td id="{$TableLastCellID}" height="50px" class="packageTitle onMouseOver"></td>

            </tr>

            <xsl:if test="(position() mod $PageSize) = 0 or position() = count($ExtendedLeaderboard/Record)">
                <xsl:variable name="ColSpan">
                    <xsl:value-of select="count($ExtendedPeriodRange/Period)+4"/>
                </xsl:variable>
                <tr name="tr_Portals_{$PortalItemID}_{$ELBPageNumber}" style="{$DisplayStyle}">
                    <td colspan="{$ColSpan}">
                        <span class="packageTitle onMouseOver" style="color:gray;"
                              onClick="showHideElementsBasedonName('tr_Portals_{$PortalItemID}_{$ELBPageNumber}','none');
                              showHideElementsBasedonName('tr_Portals_{$PortalItemID}_{$ELBPageNumberPrev}','table-row');
                              extendedLBResizingWrapperTable();">
                            <xsl:if test="$ELBPageNumberPrev &gt; 0">
                                <span style="font-size:15px;">&lt;</span> Prev
                            </xsl:if>
                        </span>
                        <span class="packageTitle" style="margin-right:10px;color:gray;">
                            <xsl:choose>
                                <xsl:when test="position() = count($ExtendedLeaderboard/Record)">
                                    <xsl:value-of select="(position()-(position() mod $PageSize))+1"/> - <xsl:value-of select="position()"/> of <xsl:value-of select="count($ExtendedLeaderboard/Record)"/>
                                </xsl:when>
                                <xsl:otherwise>
                                    <xsl:value-of select="(position()-$PageSize)+1"/> - <xsl:value-of select="position()"/> of <xsl:value-of select="count($ExtendedLeaderboard/Record)"/>
                                </xsl:otherwise>
                            </xsl:choose>
                        </span>
                        <span class="packageTitle onMouseOver" style="color:gray;"
                              onClick="showHideElementsBasedonName('tr_Portals_{$PortalItemID}_{$ELBPageNumber}','none');
                              showHideElementsBasedonName('tr_Portals_{$PortalItemID}_{$ELBPageNumberNext}','table-row');
                              extendedLBResizingWrapperTable();">
                            <xsl:if test="position() &lt; count($ExtendedLeaderboard/Record)">
                                Next <span style="font-size:15px;">></span>
                            </xsl:if>
                        </span>
                    </td>
                </tr>
            </xsl:if>
        </xsl:for-each>
    </xsl:template>
</xsl:stylesheet>
