<!--                                                                  -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common" version="1.0">

  <xsl:template name="bodyTitle">
    <xsl:param name="title" />
    <xsl:if test="$title">
      <div id="body_title">
        <h2><xsl:value-of select="$title" /></h2>
      </div>
    </xsl:if>
  </xsl:template>


  <xsl:template name="bodyMessage">
    <xsl:choose>
      <xsl:when test="Message">
        <div id="body_message">
          <xsl:value-of select="Message" />
        </div>
      </xsl:when>
      <xsl:when test="Error">
        <div id="body_message">
          <xsl:value-of select="Error" />
        </div>
      </xsl:when>
    </xsl:choose>
  </xsl:template>


  <xsl:template name="submitButton">
    <xsl:param name="label" />

    <xsl:variable name="labelText"><xsl:choose>
      <xsl:when test="$label" ><xsl:value-of select="$label" /></xsl:when>
      <xsl:otherwise>Save</xsl:otherwise>
    </xsl:choose></xsl:variable>

    <input type="submit" name="submit" value="{$labelText}" />
  </xsl:template>


  <xsl:template name="listField">
    <xsl:param name="label" />
    <xsl:param name="name" />
    <xsl:param name="value" />
    <xsl:param name="options" />
    <xsl:param name="empty_label" />

    <xsl:if test="normalize-space($label)">
      <td>
        <label><xsl:value-of select="$label" /></label>
      </td>
    </xsl:if>

    <td>
      <xsl:if test="count(exsl:node-set($options)/option)" >
        <SELECT Name="{$name}" >
          <xsl:if test="$empty_label"><option value="" ><xsl:value-of select="$empty_label" /></option></xsl:if>
          <xsl:for-each select="exsl:node-set($options)/option" >
            <option value="{@name}" >
              <xsl:if test="$value = @name">
                 <xsl:attribute name="selected">selected</xsl:attribute>
              </xsl:if>
              <xsl:value-of select="." />
            </option>
          </xsl:for-each>
        </SELECT>
      </xsl:if>
    </td>

  </xsl:template>

  <xsl:template name="checkboxField">
    <xsl:param name="label" />
    <xsl:param name="name" />
    <xsl:param name="value" />
    <xsl:param name="disabled" />

    <xsl:if test="$label" >
      <td>
        <label><xsl:value-of select="$label" /></label>
      </td>
    </xsl:if>

    <td>
      <xsl:variable name="checked"><xsl:if test="$value &gt; 0">CHECKED</xsl:if></xsl:variable>
      <input type="checkbox" value="1" >
        <xsl:if test="$value &gt; 0"><xsl:attribute name="checked">checked</xsl:attribute></xsl:if>
        <xsl:if test="$disabled &gt; 0"><xsl:attribute name="disabled">disabled</xsl:attribute></xsl:if>
        <xsl:if test="not( $disabled &gt; 0 )"><xsl:attribute name="name"><xsl:value-of select="$name" /></xsl:attribute></xsl:if>
      </input>
    </td>

  </xsl:template>

  <xsl:template name="textField">
    <xsl:param name="label" />
    <xsl:param name="name" />
    <xsl:param name="value" />
    <xsl:param name="width" />
    <xsl:param name="url" />

    <td>
      <label><xsl:value-of select="$label" /></label>
    </td>
    <td>
      <xsl:choose>
        <xsl:when test="$name">
          <input type="text" name="{$name}" >
            <xsl:attribute name="value" ><xsl:value-of select="$value" /></xsl:attribute>
            <xsl:if test="$width"><xsl:attribute name="size" ><xsl:value-of select="$width" /></xsl:attribute></xsl:if>
          </input>
        </xsl:when>
        <xsl:when test="$url">
            <a href="http://{$url}" target="_blank">
                <xsl:value-of select="$url" />
            </a>
        </xsl:when>
        <xsl:otherwise>
          <xsl:value-of select="$value" />
        </xsl:otherwise>
      </xsl:choose>
    </td>

  </xsl:template>

  <xsl:template name="addButton">
    <xsl:param name="addCommand" />
    <xsl:param name="buttonText" />
    <xsl:param name="extraArgs" />

    <xsl:variable name="text" >
      <xsl:choose>
        <xsl:when test="$buttonText"><xsl:value-of select="$buttonText" /></xsl:when>
        <xsl:otherwise>Add New Record</xsl:otherwise>
      </xsl:choose>
    </xsl:variable>

    <xsl:if test="$addCommand">
      <xsl:variable name="moduleURL">/<xsl:value-of select="/Root/App" />/<xsl:value-of select="/Root/Area" />?c=</xsl:variable>
      <form method="get" action="{$moduleURL}" >
        <input type="hidden" value="{$addCommand}" name="c" />
        <input type="hidden" value="new" name="action" />
        <xsl:for-each select="exsl:node-set($extraArgs)/*" >
          <input type="hidden">
            <xsl:attribute name="name"><xsl:value-of select="local-name()" /></xsl:attribute>
            <xsl:attribute name="value"><xsl:value-of select="." /></xsl:attribute>
          </input>
        </xsl:for-each>
        <input type="submit" value="{$text}" />
      </form>
    </xsl:if>
  </xsl:template>

  <xsl:template name="backButton">
    <xsl:param name="command" />
    <xsl:param name="buttonText" />
    <xsl:param name="args" />

    <xsl:variable name="text" >
      <xsl:choose>
        <xsl:when test="$buttonText"><xsl:value-of select="$buttonText" /></xsl:when>
        <xsl:otherwise>Cancel</xsl:otherwise>
      </xsl:choose>
    </xsl:variable>

    <xsl:variable name="url" ><xsl:value-of select="$moduleURL" />?c=<xsl:value-of select="$command" /><xsl:for-each select="exsl:node-set($args)/*" >&amp;<xsl:value-of select="local-name()" />=<xsl:value-of select="." /></xsl:for-each>
    </xsl:variable>

    <input type="button" value="{$text}" onClick="location.href='{$url}'" />
  </xsl:template>

  <xsl:template name="clientSelectForm" >
    <select id="clientSelect" >
      <option >
          <!--
          <xsl:attribute name="value"><xsl:call-template name="currentCommandAsURL" ><xsl:with-param name="client_clean">admin</xsl:with-param></xsl:call-template></xsl:attribute>
          -->
          <xsl:attribute name="value"><xsl:call-template name="clientBaseURL" ><xsl:with-param name="client_clean"><xsl:value-of select="ClientNameClean" /></xsl:with-param></xsl:call-template></xsl:attribute>
        -- NONE --
      </option>
      <xsl:for-each select="Clients/Client" >
        <option >
          <xsl:attribute name="value"><xsl:call-template name="clientBaseURL" ><xsl:with-param name="client_clean"><xsl:value-of select="ClientNameClean" /></xsl:with-param></xsl:call-template></xsl:attribute>
          <!--
          <xsl:attribute name="value"><xsl:call-template name="currentCommandAsURL" ><xsl:with-param name="client_clean"><xsl:value-of select="ClientNameClean" /></xsl:with-param></xsl:call-template></xsl:attribute>
          -->
          <xsl:if test="/Root/User/ClientNameClean = ClientNameClean">
            <xsl:attribute name="selected">selected</xsl:attribute>
          </xsl:if>
          <xsl:value-of select="ClientName" />
        </option>
      </xsl:for-each>

    </select>
    <input type="button" value="switch" onClick="redirectClient( 'clientSelect' );" />
  </xsl:template>

  <xsl:template name="clientBaseURL">
    <xsl:param name="client_clean" />
    https://<xsl:value-of select="$client_clean" />.royaltyshare.com/support
  </xsl:template>

  <xsl:template name="currentCommandAsURL" >
    <xsl:param name="client_clean" />
    <xsl:variable name="params" ><xsl:value-of select="/Root/App" /><xsl:if test="string-length(/Root/Area)" >/<xsl:value-of select="/Root/Area" /></xsl:if><xsl:call-template name="currentParamsAsURL" /></xsl:variable>
    https://<xsl:value-of select="$client_clean" />.royaltyshare.com/<xsl:value-of select="$params" />
  </xsl:template>

  <xsl:template name="currentParamsAsURL" >
    <xsl:for-each select="/Root/Params/*" >
      <xsl:choose>
        <xsl:when test="position() = 1"><xsl:text>?</xsl:text></xsl:when>
        <xsl:otherwise ><xsl:text>&amp;</xsl:text></xsl:otherwise>
      </xsl:choose>
      <xsl:call-template name="do-escape-uri" ><xsl:with-param name="str" select="local-name()" /></xsl:call-template>=<xsl:call-template name="do-escape-uri" ><xsl:with-param name="str" select="." /></xsl:call-template>
    </xsl:for-each>
  </xsl:template>

  <xsl:template name="clientNameFromID" >
    <xsl:param name="clientID" />
    <xsl:value-of select="/Root/Clients/Client[ClientID = $clientID]/ClientName" />
  </xsl:template>

  <xsl:template name="clientCleanFromID" >
    <xsl:param name="clientID" />
    <xsl:value-of select="/Root/Clients/Client[ClientID = $clientID]/ClientNameClean" />
  </xsl:template>

</xsl:stylesheet>
