<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:idea="http://www.ideadistributors.com/idea/xsl" exclude-result-prefixes="#all" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="D:\vintage\transforms\validation\AMZ_Feed_2.1.xsd">
	<xsl:include href="idea-functions.xsl"/>
    <xsl:variable name="countriesList" select="document('countries.xml')"/>
	<xsl:variable name="thisDocument" select="/"/>
	<xsl:template name="total-durations">
		<xsl:param name="durations"/>
		<xsl:choose>
			<xsl:when test="$durations[2]">
				<xsl:variable name="first" select="$durations[1]"/>
				<xsl:variable name="rest">
					<xsl:call-template name="total-durations">
						<xsl:with-param name="durations" select="$durations[position()!=1]"/>
					</xsl:call-template>
				</xsl:variable>
				<xsl:value-of select="idea:create-time-from-int(idea:create-int-from-time($first) +
		    idea:create-int-from-time($rest))"/>
			</xsl:when>
			<xsl:when test="$durations">
				<xsl:value-of select="$durations[1]"/>
			</xsl:when>
			<xsl:otherwise>0</xsl:otherwise>
		</xsl:choose>
	</xsl:template>
	<xsl:template match="album">

          <Album xmlns="www.liquiddigitalmedia.com/xsd/injest/album" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="www.liquiddigitalmedia.com/xsd/injest/album album.xsd" partnerId="WEA">
	<ALBUM_INFO>
		<DELIVERY_TYPE>COMPLETE_ALBUM_CONTENT</DELIVERY_TYPE>
		<LABEL_NAME><xsl:value-of select="label"/></LABEL_NAME>
		<VENDOR_CODE><xsl:value-of select="vendor-id"/></VENDOR_CODE>
		<ALBUM_ID><xsl:value-of select="upc"/></ALBUM_ID>
	</ALBUM_INFO>
	<ALBUM_METADATA>
		<TITLE><xsl:value-of select="title"/></TITLE>
		<NUM_DISCS><xsl:value-of select="count(/album/volume)"/></NUM_DISCS>
		<NUM_TRACKS><xsl:value-of select="count(//track)"/></NUM_TRACKS>
		<DURATION>
			<xsl:variable name="total-duration"><xsl:value-of select="/album/audio-duration" /></xsl:variable>
             <xsl:value-of select="idea:createFriendlyMinutesAndSeconds($total-duration)"/>
         	</DURATION>
		<PRIMARY_GENRE><xsl:value-of select="idea:mapGenre(genre[1])"/></PRIMARY_GENRE>
		<xsl:if test="count(/album/genre[position()>1]) > 0">
				<xsl:for-each select="/album/genre[position() > 1]">
					<ADDITIONAL_GENRE>
						<xsl:value-of select="idea:mapGenre(node())"/>
					</ADDITIONAL_GENRE>
				</xsl:for-each>
		</xsl:if>
		<PRIMARY_ARTIST><xsl:value-of select="/album/display-artist"/></PRIMARY_ARTIST>
		<xsl:if test="count(/album/contributor[position()>1]) > 0">
				<xsl:for-each select="/album/contributor[position() > 1]">
					<ADDITIONAL_ARTIST>
						<xsl:value-of select="node()"/>
					</ADDITIONAL_ARTIST>
				</xsl:for-each>
		</xsl:if>
		<EXPLICIT_LYRICS>
			<xsl:choose>
				<xsl:when test="compare(@is-explicit, 'explicit') = 0">
				true
				</xsl:when>
				<xsl:when test="compare(@is-explicit, 'clean') = 0">
				true
				</xsl:when>
				<xsl:otherwise>
				false
				</xsl:otherwise>
			</xsl:choose>
		</EXPLICIT_LYRICS>
		<ORIGINAL_RELEASE_DATE><xsl:value-of select="release-date"/></ORIGINAL_RELEASE_DATE>
		<COPYRIGHT_LINE><xsl:value-of select="cline"/></COPYRIGHT_LINE>
		<PHONOGRAPHIC_LINE><xsl:value-of select="pline"/></PHONOGRAPHIC_LINE>
	</ALBUM_METADATA>
        <xsl:choose>
	        <xsl:when test="compare(/album/territories/allowed[1],'WW')=0">
        		<ALBUM_TERRITORY>
				<TERRITORY_CODE>**</TERRITORY_CODE>
				<PRICE>
                        		<CODE>EXCLUSIVE</CODE>
                        		<EFFECTIVE_DATE>IMMEDIATE</EFFECTIVE_DATE>
                		</PRICE>
        		</ALBUM_TERRITORY>
	        </xsl:when>
	        <xsl:when test="/album/territories/allowed">
		        <xsl:for-each select="/album/territories/allowed">
        			<ALBUM_TERRITORY>
					<TERRITORY_CODE><xsl:value-of select="node()"/></TERRITORY_CODE>
                			<PRICE>
                        			<CODE>EXCLUSIVE</CODE>
                        			<EFFECTIVE_DATE>IMMEDIATE</EFFECTIVE_DATE>
                			</PRICE>
        			</ALBUM_TERRITORY>
		        </xsl:for-each>
	        </xsl:when>
	        <xsl:when test="/album/territories/denied">
		        <xsl:for-each select="$countriesList/CountryCodes/Code">
			        <!--must loop through each denied to find a match, if found, don't display -->
			        <xsl:if test="not(idea:excluded(node(),$thisDocument/album/territories)=1)">
        				<ALBUM_TERRITORY>
						<TERRITORY_CODE><xsl:value-of select="node()"/></TERRITORY_CODE>
                				<PRICE>
                        				<CODE>EXCLUSIVE</CODE>
                        				<EFFECTIVE_DATE>IMMEDIATE</EFFECTIVE_DATE>
                				</PRICE>
        				</ALBUM_TERRITORY>
			        </xsl:if>
		        </xsl:for-each>
	        </xsl:when>
                <xsl:otherwise>
        		<ALBUM_TERRITORY>
				<TERRITORY_CODE>**</TERRITORY_CODE>
				<PRICE>
                        		<CODE>EXCLUSIVE</CODE>
                        		<EFFECTIVE_DATE>IMMEDIATE</EFFECTIVE_DATE>
                		</PRICE>
        		</ALBUM_TERRITORY>
                </xsl:otherwise>
        </xsl:choose>
	<COVER_ART_FILE>
		<CHECKSUM>
          <xsl:value-of select="image-checksum"/>
		</CHECKSUM>
	</COVER_ART_FILE>
	<xsl:for-each select="//track">
		<xsl:sort select="../@id" data-type="number" order="ascending"/>
		<xsl:sort select="sequence" data-type="number" order="ascending"/>
		<TRACK>
			<TRACK_INFO>
				<TRACK_ID><xsl:value-of select="isrc"/></TRACK_ID>
				<ISRC><xsl:value-of select="idea:spliceISRC(isrc)"/></ISRC>
			</TRACK_INFO>
			<TRACK_METADATA>
				<TITLE><xsl:value-of select="title"/></TITLE>
                <xsl:if test="/album/is-classical = 1">
                  <COMPOSER>
                    <xsl:value-of select="composer"/>
                  </COMPOSER>
                </xsl:if>
				<DISC_NUMBER><xsl:value-of select="../@id"/></DISC_NUMBER>
				<TRACK_NUMBER><xsl:value-of select="sequence"/></TRACK_NUMBER>
				<DURATION><xsl:value-of select="idea:createFriendlyMinutesAndSeconds(audio-duration)"/></DURATION>
				<PRIMARY_GENRE><xsl:value-of select="idea:mapGenre(genre[1])"/></PRIMARY_GENRE>
			<xsl:if test="count(genre[position()>1]) > 0">
					<xsl:for-each select="genre[position() > 1]">
						<ADDITIONAL_GENRE>
							<xsl:value-of select="idea:mapGenre(node())"/>
						</ADDITIONAL_GENRE>
					</xsl:for-each>
			</xsl:if>
			<PRIMARY_ARTIST><xsl:value-of select="display-artist"/></PRIMARY_ARTIST>
			<xsl:if test="count(contributor[position()>1]) > 0">
					<xsl:for-each select="contributor[position() > 1]">
						<ADDITIONAL_ARTIST>
							<xsl:value-of select="node()"/>
						</ADDITIONAL_ARTIST>
					</xsl:for-each>
			</xsl:if>
				<EXPLICIT_LYRICS>
					<xsl:choose>
						<xsl:when test="compare(@is-explicit, 'explicit') = 0">
						true
						</xsl:when>
						<xsl:when test="compare(@is-explicit, 'clean') = 0">
						true
						</xsl:when>
						<xsl:otherwise>
						false
						</xsl:otherwise>
					</xsl:choose>
				</EXPLICIT_LYRICS>
			</TRACK_METADATA>
			<xsl:choose>
				<xsl:when test="compare(/album/territories/allowed[1],'WW')=0">
						<TRACK_TERRITORY>
							<TERRITORY_CODE>**</TERRITORY_CODE>
							<PERM_DOWNLOAD_AVAILABILITY>true</PERM_DOWNLOAD_AVAILABILITY>
							<SUBSCRIPTION_AVAILABILITY>true</SUBSCRIPTION_AVAILABILITY>
							<COMPOSITION_CLEARANCE>true</COMPOSITION_CLEARANCE>
							<ALBUM_ONLY>
								<xsl:choose>
									<xsl:when test="compare(@sell-unbundled, 'no') = 0">
										true
									</xsl:when>
									<xsl:otherwise>
										false
									</xsl:otherwise>
								</xsl:choose>
							</ALBUM_ONLY>
							<FREE_DOWNLOAD>false</FREE_DOWNLOAD>
							<PROMOTIONAL_STREAM>false</PROMOTIONAL_STREAM>
						</TRACK_TERRITORY>
				</xsl:when>
				<xsl:when test="/album/territories/allowed">
					<xsl:for-each select="/album/territories/allowed">
						<TRACK_TERRITORY>
							<TERRITORY_CODE><xsl:value-of select="node()"/></TERRITORY_CODE>
							<PERM_DOWNLOAD_AVAILABILITY>true</PERM_DOWNLOAD_AVAILABILITY>
							<SUBSCRIPTION_AVAILABILITY>true</SUBSCRIPTION_AVAILABILITY>
							<COMPOSITION_CLEARANCE>true</COMPOSITION_CLEARANCE>
							<ALBUM_ONLY>
								<xsl:choose>
									<xsl:when test="compare(@sell-unbundled, 'no') = 0">
										true
									</xsl:when>
									<xsl:otherwise>
										false
									</xsl:otherwise>
								</xsl:choose>
							</ALBUM_ONLY>
							<FREE_DOWNLOAD>false</FREE_DOWNLOAD>
							<PROMOTIONAL_STREAM>false</PROMOTIONAL_STREAM>
						</TRACK_TERRITORY>
					</xsl:for-each>
				</xsl:when>
				<xsl:when test="/album/territories/denied">
					<xsl:for-each select="$countriesList/CountryCodes/Code">
						<!--must loop through each denied to find a match, if found, don't display -->
						<xsl:if test="not(idea:excluded(node(),$thisDocument/album/territories)=1)">
							<TRACK_TERRITORY>
								<TERRITORY_CODE><xsl:value-of select="node()"/></TERRITORY_CODE>
								<PERM_DOWNLOAD_AVAILABILITY>true</PERM_DOWNLOAD_AVAILABILITY>
								<SUBSCRIPTION_AVAILABILITY>true</SUBSCRIPTION_AVAILABILITY>
								<COMPOSITION_CLEARANCE>true</COMPOSITION_CLEARANCE>
								<ALBUM_ONLY>
									<xsl:choose>
										<xsl:when test="compare(@sell-unbundled, 'no') = 0">
											true
										</xsl:when>
										<xsl:otherwise>
											false
										</xsl:otherwise>
									</xsl:choose>
								</ALBUM_ONLY>
								<FREE_DOWNLOAD>false</FREE_DOWNLOAD>
								<PROMOTIONAL_STREAM>false</PROMOTIONAL_STREAM>
							</TRACK_TERRITORY>
						</xsl:if>
					</xsl:for-each>
				</xsl:when>
				<xsl:otherwise>
						<TRACK_TERRITORY>
							<TERRITORY_CODE>**</TERRITORY_CODE>
							<PERM_DOWNLOAD_AVAILABILITY>true</PERM_DOWNLOAD_AVAILABILITY>
							<SUBSCRIPTION_AVAILABILITY>true</SUBSCRIPTION_AVAILABILITY>
							<COMPOSITION_CLEARANCE>true</COMPOSITION_CLEARANCE>
							<ALBUM_ONLY>
								<xsl:choose>
									<xsl:when test="compare(@sell-unbundled, 'no') = 0">
										true
									</xsl:when>
									<xsl:otherwise>
										false
									</xsl:otherwise>
								</xsl:choose>
							</ALBUM_ONLY>
							<FREE_DOWNLOAD>false</FREE_DOWNLOAD>
							<PROMOTIONAL_STREAM>false</PROMOTIONAL_STREAM>
						</TRACK_TERRITORY>
				</xsl:otherwise>
			</xsl:choose>
			<AUDIO_CONTENT_FILE>
				<CHECKSUM>
                  <xsl:value-of select="audio-checksum"/>
				</CHECKSUM>
			</AUDIO_CONTENT_FILE>
		</TRACK>
		</xsl:for-each>
	</Album>
	</xsl:template>
</xsl:stylesheet>
