<!--                                                                  -->
<!--  Copyright (C) 2006 RoyaltyShare, Inc.   All Rights Reserved     -->
<!--  $Id$  -->
<!--                                                                  -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

    <xsl:variable name="payeeHeading">
        <xsl:choose>
            <xsl:when test="(/Root/Access/rps/publisher/search or /Root/Access/rps/ca_publisher/search) and (/Root/Access/rps/artist_payee/search or /Root/Access/rps/label_payee/search)">Publisher/Payee</xsl:when>
            <xsl:when test="/Root/Access/rps/publisher/search or /Root/Access/rps/ca_publisher/search">Publisher</xsl:when>
            <xsl:otherwise>Payee</xsl:otherwise>
        </xsl:choose>
    </xsl:variable>

    <xsl:template name="payeeMainLayout">
        <div id="payeeMain" class="PayeeMain">
            <div class="PayeeMain-wrapper">
                <section class="PayeeMain-section">
                    <xsl:call-template name="filteredList" />
                </section>
                <section class="PayeeMain-section PayeeMain-section-recent">
                    <xsl:call-template name="recentList" />
                </section>
            </div>
        </div>
    </xsl:template>

    <xsl:template name="payeesFilter">
        <form class="Form" action="/rps/{$area}" method="get">
            <input type="hidden" name="page" value="" />
            <input type="hidden" name="payeeType" value="{/Root/Params/payeeType}" />

            <div class="Form-group Form-group-horizontal PayeeMain-filters">
                <xsl:if test="$area = 'payee'">
                    <div class="Form-item PayeeMain-filter-item">
                        <label class="Form-label">
                            <span class="Form-label-caption">View By Payee Type</span>
                            <div class="Form-input-wrapper">
                                <xsl:variable name="payeeTypeItems">
                                    <map>
                                        <mapEntry><name>All Payees</name><value></value></mapEntry>
                                        <xsl:for-each select="/Root/ClientTypes/ClientType">
                                        <xsl:if test="ClientTypeID = 2 and IsClientTypeFlag = 1">
                                            <mapEntry>
                                                <name>Artists/Producers</name><value>artist</value>
                                                <selected>
                                                    <xsl:if test="/Root/Params/payeeType = 'artist'">
                                                        <xsl:text>true</xsl:text>
                                                    </xsl:if>
                                                </selected>
                                            </mapEntry>
                                        </xsl:if>
                                        <xsl:if test="ClientTypeID = 3 and IsClientTypeFlag = 1">
                                            <mapEntry>
                                                <name>Labels</name><value>label</value>
                                                <selected>
                                                    <xsl:if test="/Root/Params/payeeType = 'label'">
                                                        <xsl:text>true</xsl:text>
                                                    </xsl:if>
                                                </selected>
                                            </mapEntry>
                                        </xsl:if>
                                        </xsl:for-each>
                                        <xsl:for-each select="/Root/ClientTypes/ClientType[(ClientTypeID = 5 and IsClientTypeFlag = 1) or (ClientTypeID = 7 and IsClientTypeFlag = 1)]">
                                        <xsl:if test="position() = 1">
                                            <mapEntry>
                                                <name>Publishers</name><value>publisher</value>
                                                <selected>
                                                    <xsl:if test="/Root/Params/payeeType = 'publisher' or /Root/Params/payeeType = 'caPublisher'">
                                                        <xsl:text>true</xsl:text>
                                                    </xsl:if>
                                                </selected>
                                            </mapEntry>
                                        </xsl:if>
                                        </xsl:for-each>
                                    </map>
                                </xsl:variable>
                                <xsl:call-template name="uiDropdown">
                                    <xsl:with-param name="items" select="$payeeTypeItems"/>
                                    <xsl:with-param name="name" select="'viewByType'"/>
                                    <xsl:with-param name="className" select="'PayeeMain-filter-dropdown'" />
                                    <xsl:with-param name="autoSubmit" select="'true'" />
                                    <xsl:with-param name="onChange">
                                        this.form.elements.payeeType.value = this.value
                                    </xsl:with-param>
                                </xsl:call-template>
                            </div>
                        </label>
                    </div>
                </xsl:if>

                <xsl:if test="/Root/Params/payeeType = 'publisher' or /Root/Params/payeeType = 'caPublisher'">
                    <div class="Form-item PayeeMain-filter-item">
                        <label class="Form-label">
                            <div class="Form-input-wrapper">
                                <xsl:variable name="publisherTypeItems">
                                    <map>
                                        <xsl:for-each select="/Root/ClientTypes/ClientType[(ClientTypeID = 5 and IsClientTypeFlag = 1)]">
                                            <mapEntry>
                                                <name>United States</name><value>publisher</value>
                                                <selected>
                                                    <xsl:if test="/Root/Params/payeeType = 'publisher'">
                                                        <xsl:text>true</xsl:text>
                                                    </xsl:if>
                                                </selected>
                                            </mapEntry>
                                        </xsl:for-each>
                                        <xsl:for-each select="/Root/ClientTypes/ClientType[(ClientTypeID = 7 and IsClientTypeFlag = 1)]">
                                            <mapEntry>
                                                <name>Canadian</name><value>caPublisher</value>
                                                <selected>
                                                    <xsl:if test="/Root/Params/payeeType = 'caPublisher'">
                                                        <xsl:text>true</xsl:text>
                                                    </xsl:if>
                                                </selected>
                                            </mapEntry>
                                        </xsl:for-each>
                                    </map>
                                </xsl:variable>
                                <xsl:call-template name="uiDropdown">
                                    <xsl:with-param name="items" select="$publisherTypeItems"/>
                                    <xsl:with-param name="name" select="'publisherType'"/>
                                    <xsl:with-param name="className" select="'PayeeMain-filter-dropdown'" />
                                    <xsl:with-param name="autoSubmit" select="'true'" />
                                    <xsl:with-param name="onChange">
                                        this.form.elements.payeeType.value = this.value;
                                    </xsl:with-param>
                                </xsl:call-template>
                            </div>
                        </label>
                    </div>

                    <div class="Form-item PayeeMain-filter-item">
                        <label class="Form-label">
                            <div class="Form-input-wrapper">
                                <xsl:variable name="publisherSearchListFilterItems">
                                    <map>
                                        <mapEntry><name>All Publishers</name><value></value></mapEntry>
                                        <mapEntry><name>Direct Publishers</name><value>direct</value></mapEntry>
                                        <mapEntry><name>Publishers with Admin Only</name><value>hasAdmin</value></mapEntry>
                                        <mapEntry><name>Publishers with Agent</name><value>hasAgent</value></mapEntry>
                                        <mapEntry><name>Administrators</name><value>admin</value></mapEntry>
                                        <mapEntry><name>Agents</name><value>agent</value></mapEntry>
                                    </map>
                                </xsl:variable>
                                <xsl:call-template name="uiDropdown">
                                    <xsl:with-param name="items" select="$publisherSearchListFilterItems"/>
                                    <xsl:with-param name="name" select="'publisherFilter'"/>
                                    <xsl:with-param name="active" select="Params/publisherFilter"/>
                                    <xsl:with-param name="className" select="'PayeeMain-filter-dropdown'"/>
                                    <xsl:with-param name="autoSubmit" select="'true'" />
                                </xsl:call-template>
                            </div>
                        </label>
                    </div>
                </xsl:if>
            </div>
        </form>
    </xsl:template>

    <xsl:template name="statementSuccessMessages">
        <xsl:call-template name="successMessageGeneral">
            <xsl:with-param name="successMessage">
                <xsl:if test="Messages/Message/Code = 'delete_success'">Payee has been deleted!</xsl:if>
            </xsl:with-param>
        </xsl:call-template>
    </xsl:template>

    <xsl:template name="addPublisherButton">
        <xsl:call-template name="uiButton">
            <xsl:with-param name="content">
                <xsl:choose>
                    <xsl:when test="Access/rps/publisher/edit or $area = 'publisher'">
                        United States Publisher
                    </xsl:when>
                    <xsl:otherwise>
                        Canadian Publisher
                    </xsl:otherwise>
                </xsl:choose>
            </xsl:with-param>
            <xsl:with-param name="iconLeftType" select="'add'" />
            <xsl:with-param name="url">
                <xsl:text>/rps/</xsl:text>
                <xsl:choose>
                    <xsl:when test="Access/rps/publisher/edit or $area = 'publisher'">
                        <xsl:text>publisher</xsl:text>
                    </xsl:when>
                    <xsl:otherwise>
                        <xsl:text>ca_publisher</xsl:text>
                    </xsl:otherwise>
                </xsl:choose>
                <xsl:text>?c=edit</xsl:text>
            </xsl:with-param>
        </xsl:call-template>
    </xsl:template>

    <xsl:template name="addPublisherDropdown">
        <xsl:variable name="editPublisherAreaItems">
            <map>
                <mapEntry>
                    <name>Canadian</name>
                    <value>ca_publisher</value>
                </mapEntry>
                <mapEntry>
                    <name>United States</name>
                    <value>publisher</value>
                </mapEntry>
            </map>
        </xsl:variable>

        <xsl:call-template name="uiDropdown">
            <xsl:with-param name="items" select="$editPublisherAreaItems"/>
            <xsl:with-param name="caption" select="'Publisher'"/>
            <xsl:with-param name="id" select="'editPublisherArea'"/>
            <xsl:with-param name="name" select="'editPublisherArea'"/>
            <xsl:with-param name="hideArrow" select="'true'"/>
            <xsl:with-param name="renderIndependent" select="'true'"/>
            <xsl:with-param name="align" select="'right'"/>
            <xsl:with-param name="icon" select="'add'"/>
            <xsl:with-param name="onChange">
                location.href="/rps/" + this.value + "?c=edit";
            </xsl:with-param>
        </xsl:call-template>
    </xsl:template>

    <xsl:template name="addPublisherItem">
        <xsl:variable name="publiserEditAccess">
            <xsl:if test="Access/rps/publisher/edit or Access/rps/ca_publisher/edit">true</xsl:if>
        </xsl:variable>

        <xsl:variable name="publiserShow">
            <xsl:if test="$area = 'publisher' or $area = 'ca_publisher' or $area = 'payee'">true</xsl:if>
        </xsl:variable>

        <xsl:if test="$publiserEditAccess = 'true' and $publiserShow = 'true'">
            <div class="Form-item">
                <xsl:choose>
                    <xsl:when test="not(Access/rps/publisher/edit) or not(Access/rps/ca_publisher/edit) or $area != 'payee'">
                        <xsl:call-template name="addPublisherButton" />
                    </xsl:when>
                    <xsl:otherwise>
                        <xsl:call-template name="addPublisherDropdown" />
                    </xsl:otherwise>
                </xsl:choose>
            </div>
        </xsl:if>
    </xsl:template>

    <xsl:template name="addLabelItem">
        <xsl:if test="Access/rps/label_payee/edit and ($area = 'label_payee' or $area = 'payee')">
            <div class="Form-item">
                <xsl:call-template name="uiButton">
                    <xsl:with-param name="content" select="'Label Payee'" />
                    <xsl:with-param name="iconLeftType" select="'add'" />
                    <xsl:with-param name="url">
                        <xsl:text>/rps/label_payee?c=edit</xsl:text>
                    </xsl:with-param>
                </xsl:call-template>
            </div>
        </xsl:if>
    </xsl:template>

    <xsl:template name="addArtistItem">
        <xsl:if test="Access/rps/artist_payee/edit and ($area = 'artist_payee' or $area = 'payee')">
            <div class="Form-item">
                <xsl:call-template name="uiButton">
                    <xsl:with-param name="content" select="'Artist/Producer Payee'" />
                    <xsl:with-param name="iconLeftType" select="'add'" />
                    <xsl:with-param name="url">
                        <xsl:text>/rps/artist_payee?c=edit</xsl:text>
                    </xsl:with-param>
                </xsl:call-template>
            </div>
        </xsl:if>
    </xsl:template>

    <xsl:template name="filteredList">

        <xsl:if test="Messages/Message/Type = 'success'">
            <xsl:call-template name="statementSuccessMessages" />
        </xsl:if>

        <div class="PayeeMain-payees-list">
            <div class="Table-controls Table-controls-top">
                <div class="Table-colntrols-item">
                    <xsl:call-template name="payeesFilter" />
                </div>
                <div class="Table-controls-item Table-controls-item-additive Form-group Form-group-horizontal">
                    <xsl:call-template name="addPublisherItem" />
                    <xsl:call-template name="addLabelItem" />
                    <xsl:call-template name="addArtistItem" />
                </div>
            </div>

            <xsl:call-template name="payeesTable">
                <xsl:with-param name="items" select="PayeeList/Item" />
                <xsl:with-param name="emptyMessage">
                    <xsl:text>No </xsl:text>
                    <xsl:choose>
                        <xsl:when test="/Root/Params/payeeType = 'publisher' or /Root/Params/payeeType = 'caPublisher'">
                            <xsl:text>publishers</xsl:text>
                        </xsl:when>
                        <xsl:otherwise>
                            <xsl:text>payees</xsl:text>
                        </xsl:otherwise>
                    </xsl:choose>
                    <xsl:text> are available under this heading.</xsl:text>
                </xsl:with-param>
            </xsl:call-template>

            <xsl:if test="Pagination/TotalPages > 1">
                <div class="Table-controls Table-controls-bottom">
                    <div class="Table-controls-item Table-controls-item-pagination">
                        <xsl:call-template name="uiPagination">
                            <xsl:with-param name="lastPage" select="Pagination/TotalPages"/>
                            <xsl:with-param name="currentPage" select="Pagination/Current"/>
                            <xsl:with-param name="searchParams">
                                <xsl:if test="/Root/Params/payeeType">
                                    <xsl:text>&amp;payeeType=</xsl:text>
                                    <xsl:value-of select="/Root/Params/payeeType" />
                                </xsl:if>
                                <xsl:if test="/Root/Params/publisherFilter">
                                    <xsl:text>&amp;publisherFilter=</xsl:text>
                                    <xsl:value-of select="/Root/Params/publisherFilter" />
                                </xsl:if>
                            </xsl:with-param>
                        </xsl:call-template>
                    </div>
                </div>
            </xsl:if>
        </div>
    </xsl:template>

    <xsl:template name="payeesTable">
        <xsl:param name="items" />
        <xsl:param name="emptyMessage" />
        <xsl:choose>
            <xsl:when test="$items">
                <table class="Table Table-with-highlight">
                    <thead>
                        <tr class="Table-row Table-row-header">
                            <th class="Table-col PayeeMain-col-name">Name</th>
                            <th class="Table-col PayeeMain-col-type">Type</th>
                            <th class="Table-col PayeeMain-col-client">Client Account #</th>
                            <th class="Table-col Table-col-icon PayeeMain-col-edit">Edit</th>
                        </tr>
                    </thead>
                    <tbody>
                        <xsl:for-each select="$items">
                            <xsl:if test="ArtistPayee">
                                <xsl:call-template name="artistPayeeRow" />
                            </xsl:if>
                            <xsl:if test="LabelPayee">
                                <xsl:call-template name="labelPayeeRow" />
                            </xsl:if>
                            <xsl:if test="Publisher">
                                <xsl:call-template name="publisherRow" />
                            </xsl:if>
                            <xsl:if test="CAPublisher">
                                <xsl:call-template name="caPublisherRow" />
                            </xsl:if>
                        </xsl:for-each>
                    </tbody>
                </table>
            </xsl:when>
            <xsl:otherwise>
                <section class="Table-empty-results">
                    <p><xsl:value-of select="$emptyMessage" /></p>
                </section>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>

    <xsl:template name="recentList">
        <div class="PayeeMain-table">
            <h3>Recently Viewed Payees</h3>
            <xsl:call-template name="payeesTable">
                <xsl:with-param name="items" select="RecentlyViewed/Item" />
                <xsl:with-param name="emptyMessage" select="'No payees exist in your viewing history.'"/>
            </xsl:call-template>
        </div>
    </xsl:template>

    <xsl:template name="artistPayeeRow">
        <tr class="Table-row Table-row-data">
            <td class="Table-col PayeeMain-col-name">
                <a href="artist_payee?c=show&amp;ArtistPayeeID={ArtistPayee/ArtistPayeeID}"><xsl:value-of select="ArtistPayee/Name" /></a>
            </td>
            <td class="Table-col PayeeMain-col-type">Artist/Producer</td>
            <td class="Table-col PayeeMain-col-client"><xsl:value-of select="ArtistPayee/ClientAccountID" /></td>
            <td class="Table-col Table-col-icon PayeeMain-col-edit">
                <a href="artist_payee?c=edit&amp;ArtistPayeeID={ArtistPayee/ArtistPayeeID}" class="js-tooltip" title="Edit">
                    <xsl:call-template name="icon">
                        <xsl:with-param name="type" select="'edit'" />
                        <xsl:with-param name="role" select="'action'" />
                    </xsl:call-template>
                </a>
            </td>
        </tr>
    </xsl:template>


    <xsl:template name="labelPayeeRow">
        <tr class="Table-row Table-row-data">
            <td class="Table-col PayeeMain-col-name">
                <a href="label_payee?c=show&amp;LabelPayeeID={LabelPayee/LabelPayeeID}"><xsl:value-of select="LabelPayee/Name" /></a>
            </td>
            <td class="Table-col PayeeMain-col-type">Label</td>
            <td class="Table-col PayeeMain-col-client"><xsl:value-of select="LabelPayee/ClientAccountID" /></td>
            <td class="Table-col Table-col-icon PayeeMain-col-edit">
                <a href="label_payee?c=edit&amp;LabelPayeeID={LabelPayee/LabelPayeeID}" class="js-tooltip" title="Edit">
                    <xsl:call-template name="icon">
                        <xsl:with-param name="type" select="'edit'" />
                        <xsl:with-param name="role" select="'action'" />
                    </xsl:call-template>
                </a>
            </td>
        </tr>
    </xsl:template>


    <xsl:template name="publisherRow">
        <tr class="Table-row Table-row-data">
            <td class="Table-col PayeeMain-col-name">
                <a href="publisher?c=show&amp;PublisherID={Publisher/PublisherID}"><xsl:value-of select="Publisher/PublisherName" /></a>
            </td>
            <td class="Table-col">
                <xsl:choose>
                    <xsl:when test="Publisher/IsAgency = 1">Agency</xsl:when>
                    <xsl:when test="Publisher/IsAdmin = 1">Administrator</xsl:when>
                    <xsl:otherwise>Publisher</xsl:otherwise>
                </xsl:choose>
                (United States)
            </td>
            <td class="Table-col PayeeMain-col-type"><xsl:value-of select="Publisher/ClientAccountID" /></td>
            <td class="Table-col Table-col-icon PayeeMain-col-edit">
                <a href="publisher?c=edit&amp;PublisherID={Publisher/PublisherID}" class="js-tooltip" title="Edit">
                    <xsl:call-template name="icon">
                        <xsl:with-param name="type" select="'edit'" />
                        <xsl:with-param name="role" select="'action'" />
                    </xsl:call-template>
                </a>
            </td>
        </tr>
    </xsl:template>


    <xsl:template name="caPublisherRow">
        <tr class="Table-row Table-row-data">
            <td class="Table-col PayeeMain-col-name">
                <a href="ca_publisher?c=show&amp;PublisherID={CAPublisher/PublisherID}"><xsl:value-of select="CAPublisher/PublisherName" /></a>
            </td>
            <td class="Table-col PayeeMain-col-type">
                <xsl:choose>
                    <xsl:when test="CAPublisher/IsAgency = 1">Agency</xsl:when>
                    <xsl:when test="CAPublisher/IsAdmin = 1">Administrator</xsl:when>
                    <xsl:otherwise>Publisher</xsl:otherwise>
                </xsl:choose>
                (Canadian)
            </td>
            <td class="Table-col PayeeMain-col-client"><xsl:value-of select="CAPublisher/ClientAccountID" /></td>
            <td class="Table-col Table-col-icon PayeeMain-col-edit">
                <a href="ca_publisher?c=edit&amp;PublisherID={CAPublisher/PublisherID}" class="js-tooltip" title="Edit">
                    <xsl:call-template name="icon">
                        <xsl:with-param name="type" select="'edit'" />
                        <xsl:with-param name="role" select="'action'" />
                    </xsl:call-template>
                </a>
            </td>
        </tr>
    </xsl:template>

</xsl:stylesheet>
