<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="http://www.w3.org/TR/html4/strict.dtd" doctype-public="-//W3C//DTD HTML 4.01//EN" encoding="utf-8" />

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

    <xsl:variable name="distributedCount">
        <xsl:value-of select="count(/Root/Form/MechanicalStatementList/MechanicalStatement[DateSent != ''])" />
    </xsl:variable>

    <xsl:variable name="eligibleCount">
        <xsl:choose>
            <xsl:when test="/Root/Params/filterBy = 4">
                <xsl:value-of select="count(/Root/Form/MechanicalStatementList/MechanicalStatement[OnHold = 1]/Publisher[Distribution = 1])" />
            </xsl:when>
            <xsl:otherwise>
                <xsl:value-of select="count(/Root/Form/MechanicalStatementList/MechanicalStatement[OnHold != 1]/Publisher[Distribution = 1])" />
            </xsl:otherwise>
        </xsl:choose>
    </xsl:variable>

    <xsl:variable name="totalCount">
        <xsl:value-of select="count(/Root/Form/MechanicalStatementList/MechanicalStatement)" />
    </xsl:variable>

    <xsl:variable name="currencyCode" select="/Root/Form/MechanicalStatementList/MechanicalStatement/AmountDue/@currency_code" />

    <xsl:template name="pickLayout">

        <xsl:variable name="totalInRunCount">
            <xsl:if test="Form/MechanicalStatementList/Pagination/TotalPages > 1">
                <xsl:value-of select="Form/EligibleCount - Form/DistributedCount" />
            </xsl:if>
        </xsl:variable>
        <xsl:call-template name="notificationPopup" />
        <section class="MainBaseSection js-distribute-online-table" data-all-in-run="{$totalInRunCount}">
            <form action="/rps/mechanical" method="post" name="distributeStatements" id="distributeStatements">
                <input type="hidden" name="c" value="distribute" />
                <input type="hidden" name="page" value="{Params/page}" />
                <input type="hidden" name="PayorID" value="{Params/PayorID}" />
                <input type="hidden" name="MechanicalRunID" value="{Params/MechanicalRunID}" />
                <input type="hidden" name="formSubmit" id="formSubmit" value="1" />
                <input type="hidden" name="sendAll" id="sendAll" value="0" />

                <div class="Table-controls Table-controls-top">
                    <div class="Table-controls-item">
                        <xsl:call-template name="statementFilter" />
                    </div>
                </div>

                <xsl:call-template name="successMessageGeneral">
                    <xsl:with-param name="successMessage">
                        <xsl:choose>
                            <xsl:when test="Messages/Message/Code = 'notification_text_saved'">Email custom notification message has been saved</xsl:when>
                            <xsl:otherwise>
                                <xsl:value-of select="Params/distributed" /> Statement<xsl:if test="Params/distributed != 1">s</xsl:if> distributed to the payee portal!
                            </xsl:otherwise>
                        </xsl:choose>
                    </xsl:with-param>
                </xsl:call-template>

                <xsl:choose>
                    <xsl:when test="Form/MechanicalStatementList/MechanicalStatement">
                        <div class="Statement-fill-controls">
                            <div class="Form-group Form-group-horizontal">
                                <div class="Form-item">
                                    <xsl:call-template name="uiSelectAllDropdown">
                                        <xsl:with-param name="id" select="'statements-royalty-edit-payment-select-all'" />
                                        <xsl:with-param name="className" select="'TableQuickFill-dropdown'" />
                                    </xsl:call-template>
                                </div>
                                <div class="Form-item">
                                    <p>You have distributed <strong><xsl:value-of select="Form/DistributedCount" /></strong> of <strong><xsl:value-of select="Form/EligibleCount" /></strong> eligible statement<xsl:if test="Form/EligibleCount != 1">s</xsl:if>.</p>
                                </div>
                                <xsl:if test="not(/Root/Params/filterBy) or /Root/Params/filterBy != 4">
                                    <div class="Form-item-tooltip">
                                        <xsl:call-template name="helpIcon">
                                            <xsl:with-param name="tip">
                                                Statements for publishers with an On-Hold status can only be distributed to the payee portal when the On-Hold “Now Viewing” filter has been selected above.
                                            </xsl:with-param>
                                        </xsl:call-template>
                                    </div>
                                </xsl:if>
                                <div class="Form-item-submit-right">
                                    <xsl:call-template name="submitButtonTop" />
                                </div>
                            </div>
                            <div class="Statement-fill-indicators TableQuickFill-indicators">
                                <span class="Statement-fill-help-text TableQuickFill-help-text">Select a publisher to take action.</span>
                            </div>
                        </div>

                        <xsl:call-template name="statementList" />
                    </xsl:when>
                    <xsl:otherwise>
                        <div class="Table-empty-results">
                            No statements are available in this view.
                        </div>
                    </xsl:otherwise>
                </xsl:choose>

                <xsl:if test="Form/MechanicalStatementList/Pagination/TotalPages &gt; 1">
                    <div class="Table-controls Table-controls-bottom">
                        <div class="Table-controls-item Table-controls-item-pagination">
                            <xsl:call-template name="statementNav" />
                        </div>
                    </div>
                </xsl:if>
                <xsl:call-template name="buttons" />
            </form>
        </section>
    </xsl:template>


    <xsl:template name="statementNav">
       <xsl:call-template name="uiPagination">
             <xsl:with-param name="lastPage" select="Form/MechanicalStatementList/Pagination/TotalPages"/>
            <xsl:with-param name="currentPage" select="Form/MechanicalStatementList/Pagination/Current"/>
            <xsl:with-param name="searchParams">
                <xsl:text>&amp;MechanicalRunID=</xsl:text>
                <xsl:value-of select="Params/MechanicalRunID" />
                <xsl:text>&amp;PayorID=</xsl:text>
                <xsl:value-of select="Params/PayorID" />
                <xsl:text>&amp;filterBy=</xsl:text>
                <xsl:value-of select="Params/filterBy" />
            </xsl:with-param>
            <xsl:with-param name="searchPreffix" select="'c=distribute&amp;'" />
        </xsl:call-template>
    </xsl:template>

    <xsl:template name="statementList">
        <table class="Table js-distribute-online-table-node" id="paymentTable">
            <thead>
                <xsl:call-template name="statementHeader" />
            </thead>
            <tbody>
                <xsl:for-each select="Form/MechanicalStatementList/MechanicalStatement">
                    <xsl:call-template name="statementRow" />
                </xsl:for-each>
            </tbody>
        </table>
    </xsl:template>

    <xsl:template name="statementHeader">
        <tr class="Table-row Table-row-header">
            <th class="Table-col Table-col-select"></th>
            <th class="Table-col">Publisher</th>
            <th class="Table-col">Client&#160;#</th>
            <th class="Table-col">Distribution Setting</th>
            <th class="Table-col">Statement Sent</th>
            <th class="Table-col Table-col-amount">Ending Balance (<xsl:value-of select="$currencyCode" />)</th>
            <th class="Table-col Table-col-amount">Minimum Payment (<xsl:value-of select="$currencyCode" />)</th>
            <th class="Table-col Table-col-amount">Amount Payable</th>
            <th class="Table-col Table-col-amount">
                <span class="Table-col-wrapper">Payment Entered</span>
                <xsl:call-template name="helpIcon">
                    <xsl:with-param name="tip">
                        This is the amount entered on the "Edit Payments" screen, shown for informational purposes only.&lt;br&gt;It will appear on the publisher's next committed run statement.
                    </xsl:with-param>
                </xsl:call-template>
            </th>
        </tr>
    </xsl:template>

    <xsl:template name="statementRow">
        <xsl:variable name="statementIndex" select="@i" />

        <tr class="Table-row Table-row-data" id="{$statementIndex}_0">
            <xsl:attribute name="class">
                <xsl:text>Table-row Table-row-data</xsl:text>
                <xsl:choose>
                    <xsl:when test="/Root/Params/filterBy = 4">
                        <xsl:if test="Publisher/Distribution = 0 or HasActivity != 1">
                            <xsl:text> Table-row-disabled</xsl:text>
                        </xsl:if>
                    </xsl:when>
                    <xsl:otherwise>
                        <xsl:if test="Publisher/Distribution = 0 or OnHold = 1 or HasActivity != 1">
                            <xsl:text> Table-row-disabled</xsl:text>
                        </xsl:if>
                    </xsl:otherwise>
                </xsl:choose>
            </xsl:attribute>

            <td class="Table-col Table-col-select">
                <xsl:choose>
                    <xsl:when test="DateSent != ''">
                        <span class="js-tooltip" title="Sent">
                            <xsl:call-template name="icon">
                                <xsl:with-param name="type" select="'complete'" />
                            </xsl:call-template>
                        </span>
                    </xsl:when>
                    <xsl:otherwise>

                        <xsl:call-template name="uiCheckbox">
                            <xsl:with-param name="disabled">
                                <xsl:choose>
                                    <xsl:when test="/Root/Params/filterBy = 4">
                                        <xsl:if test="Publisher/Distribution = 0 or HasActivity != 1">
                                            <xsl:text>true</xsl:text>
                                        </xsl:if>
                                    </xsl:when>
                                    <xsl:otherwise>
                                        <xsl:if test="Publisher/Distribution = 0 or OnHold = 1 or HasActivity != 1">
                                            <xsl:text>true</xsl:text>
                                        </xsl:if>
                                    </xsl:otherwise>
                                </xsl:choose>
                            </xsl:with-param>
                            <xsl:with-param name="name" select="'statementID'"/>
                            <xsl:with-param name="className" select="'distributeAllBox'"/>
                            <xsl:with-param name="id" />
                            <xsl:with-param name="value" select="MechanicalStatementID"/>
                        </xsl:call-template>

                    </xsl:otherwise>
                </xsl:choose>
            </td>
            <td class="Table-col"><xsl:value-of select="Publisher/PublisherName" /></td>
            <td class="Table-col"><xsl:value-of select="Publisher/ClientAccountID" /></td>
            <td class="Table-col">
                <xsl:choose>
                    <xsl:when test="Publisher/Distribution = 0">Manual</xsl:when>
                    <xsl:when test="Publisher/Distribution = 1">Online / Portal</xsl:when>
                </xsl:choose>
            </td>
            <td class="Table-col">
                <xsl:choose>
                    <xsl:when test="Publisher/Distribution = 0">N/A</xsl:when>
                    <xsl:when test="Publisher/Distribution = 1">
                        <xsl:choose>
                            <xsl:when test="DateSent != ''"><xsl:value-of select="DateSent" /></xsl:when>
                            <xsl:otherwise>Not Sent</xsl:otherwise>
                        </xsl:choose>
                    </xsl:when>
                </xsl:choose>
            </td>
            <td class="Table-col Table-col-amount">
                <xsl:value-of select="StatementTotal" />
            </td>
            <td class="Table-col Table-col-amount">
                <xsl:value-of select="MinimumPayment" />
            </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>
            <td class="Table-col Table-col-amount">
                <xsl:value-of select="translate(PublisherAccount/FinanceAccount/PendingBalance, '-', '')" />
            </td>
        </tr>
    </xsl:template>

    <xsl:variable name="submitButtonClickAction">
        <xsl:choose>
            <xsl:when test="/Root/Params/filterBy = 4">
                <xsl:value-of select="'confirmSendOnlineDistributionStatementsOnHold()'"/>
            </xsl:when>
            <xsl:otherwise>
                <xsl:value-of select="'confirmSendOnlineDistributionStatements()'"/>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:variable>

    <xsl:template name="submitButtonTop">
        <xsl:call-template name="uiButton">
            <xsl:with-param name="type" select="'primary'" />
            <xsl:with-param name="className" select="'Form-button'" />
            <xsl:with-param name="id" select="'btnSubmitTop'" />
            <xsl:with-param name="content" select="'Send Statements'" />
            <xsl:with-param name="disabled" select="'true'" />
            <xsl:with-param name="elemType" select="'button'" />
            <xsl:with-param name="onClick" select="$submitButtonClickAction" />
        </xsl:call-template>
    </xsl:template>

    <xsl:template name="submitButton">
        <xsl:call-template name="uiButton">
            <xsl:with-param name="type" select="'primary'" />
            <xsl:with-param name="className" select="'Form-button'" />
            <xsl:with-param name="id" select="'btnSubmit'" />
            <xsl:with-param name="content" select="'Send Statements'" />
            <xsl:with-param name="disabled" select="'true'" />
            <xsl:with-param name="elemType" select="'button'" />
            <xsl:with-param name="onClick" select="$submitButtonClickAction" />
        </xsl:call-template>
    </xsl:template>

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

</xsl:stylesheet>

