<!--                                                                  -->
<!--  Copyright (C) 2006 RoyaltyShare, Inc.   All Rights Reserved     -->
<!--  $Id$  -->
<!--                                                                  -->
<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" />

    <!--                                -->
    <!-- Display settings column header -->
    <!--                                -->
    <xsl:template name="displayHeader">
        <xsl:param name="baseID"/>
        <xsl:param name="heading"/>
        <th class="Table-col" id="h{$baseID}">
            <span id="xh{$baseID}">
                <xsl:value-of select="$heading"/>
            </span>
        </th>
    </xsl:template>

    <!-- Display settings optional line -->
    <xsl:template name="displayOptional">
        <xsl:param name="baseID"/>
        <xsl:param name="showOptional"/>
        <td class="Table-col">
            <span id="o{$baseID}">
                <xsl:if test="$showOptional = 1">Optional</xsl:if>
            </span>
        </td>
    </xsl:template>

    <!-- Display settings data line -->
    <xsl:template name="displayNote">
        <xsl:param name="baseID"/>
        <xsl:param name="note"/>
        <xsl:param name="basePath"/>
        <xsl:param name="isOptional"/>
        <xsl:param name="showBox"/><!-- set to 1 if the checkbox is to be displayed, 0 if not -->
        <xsl:param name="canEdit"/><!-- set to 1 if the setting is editable; only fields from the DB should have this set -->
        <xsl:variable name="vCondition" select="Form/CurrentSettings" />
        <xsl:variable name="currentValue" select="Form/CurrentSettings/*[ name() = $baseID ][$vCondition] | SettingsHistory/ArtistStatementSetting[@i=$currentPage]/*[ name() = $baseID ][not($vCondition)]" />
        <td class="Table-col StatementSettingsData">
            <!--
            Generate the settings INPUT tag with the checkbox.
            The checkbox may or may not be visible on the UI, but is used by the
            JavaScript function doArtistStatementSettingsCell() when rendering
            the artist settings table.

            global vars:
            openRuns: set to '1' if there are open runs that would prevent editing
            currentPage: set to valid index within SettingsHistory/ArtistStatementSetting

            We need to find the node whose value the checkbox will represent.
            If we're on the Edit screen, then the path "Form/CurrentSettings" should be used
            as the prefix for finding the node, otherwise if we're on the Show screen, then
            the path "SettingsHistory/ArtistStatementSetting[@i=$currentPage]" should be used
            since "Form/CurrentSettings" doesn't exist on the Show page's XML.
            -->
            <span id="{$baseID}">
                <xsl:choose>
                    <xsl:when test="$showBox = 1">
                        <xsl:call-template name="uiCheckbox">
                            <xsl:with-param name="checked">
                                <xsl:if test="$currentValue = 1">true</xsl:if>
                            </xsl:with-param>
                            <xsl:with-param name="disabled">
                                <xsl:if test="$openRuns = 1 or $canEdit = 0">true</xsl:if>
                            </xsl:with-param>
                            <xsl:with-param name="name">Form_Settings_<xsl:value-of select="$baseID"/></xsl:with-param>
                            <xsl:with-param name="id">Form_Settings_<xsl:value-of select="$baseID"/></xsl:with-param>
                            <xsl:with-param name="caption"><xsl:value-of select="$note"/></xsl:with-param>
                            <xsl:with-param name="onClick">javascript:doArtistStatementSettingsCell(this.parentNode.parentNode,1);</xsl:with-param>
                            <xsl:with-param name="value" select="'1'" />
                        </xsl:call-template>
                        <input type="hidden" name="Form_Settings_{$baseID}" id="HIDDEN_Form_Settings_{$baseID}" value="0" />
                    </xsl:when>
                    <xsl:otherwise>
                        <div class="Statement-hidden">
                            <!-- Note: the name and id fields are purposely munged here.  This is to prevent trying to store this form field into the database during a save. -->
                            <!-- non-optional columns appear as if they're selected -->
                            <xsl:call-template name="uiCheckbox">
                                <xsl:with-param name="checked">
                                    <xsl:if test="$isOptional = '' or $isOptional = 0">true</xsl:if>
                                </xsl:with-param>
                                <xsl:with-param name="disabled">
                                    <xsl:if test="$openRuns = 1 or $canEdit = 0">true</xsl:if>
                                </xsl:with-param>
                                <xsl:with-param name="name">xxForm_Settings_<xsl:value-of select="$baseID"/></xsl:with-param>
                                <xsl:with-param name="id">xxForm_Settings_<xsl:value-of select="$baseID"/></xsl:with-param>
                                <xsl:with-param name="caption"><xsl:value-of select="$note"/></xsl:with-param>
                            </xsl:call-template>
                        </div>
                    </xsl:otherwise>
                </xsl:choose>
            </span>
        </td>
    </xsl:template>

    <!-- Display sample Unit Royalties data -->
    <xsl:template name="displaySampleUnitRoyaltiesHeader">
        <xsl:param name="baseID"/>
        <xsl:param name="data"/>
        <th class="Table-col" id="urh_{$baseID}">
            <xsl:if test="$data">
                <xsl:value-of select="$data"/>
            </xsl:if>
        </th>
    </xsl:template>

    <xsl:template name="displaySampleUnitRoyaltiesData">
        <xsl:param name="baseID"/>
        <xsl:param name="data"/>
        <td class="Table-col" id="ur_{$baseID}">
            <xsl:if test="$data">
                <xsl:value-of select="$data"/>
            </xsl:if>
        </td>
    </xsl:template>

    <!-- Display sample Net Revenue Royalties data -->
    <xsl:template name="displaySampleNetRevenueRoyaltiesHeader">
        <xsl:param name="baseID"/>
        <xsl:param name="data"/>
        <th class="Table-col" id="nrh_{$baseID}">
            <xsl:if test="$data">
                <xsl:value-of select="$data"/>
            </xsl:if>
        </th>
    </xsl:template>

    <xsl:template name="displaySampleNetRevenueRoyaltiesData">
        <xsl:param name="baseID"/>
        <xsl:param name="data"/>
        <td class="Table-col" id="nr_{$baseID}">
            <xsl:if test="$data">
                <xsl:value-of select="$data"/>
            </xsl:if>
        </td>
    </xsl:template>

    <!-- //////////////////////////////////////////////////////////////////////////////////////////

    The following are templates for displaying the different rows in the artist statement
    settings UI (both the 'show' and 'edit' screens).

    Each setting has to span four different rows (header, optional, notes, checkbox);
    so if you have to add/remove a setting, be sure you make the required change in each row.

    For each template call, set the 'baseID' parameter - this is used to build the element
    ID attributes required by the JavaScript which controls the UI settings behavior

    The first three templates (displaySettingsHeaderRow, displaySettingsOptionalRow and
    displaySettingsNoteRow are the same whether we're displaying the settings or editing
    the current one.  The fourth template, displaySettingsCheckboxRow, uses the 'showBoxes'
    parameter to determine if the checkboxes are visible on the UI.

    ///////////////////////////////////////////////////////////////////////////////////////// -->

    <!-- Display the header row for all settings -->
    <xsl:template name="displaySettingsHeaderRow">
        <tr class="Table-row Table-row-header">
            <xsl:call-template name="displayHeader">
                <xsl:with-param name="baseID">ShowTrackTitle</xsl:with-param>
                <xsl:with-param name="heading">Track Title</xsl:with-param>
            </xsl:call-template>

            <xsl:call-template name="displayHeader">
                <xsl:with-param name="baseID">ShowSource</xsl:with-param>
                <xsl:with-param name="heading">Source</xsl:with-param>
            </xsl:call-template>

            <xsl:call-template name="displayHeader">
                <xsl:with-param name="baseID">ShowRegion</xsl:with-param>
                <xsl:with-param name="heading">Region</xsl:with-param>
            </xsl:call-template>

            <xsl:call-template name="displayHeader">
                <xsl:with-param name="baseID">ShowChannel</xsl:with-param>
                <xsl:with-param name="heading">Channel</xsl:with-param>
            </xsl:call-template>

            <xsl:call-template name="displayHeader">
                <xsl:with-param name="baseID">ShowPriceTier</xsl:with-param>
                <xsl:with-param name="heading">Price Tier</xsl:with-param>
            </xsl:call-template>

            <xsl:call-template name="displayHeader">
                <xsl:with-param name="baseID">ShowSalesPrice</xsl:with-param>
                <xsl:with-param name="heading">Sales Price</xsl:with-param>
            </xsl:call-template>

            <xsl:call-template name="displayHeader">
                <xsl:with-param name="baseID">ShowRateType</xsl:with-param>
                <xsl:with-param name="heading">Rate Type</xsl:with-param>
            </xsl:call-template>

            <xsl:call-template name="displayHeader">
                <xsl:with-param name="baseID">ShowRoyaltyRate</xsl:with-param>
                <xsl:with-param name="heading">Base Rate</xsl:with-param>
            </xsl:call-template>

            <xsl:call-template name="displayHeader">
                <xsl:with-param name="baseID">ShowProration</xsl:with-param>
                <xsl:with-param name="heading">Proration</xsl:with-param>
            </xsl:call-template>

            <xsl:call-template name="displayHeader">
                <xsl:with-param name="baseID">ShowProratedRate</xsl:with-param>
                <xsl:with-param name="heading">Prorated Rate</xsl:with-param>
            </xsl:call-template>

            <xsl:call-template name="displayHeader">
                <xsl:with-param name="baseID">ShowRateReduction</xsl:with-param>
                <xsl:with-param name="heading">Rate Reduction</xsl:with-param>
            </xsl:call-template>

            <xsl:call-template name="displayHeader">
                <xsl:with-param name="baseID">ShowPackaging</xsl:with-param>
                <xsl:with-param name="heading">Packaging</xsl:with-param>
            </xsl:call-template>

            <xsl:call-template name="displayHeader">
                <xsl:with-param name="baseID">ShowEffectiveRate</xsl:with-param>
                <xsl:with-param name="heading">Effective Rate</xsl:with-param>
            </xsl:call-template>

            <xsl:call-template name="displayHeader">
                <xsl:with-param name="baseID">ShowGrossUnits</xsl:with-param>
                <xsl:with-param name="heading">Gross Units</xsl:with-param>
            </xsl:call-template>

            <xsl:call-template name="displayHeader">
                <xsl:with-param name="baseID">ShowGrossSales</xsl:with-param>
                <xsl:with-param name="heading">Gross Sales</xsl:with-param>
            </xsl:call-template>

            <xsl:call-template name="displayHeader">
                <xsl:with-param name="baseID">ShowPercentageOfSales</xsl:with-param>
                <xsl:with-param name="heading">% of Sales</xsl:with-param>
            </xsl:call-template>

            <xsl:call-template name="displayHeader">
                <xsl:with-param name="baseID">ShowFreeGoods</xsl:with-param>
                <xsl:with-param name="heading">Free Goods</xsl:with-param>
            </xsl:call-template>

            <xsl:call-template name="displayHeader">
                <xsl:with-param name="baseID">ShowReserves</xsl:with-param>
                <xsl:with-param name="heading">Reserves</xsl:with-param>
            </xsl:call-template>

            <xsl:call-template name="displayHeader">
                <xsl:with-param name="baseID">ShowLiquidations</xsl:with-param>
                <xsl:with-param name="heading">Liquidations</xsl:with-param>
            </xsl:call-template>

            <xsl:call-template name="displayHeader">
                <xsl:with-param name="baseID">ShowReturns</xsl:with-param>
                <xsl:with-param name="heading">Returns</xsl:with-param>
            </xsl:call-template>

            <xsl:call-template name="displayHeader">
                <xsl:with-param name="baseID">ShowNetUnits</xsl:with-param>
                <xsl:with-param name="heading">Net Units</xsl:with-param>
            </xsl:call-template>

            <xsl:call-template name="displayHeader">
                <xsl:with-param name="baseID">ShowNetSales</xsl:with-param>
                <xsl:with-param name="heading">Net Sales</xsl:with-param>
            </xsl:call-template>

            <xsl:call-template name="displayHeader">
                <xsl:with-param name="baseID">ShowTotal</xsl:with-param>
                <xsl:with-param name="heading">Total</xsl:with-param>
            </xsl:call-template>
        </tr>
    </xsl:template>

    <!-- Display the option row for all settings -->
    <xsl:template name="displaySettingsOptionalRow">
        <tr class="Table-row Table-row-data">
            <xsl:call-template name="displayOptional">
                <xsl:with-param name="baseID">ShowTrackTitle</xsl:with-param>
            </xsl:call-template>

            <xsl:call-template name="displayOptional">
                <xsl:with-param name="baseID">ShowSource</xsl:with-param>
            </xsl:call-template>

            <xsl:call-template name="displayOptional">
                <xsl:with-param name="baseID">ShowRegion</xsl:with-param>
            </xsl:call-template>

            <xsl:call-template name="displayOptional">
                <xsl:with-param name="baseID">ShowChannel</xsl:with-param>
            </xsl:call-template>

            <xsl:call-template name="displayOptional">
                <xsl:with-param name="baseID">ShowPriceTier</xsl:with-param>
            </xsl:call-template>

            <xsl:call-template name="displayOptional">
                <xsl:with-param name="baseID">ShowSalesPrice</xsl:with-param>
            </xsl:call-template>

            <xsl:call-template name="displayOptional">
                <xsl:with-param name="baseID">ShowRateType</xsl:with-param>
                <xsl:with-param name="showOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displayOptional">
                <xsl:with-param name="baseID">ShowRoyaltyRate</xsl:with-param>
                <xsl:with-param name="showOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displayOptional">
                <xsl:with-param name="baseID">ShowProration</xsl:with-param>
                <xsl:with-param name="showOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displayOptional">
                <xsl:with-param name="baseID">ShowProratedRate</xsl:with-param>
                <xsl:with-param name="showOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displayOptional">
                <xsl:with-param name="baseID">ShowRateReduction</xsl:with-param>
                <xsl:with-param name="showOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displayOptional">
                <xsl:with-param name="baseID">ShowPackaging</xsl:with-param>
                <xsl:with-param name="showOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displayOptional">
                <xsl:with-param name="baseID">ShowEffectiveRate</xsl:with-param>
                <xsl:with-param name="showOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displayOptional">
                <xsl:with-param name="baseID">ShowGrossUnits</xsl:with-param>
                <xsl:with-param name="showOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displayOptional">
                <xsl:with-param name="baseID">ShowGrossSales</xsl:with-param>
                <xsl:with-param name="showOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displayOptional">
                <xsl:with-param name="baseID">ShowPercentageOfSales</xsl:with-param>
                <xsl:with-param name="showOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displayOptional">
                <xsl:with-param name="baseID">ShowFreeGoods</xsl:with-param>
                <xsl:with-param name="showOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displayOptional">
                <xsl:with-param name="baseID">ShowReserves</xsl:with-param>
                <xsl:with-param name="showOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displayOptional">
                <xsl:with-param name="baseID">ShowLiquidations</xsl:with-param>
                <xsl:with-param name="showOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displayOptional">
                <xsl:with-param name="baseID">ShowReturns</xsl:with-param>
                <xsl:with-param name="showOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displayOptional">
                <xsl:with-param name="baseID">ShowNetUnits</xsl:with-param>
            </xsl:call-template>

            <xsl:call-template name="displayOptional">
                <xsl:with-param name="baseID">ShowNetSales</xsl:with-param>
                <xsl:with-param name="showOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displayOptional">
                <xsl:with-param name="baseID">ShowTotal</xsl:with-param>
            </xsl:call-template>
        </tr>
    </xsl:template>


    <!-- Display the main data row for all settings -->
    <xsl:template name="displaySettingsNoteRow">
        <xsl:param name="showBoxes"/> <!-- 1 = show checkbox; 2 = hide checkbox -->
        <xsl:param name="canEdit"/> <!-- 1 = boxes are selectable; 2 = boxes are non-selectable -->
        <xsl:variable name="prefix">
            <xsl:choose>
                <xsl:when test="$showBoxes = 1">
                    <xsl:value-of select="Form/CurrentSettings" />
                </xsl:when>
                <xsl:otherwise>
                    <xsl:value-of select="SettingsHistory/ArtistStatementSetting[@i=$currentPage]" />
                </xsl:otherwise>
            </xsl:choose>
        </xsl:variable>
        <tr class="Table-row Table-row-data">
            <xsl:call-template name="displayNote">
                <xsl:with-param name="baseID">ShowTrackTitle</xsl:with-param>
                <xsl:with-param name="basePath" select="$prefix" />
            </xsl:call-template>

            <xsl:call-template name="displayNote">
                <xsl:with-param name="baseID">ShowSource</xsl:with-param>
                <xsl:with-param name="basePath" select="$prefix" />
            </xsl:call-template>

            <xsl:call-template name="displayNote">
                <xsl:with-param name="baseID">ShowRegion</xsl:with-param>
                <xsl:with-param name="basePath" select="$prefix" />
            </xsl:call-template>

            <xsl:call-template name="displayNote">
                <xsl:with-param name="baseID">ShowChannel</xsl:with-param>
                <xsl:with-param name="basePath" select="$prefix" />
            </xsl:call-template>

            <xsl:call-template name="displayNote">
                <xsl:with-param name="baseID">ShowPriceTier</xsl:with-param>
                <xsl:with-param name="note">Unit-based only</xsl:with-param>
                <xsl:with-param name="basePath" select="$prefix" />
            </xsl:call-template>

            <xsl:call-template name="displayNote">
                <xsl:with-param name="baseID">ShowSalesPrice</xsl:with-param>
                <xsl:with-param name="note">Unit-based only</xsl:with-param>
                <xsl:with-param name="basePath" select="$prefix" />
                <xsl:with-param name="isOptional" select="1" />
                <xsl:with-param name="showBox" select="$showBoxes" />
                <xsl:with-param name="canEdit" select="$canEdit" />
            </xsl:call-template>

            <xsl:call-template name="displayNote">
                <xsl:with-param name="baseID">ShowRateType</xsl:with-param>
                <xsl:with-param name="basePath" select="$prefix" />
                <xsl:with-param name="isOptional" select="1" />
                <xsl:with-param name="showBox" select="$showBoxes" />
                <xsl:with-param name="canEdit" select="$canEdit" />
            </xsl:call-template>

            <xsl:call-template name="displayNote">
                <xsl:with-param name="baseID">ShowRoyaltyRate</xsl:with-param>
                <xsl:with-param name="basePath" select="$prefix" />
                <xsl:with-param name="isOptional" select="1" />
                <xsl:with-param name="showBox" select="$showBoxes" />
                <xsl:with-param name="canEdit" select="$canEdit" />
            </xsl:call-template>

            <xsl:call-template name="displayNote">
                <xsl:with-param name="baseID">ShowProration</xsl:with-param>
                <xsl:with-param name="basePath" select="$prefix" />
                <xsl:with-param name="isOptional" select="1" />
                <xsl:with-param name="showBox" select="$showBoxes" />
                <xsl:with-param name="canEdit" select="$canEdit" />
            </xsl:call-template>

            <xsl:call-template name="displayNote">
                <xsl:with-param name="baseID">ShowProratedRate</xsl:with-param>
                <xsl:with-param name="basePath" select="$prefix" />
                <xsl:with-param name="isOptional" select="1" />
                <xsl:with-param name="showBox" select="$showBoxes" />
                <xsl:with-param name="canEdit" select="$canEdit" />
            </xsl:call-template>

            <xsl:call-template name="displayNote">
                <xsl:with-param name="baseID">ShowRateReduction</xsl:with-param>
                <xsl:with-param name="basePath" select="$prefix" />
                <xsl:with-param name="isOptional" select="1" />
                <xsl:with-param name="showBox" select="$showBoxes" />
                <xsl:with-param name="canEdit" select="$canEdit" />
            </xsl:call-template>

            <xsl:call-template name="displayNote">
                <xsl:with-param name="baseID">ShowPackaging</xsl:with-param>
                <xsl:with-param name="basePath" select="$prefix" />
                <xsl:with-param name="isOptional" select="1" />
                <xsl:with-param name="showBox" select="$showBoxes" />
                <xsl:with-param name="canEdit" select="$canEdit" />
            </xsl:call-template>

            <xsl:call-template name="displayNote">
                <xsl:with-param name="baseID">ShowEffectiveRate</xsl:with-param>
                <xsl:with-param name="basePath" select="$prefix" />
                <xsl:with-param name="isOptional" select="1" />
                <xsl:with-param name="showBox" select="$showBoxes" />
                <xsl:with-param name="canEdit" select="$canEdit" />
            </xsl:call-template>

            <xsl:call-template name="displayNote">
                <xsl:with-param name="baseID">ShowGrossUnits</xsl:with-param>
                <xsl:with-param name="note">Unit-based only</xsl:with-param>
                <xsl:with-param name="basePath" select="$prefix" />
                <xsl:with-param name="isOptional" select="1" />
                <xsl:with-param name="showBox" select="$showBoxes" />
                <xsl:with-param name="canEdit" select="$canEdit" />
            </xsl:call-template>

            <xsl:call-template name="displayNote">
                <xsl:with-param name="baseID">ShowGrossSales</xsl:with-param>
                <xsl:with-param name="note">Revenue based only</xsl:with-param>
                <xsl:with-param name="basePath" select="$prefix" />
                <xsl:with-param name="isOptional" select="1" />
                <xsl:with-param name="showBox" select="$showBoxes" />
                <xsl:with-param name="canEdit" select="$canEdit" />
            </xsl:call-template>

            <xsl:call-template name="displayNote">
                <xsl:with-param name="baseID">ShowPercentageOfSales</xsl:with-param>
                <xsl:with-param name="basePath" select="$prefix" />
                <xsl:with-param name="isOptional" select="1" />
                <xsl:with-param name="showBox" select="$showBoxes" />
                <xsl:with-param name="canEdit" select="$canEdit" />
            </xsl:call-template>

            <xsl:call-template name="displayNote">
                <xsl:with-param name="baseID">ShowFreeGoods</xsl:with-param>
                <xsl:with-param name="basePath" select="$prefix" />
                <xsl:with-param name="isOptional" select="1" />
                <xsl:with-param name="showBox" select="$showBoxes" />
                <xsl:with-param name="canEdit" select="$canEdit" />
            </xsl:call-template>

            <xsl:call-template name="displayNote">
                <xsl:with-param name="baseID">ShowReserves</xsl:with-param>
                <xsl:with-param name="basePath" select="$prefix" />
                <xsl:with-param name="isOptional" select="1" />
                <xsl:with-param name="showBox" select="$showBoxes" />
                <xsl:with-param name="canEdit" select="$canEdit" />
            </xsl:call-template>

            <xsl:call-template name="displayNote">
                <xsl:with-param name="baseID">ShowLiquidations</xsl:with-param>
                <xsl:with-param name="basePath" select="$prefix" />
                <xsl:with-param name="isOptional" select="1" />
                <xsl:with-param name="showBox" select="$showBoxes" />
                <xsl:with-param name="canEdit" select="$canEdit" />
            </xsl:call-template>

            <xsl:call-template name="displayNote">
                <xsl:with-param name="baseID">ShowReturns</xsl:with-param>
                <xsl:with-param name="note">Unit-based only</xsl:with-param>
                <xsl:with-param name="basePath" select="$prefix" />
                <xsl:with-param name="isOptional" select="1" />
                <xsl:with-param name="showBox" select="$showBoxes" />
                <xsl:with-param name="canEdit" select="$canEdit" />
            </xsl:call-template>

            <xsl:call-template name="displayNote">
                <xsl:with-param name="baseID">ShowNetUnits</xsl:with-param>
                <xsl:with-param name="note">Unit-based only</xsl:with-param>
                <xsl:with-param name="basePath" select="$prefix" />
            </xsl:call-template>

            <xsl:call-template name="displayNote">
                <xsl:with-param name="baseID">ShowNetSales</xsl:with-param>
                <xsl:with-param name="note">Revenue based only</xsl:with-param>
                <xsl:with-param name="basePath" select="$prefix" />
                <xsl:with-param name="isOptional" select="1" />
                <xsl:with-param name="showBox" select="$showBoxes" />
                <xsl:with-param name="canEdit" select="$canEdit" />
            </xsl:call-template>

            <xsl:call-template name="displayNote">
                <xsl:with-param name="baseID">ShowTotal</xsl:with-param>
                <xsl:with-param name="basePath" select="$prefix" />
            </xsl:call-template>
        </tr>
    </xsl:template>

    <!-- Display the sample unit royalties statement header -->
    <xsl:template name="displayUnitRoyaltiesSampleHeader">
        <tr class="Table-row Table-row-header">
            <xsl:call-template name="displaySampleUnitRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowTrackTitle</xsl:with-param>
                <xsl:with-param name="data" select="'Track Title'" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowSource</xsl:with-param>
                <xsl:with-param name="data" select="'Source'" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowRegion</xsl:with-param>
                <xsl:with-param name="data" select="'Region'" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowChannel</xsl:with-param>
                <xsl:with-param name="data" select="'Channel'" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowPriceTier</xsl:with-param>
                <xsl:with-param name="data" select="'Price Tier'" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowSalesPrice</xsl:with-param>
                <xsl:with-param name="data" select="'Sales Price'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowRateType</xsl:with-param>
                <xsl:with-param name="data" select="'Rate Type'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowRoyaltyRate</xsl:with-param>
                <xsl:with-param name="data" select="'Base Rate'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowProration</xsl:with-param>
                <xsl:with-param name="data" select="'Proration'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowProratedRate</xsl:with-param>
                <xsl:with-param name="data" select="'Prorated Rate'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowRateReduction</xsl:with-param>
                <xsl:with-param name="data" select="'Rate Reduction'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowPackaging</xsl:with-param>
                <xsl:with-param name="data" select="'Packaging'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowEffectiveRate</xsl:with-param>
                <xsl:with-param name="data" select="'Effective Rate'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowGrossUnits</xsl:with-param>
                <xsl:with-param name="data" select="'Gross Units'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowPercentageOfSales</xsl:with-param>
                <xsl:with-param name="data" select="'% of Sales'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowFreeGoods</xsl:with-param>
                <xsl:with-param name="data" select="'Free Goods'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowReserves</xsl:with-param>
                <xsl:with-param name="data" select="'Reserves'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowLiquidations</xsl:with-param>
                <xsl:with-param name="data" select="'Liquidations'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowReturns</xsl:with-param>
                <xsl:with-param name="data" select="'Returns'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowNetUnits</xsl:with-param>
                <xsl:with-param name="data" select="'Net Units'" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowTotal</xsl:with-param>
                <xsl:with-param name="data" select="'Total'" />
            </xsl:call-template>

        </tr>
    </xsl:template>

    <!-- Display the sample unit royalties statement row -->
    <xsl:template name="displayUnitRoyaltiesSample">
        <tr class="Table-row Table-row-data">
            <xsl:call-template name="displaySampleUnitRoyaltiesData">
                <xsl:with-param name="baseID">ShowTrackTitle</xsl:with-param>
                <xsl:with-param name="data" select="'Mack the Knife'" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesData">
                <xsl:with-param name="baseID">ShowSource</xsl:with-param>
                <xsl:with-param name="data" select="'CD'" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesData">
                <xsl:with-param name="baseID">ShowRegion</xsl:with-param>
                <xsl:with-param name="data" select="'Rest of World'" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesData">
                <xsl:with-param name="baseID">ShowChannel</xsl:with-param>
                <xsl:with-param name="data" select="'Retail'" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesData">
                <xsl:with-param name="baseID">ShowPriceTier</xsl:with-param>
                <xsl:with-param name="data" select="'Full'" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesData">
                <xsl:with-param name="baseID">ShowSalesPrice</xsl:with-param>
                <xsl:with-param name="data" select="'$10.99'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesData">
                <xsl:with-param name="baseID">ShowRateType</xsl:with-param>
                <xsl:with-param name="data" select="'% Retail'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesData">
                <xsl:with-param name="baseID">ShowRoyaltyRate</xsl:with-param>
                <xsl:with-param name="data" select="'15.0000%'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesData">
                <xsl:with-param name="baseID">ShowProration</xsl:with-param>
                <xsl:with-param name="data" select="'12'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesData">
                <xsl:with-param name="baseID">ShowProratedRate</xsl:with-param>
                <xsl:with-param name="data" select="'1.2500%'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesData">
                <xsl:with-param name="baseID">ShowRateReduction</xsl:with-param>
                <xsl:with-param name="data" select="'95.00%'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesData">
                <xsl:with-param name="baseID">ShowPackaging</xsl:with-param>
                <xsl:with-param name="data" select="'10.00%'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesData">
                <xsl:with-param name="baseID">ShowEffectiveRate</xsl:with-param>
                <xsl:with-param name="data" select="'0.1175'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesData">
                <xsl:with-param name="baseID">ShowGrossUnits</xsl:with-param>
                <xsl:with-param name="data" select="'398'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesData">
                <xsl:with-param name="baseID">ShowPercentageOfSales</xsl:with-param>
                <xsl:with-param name="data" select="'95.00%'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesData">
                <xsl:with-param name="baseID">ShowFreeGoods</xsl:with-param>
                <xsl:with-param name="data" select="'5.00%'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesData">
                <xsl:with-param name="baseID">ShowReserves</xsl:with-param>
                <xsl:with-param name="data" select="'76'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesData">
                <xsl:with-param name="baseID">ShowLiquidations</xsl:with-param>
                <xsl:with-param name="data" select="'8'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesData">
                <xsl:with-param name="baseID">ShowReturns</xsl:with-param>
                <xsl:with-param name="data" select="'6'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesData">
                <xsl:with-param name="baseID">ShowNetUnits</xsl:with-param>
                <xsl:with-param name="data" select="'275'" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleUnitRoyaltiesData">
                <xsl:with-param name="baseID">ShowTotal</xsl:with-param>
                <xsl:with-param name="data" select="'$32.31'" />
            </xsl:call-template>
        </tr>
    </xsl:template>

    <!-- Display the sample net revenue royalties statement header -->
    <xsl:template name="displayNetRevenueRoyaltiesSampleHeader">
        <tr class="Table-row Table-row-header">
            <xsl:call-template name="displaySampleNetRevenueRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowTrackTitle</xsl:with-param>
                <xsl:with-param name="data" select="'Track Title'" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleNetRevenueRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowSource</xsl:with-param>
                <xsl:with-param name="data" select="'Source'" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleNetRevenueRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowRegion</xsl:with-param>
                <xsl:with-param name="data" select="'Region'" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleNetRevenueRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowChannel</xsl:with-param>
                <xsl:with-param name="data" select="'Channel'" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleNetRevenueRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowRateType</xsl:with-param>
                <xsl:with-param name="data" select="'Rate Type'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleNetRevenueRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowRoyaltyRate</xsl:with-param>
                <xsl:with-param name="data" select="'Base Rate'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleNetRevenueRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowProration</xsl:with-param>
                <xsl:with-param name="data" select="'Proration'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleNetRevenueRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowProratedRate</xsl:with-param>
                <xsl:with-param name="data" select="'Prorated Rate'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleNetRevenueRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowRateReduction</xsl:with-param>
                <xsl:with-param name="data" select="'Rate Reduction'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleNetRevenueRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowPackaging</xsl:with-param>
                <xsl:with-param name="data" select="'Packaging'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleNetRevenueRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowEffectiveRate</xsl:with-param>
                <xsl:with-param name="data" select="'Effective Rate'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleNetRevenueRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowGrossSales</xsl:with-param>
                <xsl:with-param name="data" select="'Gross Sales'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleNetRevenueRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowPercentageOfSales</xsl:with-param>
                <xsl:with-param name="data" select="'% of Sales'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleNetRevenueRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowFreeGoods</xsl:with-param>
                <xsl:with-param name="data" select="'Free Goods'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleNetRevenueRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowReserves</xsl:with-param>
                <xsl:with-param name="data" select="'Reserves'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleNetRevenueRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowLiquidations</xsl:with-param>
                <xsl:with-param name="data" select="'Liquidations'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleNetRevenueRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowNetUnits</xsl:with-param>
                <xsl:with-param name="data" select="'Net Units'" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleNetRevenueRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowNetSales</xsl:with-param>
                <xsl:with-param name="data" select="'Net Sales'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleNetRevenueRoyaltiesHeader">
                <xsl:with-param name="baseID">ShowTotal</xsl:with-param>
                <xsl:with-param name="data" select="'Total'" />
            </xsl:call-template>
        </tr>
    </xsl:template>

    <!-- Display the sample unit royalties statement row -->
    <xsl:template name="displayNetRevenueRoyaltiesSample">
        <tr class="Table-row Table-row-data">
            <xsl:call-template name="displaySampleNetRevenueRoyaltiesData">
                <xsl:with-param name="baseID">ShowTrackTitle</xsl:with-param>
                <xsl:with-param name="data" select="'Mack the Knife'" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleNetRevenueRoyaltiesData">
                <xsl:with-param name="baseID">ShowSource</xsl:with-param>
                <xsl:with-param name="data" select="'CD'" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleNetRevenueRoyaltiesData">
                <xsl:with-param name="baseID">ShowRegion</xsl:with-param>
                <xsl:with-param name="data" select="'Rest of World'" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleNetRevenueRoyaltiesData">
                <xsl:with-param name="baseID">ShowChannel</xsl:with-param>
                <xsl:with-param name="data" select="'Retail'" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleNetRevenueRoyaltiesData">
                <xsl:with-param name="baseID">ShowRateType</xsl:with-param>
                <xsl:with-param name="data" select="'% Net Revenue'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleNetRevenueRoyaltiesData">
                <xsl:with-param name="baseID">ShowRoyaltyRate</xsl:with-param>
                <xsl:with-param name="data" select="'15.0000%'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleNetRevenueRoyaltiesData">
                <xsl:with-param name="baseID">ShowProration</xsl:with-param>
                <xsl:with-param name="data" select="'12'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleNetRevenueRoyaltiesData">
                <xsl:with-param name="baseID">ShowProratedRate</xsl:with-param>
                <xsl:with-param name="data" select="'1.2500%'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleNetRevenueRoyaltiesData">
                <xsl:with-param name="baseID">ShowRateReduction</xsl:with-param>
                <xsl:with-param name="data" select="'95.00%'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleNetRevenueRoyaltiesData">
                <xsl:with-param name="baseID">ShowPackaging</xsl:with-param>
                <xsl:with-param name="data" select="'10.00%'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleNetRevenueRoyaltiesData">
                <xsl:with-param name="baseID">ShowEffectiveRate</xsl:with-param>
                <xsl:with-param name="data" select="'1.0153%'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleNetRevenueRoyaltiesData">
                <xsl:with-param name="baseID">ShowGrossSales</xsl:with-param>
                <xsl:with-param name="data" select="'$163.34'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleNetRevenueRoyaltiesData">
                <xsl:with-param name="baseID">ShowPercentageOfSales</xsl:with-param>
                <xsl:with-param name="data" select="'95.00%'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleNetRevenueRoyaltiesData">
                <xsl:with-param name="baseID">ShowFreeGoods</xsl:with-param>
                <xsl:with-param name="data" select="'5.00%'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleNetRevenueRoyaltiesData">
                <xsl:with-param name="baseID">ShowReserves</xsl:with-param>
                <xsl:with-param name="data" select="'$24.50'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleNetRevenueRoyaltiesData">
                <xsl:with-param name="baseID">ShowLiquidations</xsl:with-param>
                <xsl:with-param name="data" select="'$15.75'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleNetRevenueRoyaltiesData">
                <xsl:with-param name="baseID">ShowNetUnits</xsl:with-param>
                <xsl:with-param name="data" select="'30'" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleNetRevenueRoyaltiesData">
                <xsl:with-param name="baseID">ShowNetSales</xsl:with-param>
                <xsl:with-param name="data" select="'$114.92'" />
                <xsl:with-param name="isOptional" select="1" />
            </xsl:call-template>

            <xsl:call-template name="displaySampleNetRevenueRoyaltiesData">
                <xsl:with-param name="baseID">ShowTotal</xsl:with-param>
                <xsl:with-param name="data" select="'$1.17'" />
            </xsl:call-template>
        </tr>
    </xsl:template>

</xsl:stylesheet>
