<!--                                                                  -->
<!--  Copyright (C) 2006 RoyaltyShare, Inc.   All Rights Reserved     -->
<!--  $Id$  -->
<!--                                                                  -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

    <xsl:variable name="trackCount">
        <xsl:choose>
            <xsl:when test="count(/Root/Form/TrackList/Track) &gt; 0">
                <xsl:value-of select="count(/Root/Form/TrackList/Track)" />
            </xsl:when>
            <xsl:otherwise>1</xsl:otherwise>
        </xsl:choose>
    </xsl:variable>

    <xsl:template name="catalogDaEditLayout">
        <form action="/rps/catalog" name="catalogEntry" id="catalogEntry" method="post" onsubmit="updateTrackInfo(); return false; ">
            <script src="/production/javascript/validateCatalogExpress.js?t={$now}" type="text/javascript"></script>
            <input type="hidden" name="formSubmit" value="1" />
            <input type="hidden" name="c" value="da_edit" />
            <input type="hidden" name="AlbumID" id="AlbumID" value="{Form/Album/AlbumID}" />
            <input type="hidden" id="Form_Album_ArtistName" name="Form_Album_ArtistName" value="{Form/Album/ArtistName}" />
            <input type="hidden" name="Form_Album_ArtistID" id="Form_Album_ArtistID" value="{Form/Album/ArtistID}" />

            <xsl:if test="Params/show_errors">
                <input type="hidden" name="show_errors" value="1" />
            </xsl:if>


            <div class="CatalogEditTracks" id="catalogDaEdit">
                <xsl:call-template name="openRunStatusMessage" />
                <xsl:call-template name="errorMessageGeneral" />
                <xsl:call-template name="trackDaEdit" />
                <xsl:call-template name="buttons" />
            </div>
        </form>
    </xsl:template>

    <xsl:template name="trackDaEdit">
        <div class="Form-header">
            Enter track information here.
            <div class="Required-notice" />
        </div>

        <xsl:call-template name="trackErrors" />
        <table class="Table" id="trackTable">
            <thead>
                <tr class="Table-row Table-row-header">
                    <th class="Table-col" colspan="2">Track&#160;#&#160;*</th>
                    <th class="Table-col">Name&#160;*</th>
                    <th class="Table-col Table-col-shrink">Length&#160;*</th>
                    <th class="Table-col">Artist&#160;*</th>
                    <th class="Table-col Table-col-shrink">Parental Advisory</th>
                    <th class="Table-col Table-col-shrink">Media Type</th>
                    <th class="Table-col">ISRC</th>
                </tr>
            </thead>
            <tbody>
                <xsl:choose>
                    <xsl:when test="Form/TrackList/Track">
                        <xsl:for-each select="Form/TrackList/Track">
                            <xsl:call-template name="trackDaEditRow">
                                <xsl:with-param name="id" select="@k" />
                            </xsl:call-template>
                        </xsl:for-each>
                    </xsl:when>
                    <xsl:otherwise>
                        <xsl:call-template name="trackDaEditRow">
                            <xsl:with-param name="id">NEW0</xsl:with-param>
                        </xsl:call-template>
                    </xsl:otherwise>
                </xsl:choose>
            </tbody>
        </table>

        <xsl:if test="$openRuns = 0">
            <xsl:call-template name="uiButton">
                <xsl:with-param name="type" select="'text-inline'" />
                <xsl:with-param name="content" select="'Add Another Track'" />
                <xsl:with-param name="id" select="'addTextLink'" />
                <xsl:with-param name="iconLeftType" select="'add'" />
                <xsl:with-param name="className" select="'Table-add-row-button'" />
            </xsl:call-template>
        </xsl:if>

    </xsl:template>


    <xsl:template name="trackDaEditRow">
        <xsl:param name="id" />
        <xsl:variable name="trackPrefix">Form_TrackList_Track_<xsl:value-of select="$id" />_</xsl:variable>
        <xsl:variable name="trackRowID">track_<xsl:value-of select="$id" /></xsl:variable>
        <xsl:variable name="trackOrder">
            <xsl:choose>
                <xsl:when test="TrackOrder">
                    <xsl:value-of select="TrackOrder" />
                </xsl:when>
                <xsl:otherwise>1</xsl:otherwise>
            </xsl:choose>
        </xsl:variable>

        <tr class="Table-row Table-row-data Table-row-inputs" id="{$trackRowID}" data-prefix="{$trackPrefix}" data-rowid="{$trackRowID}" data-trackid="{$id}">

            <td class="Table-col Table-col-shrink Table-col-move">
                <input type="hidden" name="{$trackPrefix}AlbumID" id="{$trackPrefix}AlbumID" value="{/Root/Form/Album/AlbumID}" />
                <input type="hidden" name="{$trackPrefix}TrackOrder" id="{$trackPrefix}TrackOrder" value="{$trackOrder}" />

                <xsl:if test="$openRuns = 0">
                    <div class="MoveTrigger">
                        <div class="MoveTrigger-item MoveTrigger-item-up js-tooltip" onclick="moveRowUp('{$trackRowID}','trackTable','{$trackPrefix}TrackOrder'); initArtistAC('{$trackPrefix}', '{$id}')" title="Move Up" id="{$trackRowID}_Up">
                            <xsl:if test="position() = 1">
                                <xsl:attribute name="style">display: none</xsl:attribute>
                            </xsl:if>
                            <xsl:call-template name="icon">
                                <xsl:with-param name="type" select="'move-up'" />
                                <xsl:with-param name="role" select="'action'" />
                            </xsl:call-template>
                        </div>
                        <div class="MoveTrigger-item MoveTrigger-item-down js-tooltip" onclick="moveRowDown('{$trackRowID}','trackTable','{$trackPrefix}TrackOrder'); initArtistAC('{$trackPrefix}', '{$id}')" title="Move Down" id="{$trackRowID}_Down">
                            <xsl:if test="position() = last()">
                                <xsl:attribute name="style">display: none</xsl:attribute>
                            </xsl:if>
                            <xsl:call-template name="icon">
                                <xsl:with-param name="type" select="'move-down'" />
                                <xsl:with-param name="role" select="'action'" />
                            </xsl:call-template>
                        </div>
                    </div>
                </xsl:if>
            </td>
            <td class="Table-col Table-col-shrink">
                <span id="{$trackRowID}_Display">
                    <xsl:value-of select="$trackOrder" />
                </span>
            </td>
            <td class="Table-col">
                <div>
                    <xsl:attribute name="class">
                        <xsl:text>Form-item</xsl:text>
                        <xsl:if test="Title[@e]">
                             <xsl:text> Form-item-error</xsl:text>
                        </xsl:if>
                    </xsl:attribute>
                    <div class="Form-input-wrapper">
                        <input type="text" class="Input Form-input" name="{$trackPrefix}Title" id="{$trackPrefix}Title" value="{Title}" onblur="this.setAttribute('value', this.value);">
                            <xsl:if test="$openRuns = 1">
                                <xsl:attribute name="disabled">disabled</xsl:attribute>
                            </xsl:if>
                        </input>
                    </div>
                    <input type="hidden" name="{$trackPrefix}Master_Title" id="{$trackPrefix}Master_Title" value="{Master/Title}" />
                    <input type="hidden" name="{$trackPrefix}Master_Song_Title" id="{$trackPrefix}Master_Song_Title" value="{Master/Song/Title}" />
                    <div class="Form-error-text-wrapper">
                        <xsl:if test="//Title[@e]"><span class="Form-error">Name cannot be blank</span></xsl:if>
                    </div>
                </div>
            </td>
            <td class="Table-col">
                <div>
                    <xsl:attribute name="class">
                        <xsl:text>Form-item</xsl:text>
                        <xsl:if test="Master/Duration[@e]">
                             <xsl:text> Form-item-error</xsl:text>
                        </xsl:if>
                    </xsl:attribute>
                    <div class="Form-input-wrapper Form-duration-field">
                        <input type="text" class="Input Form-input" name="{$trackPrefix}Master_Duration" id="{$trackPrefix}Master_Duration" value="{Master/Duration}" onblur="this.setAttribute('value', this.value);">
                            <xsl:if test="$openRuns = 1">
                                <xsl:attribute name="disabled">disabled</xsl:attribute>
                            </xsl:if>
                        </input>
                    </div>
                    <div class="Form-error-text-wrapper">
                        <xsl:if test="Master/Duration[@e]"><span class="Form-error">Length is not valid..</span></xsl:if>
                    </div>
                </div>
            </td>
            <td class="Table-col">

                <div>
                    <xsl:attribute name="class">
                        <xsl:text>Form-item</xsl:text>
                        <xsl:if test="ArtistName[@e]">
                             <xsl:text> Form-item-error</xsl:text>
                        </xsl:if>
                    </xsl:attribute>
                    <div id="{$trackRowID}_AutoComplete" class="Form-input-wrapper">
                        <input id="{$trackPrefix}ArtistName" name="{$trackPrefix}ArtistName" type="text" class="Input Form-input" value="{ArtistName}" onblur="this.setAttribute('value', this.value);" >
                            <xsl:if test="$openRuns = 1">
                                <xsl:attribute name="disabled">disabled</xsl:attribute>
                            </xsl:if>
                        </input><span id="noMatchTrackArtist_{$id}" class="yui-ac-warning"></span>
                        <input type="hidden" name="{$trackPrefix}ArtistID" id="{$trackPrefix}ArtistID" value="{ArtistID}" />
                        <script type="text/javascript">
                            new rsAutoCompleteNew({
                                url: "/rps/catalog?c=search_artist&amp;limit=10",
                                targetInputName: "<xsl:value-of select="$trackPrefix" />ArtistName",
                                targetInputID: "<xsl:value-of select="$trackPrefix" />ArtistID",
                                noMatchItem: "noMatchTrackArtist_<xsl:value-of select="$id" />",
                                noMatchText: "(New)",
                                blockName: "Artist",
                                itemName: "Name",
                                itemID: "ArtistID",
                            }).init();
                        </script>
                    </div>

                    <div class="Form-error-text-wrapper">
                        <xsl:if test="ArtistName[@e]"><span class="Form-error">Artist cannot be blank.</span></xsl:if>
                    </div>

                    <input type="hidden" name="{$trackPrefix}Master_ArtistName" id="{$trackPrefix}Master_ArtistName" value="{Master/ArtistName}" />
                    <input type="hidden" name="{$trackPrefix}Master_ArtistID" id="{$trackPrefix}Master_ArtistID" value="{Master/ArtistID}" />
                    <input type="hidden" name="{$trackPrefix}Master_Song_ComposerName" id="{$trackPrefix}Master_Song_ComposerName" value="{Master/Song/ComposerName}" />
                </div>
            </td>

            <td class="Table-col">
                <div>
                    <xsl:attribute name="class">
                        <xsl:text>Form-item CatalogEditTracks-parental-dropdown</xsl:text>
                        <xsl:if test="ParentalAdvisory[@e]">
                             <xsl:text> Form-item-error</xsl:text>
                        </xsl:if>
                    </xsl:attribute>
                    <div class="Form-input-wrapper">
                        <xsl:variable name="parentalAdvisoryItems">
                            <map>
                                <mapEntry><name>None</name><value>N</value></mapEntry>
                                <mapEntry><name>Explicit</name><value>E</value></mapEntry>
                                <mapEntry><name>Clean</name><value>C</value></mapEntry>
                            </map>
                        </xsl:variable>
                        <xsl:call-template name="uiDropdown">
                            <xsl:with-param name="items" select="$parentalAdvisoryItems"/>
                            <xsl:with-param name="disabled">
                                <xsl:if test="$openRuns = 1">
                                    <xsl:text>true</xsl:text>
                                </xsl:if>
                            </xsl:with-param>
                            <xsl:with-param name="id">
                                <xsl:value-of select="$trackPrefix" /><xsl:text>ParentalAdvisory</xsl:text>
                            </xsl:with-param>
                            <xsl:with-param name="name">
                                <xsl:value-of select="$trackPrefix" /><xsl:text>ParentalAdvisory</xsl:text>
                            </xsl:with-param>
                            <xsl:with-param name="active" select="ParentalAdvisory"/>
                            <xsl:with-param name="onChange">
                                this.options[this.selectedIndex].setAttribute('selected', 'true');
                            </xsl:with-param>
                        </xsl:call-template>
                    </div>
                </div>
            </td>

            <td class="Table-col">

                <div>
                    <xsl:attribute name="class">
                        <xsl:text>Form-item CatalogEditTracks-media-dropdown</xsl:text>
                        <xsl:if test="MediaType[@e]">
                             <xsl:text> Form-item-error</xsl:text>
                        </xsl:if>
                    </xsl:attribute>
                    <div class="Form-input-wrapper">
                        <xsl:variable name="mediaTypeItems">
                            <map>
                                <mapEntry><name>Audio</name><value>1</value></mapEntry>
                                <mapEntry><name>Video</name><value>2</value></mapEntry>
                            </map>
                        </xsl:variable>
                        <xsl:call-template name="uiDropdown">
                            <xsl:with-param name="items" select="$mediaTypeItems"/>
                            <xsl:with-param name="disabled">
                                <xsl:if test="$openRuns = 1">
                                    <xsl:text>true</xsl:text>
                                </xsl:if>
                            </xsl:with-param>
                            <xsl:with-param name="id">
                                <xsl:value-of select="$trackPrefix" /><xsl:text>MediaType</xsl:text>
                            </xsl:with-param>
                            <xsl:with-param name="name">
                                <xsl:value-of select="$trackPrefix" /><xsl:text>MediaType</xsl:text>
                            </xsl:with-param>
                            <xsl:with-param name="active" select="MediaType"/>
                            <xsl:with-param name="onChange">
                                this.options[this.selectedIndex].setAttribute('selected', 'true');
                            </xsl:with-param>
                        </xsl:call-template>
                    </div>
                </div>
            </td>
            <td class="Table-col">
                <div>
                    <xsl:attribute name="class">
                        <xsl:text>Form-item</xsl:text>
                        <xsl:if test="Master/ISRC[@e]">
                             <xsl:text> Form-item-error</xsl:text>
                        </xsl:if>
                    </xsl:attribute>
                    <div class="Form-input-wrapper">
                        <input type="text" class="Input Form-input" name="{$trackPrefix}Master_ISRC" id="{$trackPrefix}Master_ISRC" value="{Master/ISRC}" onblur="this.setAttribute('value', this.value);">
                            <xsl:if test="$openRuns = 1">
                                <xsl:attribute name="disabled">disabled</xsl:attribute>
                            </xsl:if>
                        </input>
                    </div>

                    <div class="Form-error-text-wrapper">
                        <xsl:if test="Master/ISRC[@e]"><span class="Form-error">ISRC is invalid.</span></xsl:if>
                    </div>
                </div>
            </td>
        </tr>
    </xsl:template>


    <xsl:template name="trackErrors">
        <div class="Form-error">
            <xsl:if test="//DiscNumber[@e = 'field_blank']">Disc # cannot be blank.<br /></xsl:if>
            <xsl:if test="//DiscTrack[@e = 'field_blank']">Disc Track cannot be blank.<br /></xsl:if>
            <xsl:if test="//DiscNumber[@e = 'field_out_of_range']">Disc # is not valid.<br /></xsl:if>
            <xsl:if test="//DiscTrack[@e = 'field_out_of_range']">Disc Track is not valid.<br /></xsl:if>
        </div>
    </xsl:template>


</xsl:stylesheet>
