<!--                                                                  -->
<!--  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"
                xmlns:set="http://exslt.org/sets" extension-element-prefixes="dyn set">

    <xsl:variable name="expenseCount" select="count(Root/Form/ExpenseTypeList/ExpenseType)"/>

    <xsl:template name="expenseTypeLayout">
        <form name="expenseType" id="expenseType" method="post" action="artist_contract" onSubmit="ContractPage.checkRecoupablePercents(event);">
            <xsl:call-template name="expenseTypeEdit"/>
            <xsl:call-template name="buttons"/>
        </form>
        <div class="hidden">
            <xsl:call-template name="expenseTypeRowTemplate"/>
        </div>
    </xsl:template>

    <xsl:template name="expenseTypeEdit">
        <xsl:call-template name="openRunStatusMessage"/>
        <xsl:if test="Params/_inline">
            <input type="hidden" name="_inline" value="1"/>
        </xsl:if>
        <input type="hidden" name="formSubmit" value="1"/>
        <input type="hidden" name="c" value="expense"/>
        <input type="hidden" name="ArtistContractID" value="{Params/ArtistContractID}"/>
        <input type="hidden" name="expenseCount" id="expenseCount" value="{$expenseCount}"/>
        <div class="Form-header">
            <p>Enter recoupable expense information here.</p>
        </div>
        <xsl:if test="//*[@e]">
            <xsl:call-template name="expenseTypeErrors"/>
        </xsl:if>
        <xsl:call-template name="expenseTypeSection"/>
    </xsl:template>

    <xsl:template name="expenseTypeSection">
        <table class="Table Table-with-highlight" id="expenseTypeTable">
            <thead>
                <tr class="Table-row Table-row-header">
                    <th class="Table-col">Expense Type</th>
                    <th class="Table-col">Recoupable</th>
                    <xsl:if test="$expenseCount &gt; 0">
                        <th class="Table-col deleteCol">Delete</th>
                    </xsl:if>
                </tr>
            </thead>
            <tbody>
                <xsl:choose>
                    <xsl:when test="$expenseCount &gt; 0">
                        <xsl:for-each select="Form/ExpenseTypeList/ExpenseType">
                            <xsl:call-template name="expenseTypeRow"/>
                        </xsl:for-each>
                    </xsl:when>
                    <xsl:otherwise>
                        <xsl:call-template name="expenseTypeRow"/>
                    </xsl:otherwise>
                </xsl:choose>
            </tbody>
        </table>

        <xsl:if test="$openRuns = 0">
            <xsl:call-template name="uiButton">
                <xsl:with-param name="id" select="'addTextLink'" />
                <xsl:with-param name="className" select="'Table-add-row-button'" />
                <xsl:with-param name="iconLeftType" select="'add'" />
                <xsl:with-param name="content" select="'Add Another Recoupable Expense'" />
                <xsl:with-param name="type" select="'text-inline'" />
                <xsl:with-param name="size" select="'large'" />
                <xsl:with-param name="onClick" select="'ContractPage.addExpenseType();'" />
            </xsl:call-template>
        </xsl:if>
    </xsl:template>

    <xsl:template name="expenseTypeRow">
        <xsl:variable name="expenseTypePosition" select="position() - 1"/>
        <xsl:variable name="expenseNameID" select="ExpenseNameID"/>

        <tr class="Table-row Table-row-data Table-row-inputs" id="expenseType{$expenseTypePosition}">
            <td class="Table-col">
                <div class="Form-group Form-group-horizontal Form-group-horizontal-up">
                    <xsl:if test="/Root/Form/ExpenseNameList/ExpenseName/ExpenseNameID">
                        <div class="Form-item Form-item-standart">
                            <xsl:if test="ExpenseNameID[@e]">
                                <xsl:attribute name="class">Form-item Form-item-standart Form-item-error</xsl:attribute>
                            </xsl:if>
                            <label class="Form-label">
                                <div class="Form-input-wrapper">
                                    <xsl:variable name="expenseNameOptions">
                                        <map>
                                            <mapEntry>
                                                <name>Choose...</name>
                                                <value></value>
                                            </mapEntry>
                                            <xsl:for-each select="/Root/Form/ExpenseNameList/ExpenseName">
                                                <xsl:sort select="Name"/>
                                                <mapEntry>
                                                    <name><xsl:value-of select="Name" /></name>
                                                    <value><xsl:value-of select="ExpenseNameID" /></value>
                                                </mapEntry>
                                            </xsl:for-each>
                                        </map>
                                    </xsl:variable>
                                    <xsl:call-template name="uiDropdown">
                                        <xsl:with-param name="items" select="$expenseNameOptions"/>
                                        <xsl:with-param name="id">
                                            <xsl:text>Form_ExpenseTypeList_ExpenseType_</xsl:text>
                                            <xsl:value-of select="$expenseTypePosition"/>
                                            <xsl:text>_ExpenseNameID</xsl:text>
                                        </xsl:with-param>
                                        <xsl:with-param name="name">
                                            <xsl:text>Form_ExpenseTypeList_ExpenseType_</xsl:text>
                                            <xsl:value-of select="$expenseTypePosition"/>
                                            <xsl:text>_ExpenseNameID</xsl:text>
                                        </xsl:with-param>
                                        <xsl:with-param name="active" select="$expenseNameID"/>
                                        <xsl:with-param name="disabled">
                                            <xsl:if test="$openRuns = 1 or Inactive = 1">true</xsl:if>
                                        </xsl:with-param>
                                    </xsl:call-template>
                                </div>
                            </label>
                            <xsl:call-template name="inlineError">
                                <xsl:with-param name="path">ExpenseNameID</xsl:with-param>
                                <xsl:with-param name="displayName">Expense Type</xsl:with-param>
                            </xsl:call-template>
                        </div>
                        <span class="Or-separator">OR</span>
                    </xsl:if>
                    <div class="Form-item Form-item-standart">
                        <xsl:if test="NewExpenseName[@e]">
                            <xsl:attribute name="class">Form-item Form-item-standart Form-item-error</xsl:attribute>
                        </xsl:if>
                        <label class="Form-label">
                            <div class="Form-input-wrapper">
                                <input type="text" class="Input Form-input" name="Form_ExpenseTypeList_ExpenseType_{$expenseTypePosition}_NewExpenseName" id="Form_ExpenseTypeList_ExpenseType_{$expenseTypePosition}_NewExpenseName" value="{NewExpenseName}">
                                    <xsl:if test="$openRuns = 1 or Inactive = 1">
                                        <xsl:attribute name="disabled">disabled</xsl:attribute>
                                    </xsl:if>
                                </input>
                            </div>
                            <xsl:call-template name="inlineError">
                                <xsl:with-param name="path">NewExpenseName</xsl:with-param>
                                <xsl:with-param name="displayName">Expense Type</xsl:with-param>
                            </xsl:call-template>
                        </label>
                    </div>
                </div>
            </td>
            <td class="Table-col">
                <div class="Form-item">
                    <xsl:if test="Percent[@e]">
                        <xsl:attribute name="class">Form-item Form-item-error</xsl:attribute>
                    </xsl:if>
                    <label class="Form-label">
                        <div class="Form-input-wrapper Form-input-wrapper-compound">
                            <input type="text" class="Input Form-input" name="Form_ExpenseTypeList_ExpenseType_{$expenseTypePosition}_Percent" id="Form_ExpenseTypeList_ExpenseType_{$expenseTypePosition}_Percent" value="{Percent}">
                                <xsl:if test="$openRuns = 1 or Inactive = 1">
                                    <xsl:attribute name="disabled">disabled</xsl:attribute>
                                </xsl:if>
                            </input>
                            <div class="Form-input-additive">%</div>
                        </div>
                    </label>
                    <xsl:call-template name="inlineError">
                        <xsl:with-param name="path">Percent</xsl:with-param>
                        <xsl:with-param name="displayName">Recoupable</xsl:with-param>
                    </xsl:call-template>
                </div>
                <input type="hidden" name="OriginalPercent_{$expenseTypePosition}" id="OriginalPercent_{$expenseTypePosition}" value="{Percent}"/>
            </td>
            <xsl:if test="$expenseCount &gt; 0">
                <td class="Table-col Table-col-icon">
                    <xsl:if test="normalize-space(ExpenseTypeID) and Inactive != 1">

                        <xsl:call-template name="uiDeleteRowTrigger">
                            <xsl:with-param name="id">
                                <xsl:text>Form_ExpenseTypeList_ExpenseType_</xsl:text>
                                <xsl:value-of select="$expenseTypePosition"/>
                                <xsl:text>_Delete</xsl:text>
                            </xsl:with-param>
                            <xsl:with-param name="name">
                                <xsl:text>Form_ExpenseTypeList_ExpenseType_</xsl:text>
                                <xsl:value-of select="$expenseTypePosition"/>
                                <xsl:text>_Delete</xsl:text>
                            </xsl:with-param>
                            <xsl:with-param name="disabled">
                                <xsl:if test="$openRuns = 1 or Inactive = 1 or LinkedUnProcessed &gt; 0">true</xsl:if>
                            </xsl:with-param>
                        </xsl:call-template>

                        <xsl:if test="Inactive = 0 and LinkedUnProcessed &gt; 0">
                            <xsl:call-template name="helpIcon">
                                <xsl:with-param name="tip">This recoupable expense has unprocessed expenses linked to it and cannot be deleted.</xsl:with-param>
                            </xsl:call-template>
                        </xsl:if>
                        <input type="hidden" name="LinkedUnProcessed_{$expenseTypePosition}" id="LinkedUnProcessed_{$expenseTypePosition}" value="{LinkedUnProcessed}"/>
                    </xsl:if>
                </td>
            </xsl:if>
        </tr>
    </xsl:template>

    <xsl:template name="expenseTypeRowTemplate">
        <table class="Table" id="expenseTypeRowTemplate">
            <tbody>
                <tr class="Table-row Table-row-data Table-row-inputs" id="expenseType{{0}}">
                    <td class="Table-col">
                        <div class="Form-group Form-group-horizontal">
                            <xsl:if test="/Root/Form/ExpenseNameList/ExpenseName/ExpenseNameID">
                                <div class="Form-item Form-item-standart">
                                    <label class="Form-label">
                                        <div class="Form-input-wrapper">
                                            <select id="Form_ExpenseTypeList_ExpenseType_{{0}}_ExpenseNameID" name="Form_ExpenseTypeList_ExpenseType_{{0}}_ExpenseNameID">
                                                <option value="">Choose...</option>
                                                <xsl:for-each select="/Root/Form/ExpenseNameList/ExpenseName">
                                                    <xsl:sort select="Name"/>
                                                    <option value="{ExpenseNameID}">
                                                        <xsl:value-of select="Name" />
                                                    </option>
                                                </xsl:for-each>
                                            </select>
                                        </div>
                                    </label>
                                </div>
                                <span class="Or-separator">OR</span>
                            </xsl:if>
                            <div class="Form-item Form-item-standart">
                                <label class="Form-label">
                                    <div class="Form-input-wrapper">
                                        <input type="text" class="Input Form-input" name="Form_ExpenseTypeList_ExpenseType_{{0}}_NewExpenseName" id="Form_ExpenseTypeList_ExpenseType_{{0}}_NewExpenseName" />
                                    </div>
                                </label>
                            </div>
                        </div>
                    </td>
                    <td class="Table-col">
                        <div class="Form-item">
                            <label class="Form-label">
                                <div class="Form-input-wrapper Form-input-wrapper-compound">
                                    <input type="text" class="Input Form-input" name="Form_ExpenseTypeList_ExpenseType_{{0}}_Percent" id="Form_ExpenseTypeList_ExpenseType_{{0}}_Percent" />
                                    <div class="Form-input-additive">%</div>
                                </div>
                            </label>
                        </div>
                        <input type="hidden" name="OriginalPercent_{{0}}" id="OriginalPercent_{{0}}"/>
                    </td>
                    <xsl:if test="$expenseCount &gt; 0">
                        <td class="Table-col Table-col-icon" />
                    </xsl:if>
                </tr>
            </tbody>
        </table>
    </xsl:template>

    <xsl:template name="expenseTypeErrors">
        <xsl:choose>
            <xsl:when test="//ExpenseTypeList[@e = 'field_duplicate']">
                <xsl:call-template name="uiWarning">
                    <xsl:with-param name="type" select="'error'" />
                    <xsl:with-param name="description">Each expense type can only be used once.</xsl:with-param>
                </xsl:call-template>
            </xsl:when>
            <xsl:otherwise>
                <xsl:call-template name="errorMessageGeneral" />
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>
</xsl:stylesheet>
