<!--                                                                  -->
<!--  Copyright (C) 2006 RoyaltyShare, Inc.   All Rights Reserved     -->
<!--                                                                  -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:dyn="http://exslt.org/dynamic" extension-element-prefixes="dyn">
    <xsl:output method="html" indent="no" doctype-system="" encoding="utf-8" />

    <xsl:include href="/app/tools/rps/templates/global.xsl" />
    <xsl:include href="shared.xsl" />

    <xsl:variable name="allPublishers" select="/Root/Statement/MechanicalStatement/MechanicalStatementPublisherList/MechanicalStatementPublisher" />
    <xsl:variable name="publisherCount" select="count($allPublishers)" />

    <xsl:variable name="statementVersion" select="/Root/Statement/MechanicalStatement/Version" />

    <xsl:variable name="columns">
        <xsl:choose>
            <xsl:when test="$statementVersion = 1">24</xsl:when>
            <xsl:when test="$statementVersion = 2">21</xsl:when>
            <xsl:when test="$statementVersion = 3">20</xsl:when>
        </xsl:choose>
    </xsl:variable>

    <xsl:variable name="mechArea">
        <xsl:choose>
            <xsl:when test="$cmd = 'show_mechanical'">mechanical</xsl:when>
            <xsl:when test="$cmd = 'show_ca_mechanical'">ca_mechanical</xsl:when>
        </xsl:choose>
    </xsl:variable>

    <xsl:variable name="pubArea">
        <xsl:choose>
            <xsl:when test="$cmd = 'show_mechanical'">publisher</xsl:when>
            <xsl:when test="$cmd = 'show_ca_mechanical'">ca_publisher</xsl:when>
        </xsl:choose>
    </xsl:variable>

    <xsl:variable name="licenseArea">
        <xsl:choose>
            <xsl:when test="$cmd = 'show_mechanical'">license</xsl:when>
            <xsl:when test="$cmd = 'show_ca_mechanical'">ca_license</xsl:when>
        </xsl:choose>
    </xsl:variable>

    <xsl:template name="pickLayout">

        <xsl:variable name="showtrackDetails">
            <xsl:choose>
                <xsl:when test="Params/focusPublisherID or (Statement/MechanicalStatement/Publisher/IsAdmin != 1 and Statement/MechanicalStatement/Publisher/IsAgency != 1)">
                    <xsl:text>true</xsl:text>
                </xsl:when>
                <xsl:otherwise>
                    <xsl:text>false</xsl:text>
                </xsl:otherwise>
            </xsl:choose>
        </xsl:variable>

        <div id="statement">
            <xsl:call-template name="summary" />

            <xsl:if test="$showtrackDetails = 'true'">
                <section class="MainBaseSection">

                    <xsl:if test="not($allPublishers) or ($allPublishers and Params/focusPublisherID)">
                        <h3>Current Period Details</h3>
                    </xsl:if>

                    <xsl:call-template name="trackDetails" />
                </section>
            </xsl:if>
            <section class="MainBaseSection MainBaseSection-joined">
                <xsl:call-template name="buttons" />
            </section>
        </div>
    </xsl:template>


    <xsl:template name="summary">

        <xsl:variable name="showDownloads">
            <xsl:choose>
                <xsl:when test="Statement/MechanicalRun/CanDownload = 1 or Statement/MechanicalRun/CanDownloadText = 1 or (Statement/MechanicalRun/CanDownloadCMRRA = 1 and Statement/MechanicalStatement/Publisher/IsAgency = 1)">
                    <xsl:text>true</xsl:text>
                </xsl:when>
                <xsl:otherwise>
                    <xsl:text>false</xsl:text>
                </xsl:otherwise>
            </xsl:choose>
        </xsl:variable>

        <div class="MainBaseSection" id="statementSummary">
            <xsl:call-template name="helpLink" />

            <h2><xsl:value-of select="Statement/MechanicalRun/Label" /></h2>

            <xsl:if test="$showDownloads = 'true'">
                <ul class="StatementsDocuments-download ControlsList">
                    <xsl:if test="Statement/MechanicalRun/CanDownload = 1">
                        <li class="ControlsList-item">
                            <xsl:call-template name="uiDownloadLink">
                                <xsl:with-param name="text" select="'Publisher View PDF'" />
                                <xsl:with-param name="title" select="'Download PDF'" />
                                <xsl:with-param name="url">
                                    <xsl:text>?c=pdf_</xsl:text>
                                    <xsl:value-of select="$mechArea" />
                                    <xsl:text>&amp;MechanicalStatementID=</xsl:text>
                                    <xsl:value-of select="Statement/MechanicalStatement/MechanicalStatementID" />
                                </xsl:with-param>
                            </xsl:call-template>
                        </li>
                    </xsl:if>

                    <xsl:if test="Statement/MechanicalRun/CanDownloadText = 1">
                        <li class="ControlsList-item">
                            <xsl:call-template name="uiDownloadLink">
                                <xsl:with-param name="text" select="'Publisher View TXT'" />
                                <xsl:with-param name="title" select="'Download Electronic Format'" />
                                <xsl:with-param name="url">
                                    <xsl:text>?c=text_</xsl:text>
                                    <xsl:value-of select="$mechArea" />
                                    <xsl:text>&amp;MechanicalStatementID=</xsl:text>
                                    <xsl:value-of select="Statement/MechanicalStatement/MechanicalStatementID" />
                                </xsl:with-param>
                            </xsl:call-template>
                        </li>
                    </xsl:if>

                    <xsl:if test="Statement/MechanicalRun/CanDownloadCMRRA = 1 and Statement/MechanicalStatement/Publisher/IsAgency = 1">
                        <li class="ControlsList-item">
                            <xsl:call-template name="uiDownloadLink">
                                <xsl:with-param name="text" select="'CMRRA Format'" />
                                <xsl:with-param name="title" select="'Download CMRRA Format'" />
                                <xsl:with-param name="url">
                                    <xsl:text>?c=cmrra_</xsl:text>
                                    <xsl:value-of select="$mechArea" />
                                    <xsl:text>&amp;MechanicalStatementID=</xsl:text>
                                    <xsl:value-of select="Statement/MechanicalStatement/MechanicalStatementID" />
                                </xsl:with-param>
                            </xsl:call-template>
                        </li>
                    </xsl:if>
                </ul>
            </xsl:if>

            <section class="StatementsDocuments-publisher">
                <xsl:call-template name="publisherInfo">
                    <xsl:with-param name="publisher" select="Statement/MechanicalStatement/Publisher" />
                </xsl:call-template>
            </section>
        </div>

        <div class="MainBaseSection">
            <a name="top" />
            <xsl:call-template name="transactionTable">
                <xsl:with-param name="statement" select="Statement/MechanicalStatement" />
                <xsl:with-param name="transactions" select="Statement/MechanicalStatement/MechanicalStatementTransactionList/MechanicalStatementTransaction" />
            </xsl:call-template>
        </div>

        <xsl:if test="$allPublishers">
            <div class="MainBaseSection">
                <xsl:variable name="publisherSplit1" select="ceiling($publisherCount div 3)" />
                <xsl:variable name="publisherSplit2" select="$publisherSplit1 * 2" />

                <xsl:choose>
                    <xsl:when test="$publisherCount &lt; 6">
                        <xsl:call-template name="publisherListTable">
                            <xsl:with-param name="publisherSet" select="$allPublishers" />
                            <xsl:with-param name="firstColumn">1</xsl:with-param>
                        </xsl:call-template>
                    </xsl:when>
                    <xsl:otherwise>
                        <xsl:call-template name="publisherListTable">
                            <xsl:with-param name="publisherSet" select="$allPublishers[position() &lt;= $publisherSplit1]" />
                            <xsl:with-param name="firstColumn">1</xsl:with-param>
                        </xsl:call-template>
                        <xsl:call-template name="publisherListTable">
                            <xsl:with-param name="publisherSet" select="$allPublishers[position() &gt; $publisherSplit1 and position() &lt;= $publisherSplit2]" />
                        </xsl:call-template>
                        <xsl:call-template name="publisherListTable">
                            <xsl:with-param name="publisherSet" select="$allPublishers[position() &gt; $publisherSplit2]" />
                        </xsl:call-template>
                    </xsl:otherwise>
                </xsl:choose>
            </div>
        </xsl:if>
    </xsl:template>


    <xsl:template name="publisherListTable">
        <xsl:param name="firstColumn" />
        <xsl:param name="publisherSet" />
        <table class="Table Table-with-highlight">
            <thead>
                <tr class="Table-row Table-row-header">
                    <xsl:call-template name="publisherListHeader">
                        <xsl:with-param name="firstColumn" select="$firstColumn" />
                    </xsl:call-template>
                </tr>
            </thead>
            <tbody>
                <xsl:for-each select="$publisherSet">
                    <tr class="Table-row Table-row-data">
                        <xsl:call-template name="publisherListRow" />
                    </tr>
                </xsl:for-each>
            </tbody>
        </table>
    </xsl:template>


    <xsl:template name="publisherListHeader">
        <xsl:param name="firstColumn" />
        <th class="Table-col">Publisher <xsl:if test="$publisherCount &gt; 1 and $firstColumn = 1 and (Params/focusPublisherID != 'all' or not(Params/focusPublisherID))">(<a href="/rps/statement?c=show_{$mechArea}&amp;MechanicalStatementID={/Root/Params/MechanicalStatementID}&amp;focusPublisherID=all">View All</a>)</xsl:if></th>
        <th class="Table-col Table-col-amount">Amount Due</th>
    </xsl:template>


    <xsl:template name="publisherListRow">
        <td class="Table-col">
            <xsl:choose>
                <xsl:when test="not(/Root/Params/printer) and Publisher/PublisherID != normalize-space(/Root/Params/focusPublisherID)">
                    <a href="/rps/statement?c=show_{$mechArea}&amp;MechanicalStatementID={/Root/Params/MechanicalStatementID}&amp;focusPublisherID={Publisher/PublisherID}#{Publisher/PublisherID}">
                        <xsl:value-of select="Publisher/PublisherName" />
                    </a>
                </xsl:when>
                <xsl:otherwise>
                    <xsl:value-of select="Publisher/PublisherName" />
                </xsl:otherwise>
            </xsl:choose>
        </td>
        <td class="Table-col Table-col-amount">
            <xsl:choose>
                <xsl:when test="OnHold = 1">ON-HOLD</xsl:when>
                <xsl:otherwise>
                    <xsl:value-of select="AmountDue" />
                </xsl:otherwise>
            </xsl:choose>
        </td>
    </xsl:template>

    <xsl:template name="publisherInfo">
        <xsl:param name="publisher" />
        <a href="/rps/{$pubArea}?PublisherID={$publisher/PublisherID}&amp;c=show">
            <xsl:value-of select="$publisher/PublisherName" />
        </a><xsl:if test="$publisher/IsAdmin = 1"> (Admin)</xsl:if>
        <xsl:if test="normalize-space($publisher/StreetAddress)">
            <p><xsl:value-of select="$publisher/StreetAddress" /></p>
        </xsl:if>
        <xsl:if test="normalize-space($publisher/StreetAddress2)">
            <p><xsl:value-of select="$publisher/StreetAddress2" /></p>
        </xsl:if>
        <xsl:if test="normalize-space($publisher/StreetAddress3)">
            <p><xsl:value-of select="$publisher/StreetAddress3" /></p>
        </xsl:if>
        <xsl:if test="normalize-space($publisher/City) or normalize-space($publisher/StateProvince)">
            <p><xsl:if test="normalize-space($publisher/City)"><xsl:value-of select="$publisher/City" /><xsl:if test="normalize-space($publisher/StateProvince)">, </xsl:if></xsl:if><xsl:value-of select="$publisher/StateProvince" />&#160;<xsl:value-of select="$publisher/PostalCode" /></p>
        </xsl:if>
        <xsl:if test="normalize-space($publisher/CountryCode)">
            <p><xsl:value-of select="$publisher/CountryCode" /></p>
        </xsl:if>
    </xsl:template>

    <xsl:template name="trackDetails">
        <div class="Table-wrapper Table-wrapper-scrollleft">
            <table class="Table statementTable">
                <xsl:call-template name="trackDetailsHeader" />
                <xsl:choose>
                    <xsl:when test="Statement/MechanicalStatement/Publisher/IsAdmin = 1 or Statement/MechanicalStatement/Publisher/IsAgency = 1">
                        <xsl:call-template name="publisherDetailsRow" />
                    </xsl:when>
                    <xsl:otherwise>
                        <xsl:for-each select="Statement/MechanicalStatement/MechanicalStatementTrackList/MechanicalStatementTrack">
                            <xsl:call-template name="trackDetailsRow" />
                        </xsl:for-each>
                    </xsl:otherwise>
                </xsl:choose>
                <xsl:call-template name="publisherTotal">
                    <xsl:with-param name="statement" select="/Root/Statement/MechanicalStatement" />
                </xsl:call-template>
            </table>
        </div>
    </xsl:template>


    <xsl:template name="trackDetailsHeader">
        <tr class="Table-row Table-row-header statementHeader">
            <th class="Table-col">Track Title</th>
            <th class="Table-col">Album Title</th>
            <th class="Table-col">UPC</th>
            <th class="Table-col">Product Config</th>
            <th class="Table-col">Region</th>
            <th class="Table-col">Rate Period</th>
            <th class="Table-col">Base Rate</th>
            <th class="Table-col">% of Rate</th>
            <th class="Table-col Table-col-amount">Share</th>
            <th class="Table-col">Net Rate</th>

            <xsl:if test="$statementVersion = 1">
                <th class="Table-col">Sales</th>
            </xsl:if>

            <xsl:if test="$statementVersion &gt; 1">
                <th class="Table-col Table-col-amount">Gross Units</th>
            </xsl:if>

            <th class="Table-col">% of Sales</th>

            <xsl:if test="$statementVersion &lt; 3">
                <th class="Table-col">Packaging</th>
            </xsl:if>

            <th class="Table-col">Free Goods</th>
            <th class="Table-col">Misc.</th>
            <th class="Table-col">Reserves</th>
            <th class="Table-col">Liquidations</th>
            <th class="Table-col">Returns</th>
            <th class="Table-col">Carryover</th>

            <xsl:if test="$statementVersion = 1">
                <th class="Table-col Table-col-amount">Gross Units</th>
                <th class="Table-col Table-col-amount">Total</th>
                <th class="Table-col Table-col-amount">Accrual</th>
            </xsl:if>

            <th class="Table-col Table-col-amount">Net Units</th>
            <th class="Table-col Table-col-amount">Amount Due</th>
        </tr>
    </xsl:template>


    <xsl:template name="trackDetailsRow">
        <xsl:if test="MechanicalStatementCrossedLicenseList/MechanicalStatementLicense or MechanicalStatementCrossedLicenseTransactionList/MechanicalStatementCrossedLicenseTransaction">
            <xsl:call-template name="crossedLicenses" />
        </xsl:if>
        <xsl:for-each select="MechanicalStatementLicenseList/MechanicalStatementLicense">
            <xsl:call-template name="uncrossedLicenses" />
        </xsl:for-each>
    </xsl:template>


    <xsl:template name="crossedLicenses">
        <xsl:choose>
            <xsl:when test="MechanicalStatementCrossedLicenseList/MechanicalStatementLicense">

                <xsl:for-each select="MechanicalStatementCrossedLicenseList/MechanicalStatementLicense">
                    <xsl:variable name="position" select="position()" />

                    <xsl:choose>
                        <xsl:when test="MechanicalStatementItemList/MechanicalStatementItem or MechanicalStatementAdjustmentItemList/MechanicalStatementAdjustmentItem">
                            <xsl:for-each select="MechanicalStatementItemList/MechanicalStatementItem">
                                <xsl:call-template name="itemRow">
                                    <xsl:with-param name="position" select="$position + position() - 1" />
                                </xsl:call-template>
                            </xsl:for-each>
                            <xsl:for-each select="MechanicalStatementAdjustmentItemList/MechanicalStatementAdjustmentItem">
                                <xsl:call-template name="adjustmentRow" />
                            </xsl:for-each>
                            <xsl:call-template name="currentPeriodSubtotalRow">
                                <xsl:with-param name="subtotal" select="Subtotal" />
                            </xsl:call-template>
                        </xsl:when>
                        <xsl:otherwise>
                            <xsl:call-template name="noItemRow">
                                <xsl:with-param name="position" select="$position" />
                            </xsl:call-template>
                        </xsl:otherwise>
                    </xsl:choose>

                    <xsl:variable name="parsedPreviousAdvanceBalance" select="translate(PreviousAdvanceBalance, translate(PreviousAdvanceBalance,'0123456789', ''), '')" />
                    <xsl:variable name="parsedSubtotal" select="translate(Subtotal, translate(Subtotal,'0123456789', ''), '')" />
                    <xsl:variable name="parsedAdvanceBalance" select="translate(AdvanceBalance, translate(AdvanceBalance,'0123456789', ''), '')" />
                    <xsl:variable name="parsedAdjustedSubtotal" select="translate(AdjustedSubtotal, translate(AdjustedSubtotal,'0123456789', ''), '')" />

                    <xsl:for-each select="MechanicalStatementLicenseTransactionList/MechanicalStatementLicenseTransaction">
                        <xsl:call-template name="licenseTransactionRow" />
                    </xsl:for-each>

                    <xsl:if test="$parsedPreviousAdvanceBalance != 0 or $parsedAdvanceBalance != 0">
                        <xsl:call-template name="previousBalanceRow">
                            <xsl:with-param name="previousAdvanceBalance" select="PreviousAdvanceBalance" />
                        </xsl:call-template>
                    </xsl:if>

                    <xsl:if test="$parsedPreviousAdvanceBalance != 0 or $parsedAdvanceBalance != 0">
                        <xsl:call-template name="licenseBalanceRow">
                            <xsl:with-param name="advanceBalance" select="AdvanceBalance" />
                        </xsl:call-template>
                    </xsl:if>

                    <xsl:if test="MechanicalStatementLicenseTransactionList/MechanicalStatementLicenseTransaction or $parsedPreviousAdvanceBalance != 0 or $parsedSubtotal != $parsedAdjustedSubtotal">
                        <xsl:call-template name="licenseAdjustedSubtotalRow">
                            <xsl:with-param name="adjustedSubtotal" select="AdjustedSubtotal" />
                        </xsl:call-template>
                    </xsl:if>

                </xsl:for-each>

                <tr>
                    <td colspan="{$columns}" style="height: 6px;"></td>
                </tr>

            </xsl:when>

            <xsl:otherwise>
                <tr class="Table-row Table-row-data">
                    <xsl:attribute name="class">
                        <xsl:text>Table-row Table-row-data</xsl:text>
                        <xsl:if test="position() != 1">
                            <xsl:text> Table-row-total</xsl:text>
                        </xsl:if>
                    </xsl:attribute>
                    <td class="Table-col">
                        <a href="track?c=show&amp;TrackID={TrackID}">
                            <xsl:value-of select="SongTitle" />
                        </a>
                    </td>
                    <td class="Table-col">
                        <a href="catalog?c=show&amp;AlbumID={AlbumID}">
                            <xsl:value-of select="substring(AlbumName,1,20)" /><xsl:if test="substring(AlbumName,21,1)">...</xsl:if>
                        </a>
                    </td>
                    <td class="Table-col" colspan="{$columns - 2}"></td>
                </tr>
            </xsl:otherwise>
        </xsl:choose>

        <xsl:for-each select="MechanicalStatementCrossedLicenseList/MechanicalStatementLicense/MechanicalStatementAdjustmentItemList/MechanicalStatementAdjustmentItem">
            <xsl:call-template name="adjustmentRow" />
        </xsl:for-each>

        <xsl:call-template name="currentPeriodSubtotalRow">
            <xsl:with-param name="title">Current Period Crossed License Subtotal</xsl:with-param>
            <xsl:with-param name="subtotal" select="CrossedSubtotal" />
            <xsl:with-param name="noLine">1</xsl:with-param>
        </xsl:call-template>

        <xsl:variable name="parsedCrossedPreviousAdvanceBalance" select="translate(CrossedPreviousAdvanceBalance, translate(CrossedPreviousAdvanceBalance,'0123456789', ''), '')" />
        <xsl:variable name="parsedCrossedSubtotal" select="translate(CrossedSubtotal, translate(CrossedSubtotal,'0123456789', ''), '')" />
        <xsl:variable name="parsedCrossedAdvanceBalance" select="translate(CrossedAdvanceBalance, translate(CrossedAdvanceBalance,'0123456789', ''), '')" />
        <xsl:variable name="parsedCrossedAdjustedSubtotal" select="translate(CrossedAdjustedSubtotal, translate(CrossedAdjustedSubtotal,'0123456789', ''), '')" />

        <xsl:for-each select="MechanicalStatementCrossedLicenseTransactionList/MechanicalStatementCrossedLicenseTransaction">
            <xsl:call-template name="licenseTransactionRow" />
        </xsl:for-each>

        <xsl:if test="$parsedCrossedPreviousAdvanceBalance != 0 or $parsedCrossedAdvanceBalance != 0">
            <xsl:call-template name="previousBalanceRow">
                <xsl:with-param name="title">Previous Crossed License Balance</xsl:with-param>
                <xsl:with-param name="previousAdvanceBalance" select="CrossedPreviousAdvanceBalance" />
            </xsl:call-template>
        </xsl:if>

        <xsl:if test="$parsedCrossedPreviousAdvanceBalance != 0 or $parsedCrossedAdvanceBalance != 0">
            <xsl:call-template name="licenseBalanceRow">
                <xsl:with-param name="title">Crossed License Balance Forward</xsl:with-param>
                <xsl:with-param name="advanceBalance" select="CrossedAdvanceBalance" />
            </xsl:call-template>
        </xsl:if>

        <xsl:if test="MechanicalStatementCrossedLicenseTransactionList/MechanicalStatementCrossedLicenseTransaction or $parsedCrossedPreviousAdvanceBalance != 0 or $parsedCrossedSubtotal != $parsedCrossedAdjustedSubtotal">
            <xsl:call-template name="licenseAdjustedSubtotalRow">
                <xsl:with-param name="title">Crossed License Adjusted Subtotal</xsl:with-param>
                <xsl:with-param name="adjustedSubtotal" select="CrossedAdjustedSubtotal" />
            </xsl:call-template>
        </xsl:if>
    </xsl:template>


    <xsl:template name="uncrossedLicenses">

        <xsl:choose>
            <xsl:when test="MechanicalStatementItemList/MechanicalStatementItem or MechanicalStatementAdjustmentItemList/MechanicalStatementAdjustmentItem">
                <xsl:for-each select="MechanicalStatementItemList/MechanicalStatementItem">
                    <xsl:call-template name="itemRow">
                        <xsl:with-param name="position" select="position()" />
                    </xsl:call-template>
                </xsl:for-each>
                <xsl:for-each select="MechanicalStatementAdjustmentItemList/MechanicalStatementAdjustmentItem">
                    <xsl:call-template name="adjustmentRow" />
                </xsl:for-each>
                <xsl:call-template name="currentPeriodSubtotalRow">
                    <xsl:with-param name="subtotal" select="Subtotal" />
                </xsl:call-template>
            </xsl:when>
            <xsl:otherwise>
                <xsl:call-template name="noItemRow">
                    <xsl:with-param name="position">1</xsl:with-param>
                </xsl:call-template>
                <xsl:call-template name="currentPeriodSubtotalRow">
                    <xsl:with-param name="subtotal" select="Subtotal" />
                    <xsl:with-param name="noLine" select="'1'" />
                </xsl:call-template>
            </xsl:otherwise>
        </xsl:choose>

        <xsl:variable name="parsedPreviousAdvanceBalance" select="translate(PreviousAdvanceBalance, translate(PreviousAdvanceBalance,'0123456789', ''), '')" />
        <xsl:variable name="parsedSubtotal" select="translate(Subtotal, translate(Subtotal,'0123456789', ''), '')" />
        <xsl:variable name="parsedAdvanceBalance" select="translate(AdvanceBalance, translate(AdvanceBalance,'0123456789', ''), '')" />
        <xsl:variable name="parsedAdjustedSubtotal" select="translate(AdjustedSubtotal, translate(AdjustedSubtotal,'0123456789', ''), '')" />

        <xsl:for-each select="MechanicalStatementLicenseTransactionList/MechanicalStatementLicenseTransaction">
            <xsl:call-template name="licenseTransactionRow" />
        </xsl:for-each>

        <xsl:if test="$parsedPreviousAdvanceBalance != 0 or $parsedAdvanceBalance != 0">
            <xsl:call-template name="previousBalanceRow">
                <xsl:with-param name="previousAdvanceBalance" select="PreviousAdvanceBalance" />
            </xsl:call-template>
        </xsl:if>

        <xsl:if test="$parsedPreviousAdvanceBalance != 0 or $parsedAdvanceBalance != 0">
            <xsl:call-template name="licenseBalanceRow">
                <xsl:with-param name="advanceBalance" select="AdvanceBalance" />
            </xsl:call-template>
        </xsl:if>

        <xsl:if test="MechanicalStatementLicenseTransactionList/MechanicalStatementLicenseTransaction or $parsedPreviousAdvanceBalance != 0 or $parsedSubtotal != $parsedAdjustedSubtotal">
            <xsl:call-template name="licenseAdjustedSubtotalRow">
                <xsl:with-param name="adjustedSubtotal" select="AdjustedSubtotal" />
            </xsl:call-template>
        </xsl:if>
    </xsl:template>


    <xsl:template name="publisherDetailsRow">
        <xsl:for-each select="$allPublishers">
            <xsl:if test="MechanicalStatementTrackList or MechanicalStatementTransactionList">
                <tr class="Table-row Table-row-data Table-row-total">
                    <td class="Table-col" colspan="{$columns}">

                        <div class="Table-controls">
                            <div class="Table-controls-item">
                                <a name="{Publisher/PublisherID}" />
                                <h4>
                                    <a>
                                        <xsl:if test="not(/Root/Params/printer)">
                                            <xsl:attribute name="href">/rps/<xsl:value-of select="$pubArea" />?c=show&amp;PublisherID=<xsl:value-of select="Publisher/PublisherID" /></xsl:attribute>
                                        </xsl:if>
                                        <xsl:value-of select="Publisher/PublisherName" />
                                    </a>
                                </h4>
                            </div>
                            <div class="Table-controls-item Table-controls-item-additive">
                                <xsl:call-template name="backToTop" />
                            </div>
                        </div>
                    </td>
                </tr>

                <xsl:for-each select="MechanicalStatementTrackList/MechanicalStatementTrack">
                    <xsl:call-template name="trackDetailsRow" />
                </xsl:for-each>

                <xsl:variable name="parsedPreviousBalance" select="translate(PreviousBalance, translate(PreviousBalance,'0123456789', ''), '')" />

                <xsl:if test="($parsedPreviousBalance != 0) or (MechanicalStatementPublisherTransactionList/MechanicalStatementPublisherTransaction)">

                    <xsl:call-template name="publisherSubtotal" />

                    <xsl:if test="$parsedPreviousBalance != 0">
                        <xsl:call-template name="publisherPreviousBalance" />
                    </xsl:if>

                    <xsl:for-each select="MechanicalStatementPublisherTransactionList/MechanicalStatementPublisherTransaction">
                        <xsl:call-template name="publisherTransactionRow" />
                    </xsl:for-each>

                    <xsl:call-template name="publisherEndingBalance" />

                </xsl:if>

                <xsl:call-template name="publisherAmountDue" />

            </xsl:if>
        </xsl:for-each>
    </xsl:template>


    <xsl:template name="publisherSubtotal">
        <tr class="Table-row Table-row-data Table-row-subtotal">
            <td colspan="{$columns - 4}" class="Table-col emptyCell"></td>
            <td colspan="3" class="Table-col Table-col-heading">Publisher Subtotal:</td>
            <td class="Table-col Table-col-amount Table-col-total">
                <xsl:value-of select="PublisherSubtotal" />
            </td>
        </tr>
    </xsl:template>


    <xsl:template name="publisherPreviousBalance">
        <tr class="Table-row Table-row-data Table-row-subtotal">
            <td colspan="{$columns - 4}" class="Table-col emptyCell"></td>
            <td colspan="3" class="Table-col Table-col-heading">Previous Balance:</td>
            <td class="Table-col Table-col-amount Table-col-total">
                <xsl:value-of select="PreviousBalance" />
            </td>
        </tr>
    </xsl:template>


    <xsl:template name="publisherAmountDue">
        <tr class="Table-row Table-row-data Table-row-subtotal">
            <td colspan="{$columns - 4}" class="Table-col emptyCell"></td>
            <td colspan="3" class="Table-col Table-col-heading">Publisher Amount Due:</td>
            <td class="Table-col Table-col-amount Table-col-total">
                <strong>

                    <xsl:choose>
                        <xsl:when test="OnHold = 1">ON-HOLD</xsl:when>
                        <xsl:otherwise>
                            <xsl:value-of select="AmountDue" />
                        </xsl:otherwise>
                    </xsl:choose>

                </strong>
            </td>
        </tr>
    </xsl:template>


    <xsl:template name="publisherEndingBalance">
        <tr class="Table-row Table-row-data Table-row-subtotal">
            <td colspan="{$columns - 4}" class="Table-col emptyCell"></td>
            <td colspan="3" class="Table-col Table-col-heading">Ending Balance:<br /><br /></td>
            <td class="Table-col Table-col-amount Table-col-total">
                <xsl:value-of select="StatementTotal" />
            </td>
        </tr>
    </xsl:template>


    <xsl:template name="publisherTotal">
        <xsl:param name="statement" />
        <tr class="Table-row Table-row-data Table-row-total Table-row-subtotal">
            <td colspan="{$columns - 4}" class="Table-col emptyCell"></td>
            <td colspan="3" class="Table-col Table-col-heading">Total:</td>
            <td class="Table-col Table-col-amount Table-col-total">
                <xsl:value-of select="$statement/Subtotal" />
            </td>
        </tr>
    </xsl:template>


    <xsl:template name="publisherTransactionRow">
        <tr class="Table-row Table-row-data Table-row-subtotal">
            <td colspan="{$columns - 4}" class="Table-col emptyCell"></td>
            <td colspan="3" class="Table-col Table-col-heading">
                <xsl:if test="TypeCode = 2">Adjustment:</xsl:if>
                <xsl:if test="TypeCode = 3">Advance:</xsl:if>
                <xsl:if test="TypeCode = 4">Payment:</xsl:if>
            </td>
            <td class="Table-col Table-col-amount Table-col-total">
                <xsl:value-of select="Amount" />
            </td>
        </tr>
    </xsl:template>


    <xsl:template name="itemRow">
        <xsl:param name="position" />
        <tr class="Table-row Table-row-data">
            <xsl:attribute name="class">
                <xsl:text>Table-row Table-row-data</xsl:text>
                <xsl:if test="$position = 1">
                    <xsl:text> Table-row-total</xsl:text>
                </xsl:if>
            </xsl:attribute>
            <td class="Table-col">
                <a href="track?c=show&amp;TrackID={TrackLicense/TrackID}">
                    <xsl:value-of select="../../../../SongTitle" />
                </a>
                <div>
                    <a class="js-tooltip" href="/rps/{$licenseArea}?c=show&amp;TrackLicenseID={TrackLicense/TrackLicenseID}" title="View License">
                        <xsl:call-template name="icon">
                            <xsl:with-param name="type" select="'more'" />
                        </xsl:call-template>
                    </a>
                </div>
            </td>
            <td class="Table-col">
                <a href="catalog?AlbumID={AlbumID}&amp;c=show">
                    <xsl:value-of select="substring(AlbumName,1,20)" /><xsl:if test="substring(AlbumName,21,1)">...</xsl:if>
                </a>
            </td>
            <td class="Table-col"><xsl:value-of select="UPC" /></td>
            <td class="Table-col">
                <xsl:variable name="productTypeID">
                    <xsl:choose>
                        <xsl:when test="TrackLicense/ProductTypeID = 15">15</xsl:when>
                        <xsl:otherwise><xsl:value-of select="ProductTypeID" /></xsl:otherwise>
                    </xsl:choose>
                </xsl:variable>
                <xsl:value-of select="/Root/Statement/TypeList/Type[ProductTypeID = $productTypeID]/Description" />
            </td>
            <td class="Table-col">
                <xsl:if test="../../RegionID != 0">
                    <xsl:variable name="regionID" select="../../RegionID" />
                    <xsl:value-of select="/Root/Statement/RegionList/Region[RegionID = $regionID]/Name" />
                </xsl:if>
            </td>
            <td class="Table-col"><xsl:value-of select="RatePeriod" /></td>
            <td class="Table-col"><xsl:value-of select="BaseRate" /></td>
            <td class="Table-col Table-col-amount">
                <xsl:value-of select="TrackLicense/RatePercentage" /><xsl:if test="normalize-space(TrackLicense/RatePercentage)">%</xsl:if>
            </td>
            <td class="Table-col Table-col-amount">
                <xsl:value-of select="TrackLicense/Share" /><xsl:if test="normalize-space(TrackLicense/Share)">%</xsl:if>
            </td>
            <td class="Table-col">
                <xsl:value-of select="NetRate" />
            </td>
            <td class="Table-col Table-col-amount">
                <xsl:value-of select="Sales" />
            </td>

            <td class="Table-col Table-col-amount">
                <xsl:choose>
                    <xsl:when test="normalize-space(TrackLicense/PercentageOfSales)">
                        <xsl:value-of select="TrackLicense/PercentageOfSales" />%
                    </xsl:when>
                    <xsl:otherwise>N/A</xsl:otherwise>
                </xsl:choose>
            </td>

            <xsl:if test="$statementVersion &lt; 3">
                <td class="Table-col Table-col-amount">
                    <xsl:choose>
                        <xsl:when test="normalize-space(TrackLicense/PackagingDeduction)">
                            <xsl:value-of select="TrackLicense/PackagingDeduction" />%
                        </xsl:when>
                        <xsl:otherwise>N/A</xsl:otherwise>
                    </xsl:choose>
                </td>
            </xsl:if>

            <td class="Table-col Table-col-amount">
                <xsl:choose>
                    <xsl:when test="normalize-space(TrackLicense/FreeGoods)">
                        <xsl:value-of select="TrackLicense/FreeGoods" />%
                    </xsl:when>
                    <xsl:otherwise>N/A</xsl:otherwise>
                </xsl:choose>
            </td>
            <td class="Table-col Table-col-amount">
                <xsl:choose>
                    <xsl:when test="normalize-space(TrackLicense/MiscDeduction)">
                        <xsl:value-of select="TrackLicense/MiscDeduction" />%
                    </xsl:when>
                    <xsl:otherwise>N/A</xsl:otherwise>
                </xsl:choose>
            </td>

            <td class="Table-col Table-col-amount">
                <xsl:value-of select="Reserved" />
            </td>
            <td class="Table-col Table-col-amount">
                <xsl:value-of select="Liquidated" />
            </td>
            <td class="Table-col Table-col-amount">
                <xsl:value-of select="Returns" />
            </td>
            <td class="Table-col Table-col-amount">
                <xsl:value-of select="PreviousCarryover" />
            </td>
            <td class="Table-col Table-col-amount">
                <xsl:choose>
                    <xsl:when test="$statementVersion = 3">
                        <xsl:value-of select="NetUnits" />
                    </xsl:when>
                    <xsl:otherwise>
                        <xsl:value-of select="GrossUnits" />
                    </xsl:otherwise>
                </xsl:choose>
            </td>
            <td class="Table-col Table-col-amount">
                <xsl:value-of select="Total" />
            </td>

            <xsl:if test="$statementVersion = 1">
                <td class="Table-col Table-col-amount">
                    <xsl:value-of select="Carryover" />
                </td>
                <td class="Table-col Table-col-amount">
                    <xsl:value-of select="NetUnits" />
                </td>
                <td class="Table-col Table-col-amount">
                    <xsl:value-of select="AmountPaid" />
                </td>
            </xsl:if>

        </tr>
    </xsl:template>


    <xsl:template name="noItemRow">
        <xsl:param name="position" />
        <tr class="Table-row Table-row-data">
            <xsl:attribute name="class">
                <xsl:text>Table-row Table-row-data</xsl:text>
                <xsl:if test="$position = 1">
                    <xsl:text> Table-row-total</xsl:text>
                </xsl:if>
            </xsl:attribute>
            <td class="Table-col">
                <a href="track?c=show&amp;TrackID={../../TrackID}">
                    <xsl:value-of select="../../SongTitle" />
                </a>
                <xsl:if test="TrackLicenseID">
                    <div>
                        <a class="js-tooltip" href="/rps/{$licenseArea}?c=show&amp;TrackLicenseID={TrackLicenseID}" title="View License">
                            <xsl:call-template name="icon">
                                <xsl:with-param name="type" select="'more'" />
                            </xsl:call-template>
                        </a>
                    </div>
                </xsl:if>
            </td>
            <td class="Table-col">
                <a href="catalog?c=show&amp;AlbumID={../../AlbumID}">
                    <xsl:value-of select="substring(../../AlbumName,1,20)" /><xsl:if test="substring(../../AlbumName,21,1)">...</xsl:if>
                </a>
            </td>
            <td class="Table-col"><xsl:value-of select="UPC" /></td>
            <td class="Table-col"></td>
            <td class="Table-col">
                <xsl:if test="RegionID != 0">
                    <xsl:variable name="regionID" select="RegionID" />
                    <xsl:value-of select="/Root/Statement/RegionList/Region[RegionID = $regionID]/Name" />
                </xsl:if>
            </td>
            <td class="Table-col" colspan="{$columns - 5}"></td>
        </tr>
    </xsl:template>


    <xsl:template name="adjustmentRow">
        <tr class="Table-row Table-row-data">
            <td colspan="{$columns - 1}" class="Table-col Table-col-amount">
                <strong>
                    <xsl:call-template name="adjustmentName">
                        <xsl:with-param name="typeCode" select="AdjustmentTypeCode" />
                    </xsl:call-template>
                </strong>
            </td>
            <td class="Table-col Table-col-amount">
                <xsl:value-of select="Amount" />
            </td>
        </tr>
    </xsl:template>


    <xsl:template name="adjustmentName">
        <xsl:param name="typeCode" />
        <xsl:choose>
            <xsl:when test="$typeCode = 1">Controlled Comp Adjustment:</xsl:when>
            <xsl:otherwise>Adjustment:</xsl:otherwise>
        </xsl:choose>
    </xsl:template>


    <xsl:template name="licenseTransactionRow">
        <xsl:param name="noLine" />
        <tr class="Table-row Table-row-data">
            <td colspan="{$columns - 3}" class="Table-col Table-col-amount">
                <xsl:if test="normalize-space(Memo)">
                    <strong>
                        (<xsl:value-of select="Memo" />)
                    </strong>
                </xsl:if>
            </td>
            <td colspan="2" class="Table-col Table-col-amount">
                <strong>
                    <xsl:choose>
                        <xsl:when test="TypeCode = 3">Advance:</xsl:when>
                        <xsl:otherwise>Adjustment:</xsl:otherwise>
                    </xsl:choose>
                </strong>
            </td>
            <td class="Table-col Table-col-amount">
                <xsl:call-template name="replaceDash">
                    <xsl:with-param name="string" select="Amount" />
                </xsl:call-template>
            </td>
        </tr>
    </xsl:template>


    <xsl:template name="currentPeriodSubtotalRow">
        <xsl:param name="noLine" />
        <xsl:param name="subtotal" />
        <xsl:param name="title" select="'Current Period License Subtotal'" />
        <tr class="Table-row Table-row-data Table-row-subtotal">
            <td colspan="{$columns - 1}" class="Table-col Table-col-heading"><xsl:value-of select="$title" />:</td>
            <td class="Table-col Table-col-amount Table-col-total">
                <xsl:value-of select="$subtotal" />
            </td>
        </tr>
    </xsl:template>


    <xsl:template name="previousBalanceRow">
        <xsl:param name="previousAdvanceBalance" />
        <xsl:param name="title" select="'Previous License Balance'" />
        <tr class="Table-row Table-row-data">
            <td colspan="{$columns - 1}" class="Table-col Table-col-heading"><xsl:value-of select="$title" />:</td>
            <td class="Table-col Table-col-amount">
                <xsl:value-of select="$previousAdvanceBalance" />
            </td>
        </tr>
    </xsl:template>


    <xsl:template name="licenseBalanceRow">
        <xsl:param name="advanceBalance" />
        <xsl:param name="title" select="'License Balance Forward'" />
        <tr class="Table-row Table-row-data">
            <td colspan="{$columns - 1}" class="Table-col Table-col-heading"><xsl:value-of select="$title" />:</td>
            <td class="Table-col Table-col-amount Table-col-total">
                <xsl:value-of select="$advanceBalance" />
            </td>
        </tr>
    </xsl:template>


    <xsl:template name="licenseAdjustedSubtotalRow">
        <xsl:param name="adjustedSubtotal" />
        <xsl:param name="title" select="'License Adjusted Subtotal'" />
        <tr class="Table-row Table-row-data">
            <td colspan="{$columns - 1}" class="Table-col Table-col-heading"><xsl:value-of select="$title" />:</td>
            <td class="Table-col Table-col-amount Table-col-total">
                <xsl:value-of select="$adjustedSubtotal" />
            </td>
        </tr>
    </xsl:template>


    <xsl:template name="submitButton">
    </xsl:template>


    <xsl:template name="cancelButton">
        <xsl:call-template name="uiButton">
            <xsl:with-param name="content" select="'Back to Statements'" />
            <xsl:with-param name="className" select="'Form-button'" />
            <xsl:with-param name="name" select="'Back'" />
            <xsl:with-param name="url">
                <xsl:value-of select="$mechArea" />
                <xsl:text>?MechanicalRunID=</xsl:text>
                <xsl:value-of select="Statement/MechanicalStatement/MechanicalRunID" />
                <xsl:text>&amp;c=show&amp;PayorID=</xsl:text>
                <xsl:value-of select="Statement/MechanicalStatement/PayorID" />
            </xsl:with-param>
        </xsl:call-template>
    </xsl:template>


</xsl:stylesheet>

