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

    <xsl:variable name="editMaster">
        <xsl:choose>
            <xsl:when test="not(normalize-space(/Root/Form/Track/Master/MasterID))">yes</xsl:when>
            <xsl:when test="/Root/Form/Track/Master/LinkedTracks &lt; 2">yes</xsl:when>
            <xsl:otherwise>no</xsl:otherwise>
        </xsl:choose>
    </xsl:variable>

    <xsl:variable name="editSong">
        <xsl:choose>
            <xsl:when test="not(normalize-space(/Root/Form/Track/Master/Song/SongID))">yes</xsl:when>
            <xsl:when test="/Root/Form/Track/Master/Song/LinkedMasters &lt; 2 and /Root/Form/Track/Master/LinkedTracks &lt; 2">yes</xsl:when>
            <xsl:otherwise>no</xsl:otherwise>
        </xsl:choose>
    </xsl:variable>

    <xsl:template name="trackEditLayout">

        <div id="roleSelectTemplate" style="display:none">
            <xsl:call-template name="additionalArtistRoleSelect" />
        </div>

        <script type="text/javascript" src="/production/javascript/validateTrack.js?t={$now}"></script>
        <script type="text/javascript">
            interceptSubmit = "presubmitTrack();";
            window.interceptSubmit = interceptSubmit;
        </script>

        <form name="trackEdit" id="trackEdit" method="post" action="track">
            <input type="hidden" name="ReturnTo" id="ReturnTo" value="" />
            <input type="hidden" name="formSubmit" value="1" />
            <input type="hidden" name="c" value="edit" />
            <xsl:if test="normalize-space(Form/Track/AlbumID)">
                <input type="hidden" name="AlbumID" value="{Form/Track/AlbumID}" />
            </xsl:if>
            <xsl:if test="normalize-space(Form/Track/TrackID)">
                <input type="hidden" name="TrackID" value="{Form/Track/TrackID}" />
            </xsl:if>
            <xsl:if test="Params/show_errors">
                <input type="hidden" name="show_errors" value="1" />
            </xsl:if>

            <div class="js-rs-html-content">
                <xsl:call-template name="successMessageGeneral">
                    <xsl:with-param name="successMessage">Track successfully created!</xsl:with-param>
                </xsl:call-template>
                <div class="TrackEdit-album-view-wrapper">
                    <xsl:call-template name="albumView" />
                    <div class="Required-notice" />
                </div>
                <div class="TrackEdit-fields">
                    <xsl:call-template name="openRunStatusMessage" />
                    <xsl:call-template name="errorMessageGeneral" />
                    <div class="TrackEdit-track-wrapper">
                        <xsl:call-template name="trackEdit" />
                        <xsl:call-template name="masterEdit" />
                        <xsl:call-template name="songEdit" />
                    </div>
                </div>
            </div>

            <xsl:call-template name="buttons" />
        </form>

    </xsl:template>


    <xsl:template name="trackEdit">
        <div class="TrackEdit-track TrackEdit-track-group">
            <h2>Track</h2>

            <div class="Form-header">
                <p class="Form-header-text">Enter track information here.</p>
            </div>

            <div class="Form-fieldset">
                <div class="Form-item Form-item-required">

                    <xsl:if test="Form/Track/Title[@e]">
                        <xsl:attribute name="class">
                            <xsl:text>Form-item Form-item-required Form-item-error</xsl:text>
                        </xsl:attribute>
                    </xsl:if>

                    <label class="Form-label">
                        <span class="Form-label-caption">Title</span>
                        <div class="Form-input-wrapper">
                            <input type="text" name="Form_Track_Title" id="Form_Track_Title" value="{Form/Track/Title}" class="Input Form-input">
                                <xsl:if test="$openRuns = 1">
                                    <xsl:attribute name="disabled">disabled</xsl:attribute>
                                </xsl:if>
                            </input>
                        </div>
                    </label>

                    <xsl:call-template name="inlineError">
                        <xsl:with-param name="path">Form/Track/Title</xsl:with-param>
                        <xsl:with-param name="displayName">Title</xsl:with-param>
                    </xsl:call-template>
                </div>
                <div class="Form-item Form-item-required">

                    <xsl:if test="Form/Track/ArtistName[@e]">
                        <xsl:attribute name="class">
                            <xsl:text>Form-item Form-item-required Form-item-error</xsl:text>
                        </xsl:attribute>
                    </xsl:if>

                    <label class="Form-label">
                        <span class="Form-label-caption">Artist</span>
                        <div class="Form-input-wrapper">
                            <input id="Form_Track_ArtistName" name="Form_Track_ArtistName" type="text" class="Input Form-input" value="{Form/Track/ArtistName}">
                                <xsl:if test="$openRuns = 1">
                                    <xsl:attribute name="disabled">disabled</xsl:attribute>
                                </xsl:if>
                            </input>
                            <span id="noMatchTrackArtist" class="yui-ac-warning"></span>
                            <input type="hidden" name="Form_Track_ArtistID" id="Form_Track_ArtistID" value="{Form/Track/ArtistID}" />
                            <script type="text/javascript">
                                new rsAutoCompleteNew({
                                    url: "/rps/catalog?c=search_artist&amp;limit=10",
                                    targetInputName: "Form_Track_ArtistName",
                                    targetInputID: "Form_Track_ArtistID",
                                    noMatchItem: "noMatchTrackArtist",
                                    noMatchText: "(New)",
                                    blockName: "Artist",
                                    itemName: "Name",
                                    itemID: "ArtistID",
                                }).init();
                            </script>
                        </div>
                    </label>

                    <xsl:call-template name="inlineError">
                        <xsl:with-param name="path">Form/Track/ArtistName</xsl:with-param>
                        <xsl:with-param name="displayName">Artist</xsl:with-param>
                    </xsl:call-template>
                </div>

                <div class="TrackEdit-additional-row AdditionalGroup" id="trackTable">
                    <xsl:call-template name="trackAdditionalArtistRow" />
                </div>

                <div class="Form-item Form-item-required">

                    <xsl:if test="Form/Track/TrackOrder[@e]">
                        <xsl:attribute name="class">
                            <xsl:text>Form-item Form-item-required Form-item-error</xsl:text>
                        </xsl:attribute>
                    </xsl:if>

                    <label class="Form-label">
                        <span class="Form-label-caption">Track #</span>
                        <div class="Form-input-wrapper">
                            <input type="text" name="Form_Track_TrackOrder" id="Form_Track_TrackOrder" value="{Form/Track/TrackOrder}" class="Input Form-input TrackEdit-field-track-number">
                                <xsl:if test="$openRuns = 1">
                                    <xsl:attribute name="disabled">disabled</xsl:attribute>
                                </xsl:if>
                            </input>
                            <span class="Form-item-description">
                                (Range 1-<xsl:if test="normalize-space(Form/Track/TrackID)"><xsl:value-of select="Form/Track/AlbumTrackCount" /></xsl:if><xsl:if test="not(normalize-space(Form/Track/TrackID))"><xsl:value-of select="Form/Track/AlbumTrackCount + 1" /></xsl:if>)
                            </span>
                        </div>
                    </label>
                    <xsl:call-template name="inlineError">
                        <xsl:with-param name="path">Form/Track/TrackOrder</xsl:with-param>
                        <xsl:with-param name="displayName">Track #</xsl:with-param>
                    </xsl:call-template>
                </div>

                <div class="Form-item Form-item-required">

                    <xsl:if test="Form/Track/Master/Duration[@e]">
                        <xsl:attribute name="class">
                            <xsl:text>Form-item Form-item-required Form-item-error</xsl:text>
                        </xsl:attribute>
                    </xsl:if>

                    <label class="Form-label">
                        <span class="Form-label-caption">Length</span>
                        <div class="Form-input-wrapper">
                            <input type="text" name="Form_Track_Master_Duration" id="Form_Track_Master_Duration" value="{Form/Track/Master/Duration}" class="Input Form-input TrackEdit-field-duration">
                                <xsl:choose>
                                    <xsl:when test="$openRuns = 1">
                                        <xsl:attribute name="disabled">disabled</xsl:attribute>
                                    </xsl:when>
                                    <xsl:when test="$editMaster = 'no'">
                                        <xsl:attribute name="readonly">readonly</xsl:attribute>
                                    </xsl:when>
                                </xsl:choose>
                            </input>
                        </div>
                    </label>
                    <xsl:call-template name="inlineError">
                        <xsl:with-param name="path">Form/Track/Master/Duration</xsl:with-param>
                        <xsl:with-param name="displayName">Length</xsl:with-param>
                    </xsl:call-template>
                </div>

                <div class="Form-item">

                    <xsl:if test="Form/Track/MediaType[@e]">
                        <xsl:attribute name="class">
                            <xsl:text>Form-item Form-item-error</xsl:text>
                        </xsl:attribute>
                    </xsl:if>

                    <xsl:variable name="trackEditMediaTypes">
                        <map>
                            <mapEntry><name>Audio</name><value>1</value></mapEntry>
                            <mapEntry><name>Video</name><value>2</value></mapEntry>
                        </map>
                    </xsl:variable>

                    <label class="Form-label">
                        <span class="Form-label-caption">Media Type</span>
                        <div class="Form-input-wrapper">
                            <xsl:call-template name="uiDropdown">
                                <xsl:with-param name="items" select="$trackEditMediaTypes"/>
                                <xsl:with-param name="id" select="'Form_Track_MediaType'"/>
                                <xsl:with-param name="name" select="'Form_Track_MediaType'"/>
                                <xsl:with-param name="active" select="Form/Track/MediaType"/>
                                <xsl:with-param name="disabled">
                                    <xsl:if test="$openRuns = 1">
                                        <xsl:text>true</xsl:text>
                                    </xsl:if>
                                </xsl:with-param>
                            </xsl:call-template>
                        </div>
                    </label>
                    <xsl:call-template name="inlineError">
                        <xsl:with-param name="path">Form/Track/MediaType</xsl:with-param>
                        <xsl:with-param name="displayName">Media Type</xsl:with-param>
                    </xsl:call-template>
                </div>

                <div class="Form-item">

                    <xsl:if test="Form/Track/ParentalAdvisory[@e]">
                        <xsl:attribute name="class">
                            <xsl:text>Form-item Form-item-error</xsl:text>
                        </xsl:attribute>
                    </xsl:if>

                    <xsl:variable name="trackEditParentalAdvisory">
                        <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>

                    <label class="Form-label">
                        <span class="Form-label-caption">Parental Advisory</span>
                        <div class="Form-input-wrapper">
                            <xsl:call-template name="uiDropdown">
                                <xsl:with-param name="items" select="$trackEditParentalAdvisory"/>
                                <xsl:with-param name="id" select="'Form_Track_ParentalAdvisory'"/>
                                <xsl:with-param name="name" select="'Form_Track_ParentalAdvisory'"/>
                                <xsl:with-param name="active" select="Form/Track/ParentalAdvisory"/>
                                <xsl:with-param name="disabled">
                                    <xsl:if test="$openRuns = 1">
                                        <xsl:text>true</xsl:text>
                                    </xsl:if>
                                </xsl:with-param>
                            </xsl:call-template>
                        </div>
                    </label>
                    <xsl:call-template name="inlineError">
                        <xsl:with-param name="path">Form/Track/ParentalAdvisory</xsl:with-param>
                        <xsl:with-param name="displayName">ParentalAdvisory</xsl:with-param>
                    </xsl:call-template>
                </div>

                <div class="Form-item">

                            <xsl:if test="Form/Track/ClientTrackID[@e]">
                                <xsl:attribute name="class">
                                    <xsl:text>Form-item Form-item-error</xsl:text>
                                </xsl:attribute>
                            </xsl:if>

                            <label class="Form-label">
                                <span class="Form-label-caption">Client Track ID</span>
                                <div class="Form-input-wrapper">
                                    <input type="text" name="Form_Track_ClientTrackID" id="Form_Track_ClientTrackID" value="{Form/Track/ClientTrackID}" class="Input Form-input">
                                        <xsl:if test="$openRuns = 1">
                                            <xsl:attribute name="disabled">disabled</xsl:attribute>
                                        </xsl:if>
                                    </input>
                                </div>
                            </label>
                            <xsl:call-template name="inlineError">
                                <xsl:with-param name="path">Form/Track/ClientTrackID</xsl:with-param>
                                <xsl:with-param name="displayName">Client Track ID</xsl:with-param>
                            </xsl:call-template>
                        </div>

                <div class="Form-item">

                    <xsl:if test="Form/Track/Custom1[@e]">
                        <xsl:attribute name="class">
                            <xsl:text>Form-item Form-item-error</xsl:text>
                        </xsl:attribute>
                    </xsl:if>

                    <label class="Form-label">
                        <span class="Form-label-caption">Custom 1</span>
                        <div class="Form-input-wrapper">
                            <input type="text" name="Form_Track_Custom1" id="Form_Track_Custom1" value="{Form/Track/Custom1}" class="Input Form-input">
                                <xsl:if test="$openRuns = 1">
                                    <xsl:attribute name="disabled">disabled</xsl:attribute>
                                </xsl:if>
                            </input>
                        </div>
                    </label>
                    <xsl:call-template name="inlineError">
                        <xsl:with-param name="path">Form/Track/Custom1</xsl:with-param>
                        <xsl:with-param name="displayName">Custom 1</xsl:with-param>
                    </xsl:call-template>
                </div>

                <div class="Form-item">

                    <xsl:if test="Form/Track/Custom2[@e]">
                        <xsl:attribute name="class">
                            <xsl:text>Form-item Form-item-error</xsl:text>
                        </xsl:attribute>
                    </xsl:if>

                    <label class="Form-label">
                        <span class="Form-label-caption">Custom 2</span>
                        <div class="Form-input-wrapper">
                            <input type="text" name="Form_Track_Custom2" id="Form_Track_Custom2" value="{Form/Track/Custom2}" class="Input Form-input">
                                <xsl:if test="$openRuns = 1">
                                    <xsl:attribute name="disabled">disabled</xsl:attribute>
                                </xsl:if>
                            </input>
                        </div>
                    </label>
                    <xsl:call-template name="inlineError">
                        <xsl:with-param name="path">Form/Track/Custom2</xsl:with-param>
                        <xsl:with-param name="displayName">Custom 2</xsl:with-param>
                    </xsl:call-template>
                </div>

                <div class="Form-item">

                    <xsl:if test="Form/Track/Custom3[@e]">
                        <xsl:attribute name="class">
                            <xsl:text>Form-item Form-item-error</xsl:text>
                        </xsl:attribute>
                    </xsl:if>

                    <label class="Form-label">
                        <span class="Form-label-caption">Custom 3</span>
                        <div class="Form-input-wrapper">
                            <input type="text" name="Form_Track_Custom3" id="Form_Track_Custom3" value="{Form/Track/Custom3}" class="Input Form-input">
                                <xsl:if test="$openRuns = 1">
                                    <xsl:attribute name="disabled">disabled</xsl:attribute>
                                </xsl:if>
                            </input>
                        </div>
                    </label>
                    <xsl:call-template name="inlineError">
                        <xsl:with-param name="path">Form/Track/Custom3</xsl:with-param>
                        <xsl:with-param name="displayName">Custom 3</xsl:with-param>
                    </xsl:call-template>
                </div>

                <div class="Form-item Form-item-button">
                    <xsl:call-template name="uiButton">
                        <xsl:with-param name="content" select="'Copy'" />
                        <xsl:with-param name="id" select="'trackCopyButton'" />
                        <xsl:with-param name="onClick">
                            copyTrackInfo()
                        </xsl:with-param>
                    </xsl:call-template>
                    <span class="Form-item-description HelpText">Copy Title and Artist to Master and Song.</span>
                    <input type="hidden" name="copyToMaster" id="copyToMaster" value="{$editMaster}" />
                    <input type="hidden" name="copyToSong" id="copyToSong" value="{$editSong}" />
                </div>
            </div>
        </div>
    </xsl:template>


    <xsl:template name="masterEdit">
        <div class="TrackEdit-master TrackEdit-track-group">
            <input type="hidden" name="Form_Track_Master_MasterID" id="Form_Track_Master_MasterID" value="{Form/Track/Master/MasterID}" />
            <h2>Master</h2>
            <fieldset class="Form-fieldset">
                <xsl:call-template name="masterNew" />
            </fieldset>
            <fieldset class="Form-fieldset">
                <xsl:call-template name="masterExisting" />
            </fieldset>
        </div>
    </xsl:template>

    <xsl:template name="masterNew">

        <xsl:call-template name="uiWarning">
            <xsl:with-param name="type" select="'success'" />
            <xsl:with-param name="descriptionId" select="'Form_Track_Master_Success'" />
            <xsl:with-param name="hidden" select="'true'" />
        </xsl:call-template>

        <div class="Form-header">
            <div class="Form-header-wrapper">
                <p class="Form-header-wrapper" id="Form_Track_Master_Blurb">
                    <xsl:if test="$editMaster = 'yes'">
                        Enter master information here.
                    </xsl:if>
                    <xsl:if test="$editMaster = 'no'">
                        <xsl:choose>
                            <xsl:when test="$openRuns = 0">
                                <a href="javascript:displayInline('master?MasterID={Form/Track/Master/MasterID}&amp;c=edit&amp;_inline=1')">Click here</a> to edit this master.
                            </xsl:when>
                            <xsl:otherwise>
                                Click here to edit this master.
                            </xsl:otherwise>
                        </xsl:choose>
                    </xsl:if>
                </p>
            </div>
        </div>

        <input type="hidden" name="Initial_Form_Track_Master_Duration" id="Initial_Form_Track_Master_Duration" value="{Form/Track/Master/Duration}" />

        <div class="Form-item Form-item-required" id="Form_Track_Master_Title_TD">

            <xsl:if test="Form/Track/Master/Title[@e]">
                <xsl:attribute name="class">
                    <xsl:text>Form-item Form-item-required Form-item-error</xsl:text>
                </xsl:attribute>
            </xsl:if>

            <label class="Form-label">
                <span class="Form-label-caption">Title</span>
                <div class="Form-input-wrapper">
                    <input type="text" name="Form_Track_Master_Title" id="Form_Track_Master_Title" value="{Form/Track/Master/Title}" class="Input Form-input">
                        <xsl:choose>
                            <xsl:when test="$openRuns = 1">
                                <xsl:attribute name="disabled">disabled</xsl:attribute>
                            </xsl:when>
                            <xsl:when test="$editMaster = 'no'">
                                <xsl:attribute name="readonly">readonly</xsl:attribute>
                            </xsl:when>
                        </xsl:choose>
                    </input>
                </div>
            </label>
            <xsl:call-template name="inlineError">
                <xsl:with-param name="path">Form/Track/Master/Title</xsl:with-param>
                <xsl:with-param name="displayName">Title</xsl:with-param>
            </xsl:call-template>
        </div>

        <div class="Form-item Form-item-required" id="Form_Track_Master_ArtistName_TD">

            <xsl:if test="Form/Track/Master/ArtistName[@e]">
                <xsl:attribute name="class">
                    <xsl:text>Form-item Form-item-required Form-item-error</xsl:text>
                </xsl:attribute>
            </xsl:if>

            <label class="Form-label">
                <span class="Form-label-caption">Artist</span>
                <div class="Form-input-wrapper">
                    <input id="Form_Track_Master_ArtistName" name="Form_Track_Master_ArtistName" type="text" class="Input Form-input" value="{Form/Track/Master/ArtistName}">
                        <xsl:choose>
                            <xsl:when test="$openRuns = 1">
                                <xsl:attribute name="disabled">disabled</xsl:attribute>
                            </xsl:when>
                            <xsl:when test="$editMaster = 'no'">
                                <xsl:attribute name="readonly">readonly</xsl:attribute>
                            </xsl:when>
                        </xsl:choose>
                    </input><span id="noMatchMasterArtist" class="yui-ac-warning"></span>
                    <input type="hidden" name="Form_Track_Master_ArtistID" id="Form_Track_Master_ArtistID" value="{Form/Track/Master/ArtistID}" />
                    <script type="text/javascript">
                        new rsAutoCompleteNew({
                            url: "/rps/catalog?c=search_artist&amp;limit=10",
                            targetInputName: "Form_Track_Master_ArtistName",
                            targetInputID: "Form_Track_Master_ArtistID",
                            noMatchItem: "noMatchMasterArtist",
                            noMatchText: "(New)",
                            blockName: "Artist",
                            itemName: "Name",
                            itemID: "ArtistID",
                        }).init();
                    </script>
                </div>
            </label>
            <xsl:call-template name="inlineError">
                <xsl:with-param name="path">Form/Track/Master/ArtistName</xsl:with-param>
                <xsl:with-param name="displayName">Artist</xsl:with-param>
            </xsl:call-template>
        </div>

        <div class="Form-item" id="Form_Track_Master_ISRC_TD">

            <xsl:if test="Form/Track/Master/ISRC[@e]">
                <xsl:attribute name="class">
                    <xsl:text>Form-item Form-item-error</xsl:text>
                </xsl:attribute>
            </xsl:if>

            <label class="Form-label">
                <span class="Form-label-caption">ISRC</span>
                <div class="Form-input-wrapper">
                    <input type="text" name="Form_Track_Master_ISRC" id="Form_Track_Master_ISRC" value="{Form/Track/Master/ISRC}" class="Input Form-input">
                        <xsl:choose>
                            <xsl:when test="$openRuns = 1">
                                <xsl:attribute name="disabled">disabled</xsl:attribute>
                            </xsl:when>
                            <xsl:when test="$editMaster = 'no'">
                                <xsl:attribute name="readonly">readonly</xsl:attribute>
                            </xsl:when>
                        </xsl:choose>
                    </input>
                </div>
            </label>
            <xsl:call-template name="inlineError">
                <xsl:with-param name="path">Form/Track/Master/ISRC</xsl:with-param>
                <xsl:with-param name="displayName">ISRC</xsl:with-param>
            </xsl:call-template>
        </div>

        <div class="Form-item" id="Form_Track_Master_DateRecorded_TD">

            <xsl:if test="Form/Track/Master/DateRecorded[@e]">
                <xsl:attribute name="class">
                    <xsl:text>Form-item Form-item-error</xsl:text>
                </xsl:attribute>
            </xsl:if>

            <label class="Form-label">
                <span class="Form-label-caption">Recording Date</span>
                <div class="Form-input-wrapper">
                    <xsl:call-template name="uiDatepicker">
                        <xsl:with-param name="id" select="'Form_Track_Master_DateRecorded'" />
                        <xsl:with-param name="name" select="'Form_Track_Master_DateRecorded'" />
                        <xsl:with-param name="value" select="Form/Track/Master/DateRecorded" />
                        <xsl:with-param name="format" select="'MM/DD/YYYY'" />
                        <xsl:with-param name="disabled">
                            <xsl:if test="$openRuns = 1">
                                <xsl:text>true</xsl:text>
                            </xsl:if>
                        </xsl:with-param>
                        <xsl:with-param name="readonly">
                            <xsl:if test="$editMaster = 'no'">
                                <xsl:text>true</xsl:text>
                            </xsl:if>
                        </xsl:with-param>
                        <xsl:with-param name="iconId" select="'calendarIcon'" />
                    </xsl:call-template>
                </div>
            </label>
            <xsl:call-template name="inlineError">
                <xsl:with-param name="path">Form/Track/Master/DateRecorded</xsl:with-param>
                <xsl:with-param name="displayName">Recording Date</xsl:with-param>
            </xsl:call-template>
        </div>
    </xsl:template>


    <xsl:template name="masterExisting">
        <div class="Form-header">
            <div class="Form-header-wrapper">
                <p>Or link to an existing master.</p>
            </div>
        </div>
        <div class="Form-item" id="Form_Track_Master_Button">

            <xsl:if test="$editMaster = 'yes'">
                <xsl:call-template name="uiButton">
                    <xsl:with-param name="name" select="'useExistingMaster'" />
                    <xsl:with-param name="content" select="'Attach Master'" />
                    <xsl:with-param name="className" select="'Form-button'" />
                    <xsl:with-param name="disabled">
                        <xsl:if test="$openRuns = 1">
                            <xsl:text>true</xsl:text>
                        </xsl:if>
                    </xsl:with-param>
                    <xsl:with-param name="onClick">
                        <xsl:text>displayInline('master?c=search&amp;_inline=1&amp;Disable=</xsl:text>
                        <xsl:value-of select="Form/Track/Master/MasterID"></xsl:value-of>
                        <xsl:text>&amp;c=search');</xsl:text>
                    </xsl:with-param>
                </xsl:call-template>
            </xsl:if>
            <xsl:if test="$editMaster = 'no'">
                <xsl:call-template name="uiButton">
                    <xsl:with-param name="name" select="'useExistingMaster'" />
                    <xsl:with-param name="content" select="'Remove Master'" />
                    <xsl:with-param name="className" select="'Form-button'" />
                    <xsl:with-param name="disabled">
                        <xsl:if test="$openRuns = 1">
                            <xsl:text>true</xsl:text>
                        </xsl:if>
                    </xsl:with-param>
                    <xsl:with-param name="onClick">
                        toggleTrackFields('master');
                    </xsl:with-param>
                </xsl:call-template>
            </xsl:if>
        </div>
    </xsl:template>

    <xsl:template name="songEdit">
        <div class="TrackEdit-song TrackEdit-track-group">
            <input type="hidden" name="Form_Track_Master_Song_SongID" id="Form_Track_Master_Song_SongID" value="{Form/Track/Master/Song/SongID}" />
            <h2>Song</h2>
            <fieldset class="Form-fieldset">
                <xsl:call-template name="songNew" />
            </fieldset>
            <fieldset class="Form-fieldset">
                <xsl:call-template name="songExisting" />
            </fieldset>
        </div>
    </xsl:template>

    <xsl:template name="songNew">

        <xsl:call-template name="uiWarning">
            <xsl:with-param name="type" select="'success'" />
            <xsl:with-param name="descriptionId" select="'Form_Track_Master_Song_Success'" />
            <xsl:with-param name="hidden" select="'true'" />
        </xsl:call-template>

        <div class="Form-header">
            <div class="Form-header-wrapper">
                <p class="Form-header-wrapper" id="Form_Track_Master_Song_Blurb">
                    <xsl:if test="$editSong = 'yes'">
                        Enter song information here.
                    </xsl:if>
                    <xsl:if test="$editSong = 'no'">
                        <xsl:choose>
                            <xsl:when test="$openRuns = 0">
                                <a href="javascript:displayInline('song?SongID={Form/Track/Master/Song/SongID}&amp;c=edit&amp;_inline=1')">Click here</a> to edit this song.
                            </xsl:when>
                            <xsl:otherwise>
                                Click here to edit this song.
                            </xsl:otherwise>
                        </xsl:choose>
                    </xsl:if>
                </p>
            </div>
        </div>

        <div class="Form-item Form-item-required" id="Form_Track_Master_Song_Title_TD">

            <xsl:if test="Form/Track/Master/Song/Title[@e]">
                <xsl:attribute name="class">
                    <xsl:text>Form-item Form-item-required Form-item-error</xsl:text>
                </xsl:attribute>
            </xsl:if>

            <label class="Form-label">
                <span class="Form-label-caption">Title</span>
                <div class="Form-input-wrapper">
                    <input type="text" name="Form_Track_Master_Song_Title" id="Form_Track_Master_Song_Title" value="{Form/Track/Master/Song/Title}" class="Input Form-input">
                        <xsl:choose>
                            <xsl:when test="$openRuns = 1">
                                <xsl:attribute name="disabled">disabled</xsl:attribute>
                            </xsl:when>
                            <xsl:when test="$editSong = 'no'">
                                <xsl:attribute name="readonly">readonly</xsl:attribute>
                            </xsl:when>
                        </xsl:choose>
                    </input>
                </div>
            </label>
            <xsl:call-template name="inlineError">
                <xsl:with-param name="path">Form/Track/Master/Song/Title</xsl:with-param>
                <xsl:with-param name="displayName">Title</xsl:with-param>
            </xsl:call-template>
        </div>

        <div class="Form-item" id="Form_Track_Master_Song_Title_TD">

            <xsl:if test="Form/Track/Master/Song/ComposerName[@e]">
                <xsl:attribute name="class">
                    <xsl:text>Form-item Form-item-error</xsl:text>
                </xsl:attribute>
            </xsl:if>

            <label class="Form-label">
                <span class="Form-label-caption">
                    <span class="Form-label-caption-wrapper">Composer</span>
                    <xsl:call-template name="helpIcon">
                        <xsl:with-param name="tip">Required for Classical genres</xsl:with-param>
                    </xsl:call-template>
                </span>
                <div class="Form-input-wrapper">
                    <input id="Form_Track_Master_Song_ComposerName" name="Form_Track_Master_Song_ComposerName" type="text" class="Input Form-input" value="{Form/Track/Master/Song/ComposerName}">
                        <xsl:choose>
                            <xsl:when test="$openRuns = 1">
                                <xsl:attribute name="disabled">disabled</xsl:attribute>
                            </xsl:when>
                            <xsl:when test="$editSong = 'no'">
                                <xsl:attribute name="readonly">readonly</xsl:attribute>
                            </xsl:when>
                        </xsl:choose>
                    </input><span id="noMatchSongComposer" class="yui-ac-warning"></span>
                    <input type="hidden" name="Form_Track_Master_Song_ComposerID" id="Form_Track_Master_Song_ComposerID" value="{Form/Track/Master/Song/ComposerID}" />
                    <script type="text/javascript">
                        new rsAutoCompleteNew({
                            url: "/rps/catalog?c=search_composer&amp;limit=10",
                            targetInputName: "Form_Track_Master_Song_ComposerName",
                            targetInputID: "Form_Track_Master_Song_ComposerID",
                            noMatchItem: "noMatchSongComposer",
                            noMatchText: "(New)",
                            blockName: "Composer",
                            itemName: "Name",
                            itemID: "ComposerID",
                        }).init();
                    </script>
                </div>
            </label>
            <xsl:call-template name="inlineError">
                <xsl:with-param name="path">Form/Track/Master/Song/ComposerName</xsl:with-param>
                <xsl:with-param name="displayName">Composer</xsl:with-param>
            </xsl:call-template>
        </div>

        <div class="Form-item" id="Form_Track_Master_Song_ISWC_TD">

            <xsl:if test="Form/Track/Master/Song/ISWC[@e]">
                <xsl:attribute name="class">
                    <xsl:text>Form-item Form-item-error</xsl:text>
                </xsl:attribute>
            </xsl:if>

            <label class="Form-label">
                <span class="Form-label-caption">ISWC</span>
                <div class="Form-input-wrapper">
                    <input type="text" name="Form_Track_Master_Song_ISWC" id="Form_Track_Master_Song_ISWC" value="{Form/Track/Master/Song/ISWC}" class="Input Form-input">
                        <xsl:choose>
                            <xsl:when test="$openRuns = 1">
                                <xsl:attribute name="disabled">disabled</xsl:attribute>
                            </xsl:when>
                            <xsl:when test="$editSong = 'no'">
                                <xsl:attribute name="readonly">readonly</xsl:attribute>
                            </xsl:when>
                        </xsl:choose>
                    </input>
                </div>
            </label>
            <xsl:call-template name="inlineError">
                <xsl:with-param name="path">Form/Track/Master/Song/ISWC</xsl:with-param>
                <xsl:with-param name="displayName">ISWC</xsl:with-param>
            </xsl:call-template>
        </div>
    </xsl:template>


    <xsl:template name="songExisting">
        <div class="Form-header">
            <div class="Form-header-wrapper">
                <p>Or link to an existing song.</p>
            </div>
        </div>
        <div class="Form-item" id="Form_Track_Master_Song_Button">

            <xsl:if test="$editSong = 'yes'">
                <xsl:call-template name="uiButton">
                    <xsl:with-param name="name" select="'useExistingSong'" />
                    <xsl:with-param name="content" select="'Attach Song'" />
                    <xsl:with-param name="className" select="'Form-button'" />
                    <xsl:with-param name="disabled">
                        <xsl:if test="$openRuns = 1">
                            <xsl:text>true</xsl:text>
                        </xsl:if>
                    </xsl:with-param>
                    <xsl:with-param name="onClick">
                        <xsl:text>displayInline('song?c=search&amp;_inline=1&amp;Disable=</xsl:text>
                        <xsl:value-of select="Form/Track/Master/Song/SongID" />
                        <xsl:text>&amp;c=search');</xsl:text>
                    </xsl:with-param>
                </xsl:call-template>
            </xsl:if>
            <xsl:if test="$editSong = 'no'">
                <xsl:call-template name="uiButton">
                    <xsl:with-param name="name" select="'useExistingSong'" />
                    <xsl:with-param name="content" select="'Remove Song'" />
                    <xsl:with-param name="className" select="'Form-button'" />
                    <xsl:with-param name="disabled">
                        <xsl:if test="$openRuns = 1">
                            <xsl:text>true</xsl:text>
                        </xsl:if>
                    </xsl:with-param>
                    <xsl:with-param name="onClick">
                        <xsl:text>toggleTrackFields('song');</xsl:text>
                    </xsl:with-param>
                </xsl:call-template>
            </xsl:if>
        </div>
    </xsl:template>


    <xsl:template name="trackAdditionalArtistRow">
        <xsl:for-each select="Form/Track/AdditionalArtistList/AdditionalArtist">
            <xsl:sort select="New" />
            <xsl:sort select="AdditionalArtistID" data-type="number" />
            <xsl:sort select="OriginalKey" />

            <xsl:call-template name="trackAdditionalArtistRowWithKey" >
                <xsl:with-param name="key">
                    <xsl:choose>
                        <xsl:when test="normalize-space(OriginalKey)"><xsl:value-of select="OriginalKey" /></xsl:when>
                        <xsl:otherwise><xsl:value-of select="/Root/Form/Track/TrackID" />.<xsl:value-of select="ArtistID" />.<xsl:value-of select="Role/ArtistRoleID" /></xsl:otherwise>
                    </xsl:choose>
                </xsl:with-param>
            </xsl:call-template>

        </xsl:for-each>

        <xsl:if test="$openRuns = 0">

            <div id="addLinkRow">
                <xsl:if test="$openRuns = 0">
                    <xsl:call-template name="uiButton">
                        <xsl:with-param name="type" select="'text-inline'" />
                        <xsl:with-param name="id" select="'catalog-add-additional-artist'" />
                        <xsl:with-param name="className" select="'js-catalog-add-artist'" />
                        <xsl:with-param name="iconLeftType" select="'add'" />
                        <xsl:with-param name="content" select="'Add Another Artist'" />
                    </xsl:call-template>
                </xsl:if>
            </div>

        </xsl:if>
    </xsl:template>


    <xsl:template name="trackAdditionalArtistRowWithKey">

        <xsl:param name="key" />

        <div>
            <xsl:attribute name="class">
                <xsl:text>Form-group-vertical js-additional-artist-group Form-group-with-control AdditionalGroup-item</xsl:text>
                <xsl:if test="normalize-space(Delete)">
                    <xsl:text> AnimateReveal AnimateReveal-hidden</xsl:text>
                </xsl:if>
            </xsl:attribute>
            <div class="Form-group-inputs-container">
                <div class="Form-item" id="myAutoComplete_{$key}">
                    <xsl:if test="Name[@e]">
                        <xsl:attribute name="class">
                            <xsl:text>Form-item Form-item-error</xsl:text>
                        </xsl:attribute>
                    </xsl:if>

                    <label class="Form-label">
                        <span class="Form-label-caption">Additional Artist</span>
                        <div id="myAutoComplete_{$key}" class="Form-input-wrapper">
                            <input
                                id="Form_Track_AdditionalArtistList_AdditionalArtist_{$key}_Name"
                                name="Form_Track_AdditionalArtistList_AdditionalArtist_{$key}_Name"
                                type="text"
                                class="Input Form-input"
                                value="{Name}"
                            >
                                <xsl:if test="$openRuns = 1">
                                    <xsl:attribute name="disabled">disabled</xsl:attribute>
                                </xsl:if>
                            </input>
                            <span id="noMatchWarning_{$key}" class="yui-ac-warning"></span>

                            <input type="hidden" name="Form_Track_AdditionalArtistList_AdditionalArtist_{$key}_ArtistID" id="Form_Track_AdditionalArtistList_AdditionalArtist_{$key}_ArtistID" value="{ArtistID}" />
                            <input type="hidden" name="Form_Track_AdditionalArtistList_AdditionalArtist_{$key}_TrackID" id="Form_Track_AdditionalArtistList_AdditionalArtist_{$key}_AlbumID" value="{/Root/Form/Track/AlbumID}" />
                            <input type="hidden" name="Form_Track_AdditionalArtistList_AdditionalArtist_{$key}_OriginalKey" id="Form_Track_AdditionalArtistList_AdditionalArtist_{$key}_OriginalKey" value="{$key}" />

                            <script type="text/javascript">
                                new rsAutoCompleteNew({
                                    url: "/rps/catalog?c=search_artist&amp;limit=10",
                                    targetInputName: "Form_Track_AdditionalArtistList_AdditionalArtist_<xsl:value-of select="$key"/>_Name",
                                    targetInputID: "Form_Track_AdditionalArtistList_AdditionalArtist_<xsl:value-of select="$key"/>_ArtistID",
                                    noMatchItem: "noMatchWarning_<xsl:value-of select="$key"/>",
                                    noMatchText: "(New)",
                                    blockName: "Artist",
                                    itemName: "Name",
                                    itemID: "ArtistID",
                                }).init();
                            </script>
                        </div>
                    </label>
                    <xsl:call-template name="inlineError">
                        <xsl:with-param name="path">Name</xsl:with-param>
                        <xsl:with-param name="displayName">Artist</xsl:with-param>
                    </xsl:call-template>
                </div>

                <div class="Form-item" id="myAutoComplete_{$key}">
                    <xsl:attribute name="class">
                        <xsl:text>Form-item</xsl:text>
                        <xsl:if test="ArtistRoleID[@e]">
                            <xsl:text> Form-item-error</xsl:text>
                        </xsl:if>
                    </xsl:attribute>

                    <label class="Form-label">
                        <span class="Form-label-caption">Role</span>
                        <div class="Form-input-wrapper">
                            <xsl:call-template name="additionalArtistRoleSelect" >
                                <xsl:with-param name="formIndex"><xsl:value-of select="$key" /></xsl:with-param>
                                <xsl:with-param name="selectedID"><xsl:value-of select="Role/ArtistRoleID" /></xsl:with-param>
                            </xsl:call-template>
                        </div>
                    </label>
                    <xsl:call-template name="inlineError">
                        <xsl:with-param name="path">ArtistRoleID</xsl:with-param>
                        <xsl:with-param name="displayName">Role</xsl:with-param>
                    </xsl:call-template>
                </div>
            </div>
            <div class="Form-group-control-container">
                <span class="Form-group-control Icon-trigger">
                    <xsl:if test="$openRuns = 0">
                        <xsl:call-template name="icon">
                            <xsl:with-param name="type" select="'delete'" />
                            <xsl:with-param name="role" select="'action'" />
                        </xsl:call-template>
                    </xsl:if>
                    <input type="hidden" class="Form-group-is-deleted">
                        <xsl:attribute name="name">
                            <xsl:text>Form_Track_AdditionalArtistList_AdditionalArtist_</xsl:text>
                            <xsl:value-of select="$key" />
                            <xsl:text>_Delete</xsl:text>
                        </xsl:attribute>
                        <xsl:attribute name="value">
                            <xsl:if test="normalize-space(Delete)">
                                <xsl:text>1</xsl:text>
                            </xsl:if>
                        </xsl:attribute>
                    </input>
                </span>
            </div>

        </div>
    </xsl:template>

    <xsl:template name="additionalArtistRoleSelect" >
        <xsl:param name="formIndex" />
        <xsl:param name="selectedID" />

        <xsl:variable name="additionalArtistRoles">
            <map>
                <mapEntry><name>Choose...</name><value>0</value></mapEntry>
                <xsl:for-each select="/Root/Form/ArtistRoleList/ArtistRole" >
                    <mapEntry><name><xsl:value-of select="Role" /></name><value><xsl:value-of select="ArtistRoleID"/></value></mapEntry>
                </xsl:for-each>
            </map>
        </xsl:variable>

        <xsl:call-template name="uiDropdown">
            <xsl:with-param name="items" select="$additionalArtistRoles"/>
            <xsl:with-param name="active" select="$selectedID" />
            <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">additionalArtistRoleSelect_<xsl:value-of select="$formIndex" /></xsl:with-param>
            <xsl:with-param name="name">
                <xsl:if test="normalize-space($formIndex)" >
                   <xsl:text>Form_Track_AdditionalArtistList_AdditionalArtist_</xsl:text><xsl:value-of select="$formIndex" /><xsl:text>_ArtistRoleID</xsl:text>
                </xsl:if>
            </xsl:with-param>
        </xsl:call-template>
    </xsl:template>

</xsl:stylesheet>
