<!--                                                                  -->
<!--  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">
        <script type="text/javascript" src="/production/javascript/validateExpenseType.js?t={$now}" />
        <form name="expenseType" id="expenseType" method="post" action="contract" onSubmit="return checkRecoupablePercents()">
            <xsl:call-template name="expenseTypeEdit" />
            <xsl:call-template name="buttons" />
        </form>
    </xsl:template>

    <xsl:template name="expenseTypeEdit">
        <div class="section">
            <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="ContractID" value="{Params/ContractID}" />
            <input type="hidden" name="expenseCount" id="expenseCount" value="{$expenseCount}" />
            <p class="formHeader">Enter recoupable expense information here.</p>
            <hr />
            <xsl:if test="//*[@e]">
                <xsl:call-template name="errorMessageGeneral" />
                <xsl:call-template name="expenseTypeErrors" />
            </xsl:if>
            <xsl:call-template name="expenseTypeSection" />
        </div>
    </xsl:template>

    <xsl:template name="expenseTypeSection">
        <table class="textChart" id="expenseTypeTable">
            <tbody>
                <tr>
                    <th class="rowLeft">Expense Type</th>
                    <th>Recoupable</th>
                    <xsl:if test="$expenseCount &gt; 0">
                        <th class="deleteCol">Delete</th>
                    </xsl:if>
                </tr>
                <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:variable name="addLink">
            <xsl:choose>
                <xsl:when test="$expenseCount = 0">javascript:addExpenseType(1)</xsl:when>
                <xsl:otherwise>javascript:addExpenseType(<xsl:value-of select="$expenseCount" />)</xsl:otherwise>
            </xsl:choose>
        </xsl:variable>
        <p class="addLink">
            <a href="{$addLink}" title="Add Another Recoupable Expense" id="addImageLink">
                <img src="/production/images/icons/office/Add-(16x16).gif" height="16" width="16" />
            </a> <a href="{$addLink}" id="addTextLink">Add Another Recoupable Expense</a>
        </p>

    </xsl:template>

    <xsl:template name="expenseTypeRow">
        <xsl:variable name="expenseTypePosition" select="position() - 1" />
        <xsl:variable name="expenseNameID" select="ExpenseNameID" />
        <tr class="row{position() mod 2}" id="expenseType{position()}">
            <td class="rowLeft">
                <xsl:if test="ExpenseNameID[@e]">
                    <xsl:attribute name="class">rowLeft errorInput</xsl:attribute>
                </xsl:if>
                <xsl:if test="/Root/Form/ExpenseNameList/ExpenseName/ExpenseNameID">
                    <select name="Form_ExpenseTypeList_ExpenseType_{$expenseTypePosition}_ExpenseNameID" id="Form_ExpenseTypeList_ExpenseType_{$expenseTypePosition}_ExpenseNameID">
                        <xsl:if test="Inactive = 1">
                            <xsl:attribute name="disabled">disabled</xsl:attribute>
                        </xsl:if>
                        <option value="">Choose...</option>
                        <xsl:for-each select="/Root/Form/ExpenseNameList/ExpenseName">
                            <option value="{ExpenseNameID}">
                                <xsl:if test="ExpenseNameID = $expenseNameID">
                                    <xsl:attribute name="selected">selected</xsl:attribute>
                                </xsl:if>
                                <xsl:value-of select="Name" />
                            </option>
                        </xsl:for-each>
                    </select>
                    <span class="Or-separator">OR</span>
                </xsl:if>
                <input type="text" name="Form_ExpenseTypeList_ExpenseType_{$expenseTypePosition}_NewExpenseName" id="Form_ExpenseTypeList_ExpenseType_{$expenseTypePosition}_NewExpenseName" value="{NewExpenseName}">
                    <xsl:if test="Inactive = 1">
                        <xsl:attribute name="disabled">disabled</xsl:attribute>
                    </xsl:if>
                </input>
            </td>
            <td>
                <xsl:if test="Percent[@e]">
                    <xsl:attribute name="class">errorInput</xsl:attribute>
                </xsl:if>
                <input type="text" class="percentField" name="Form_ExpenseTypeList_ExpenseType_{$expenseTypePosition}_Percent" id="Form_ExpenseTypeList_ExpenseType_{$expenseTypePosition}_Percent" value="{Percent}">
                    <xsl:if test="Inactive = 1">
                        <xsl:attribute name="disabled">disabled</xsl:attribute>
                    </xsl:if>
                </input>%
                <input type="hidden" name="OriginalPercent_{$expenseTypePosition}" id="OriginalPercent_{$expenseTypePosition}" value="{Percent}" />
            </td>
            <xsl:if test="$expenseCount &gt; 0">
                <td class="icon">
                    <xsl:if test="Inactive = 0 and LinkedUnProcessed &gt; 0">
                        <xsl:attribute name="class">checkboxWithTip</xsl:attribute>
                    </xsl:if>
                    <xsl:if test="normalize-space(ExpenseTypeID)">
                        <input type="checkbox" name="Form_ExpenseTypeList_ExpenseType_{$expenseTypePosition}_Delete" id="Form_ExpenseTypeList_ExpenseType_{$expenseTypePosition}_Delete">
                            <xsl:if test="Inactive = 1 or LinkedUnProcessed &gt; 0">
                                <xsl:attribute name="disabled">disabled</xsl:attribute>
                            </xsl:if>
                        </input>
                        <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="expenseTypeErrors">
        <div class="error">
            <xsl:if test="//ExpenseTypeList[@e = 'field_duplicate']">Each expense type can only be used once.<br /></xsl:if>
            <xsl:if test="//ExpenseNameID[@e = 'field_invalid']">Please select an existing Name or enter a new Name.<br /></xsl:if>
            <xsl:if test="//Percent[@e = 'field_blank']">Recoupable cannot be blank.<br /></xsl:if>
            <xsl:if test="//Percent[@e = 'field_invalid']">Recoupable is invalid.<br /></xsl:if>
            <br />
        </div>
    </xsl:template>

    <xsl:template name="expenseNameList">
        <script type="text/javascript">
            //creating array of expense names
            var expenseCollection = new Object();
            expenseCollection = [
            <xsl:for-each select="Form/ExpenseNameList/ExpenseName">'<xsl:call-template name="escapeJavascript"><xsl:with-param name="string" select="Name" /></xsl:call-template>'<xsl:if test="position() != last()">,</xsl:if></xsl:for-each>
            ];
            window.expenseCollection = expenseCollection;
        </script>
    </xsl:template>

</xsl:stylesheet>


