<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"
    xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/02/xpath-functions"
    xmlns:idea="http://www.ideadistributors.com/idea/xsl" exclude-result-prefixes="#all">

    <!-- pricing info with default values  -->

    <xsl:param name="us-price-album" as="xs:string" required="no" select="'7.00'"/>
    <xsl:param name="ca-price-album" as="xs:string" required="no" select="'7.20'"/>
    <xsl:param name="gb-price-album" as="xs:string" required="no" select="'4.60'"/>
    <xsl:param name="fr-price-album" as="xs:string" required="no" select="'6.70'"/>
    <xsl:param name="ie-price-album" as="xs:string" required="no" select="'6.70'"/>
    <xsl:param name="de-price-album" as="xs:string" required="no" select="'6.70'"/>

    <xsl:param name="us-price-track" as="xs:string" required="no" select="'.70'"/>
    <xsl:param name="ca-price-track" as="xs:string" required="no" select="'.72'"/>
    <xsl:param name="gb-price-track" as="xs:string" required="no" select="'.47'"/>
    <xsl:param name="fr-price-track" as="xs:string" required="no" select="'.68'"/>
    <xsl:param name="ie-price-track" as="xs:string" required="no" select="'.68'"/>
    <xsl:param name="de-price-track" as="xs:string" required="no" select="'.68'"/>

    <xsl:include href="idea-functions.xsl"/>
    <xsl:include href="mapping/musicnet-mapping.xsl"/>
    <xsl:template match="album">
        <xsl:if test="string-length(upc) >= 12">
            <xsl:variable name="upc" select="upc"/>
            <xsl:variable name="label" select="label"/>
            <xsl:variable name="begin-date">
                <xsl:choose>
                    <xsl:when test="exists(release-date) and (release-date &gt; current-date())">
                        <xsl:value-of select="release-date"/>
                    </xsl:when>
                    <xsl:otherwise>
                        <xsl:value-of select=" substring(current-date() cast as xs:string, 1, 10)"/>
                    </xsl:otherwise>
                </xsl:choose>
            </xsl:variable>
            <DATA>
                <!--  ================== ALBUM =======================     -->
                <MUSICNET_COMPONENT>
                        <MUSICNET_COMPONENT_CODE>
                            <xsl:value-of select="$upc"/>
                        </MUSICNET_COMPONENT_CODE>
                    <COMPONENT_TYPE>ALBUM</COMPONENT_TYPE>
                    <CORP_CODE>
                        <xsl:value-of select="/album/vendor-id"/>
                    </CORP_CODE>
                    <LABEL_CODE>
                        <xsl:value-of select="label"/>
                    </LABEL_CODE>
                    <xsl:choose>
                        <xsl:when test="exists(/album/territories/allowed)">
                            <xsl:for-each select="/album/territories/allowed">
                                    <CD_BURN_RIGHT>
                                        <VALUE>TRUE</VALUE>
                                        <TERRITORY_CODE><xsl:value-of select="node()"/></TERRITORY_CODE>
                                    </CD_BURN_RIGHT>
                                    <NON_DRM_PURCHASE>
                                        <VALUE>TRUE</VALUE>
                                        <TERRITORY_CODE><xsl:value-of select="node()"/></TERRITORY_CODE>
                                    </NON_DRM_PURCHASE>
                                    <TRANSFER2PD_RIGHT>
                                        <VALUE>TRUE</VALUE>
                                        <TERRITORY_CODE><xsl:value-of select="node()"/></TERRITORY_CODE>
                                    </TRANSFER2PD_RIGHT>
                                    <DIGITAL_AVAILABILITY>
                                        <BEGIN_DATE>
                                            <xsl:value-of select="$begin-date"/>
                                        </BEGIN_DATE>
                                        <TERRITORY_CODE><xsl:value-of select="node()"/></TERRITORY_CODE>
                                    </DIGITAL_AVAILABILITY>
                                    <BUNDLE_RESTRICTION>
                                        <VALUE>FALSE</VALUE>
                                        <TERRITORY_CODE><xsl:value-of select="node()"/></TERRITORY_CODE>
                                    </BUNDLE_RESTRICTION>
                            </xsl:for-each>
                        </xsl:when>
                        <xsl:when test="exists(/album/territories/denied)">
                            <!-- the packager converts the denied list to an allowed list, so nothing needed here any longer -->
                        </xsl:when>
                        <xsl:otherwise>
                            <CD_BURN_RIGHT>
                                <VALUE>TRUE</VALUE>
                                <TERRITORY_CODE>WW-MN</TERRITORY_CODE>
                            </CD_BURN_RIGHT>
                            <NON_DRM_PURCHASE>
                                <VALUE>TRUE</VALUE>
                                <TERRITORY_CODE>WW-MN</TERRITORY_CODE>
                            </NON_DRM_PURCHASE>
                            <TRANSFER2PD_RIGHT>
                                <VALUE>TRUE</VALUE>
                                <TERRITORY_CODE>WW-MN</TERRITORY_CODE>
                            </TRANSFER2PD_RIGHT>
                            <DIGITAL_AVAILABILITY>
                                <BEGIN_DATE>
                                    <xsl:value-of select="$begin-date"/>
                                </BEGIN_DATE>
                                <TERRITORY_CODE>WW-MN</TERRITORY_CODE>
                            </DIGITAL_AVAILABILITY>
                            <BUNDLE_RESTRICTION>
                                <VALUE>FALSE</VALUE>
                                <TERRITORY_CODE>WW-MN</TERRITORY_CODE>
                            </BUNDLE_RESTRICTION>
                        </xsl:otherwise>
                    </xsl:choose>

                    <METADATA>
                        <TYPE>RELATED_UPC</TYPE>
                        <VALUE>
                            <xsl:value-of select="$upc"/>
                        </VALUE>
                    </METADATA>
                    <METADATA>
                        <TYPE>CLINE</TYPE>
                        <VALUE>(C) <xsl:value-of select="pline"/>
                        </VALUE>
                    </METADATA>
                    <METADATA>
                        <TYPE>DURATION</TYPE>
                        <VALUE><xsl:value-of select="idea:createFriendlyMinutesAndSeconds(audio_duration)" /></VALUE>
                    </METADATA>
                    <xsl:variable name="release-genres">
                        <xsl:document>
                            <xsl:if test="count(/album/genre) &gt; 0">
                                    <METADATA>
                                        <TYPE>GENRE</TYPE>
                                        <VALUE>
                                            <xsl:value-of select="idea:mapGenre (/album/genre[position()=1])"/>
                                        </VALUE>
                                    </METADATA>

                                <xsl:if test="count(/album/genre[position()&gt;1]) &gt; 0">
                                    <xsl:variable name="alt-release-genres" select="/album/genre[position()&gt;1]"/>
                                        <xsl:for-each select="$alt-release-genres">
                                            <METADATA>
                                                <TYPE>ALTERNATE_GENRE</TYPE>
                                                <VALUE>
                                                    <xsl:value-of select="idea:mapGenre (node())"/>
                                                </VALUE>
                                            </METADATA>
                                        </xsl:for-each>
                                    </xsl:if>

                            </xsl:if>
                        </xsl:document>
                    </xsl:variable>
                    <xsl:copy-of select="$release-genres"/>
                    <METADATA>
                        <TYPE>IMAGE_TYPE</TYPE>
                        <VALUE>FRONT_COVER</VALUE>
                    </METADATA>
                    <METADATA>
                        <TYPE>PARENTAL_ADVISORY</TYPE>
                        <VALUE>FALSE</VALUE>
                    </METADATA>
                    <METADATA>
                        <TYPE>PLINE</TYPE>
                        <VALUE>(P) <xsl:value-of select="pline"/>
                        </VALUE>
                    </METADATA>
                    <METADATA>
                        <TYPE>RELEASE_DATE</TYPE>
                        <VALUE>
                            <xsl:value-of select="replace(release-date, '-', '')"/>
                        </VALUE>
                    </METADATA>
                    <ARTIST>
                        <TYPE>ARTIST</TYPE>
                        <VALUE>
                            <xsl:value-of select="display-artist"/>
                        </VALUE>
                    </ARTIST>
                    <METADATA>
                        <TYPE>TITLE</TYPE>
                        <VALUE>
                            <xsl:value-of select="title"/>
                        </VALUE>
                    </METADATA>
                    <METADATA>
                        <TYPE>TRACKS</TYPE>
                        <VALUE>
                            <xsl:value-of select="idea:padFrontOfString('0', 2, count(volume/track))"/>
                        </VALUE>
                    </METADATA>

                    <!-- Artist Pulled out of metadata tags and it's own tag was created.  new spec from medianet -->
                    <xsl:for-each select="contributor">
                        <ARTIST>
                            <TYPE><xsl:text>ARTIST</xsl:text></TYPE>
                            <VALUE><xsl:value-of select="name"/></VALUE>
                        </ARTIST>
                    </xsl:for-each>

                    <xsl:choose>
                        <xsl:when test="exists(/album/territories/allowed)">
                            <xsl:for-each select="/album/territories/allowed">
                                <xsl:if test="node() = 'US' or node() = 'CA' or node() = 'GB' or node() = 'IE' or node() = 'DE' or node() = 'FR'">
                                    <PRICE>
                                        <TYPE>LABEL_COST</TYPE>
                                        <TERRITORY_CODE><xsl:value-of select="node()"/></TERRITORY_CODE>
                                        <CURRENCY_CODE>
                                            <xsl:choose>
                                                <xsl:when test="node() = 'US'">USD</xsl:when>
                                                <xsl:when test="node() = 'CA'">CAD</xsl:when>
                                                <xsl:when test="node() = 'GB'">GBP</xsl:when>
                                                <xsl:otherwise>EUR</xsl:otherwise>
                                            </xsl:choose>
                                        </CURRENCY_CODE>
                                        <AMOUNT_NBR>
                                            <xsl:choose>
                                                <xsl:when test="node() = 'US'"><xsl:value-of select="$us-price-album"/></xsl:when>
                                                <xsl:when test="node() = 'CA'"><xsl:value-of select="$ca-price-album"/></xsl:when>
                                                <xsl:when test="node() = 'GB'"><xsl:value-of select="$gb-price-album"/></xsl:when>
                                                <xsl:when test="node() = 'IE'"><xsl:value-of select="$ie-price-album"/></xsl:when>
                                                <xsl:when test="node() = 'DE'"><xsl:value-of select="$de-price-album"/></xsl:when>
                                                <xsl:when test="node() = 'FR'"><xsl:value-of select="$fr-price-album"/></xsl:when>
                                            </xsl:choose>
                                        </AMOUNT_NBR>
                                        <EFFECTIVE_FROM_DATE><xsl:value-of select="$begin-date"/></EFFECTIVE_FROM_DATE>
                                        <EFFECTIVE_TO_DATE>9999-12-31</EFFECTIVE_TO_DATE>
                                    </PRICE>
                                </xsl:if>
                            </xsl:for-each>
                        </xsl:when>
                        <xsl:when test="exists(/album/territories/denied)">
                            <!-- the packager converts the denied list to an allowed list, so nothing needed here any longer -->
                        </xsl:when>
                        <xsl:otherwise>
                            <PRICE>
                                <TYPE>LABEL_COST</TYPE>
                                <TERRITORY_CODE>US</TERRITORY_CODE>
                                <CURRENCY_CODE>USD</CURRENCY_CODE>
                                <AMOUNT_NBR><xsl:value-of select="$us-price-album"/></AMOUNT_NBR>
                                <EFFECTIVE_FROM_DATE><xsl:value-of select="$begin-date"/></EFFECTIVE_FROM_DATE>
                                <EFFECTIVE_TO_DATE>9999-12-31</EFFECTIVE_TO_DATE>
                            </PRICE>
                            <PRICE>
                                <TYPE>LABEL_COST</TYPE>
                                <TERRITORY_CODE>CA</TERRITORY_CODE>
                                <CURRENCY_CODE>CAD</CURRENCY_CODE>
                                <AMOUNT_NBR><xsl:value-of select="$ca-price-album"/></AMOUNT_NBR>
                                <EFFECTIVE_FROM_DATE><xsl:value-of select="$begin-date"/></EFFECTIVE_FROM_DATE>
                                <EFFECTIVE_TO_DATE>9999-12-31</EFFECTIVE_TO_DATE>
                            </PRICE>
                            <PRICE>
                                <TYPE>LABEL_COST</TYPE>
                                <TERRITORY_CODE>GB</TERRITORY_CODE>
                                <CURRENCY_CODE>GBP</CURRENCY_CODE>
                                <AMOUNT_NBR><xsl:value-of select="$gb-price-album"/></AMOUNT_NBR>
                                <EFFECTIVE_FROM_DATE><xsl:value-of select="$begin-date"/></EFFECTIVE_FROM_DATE>
                                <EFFECTIVE_TO_DATE>9999-12-31</EFFECTIVE_TO_DATE>
                            </PRICE>
                            <PRICE>
                                <TYPE>LABEL_COST</TYPE>
                                <TERRITORY_CODE>DE</TERRITORY_CODE>
                                <CURRENCY_CODE>EUR</CURRENCY_CODE>
                                <AMOUNT_NBR><xsl:value-of select="$de-price-album"/></AMOUNT_NBR>
                                <EFFECTIVE_FROM_DATE><xsl:value-of select="$begin-date"/></EFFECTIVE_FROM_DATE>
                                <EFFECTIVE_TO_DATE>9999-12-31</EFFECTIVE_TO_DATE>
                            </PRICE>
                            <PRICE>
                                <TYPE>LABEL_COST</TYPE>
                                <TERRITORY_CODE>FR</TERRITORY_CODE>
                                <CURRENCY_CODE>EUR</CURRENCY_CODE>
                                <AMOUNT_NBR><xsl:value-of select="$fr-price-album"/></AMOUNT_NBR>
                                <EFFECTIVE_FROM_DATE><xsl:value-of select="$begin-date"/></EFFECTIVE_FROM_DATE>
                                <EFFECTIVE_TO_DATE>9999-12-31</EFFECTIVE_TO_DATE>
                            </PRICE>
                            <PRICE>
                                <TYPE>LABEL_COST</TYPE>
                                <TERRITORY_CODE>IE</TERRITORY_CODE>
                                <CURRENCY_CODE>EUR</CURRENCY_CODE>
                                <AMOUNT_NBR><xsl:value-of select="$ie-price-album"/></AMOUNT_NBR>
                                <EFFECTIVE_FROM_DATE><xsl:value-of select="$begin-date"/></EFFECTIVE_FROM_DATE>
                                <EFFECTIVE_TO_DATE>9999-12-31</EFFECTIVE_TO_DATE>
                            </PRICE>
                        </xsl:otherwise>
                    </xsl:choose>


                    <!--  ================== TRACKS  =======================     -->
                    <xsl:for-each select="volume">
                        <xsl:variable name="volume" select="idea:padFrontOfString('0', 2, @id)"/>
                        <xsl:for-each select="track">
                            <MUSICNET_COMPONENT>
                                <MUSICNET_COMPONENT_CODE>
                                    <xsl:value-of select="concat($upc, '_',
                                        idea:padFrontOfString('0', 2, $volume), '_',
                                        idea:padFrontOfString('0', 2, sequence))"/>
                                </MUSICNET_COMPONENT_CODE>
                                <COMPONENT_TYPE>TRACK</COMPONENT_TYPE>
                                <CORP_CODE>
                                    <xsl:value-of select="/album/corp-code"/>
                                </CORP_CODE>
                                <LABEL_CODE>
                                    <xsl:value-of select="$label"/>
                                </LABEL_CODE>

                                <xsl:choose>
                                    <xsl:when test="exists(/album/territories/allowed)">
                                        <xsl:for-each select="/album/territories/allowed">
                                            <xsl:if test="node() = 'US' or node() = 'CA' or node() = 'GB' or node() = 'IE' or node() = 'DE' or node() = 'FR'">
                                                <DIGITAL_AVAILABILITY>
                                                    <BEGIN_DATE><xsl:value-of select="$begin-date"/></BEGIN_DATE>
                                                    <TERRITORY_CODE><xsl:value-of select="node()"/></TERRITORY_CODE>
                                                </DIGITAL_AVAILABILITY>
                                                <STREAM_RIGHT>
                                                    <VALUE>TRUE</VALUE>
                                                    <TERRITORY_CODE><xsl:value-of select="node()"/></TERRITORY_CODE>
                                                </STREAM_RIGHT>
                                                <DOWNLOAD_RIGHT>
                                                    <VALUE>TRUE</VALUE>
                                                    <TERRITORY_CODE><xsl:value-of select="node()"/></TERRITORY_CODE>
                                                </DOWNLOAD_RIGHT>
                                                <CD_BURN_RIGHT>
                                                    <VALUE>TRUE</VALUE>
                                                    <TERRITORY_CODE><xsl:value-of select="node()"/></TERRITORY_CODE>
                                                </CD_BURN_RIGHT>
                                                <NON_DRM_PURCHASE>
                                                    <VALUE>TRUE</VALUE>
                                                    <TERRITORY_CODE><xsl:value-of select="node()"/></TERRITORY_CODE>
                                                </NON_DRM_PURCHASE>
                                                <NON_DRM_STREAM>
                                                    <VALUE>TRUE</VALUE>
                                                    <TERRITORY_CODE><xsl:value-of select="node()"/></TERRITORY_CODE>
                                                </NON_DRM_STREAM>
                                                <TRANSFER2PD_RIGHT>
                                                    <VALUE>TRUE</VALUE>
                                                    <TERRITORY_CODE><xsl:value-of select="node()"/></TERRITORY_CODE>
                                                </TRANSFER2PD_RIGHT>
                                                <LABEL_APPR_IND>
                                                    <VALUE>TRUE</VALUE>
                                                    <TERRITORY_CODE><xsl:value-of select="node()"/></TERRITORY_CODE>
                                                </LABEL_APPR_IND>
                                                <PUBLISHER_APPR_IND>
                                                    <VALUE>TRUE</VALUE>
                                                    <TERRITORY_CODE><xsl:value-of select="node()"/></TERRITORY_CODE>
                                                </PUBLISHER_APPR_IND>
                                            </xsl:if>
                                        </xsl:for-each>
                                    </xsl:when>
                                    <xsl:when test="exists(/album/territories/denied)">
                                        <!-- the packager converts the denied list to an allowed list, so nothing needed here any longer -->
                                    </xsl:when>
                                    <xsl:otherwise>
                                        <DIGITAL_AVAILABILITY>
                                            <BEGIN_DATE><xsl:value-of select="$begin-date"/></BEGIN_DATE>
                                            <TERRITORY_CODE>WW-MN</TERRITORY_CODE>
                                        </DIGITAL_AVAILABILITY>
                                        <STREAM_RIGHT>
                                            <VALUE>TRUE</VALUE>
                                            <TERRITORY_CODE>WW-MN</TERRITORY_CODE>
                                        </STREAM_RIGHT>
                                        <DOWNLOAD_RIGHT>
                                            <VALUE>TRUE</VALUE>
                                            <TERRITORY_CODE>WW-MN</TERRITORY_CODE>
                                        </DOWNLOAD_RIGHT>
                                        <CD_BURN_RIGHT>
                                            <VALUE>TRUE</VALUE>
                                            <TERRITORY_CODE>WW-MN</TERRITORY_CODE>
                                        </CD_BURN_RIGHT>
                                        <NON_DRM_PURCHASE>
                                            <VALUE>TRUE</VALUE>
                                            <TERRITORY_CODE>WW-MN</TERRITORY_CODE>
                                        </NON_DRM_PURCHASE>
                                        <NON_DRM_STREAM>
                                            <VALUE>TRUE</VALUE>
                                            <TERRITORY_CODE>WW-MN</TERRITORY_CODE>
                                        </NON_DRM_STREAM>
                                        <TRANSFER2PD_RIGHT>
                                            <VALUE>TRUE</VALUE>
                                            <TERRITORY_CODE>WW-MN</TERRITORY_CODE>
                                        </TRANSFER2PD_RIGHT>
                                        <LABEL_APPR_IND>
                                            <VALUE>TRUE</VALUE>
                                            <TERRITORY_CODE>WW-MN</TERRITORY_CODE>
                                        </LABEL_APPR_IND>
                                        <PUBLISHER_APPR_IND>
                                            <VALUE>TRUE</VALUE>
                                            <TERRITORY_CODE>WW-MN</TERRITORY_CODE>
                                        </PUBLISHER_APPR_IND>
                                    </xsl:otherwise>
                                </xsl:choose>

                                <xsl:if test="exists(cline)">
                                    <METADATA>
                                        <TYPE>CLINE</TYPE>
                                        <VALUE>(C) <xsl:value-of select="cline"/>
                                        </VALUE>
                                    </METADATA>
                                </xsl:if>
                                <xsl:if test="exists(pline)">
                                    <METADATA>
                                        <TYPE>PLINE</TYPE>
                                        <VALUE>(P) <xsl:value-of select="pline"/>
                                        </VALUE>
                                    </METADATA>
                                </xsl:if>
                                <METADATA>
                                    <TYPE>DISC_NUMBER</TYPE>
                                    <VALUE>
                                        <xsl:value-of select="$volume"/>
                                    </VALUE>
                                </METADATA>
                                <METADATA>
                                    <TYPE>DURATION</TYPE>
                                    <VALUE>
                                        <xsl:value-of
                                            select="idea:createFriendlyMinutesAndSeconds(length)"/>
                                    </VALUE>
                                </METADATA>
                                <METADATA>
                                    <TYPE>TITLE</TYPE>
                                    <VALUE>
                                        <xsl:value-of select="title"/>
                                    </VALUE>
                                </METADATA>
                                <METADATA>
                                    <TYPE>TRACK_NUMBER</TYPE>
                                    <VALUE>
                                        <xsl:value-of select="idea:padFrontOfString('0', 2,
                                            sequence)"/>
                                    </VALUE>
                                </METADATA>
                                <METADATA>
                                    <TYPE>RELEASE_DATE</TYPE>
                                    <VALUE>
                                        <xsl:value-of select="replace(/album/release-date, '-', '')"/>
                                    </VALUE>
                                </METADATA>
                                <xsl:if test="exists(version)">
                                    <METADATA>
                                        <TYPE>VERSION</TYPE>
                                        <VALUE>
                                            <xsl:value-of select="version"/>
                                        </VALUE>
                                    </METADATA>
                                </xsl:if>
                                <xsl:if test="exists(display-artist)">
                                    <ARTIST>
                                        <TYPE>PERFORMER</TYPE>
                                        <VALUE>
                                            <xsl:value-of select="display-artist"/>
                                        </VALUE>
                                    </ARTIST>
                                </xsl:if>

                                <xsl:for-each select="contributor">
                                    <ARTIST>
                                        <TYPE><xsl:text>ARTIST</xsl:text></TYPE>
                                        <VALUE><xsl:value-of select="name"/></VALUE>
                                    </ARTIST>
                                </xsl:for-each>

                                <xsl:choose>

                                    <xsl:when test="exists(genre[position()=1]) ">
                                        <METADATA>
                                            <TYPE>GENRE</TYPE>
                                            <VALUE>
                                                <xsl:value-of select="idea:mapGenre (/album/genre[position()=1])"/>
                                            </VALUE>
                                        </METADATA>

                                        <xsl:if test="exists(genre[position()&gt;1])">
                                            <xsl:variable name="alt-track-genres" select="genre[position()&gt;1]"/>
                                            <xsl:for-each select="$alt-track-genres">
                                                <METADATA>
                                                    <TYPE>ALTERNATE_GENRE</TYPE>
                                                    <VALUE>
                                                        <xsl:value-of select="idea:mapGenre (node())"/>
                                                    </VALUE>
                                                </METADATA>
                                            </xsl:for-each>
                                        </xsl:if>

                                    </xsl:when>
                                    <xsl:otherwise>
                                        <xsl:copy-of select="$release-genres"/>
                                    </xsl:otherwise>
                                </xsl:choose>
                                <METADATA>
                                    <TYPE>ISRC</TYPE>
                                    <VALUE>
                                        <xsl:value-of select="replace(isrc, '-', '')"/>
                                    </VALUE>
                                </METADATA>
                                <METADATA>
                                    <TYPE>PARENTAL_ADVISORY</TYPE>
                                    <VALUE>
                                        <xsl:choose>
                                            <xsl:when test="compare(@is-explicit, 'explicit') =0">TRUE</xsl:when>
                                            <xsl:otherwise>FALSE</xsl:otherwise>
                                        </xsl:choose>
                                    </VALUE>
                                </METADATA>

                                <xsl:choose>
                                <xsl:when test="exists(/album/territories/allowed)">
                                    <xsl:for-each select="/album/territories/allowed">
                                        <xsl:if test="node() = 'US' or node() = 'CA' or node() = 'GB' or node() = 'IE' or node() = 'DE' or node() = 'FR'">
                                            <PRICE>
                                                <TYPE>LABEL_COST</TYPE>
                                                <TERRITORY_CODE><xsl:value-of select="node()"/></TERRITORY_CODE>
                                                <CURRENCY_CODE>
                                                    <xsl:choose>
                                                        <xsl:when test="node() = 'US'">USD</xsl:when>
                                                        <xsl:when test="node() = 'CA'">CAD</xsl:when>
                                                        <xsl:when test="node() = 'GB'">GBP</xsl:when>
                                                        <xsl:otherwise>EUR</xsl:otherwise>
                                                    </xsl:choose>
                                                </CURRENCY_CODE>
                                                <AMOUNT_NBR>
                                                    <xsl:choose>
                                                        <xsl:when test="node() = 'US'"><xsl:value-of select="$us-price-track"/></xsl:when>
                                                        <xsl:when test="node() = 'CA'"><xsl:value-of select="$ca-price-track"/></xsl:when>
                                                        <xsl:when test="node() = 'GB'"><xsl:value-of select="$gb-price-track"/></xsl:when>
                                                        <xsl:when test="node() = 'IE'"><xsl:value-of select="$ie-price-track"/></xsl:when>
                                                        <xsl:when test="node() = 'DE'"><xsl:value-of select="$de-price-track"/></xsl:when>
                                                        <xsl:when test="node() = 'FR'"><xsl:value-of select="$fr-price-track"/></xsl:when>
                                                    </xsl:choose>
                                                </AMOUNT_NBR>
                                                <EFFECTIVE_FROM_DATE><xsl:value-of select="$begin-date"/></EFFECTIVE_FROM_DATE>
                                                <EFFECTIVE_TO_DATE>9999-12-31</EFFECTIVE_TO_DATE>
                                            </PRICE>
                                        </xsl:if>
                                    </xsl:for-each>
                                </xsl:when>
                                <xsl:when test="exists(/album/territories/denied)">
                                    <!-- the packager converts the denied list to an allowed list, so nothing needed here any longer -->
                                </xsl:when>
                                <xsl:otherwise>
                                    <PRICE>
                                        <TYPE>LABEL_COST</TYPE>
                                        <TERRITORY_CODE>US</TERRITORY_CODE>
                                        <CURRENCY_CODE>USD</CURRENCY_CODE>
                                        <AMOUNT_NBR><xsl:value-of select="$us-price-track"/></AMOUNT_NBR>
                                        <EFFECTIVE_FROM_DATE><xsl:value-of select="$begin-date"/></EFFECTIVE_FROM_DATE>
                                        <EFFECTIVE_TO_DATE>9999-12-31</EFFECTIVE_TO_DATE>
                                    </PRICE>
                                    <PRICE>
                                        <TYPE>LABEL_COST</TYPE>
                                        <TERRITORY_CODE>CA</TERRITORY_CODE>
                                        <CURRENCY_CODE>CAD</CURRENCY_CODE>
                                        <AMOUNT_NBR><xsl:value-of select="$ca-price-track"/></AMOUNT_NBR>
                                        <EFFECTIVE_FROM_DATE><xsl:value-of select="$begin-date"/></EFFECTIVE_FROM_DATE>
                                        <EFFECTIVE_TO_DATE>9999-12-31</EFFECTIVE_TO_DATE>
                                    </PRICE>
                                    <PRICE>
                                        <TYPE>LABEL_COST</TYPE>
                                        <TERRITORY_CODE>GB</TERRITORY_CODE>
                                        <CURRENCY_CODE>GBP</CURRENCY_CODE>
                                        <AMOUNT_NBR><xsl:value-of select="$gb-price-track"/></AMOUNT_NBR>
                                        <EFFECTIVE_FROM_DATE><xsl:value-of select="$begin-date"/></EFFECTIVE_FROM_DATE>
                                        <EFFECTIVE_TO_DATE>9999-12-31</EFFECTIVE_TO_DATE>
                                    </PRICE>
                                    <PRICE>
                                        <TYPE>LABEL_COST</TYPE>
                                        <TERRITORY_CODE>DE</TERRITORY_CODE>
                                        <CURRENCY_CODE>EUR</CURRENCY_CODE>
                                        <AMOUNT_NBR><xsl:value-of select="$de-price-track"/></AMOUNT_NBR>
                                        <EFFECTIVE_FROM_DATE><xsl:value-of select="$begin-date"/></EFFECTIVE_FROM_DATE>
                                        <EFFECTIVE_TO_DATE>9999-12-31</EFFECTIVE_TO_DATE>
                                    </PRICE>
                                    <PRICE>
                                        <TYPE>LABEL_COST</TYPE>
                                        <TERRITORY_CODE>FR</TERRITORY_CODE>
                                        <CURRENCY_CODE>EUR</CURRENCY_CODE>
                                        <AMOUNT_NBR><xsl:value-of select="$fr-price-track"/></AMOUNT_NBR>
                                        <EFFECTIVE_FROM_DATE><xsl:value-of select="$begin-date"/></EFFECTIVE_FROM_DATE>
                                        <EFFECTIVE_TO_DATE>9999-12-31</EFFECTIVE_TO_DATE>
                                    </PRICE>
                                    <PRICE>
                                        <TYPE>LABEL_COST</TYPE>
                                        <TERRITORY_CODE>IE</TERRITORY_CODE>
                                        <CURRENCY_CODE>EUR</CURRENCY_CODE>
                                        <AMOUNT_NBR><xsl:value-of select="$ie-price-track"/></AMOUNT_NBR>
                                        <EFFECTIVE_FROM_DATE><xsl:value-of select="$begin-date"/></EFFECTIVE_FROM_DATE>
                                        <EFFECTIVE_TO_DATE>9999-12-31</EFFECTIVE_TO_DATE>
                                    </PRICE>
                                </xsl:otherwise>
                                </xsl:choose>

                            </MUSICNET_COMPONENT>
                        </xsl:for-each>
                    </xsl:for-each>
                </MUSICNET_COMPONENT>
            </DATA>
        </xsl:if>
    </xsl:template>
</xsl:stylesheet>
