<!--                                                                  -->
<!--  Copyright (C) 2006 RoyaltyShare, Inc.   All Rights Reserved     -->
<!--  $Id$  -->
<!--                                                                  -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:dyn="http://exslt.org/dynamic" extension-element-prefixes="dyn">
  <xsl:output method="html" indent="no" doctype-system="http://www.w3.org/TR/html4/strict.dtd" doctype-public="-//W3C//DTD HTML 4.01//EN" encoding="utf-8" />

  <xsl:include href="/app/tools/rps/templates/shared_templates.xsl" />

  <xsl:variable name="album_errors">0</xsl:variable>
  <xsl:variable name="track_errors">0</xsl:variable>

  <xsl:template match="Root">
    <div id="distribution_errors"><!--
        <a title="Close" id="closePop" href="javascript:oTooltipError.hideTip( null, {{ overlay: this.overlay, timer: this.timer }} )"><img src="/production/images/icons/office/Close (16x16).png" height="16" width="16" class="closeButton" /></a>
    -->
    	<div class="section">
	      <xsl:for-each select="Distribution/Albums/Album">

	      	<xsl:if test="*/@status &gt; 0">
		        <xsl:call-template name="displayAlbumErrors" />
						<br />
					</xsl:if>

	        <xsl:if test="Tracks/Track/*/@status &gt; 0">
		        <xsl:call-template name="displayTrackErrors" />
		        <br />
	        </xsl:if>

	        <br />

					<!--
	        <xsl:if test="count(Distribution/Albums)">
	          <hr/>
	        </xsl:if>
					-->

	      </xsl:for-each>
      </div>
      <br />
    </div>
  </xsl:template>

  <xsl:template name="displayAlbumErrors">
  	<fieldset class="albumErrors">
	    <legend>Album Errors</legend>

	    <TABLE width="100%">

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'album_title'" />
	        <xsl:with-param name="error"  select="album_title/@error" />
	        <xsl:with-param name="status" select="album_title/@status" />
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'album_artist'" />
	        <xsl:with-param name="error"  select="album_artist/@error" />
	        <xsl:with-param name="status" select="album_artist/@status" />
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'additional_album_artists'" />
	        <xsl:with-param name="error"  select="additional_album_artists/@error" />
	        <xsl:with-param name="status" select="additional_album_artists/@status" />
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'price_tiers'" />
	        <xsl:with-param name="error"  select="price_tiers/@error" />
	        <xsl:with-param name="status" select="price_tiers/@status" />
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'album_custom_1'" />
	        <xsl:with-param name="error"  select="album_custom_1/@error" />
	        <xsl:with-param name="status" select="album_custom_1/@status" />
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'album_custom_2'" />
	        <xsl:with-param name="error"  select="album_custom_2/@error" />
	        <xsl:with-param name="status" select="album_custom_2/@status" />
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'album_custom_3'" />
	        <xsl:with-param name="error"  select="album_custom_3/@error" />
	        <xsl:with-param name="status" select="album_custom_3/@status" />
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'cleared_for_distribution'" />
	        <xsl:with-param name="error"  select="cleared_for_distribution/@error" />
	        <xsl:with-param name="status" select="cleared_for_distribution/@status" />
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'c_line'" />
	        <xsl:with-param name="error"  select="c_line/@error" />
	        <xsl:with-param name="status" select="c_line/@status" />
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'catalog_no'" />
	        <xsl:with-param name="error"  select="catalog_no/@error" />
	        <xsl:with-param name="status" select="catalog_no/@status" />
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'cd_upc'" />
	        <xsl:with-param name="error"  select="cd_upc/@error" />
	        <xsl:with-param name="status" select="cd_upc/@status" />
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'client_album_id'" />
	        <xsl:with-param name="error"  select="client_album_id/@error" />
	        <xsl:with-param name="status" select="client_album_id/@status" />
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'digital_upc'" />
	        <xsl:with-param name="error"  select="digital_upc/@error" />
	        <xsl:with-param name="status" select="digital_upc/@status" />
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'dvd_upc'" />
	        <xsl:with-param name="error"  select="dvd_upc/@error" />
	        <xsl:with-param name="status" select="dvd_upc/@status" />
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'label_name'" />
	        <xsl:with-param name="error"  select="label_name/@error" />
	        <xsl:with-param name="status" select="label_name/@status" />
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'override'" />
	        <xsl:with-param name="error"  select="override/@error" />
	        <xsl:with-param name="status" select="override/@status" />
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'p_line'" />
	        <xsl:with-param name="error"  select="p_line/@error" />
	        <xsl:with-param name="status" select="p_line/@status" />
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'primary_genre'" />
	        <xsl:with-param name="error"  select="primary_genre/@error" />
	        <xsl:with-param name="status" select="primary_genre/@status" />
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'release_date'" />
	        <xsl:with-param name="error"  select="release_date/@error" />
	        <xsl:with-param name="status" select="release_date/@status" />
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'secondary_genre'" />
	        <xsl:with-param name="error"  select="secondary_genre/@error" />
	        <xsl:with-param name="status" select="secondary_genre/@status" />
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'territories_allowed'" />
	        <xsl:with-param name="error"  select="territories_allowed/@error" />
	        <xsl:with-param name="status" select="territories_allowed/@status" />
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'territories_denied'" />
	        <xsl:with-param name="error"  select="territories_denied/@error" />
	        <xsl:with-param name="status" select="territories_denied/@status" />
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'track_count'" />
	        <xsl:with-param name="error"  select="track_count/@error" />
	        <xsl:with-param name="status" select="track_count/@status" />
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'vinyl_upc'" />
	        <xsl:with-param name="error"  select="vinyl_upc/@error" />
	        <xsl:with-param name="status" select="vinyl_upc/@status" />
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'digital_product_id'" />
	        <xsl:with-param name="error"  select="digital_product_id/@error" />
	        <xsl:with-param name="status" select="digital_product_id/@status" />
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'cd_product_id'" />
	        <xsl:with-param name="error"  select="cd_product_id/@error" />
	        <xsl:with-param name="status" select="cd_product_id/@status" />
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'vinyl_product_id'" />
	        <xsl:with-param name="error"  select="vinyl_product_id/@error" />
	        <xsl:with-param name="status" select="vinyl_product_id/@status" />
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'dvd_product_id'" />
	        <xsl:with-param name="error"  select="dvd_product_id/@error" />
	        <xsl:with-param name="status" select="dvd_product_id/@status" />
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'digital_release_date'" />
	        <xsl:with-param name="error"  select="digital_release_date/@error" />
	        <xsl:with-param name="status" select="digital_release_date/@status" />
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'cd_release_date'" />
	        <xsl:with-param name="error"  select="cd_release_date/@error" />
	        <xsl:with-param name="status" select="cd_release_date/@status" />
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'vinyl_release_date'" />
	        <xsl:with-param name="error"  select="vinyl_release_date/@error" />
	        <xsl:with-param name="status" select="vinyl_release_date/@status" />
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'dvd_release_date'" />
	        <xsl:with-param name="error"  select="dvd_release_date/@error" />
	        <xsl:with-param name="status" select="dvd_release_date/@status" />
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'digital_disc_number'" />
	        <xsl:with-param name="error"  select="digital_disc_number/@error" />
	        <xsl:with-param name="status" select="digital_disc_number/@status" />
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'cd_disc_number'" />
	        <xsl:with-param name="error"  select="cd_disc_number/@error" />
	        <xsl:with-param name="status" select="cd_disc_number/@status" />
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'vinyl_disc_number'" />
	        <xsl:with-param name="error"  select="vinyl_disc_number/@error" />
	        <xsl:with-param name="status" select="vinyl_disc_number/@status" />
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'dvd_disc_number'" />
	        <xsl:with-param name="error"  select="dvd_disc_number/@error" />
	        <xsl:with-param name="status" select="dvd_disc_number/@status" />
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'digital_track_number'" />
	        <xsl:with-param name="error"  select="digital_track_number/@error" />
	        <xsl:with-param name="status" select="digital_track_number/@status" />
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'cd_track_number'" />
	        <xsl:with-param name="error"  select="cd_track_number/@error" />
	        <xsl:with-param name="status" select="cd_track_number/@status" />
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'vinyl_track_number'" />
	        <xsl:with-param name="error"  select="vinyl_track_number/@error" />
	        <xsl:with-param name="status" select="vinyl_track_number/@status" />
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'dvd_track_number'" />
	        <xsl:with-param name="error"  select="dvd_track_number/@error" />
	        <xsl:with-param name="status" select="dvd_track_number/@status" />
	      </xsl:call-template>

	    </TABLE>

    </fieldset>
  </xsl:template>


  <xsl:template name="displayTrackErrors">
  	<fieldset class="trackErrors">
	    <legend>Track Errors</legend>

	    <TABLE width="100%">

	      <xsl:for-each select="Tracks/Track">

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"    select="'client_track_id'" />
	        <xsl:with-param name="error"   select="client_track_id/@error" />
	        <xsl:with-param name="status"  select="client_track_id/@status" />
	        <xsl:with-param name="message"><xsl:call-template name="discTrack" /></xsl:with-param>
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'disc_no'" />
	        <xsl:with-param name="error"  select="disc_no/@error" />
	        <xsl:with-param name="status" select="disc_no/@status" />
	        <xsl:with-param name="message"><xsl:call-template name="discTrack" /></xsl:with-param>
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'exclude_digitally'" />
	        <xsl:with-param name="error"  select="exclude_digitally/@error" />
	        <xsl:with-param name="status" select="exclude_digitally/@status" />
	        <xsl:with-param name="message"><xsl:call-template name="discTrack" /></xsl:with-param>
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'album_purchase_only'" />
	        <xsl:with-param name="error"  select="album_purchase_only/@error" />
	        <xsl:with-param name="status" select="album_purchase_only/@status" />
	        <xsl:with-param name="message"><xsl:call-template name="discTrack" /></xsl:with-param>
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'explicit'" />
	        <xsl:with-param name="error"  select="explicit/@error" />
	        <xsl:with-param name="status" select="explicit/@status" />
	        <xsl:with-param name="message"><xsl:call-template name="discTrack" /></xsl:with-param>
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'isrc'" />
	        <xsl:with-param name="error"  select="isrc/@error" />
	        <xsl:with-param name="status" select="isrc/@status" />
	        <xsl:with-param name="message"><xsl:call-template name="discTrack" /></xsl:with-param>
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'track_artist'" />
	        <xsl:with-param name="error"  select="track_artist/@error" />
	        <xsl:with-param name="status" select="track_artist/@status" />
	        <xsl:with-param name="message"><xsl:call-template name="discTrack" /></xsl:with-param>
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'additional_track_artists'" />
	        <xsl:with-param name="error"  select="additional_track_artists/@error" />
	        <xsl:with-param name="status" select="additional_track_artists/@status" />
	        <xsl:with-param name="message"><xsl:call-template name="discTrack" /></xsl:with-param>
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'track_composer'" />
	        <xsl:with-param name="error"  select="track_composer/@error" />
	        <xsl:with-param name="status" select="track_composer/@status" />
	        <xsl:with-param name="message"><xsl:call-template name="discTrack" /></xsl:with-param>
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'track_customer_1'" />
	        <xsl:with-param name="error"  select="track_customer_1/@error" />
	        <xsl:with-param name="status" select="track_customer_1/@status" />
	        <xsl:with-param name="message"><xsl:call-template name="discTrack" /></xsl:with-param>
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'track_customer_2'" />
	        <xsl:with-param name="error"  select="track_customer_2/@error" />
	        <xsl:with-param name="status" select="track_customer_2/@status" />
	        <xsl:with-param name="message"><xsl:call-template name="discTrack" /></xsl:with-param>
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'track_customer_3'" />
	        <xsl:with-param name="error"  select="track_customer_3/@error" />
	        <xsl:with-param name="status" select="track_customer_3/@status" />
	        <xsl:with-param name="message"><xsl:call-template name="discTrack" /></xsl:with-param>
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'track_minutes'" />
	        <xsl:with-param name="error"  select="track_minutes/@error" />
	        <xsl:with-param name="status" select="track_minutes/@status" />
	        <xsl:with-param name="message"><xsl:call-template name="discTrack" /></xsl:with-param>
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'track_number'" />
	        <xsl:with-param name="error"  select="track_number/@error" />
	        <xsl:with-param name="status" select="track_number/@status" />
	        <xsl:with-param name="message"><xsl:call-template name="discTrack" /></xsl:with-param>
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'track_seconds'" />
	        <xsl:with-param name="error"  select="track_seconds/@error" />
	        <xsl:with-param name="status" select="track_seconds/@status" />
	        <xsl:with-param name="message"><xsl:call-template name="discTrack" /></xsl:with-param>
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'track_title'" />
	        <xsl:with-param name="error"  select="track_title/@error" />
	        <xsl:with-param name="status" select="track_title/@status" />
	        <xsl:with-param name="message"><xsl:call-template name="discTrack" /></xsl:with-param>
	      </xsl:call-template>

	      <xsl:call-template name="showError">
	        <xsl:with-param name="type"   select="'media_type'" />
	        <xsl:with-param name="error"  select="media_type/@error" />
	        <xsl:with-param name="status" select="media_type/@status" />
	        <xsl:with-param name="message"><xsl:call-template name="discTrack" /></xsl:with-param>
	      </xsl:call-template>

	      </xsl:for-each>

	    </TABLE>
    </fieldset>
  </xsl:template>

  <xsl:template name="showError">
    <xsl:param name="type" />
    <xsl:param name="status" />
    <xsl:param name="error" />
    <xsl:param name="message" />

    <xsl:variable name="class">
      <xsl:choose>
        <xsl:when test="$status = 6">warn</xsl:when>
        <xsl:when test="$status = 7">duplicate</xsl:when>
        <xsl:when test="$status = 8">error</xsl:when>
        <xsl:when test="$status = 9">error</xsl:when>
      </xsl:choose>
    </xsl:variable>

    <xsl:if test="$status &gt; 0">
      <TR class="{$class}">
        <TD><xsl:value-of select="$message" /></TD>
        <TD><xsl:value-of select="$type" /></TD>
        <TD>
          <xsl:call-template name="displayStatus">
            <xsl:with-param name="status" select="$status" />
          </xsl:call-template>
        </TD>
        <TD><xsl:value-of select="$error" /></TD>
      </TR>
    </xsl:if>

  </xsl:template>

  <xsl:template name="displayStatus">
    <xsl:param name="status" />

    <xsl:choose>
      <xsl:when test="$status = 6">Warning</xsl:when>
      <xsl:when test="$status = 7">Duplicate (overridable)</xsl:when>
      <xsl:when test="$status = 8">Duplicate (error)</xsl:when>
      <xsl:when test="$status = 9">Error</xsl:when>
    </xsl:choose>

  </xsl:template>

  <xsl:template name="discTrack">
    Disc/Track: <xsl:value-of select="disc_no" />/<xsl:value-of select="track_number" />
  </xsl:template>

</xsl:stylesheet>
