<!--                                                                  -->
<!--  Copyright (C) 2006 RoyaltyShare, Inc.   All Rights Reserved     -->
<!--  $Id$  -->
<!--                                                                  -->

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exslt="http://exslt.org/common">

    <xsl:template name="uiBreadcrumbs">

        <!-- Catalog Variables -->
        <xsl:variable name="isAlbumHomeArea" select="$area = 'catalog' and ($cmd = 'edit' or $cmd = 'show')" />
        <xsl:variable name="isEditTrackListArea" select="$area = 'catalog' and $cmd = 'da_edit'" />

        <xsl:variable name="isCAUSLicenseArea" select="(
            $area = 'license' or $area = 'ca_license') and (
            $cmd = 'edit' or $cmd = 'show' or $cmd = 'preedit' or $cmd = 'copy'
        )" />

        <xsl:variable name="isUKLicenseArea" select="$area = 'uk_mech' and ($cmd = 'edit_mcps_license' or $cmd = 'show_mcps_license')" />
        <xsl:variable name="isLicenseArea" select="$isCAUSLicenseArea or $isUKLicenseArea" />

        <xsl:variable name="isTrackArea" select="$area = 'track' and ($cmd = 'edit' or $cmd = 'show')" />
        <xsl:variable name="isProductArea" select="$area = 'product' and ($cmd = 'edit' or $cmd = 'show')" />

        <xsl:variable name="catalogAlbumLink">
            <xsl:text>catalog?AlbumID=</xsl:text>
            <xsl:choose>
                <xsl:when test="($area = 'license' or $area = 'ca_license') and ($cmd = 'preedit')">
                    <xsl:value-of select="Track/AlbumID" />
                </xsl:when>
                <xsl:when test="$isCAUSLicenseArea">
                    <xsl:value-of select="Form/Track/AlbumID" />
                </xsl:when>
                <xsl:otherwise>
                    <xsl:value-of select="Form/Album/AlbumID" />
                </xsl:otherwise>
            </xsl:choose>
            <xsl:text>&amp;c=show</xsl:text>
        </xsl:variable>

        <!-- Statement Variables -->
        <xsl:variable name="isStatementsArea" select="
            $area = 'statement' and (
            $cmd = 'show_label' or
            $cmd = 'show_label_pdf' or
            $cmd = 'show_artist' or
            $cmd = 'show_artist_pdf' or
            $cmd = 'show_ca_mechanical' or
            $cmd = 'show_ca_mechanical_pdf' or
            $cmd = 'show_mechanical' or
            $cmd = 'show_mechanical_paginated' or
            $cmd = 'show_mechanical_pdf' or
            $cmd = 'show_uk_mechanical'
        )" />
        <xsl:variable name="isRoyaltyRunsArea" select="
            $cmd = 'show' and (
            $area = 'label_royalty' or
            $area = 'artist_royalty' or
            $area = 'ca_mechanical' or
            $area = 'uk_mech' or
            $area = 'mechanical'
        )"/>

        <!-- Tracker Variables -->
        <xsl:variable name="trackerLink">
            <xsl:choose>
                <xsl:when test="$app = 'rps'">
                    <xsl:text>/app/tracker</xsl:text>
                </xsl:when>
                <xsl:otherwise>
                    <xsl:text>tracker</xsl:text>
                </xsl:otherwise>
            </xsl:choose>
        </xsl:variable>


        <xsl:variable name="statementsArea">
            <xsl:choose>
                <xsl:when test="$cmd = 'show_label' or $cmd = 'show_label_pdf'">
                    <xsl:text>label_royalty</xsl:text>
                </xsl:when>
                <xsl:when test="$cmd = 'show_artist' or $cmd = 'show_artist_pdf'">
                    <xsl:text>artist_royalty</xsl:text>
                </xsl:when>
                <xsl:when test="$cmd = 'show_ca_mechanical' or $cmd = 'show_ca_mechanical_pdf'">
                    <xsl:text>ca_mechanical</xsl:text>
                </xsl:when>
                <xsl:when test="
                    $cmd = 'show_mechanical' or
                    $cmd = 'show_mechanical_paginated' or
                    $cmd = 'show_mechanical_pdf'">
                    <xsl:text>mechanical</xsl:text>
                </xsl:when>
                <xsl:when test="$cmd = 'show_uk_mechanical'">
                    <xsl:text>uk_mech</xsl:text>
                </xsl:when>
            </xsl:choose>
        </xsl:variable>

        <!-- Current Area -->
        <xsl:variable name="currentArea">
            <xsl:choose>
                <xsl:when test="$isRoyaltyRunsArea">
                    <xsl:text>royalty_runs</xsl:text>
                </xsl:when>
                <xsl:when test="$isStatementsArea">
                    <xsl:text>statements</xsl:text>
                </xsl:when>
                <xsl:when test="$isAlbumHomeArea">
                    <xsl:text>catalogInner</xsl:text>
                </xsl:when>
                <xsl:when test="$isEditTrackListArea or $isLicenseArea or $isTrackArea or $isProductArea">
                    <xsl:text>album</xsl:text>
                </xsl:when>
                <xsl:otherwise>
                    <xsl:value-of select="$area" />
                </xsl:otherwise>
            </xsl:choose>
        </xsl:variable>

        <xsl:variable name="items">
            <map>
                <xsl:choose>
                    <!-- Revenue -->
                    <xsl:when test="$currentArea = 'matcher'">
                        <mapEntry>
                            <title>Royalty Status Tracker</title>
                            <url><xsl:value-of select="$trackerLink" /></url>
                        </mapEntry>
                    </xsl:when>

                    <!--Catalog -->

                    <!--Catalog - Album -->
                    <xsl:when test="$currentArea = 'catalogInner' or $currentArea = 'album'">
                        <mapEntry>
                            <title>Catalog Home</title>
                            <url>/rps/catalog</url>
                        </mapEntry>
                        <xsl:if test="$currentArea = 'album'">
                            <!--Catalog - Album - Inner Pages -->
                            <mapEntry>
                                <title>View Album</title>
                                <url><xsl:value-of select="$catalogAlbumLink" /></url>
                            </mapEntry>
                        </xsl:if>
                    </xsl:when>

                    <!-- Statements -->
                    <xsl:when test="$currentArea = 'statements' or $currentArea = 'royalty_runs'">

                        <!-- Statements > Home -->
                        <mapEntry>
                            <xsl:choose>

                                <!-- Statements > Label Royalties -->
                                <xsl:when test="$area = 'label_royalty' or $statementsArea = 'label_royalty'">
                                    <title>Label Royalties</title>
                                    <url>label_royalty</url>
                                </xsl:when>

                                <!-- Statements > Artist Royalties -->
                                <xsl:when test="$area = 'artist_royalty' or $statementsArea = 'artist_royalty'">
                                    <title>Artist Royalties</title>
                                    <url>artist_royalty</url>
                                </xsl:when>

                                <!-- Statements > CA Mechanicals -->
                                <xsl:when test="$area = 'ca_mechanical' or $statementsArea = 'ca_mechanical'">
                                    <title>CA Mechanicals</title>
                                    <url>ca_mechanical</url>
                                </xsl:when>

                                <!-- Statements > US Mechanicals -->
                                <xsl:when test="$area = 'mechanical' or $statementsArea = 'mechanical'">
                                    <title>US Mechanicals</title>
                                    <url>mechanical</url>
                                </xsl:when>

                                <!-- Statements > UK Mechanicals -->
                                <xsl:when test="$area = 'uk_mech' or $statementsArea = 'uk_mech'">
                                    <title>UK Mechanicals</title>
                                    <url>uk_mech</url>
                                </xsl:when>
                            </xsl:choose>
                        </mapEntry>

                        <!-- Statements > Run -->
                        <xsl:if test="$currentArea = 'statements'">
                            <mapEntry>
                               <xsl:choose>

                                    <!-- Statements > Label Royalties > Run -->
                                    <xsl:when test="$statementsArea = 'label_royalty'">
                                        <title><xsl:value-of select="Statement/Payor/Name" /> - <xsl:value-of select="Statement/Run/Label" /></title>
                                        <url>
                                            <xsl:call-template name="uiBreadcrumbsRunLink">
                                                <xsl:with-param name="runParam">
                                                    <xsl:text>LabelRoyaltyRunID=</xsl:text><xsl:value-of select="Statement/Run/LabelRoyaltyRunID" />
                                                </xsl:with-param>
                                                <xsl:with-param name="payorId" select="Statement/Payor/PayorID"/>
                                                <xsl:with-param name="runArea" select="$statementsArea"/>
                                            </xsl:call-template>
                                        </url>
                                    </xsl:when>

                                    <!-- Statements > Artist Royalties > Run -->
                                    <xsl:when test="$statementsArea = 'artist_royalty'">
                                        <title><xsl:value-of select="Statement/Payor/Name" /> - <xsl:value-of select="Statement/ArtistRoyaltyRun/Label" /></title>
                                        <url>
                                            <xsl:call-template name="uiBreadcrumbsRunLink">
                                                <xsl:with-param name="runParam">
                                                    <xsl:text>RoyaltyRunID=</xsl:text><xsl:value-of select="Statement/ArtistRoyaltyRun/ArtistRoyaltyRunID" />
                                                </xsl:with-param>
                                                <xsl:with-param name="payorId" select="Statement/Payor/PayorID"/>
                                                <xsl:with-param name="runArea" select="$statementsArea"/>
                                            </xsl:call-template>
                                        </url>
                                    </xsl:when>

                                    <!-- Statements > UK Mechanicals > Run -->
                                    <xsl:when test="$statementsArea = 'uk_mech'">
                                        <title>
                                            <xsl:value-of select="Statement/Payor/Name" /> - Q<xsl:value-of select="Statement/UKMechanicalRun/Quarter" />&#160;<xsl:value-of select="Statement/UKMechanicalRun/Year" />
                                        </title>
                                        <url>
                                            <xsl:call-template name="uiBreadcrumbsRunLink">
                                                <xsl:with-param name="runParam">
                                                    <xsl:text>UKMechanicalRunID=</xsl:text><xsl:value-of select="Statement/UKMechanicalRun/UKMechanicalRunID" />
                                                </xsl:with-param>
                                                <xsl:with-param name="runArea" select="$statementsArea"/>
                                            </xsl:call-template>
                                        </url>
                                    </xsl:when>

                                    <!-- Statements > Mechanicals > Run -->
                                    <xsl:otherwise>
                                        <title>
                                            <xsl:call-template name="uiBreadcrumbsRunTitle">
                                                <xsl:with-param name="run" select="Statement/MechanicalRun"/>
                                                <xsl:with-param name="payor" select="Statement/MechanicalStatement/Payor"/>
                                                <xsl:with-param name="runArea" select="$statementsArea"/>
                                            </xsl:call-template>
                                        </title>
                                        <url>
                                            <xsl:call-template name="uiBreadcrumbsRunLink">
                                                <xsl:with-param name="runParam">
                                                    <xsl:text>MechanicalRunID=</xsl:text><xsl:value-of select="Statement/MechanicalRun/MechanicalRunID" />
                                                </xsl:with-param>
                                                <xsl:with-param name="payorId" select="Statement/MechanicalStatement/Payor/PayorID"/>
                                                <xsl:with-param name="runArea" select="$statementsArea"/>
                                            </xsl:call-template>
                                        </url>
                                    </xsl:otherwise>
                               </xsl:choose>

                            </mapEntry>
                        </xsl:if>
                    </xsl:when>
                </xsl:choose>

            </map>
        </xsl:variable>

        <xsl:if test="count(exslt:node-set($items)//mapEntry) > 0">
            <ul class="Breadcrumbs">
                <xsl:for-each select="exslt:node-set($items)//mapEntry">
                    <li class="Breadcrumbs-item">
                        <a class="Breadcrumbs-link" href="{url}">
                            <xsl:value-of select="title" />
                        </a>
                    </li>
                </xsl:for-each>
                <li class="Breadcrumbs-item">
                    <xsl:value-of select="$pageName" />
                </li>
            </ul>
        </xsl:if>
    </xsl:template>

    <xsl:template name="uiBreadcrumbsRunLink">
        <xsl:param name="runParam" />
        <xsl:param name="payorId" />
        <xsl:param name="runArea" />

        <xsl:value-of select="$runArea" />
        <xsl:text>?c=show&amp;</xsl:text>
        <xsl:value-of select="$runParam" />
        <xsl:if test="$payorId">
            <xsl:text>&amp;PayorID=</xsl:text>
            <xsl:value-of select="$payorId" />
        </xsl:if>

    </xsl:template>

    <xsl:template name="uiBreadcrumbsRunTitle">
        <xsl:param name="run" />
        <xsl:param name="payor" />
        <xsl:param name="runArea" />
        <xsl:choose>
            <xsl:when test="$runArea = 'ca_mechanical'">
                <xsl:value-of select="$payor/Name" /> - (<xsl:value-of select="$run/StartDate" /> - <xsl:value-of select="$run/EndDate" />)
            </xsl:when>
            <xsl:otherwise>
                <xsl:value-of select="$payor/Name" /> - <xsl:value-of select="$run/Label" />
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>
</xsl:stylesheet>
