<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" >
	<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>
		<album-name><xsl:value-of select="title"/></album-name>
		<album-upc><xsl:value-of select="upc"/></album-upc>
		<artist-name><xsl:value-of select="display-artist"/></artist-name>
		<label><xsl:value-of select="label"/></label>
		<genre><xsl:value-of select="genre"/></genre>
		<explicit-lyrics>
			<xsl:choose>
				<xsl:when test="compare(@is-explicit,'explicit') = 0">Y</xsl:when>
				<xsl:when test="compare(@is-explicit,'clean') = 0">E</xsl:when>
				<xsl:otherwise>N</xsl:otherwise>
			</xsl:choose>	
		</explicit-lyrics> 
		<disc-count><xsl:value-of select="count(volume)"/></disc-count> 
		<p_line><xsl:value-of select="cline"/></p_line> 
		<c_line><xsl:value-of select="pline"/></c_line>
		<GRAPHIC>
			<filename><xsl:value-of select="image-filename"/></filename>
			<format>jpeg</format>
			<resolution>72</resolution>
			<dimensions>125x125</dimensions>
		</GRAPHIC>

		<xsl:choose>
			<xsl:when test="compare(/album/territories/allowed[1],'WW')=0">
				<territory>
					<territory-code>US</territory-code>
					<currency-code>USD</currency-code>
					<release-date><xsl:value-of select="release-date"/></release-date>
					<album-release-year><xsl:value-of select="substring(release-date, 1, 4)"/></album-release-year>
					<album-selltype>N</album-selltype>
					<Reporting_ID><xsl:value-of select="upc"/></Reporting_ID>
				</territory>
				<territory>
					<territory-code>CA</territory-code>
					<currency-code>CAD</currency-code>
					<release-date><xsl:value-of select="release-date"/></release-date>
					<album-release-year><xsl:value-of select="substring(release-date, 1, 4)"/></album-release-year>
					<album-selltype>N</album-selltype>
					<Reporting_ID><xsl:value-of select="upc"/></Reporting_ID>
				</territory>
			</xsl:when>
			
			<xsl:when test="/album/territories/allowed">
				<xsl:for-each select="/album/territories/allowed">
                    <xsl:if test="node() = 'US' or node() = 'CA'">
                        <territory>
                            <territory-code><xsl:value-of select="node()"/></territory-code>
                            <currency-code>
                                <xsl:choose>
                                    <xsl:when test="node() = 'CA'">CAD</xsl:when>
                                    <xsl:otherwise>USD</xsl:otherwise>
                                </xsl:choose>
                            </currency-code>
                            <release-date><xsl:value-of select="release-date"/></release-date>
                            <album-release-year><xsl:value-of select="substring(release-date, 1, 4)"/></album-release-year>
                            <album-selltype>N</album-selltype>
                            <Reporting_ID><xsl:value-of select="upc"/></Reporting_ID>
                        </territory>
                    </xsl:if>
				</xsl:for-each>
			</xsl:when>
			
			<xsl:when test="/album/territories/denied">
                <!-- nothing to do here now; packager converts denied list into allowed list -->
			</xsl:when>
			
			<xsl:otherwise>
				<territory>
					<territory-code>US</territory-code>
					<currency-code>USD</currency-code>
					<release-date><xsl:value-of select="release-date"/></release-date>
					<album-release-year><xsl:value-of select="substring(release-date, 1, 4)"/></album-release-year>
					<album-selltype>N</album-selltype>
					<Reporting_ID><xsl:value-of select="upc"/></Reporting_ID>
				</territory>
				<territory>
					<territory-code>CA</territory-code>
					<currency-code>CAD</currency-code>
					<release-date><xsl:value-of select="release-date"/></release-date>
					<album-release-year><xsl:value-of select="substring(release-date, 1, 4)"/></album-release-year>
					<album-selltype>N</album-selltype>
					<Reporting_ID><xsl:value-of select="upc"/></Reporting_ID>
				</territory>
			</xsl:otherwise>
		</xsl:choose>
        
		<xsl:variable name="upc" select="upc"/>			
		<tracks>
			<xsl:for-each select="volume">
				<xsl:variable name="volume" select="@id"/>
				<xsl:variable name="sequence" select="sequence"/>
				<xsl:for-each select="track">
					<track>
						<track-name><xsl:value-of select="title" /></track-name> 
						<artist-name><xsl:value-of select="display-artist" /></artist-name> 
						<track-genre><xsl:value-of select="genre" /></track-genre> 
						<isrc><xsl:value-of select="isrc" /></isrc> 
						<track-explicit>
							<xsl:choose>
								<xsl:when test="compare(@is-explicit,'explicit') = 0">Y</xsl:when>
								<xsl:when test="compare(@is-explicit,'clean') = 0">E</xsl:when>
								<xsl:otherwise>N</xsl:otherwise>
							</xsl:choose>
						</track-explicit> 
						<duration><xsl:value-of select="idea:createFriendlyMinutesAndSeconds(length)"/></duration> 
						<disc-number><xsl:value-of select="$volume"/></disc-number> 
						<track-number><xsl:value-of select="sequence"/></track-number>
						<track-Fulllength>
						<filename><xsl:value-of select="audio-filename" /></filename> 
							<format>mp3</format> 
							<Kbitrate>256</Kbitrate> 
						</track-Fulllength>
						<track-Preview>
						<filename><xsl:value-of select="preview-filename" /></filename> 
							<format>mp3</format> 
							<Kbitrate>96</Kbitrate> 
						</track-Preview>
						<Reporting_ID><xsl:value-of select="isrc" /></Reporting_ID> 
						
						<xsl:choose>
							<xsl:when test="compare(/album/territories/allowed[1],'WW')=0">
								<territory>
									<territory-code>US</territory-code>
									<currency-code>USD</currency-code>
									<track-selltype>N</track-selltype>
									<Reporting_ID><xsl:value-of select="isrc"/></Reporting_ID>
								</territory>
								<territory>
									<territory-code>CA</territory-code>
									<currency-code>CAD</currency-code>
									<track-selltype>N</track-selltype>
									<Reporting_ID><xsl:value-of select="isrc"/></Reporting_ID>
								</territory>
							</xsl:when>
							
							<xsl:when test="/album/territories/allowed">
								<xsl:for-each select="/album/territories/allowed">
                                    <xsl:if test="node() = 'US' or node() = 'CA'">
                                        <territory>
                                            <territory-code><xsl:value-of select="node()"/></territory-code>
                                            <currency-code>
                                            <xsl:choose>
                                                <xsl:when test="node() = 'CA'">CAD</xsl:when>
                                                <xsl:otherwise>USD</xsl:otherwise>
                                            </xsl:choose>
                                            </currency-code>
                                            <track-selltype>N</track-selltype>
                                            <Reporting_ID><xsl:value-of select="isrc"/></Reporting_ID>
                                        </territory>
                                    </xsl:if>
								</xsl:for-each>
							</xsl:when>
							
							<xsl:when test="/album/territories/denied">
                                <!-- nothing to do here now; packager converts denied list into allowed list -->
							</xsl:when>
							
							<xsl:otherwise>
								<territory>
									<territory-code>US</territory-code>
									<currency-code>USD</currency-code>
									<track-selltype>N</track-selltype>
									<Reporting_ID><xsl:value-of select="isrc"/></Reporting_ID>
								</territory>
								<territory>
									<territory-code>CA</territory-code>
									<currency-code>CAD</currency-code>
									<track-selltype>N</track-selltype>
									<Reporting_ID><xsl:value-of select="isrc"/></Reporting_ID>
								</territory>
							</xsl:otherwise>
						</xsl:choose>

					</track>
				</xsl:for-each>
			</xsl:for-each>
        </tracks>
	</album>
	</xsl:template>
</xsl:stylesheet>
