<!--                                                                  -->
<!--  Copyright (C) 2011 RoyaltyShare, Inc.   All Rights Reserved     -->
<!--                                                                  -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:dyn="http://exslt.org/dynamic" extension-element-prefixes="dyn">
    <xsl:output method="html" indent="no" doctype-system="http://www.w3.org/TR/html4/strict.dtd" doctype-public="-//W3C//DTD HTML 4.01//EN" encoding="utf-8" />


    <xsl:template name="reportInput" >
      <xsl:param name="type" />
      <xsl:param name="display" />
      <xsl:param name="name" />
      <xsl:param name="value" />
      <xsl:param name="fieldType" />

	  <xsl:choose>
		<xsl:when test="$type = 'label'" >
			<xsl:call-template name="reportInputLabel" >
		      <xsl:with-param name="display"><xsl:value-of select="$display" /></xsl:with-param>
		      <xsl:with-param name="name"><xsl:value-of select="$name" /></xsl:with-param>
		      <xsl:with-param name="value"><xsl:value-of select="$value" /></xsl:with-param>
			</xsl:call-template>
		</xsl:when>
		<xsl:when test="$type = 'bool' and not(@group)" >
			<xsl:call-template name="reportInputCheckbox" >
		      <xsl:with-param name="display"><xsl:value-of select="$display" /></xsl:with-param>
		      <xsl:with-param name="name"><xsl:value-of select="$name" /></xsl:with-param>
		      <xsl:with-param name="value"><xsl:value-of select="$value" /></xsl:with-param>
			</xsl:call-template>
		</xsl:when>
		<xsl:when test="$type = 'bool' and @group" >
		    <!-- we'll deal with the groups separately -->
		</xsl:when>
		<xsl:when test="$type = 'sclr'" >
			<xsl:call-template name="reportInputText" >
		      <xsl:with-param name="display"><xsl:value-of select="$display" /></xsl:with-param>
		      <xsl:with-param name="name"><xsl:value-of select="$name" /></xsl:with-param>
		      <xsl:with-param name="value"><xsl:value-of select="$value" /></xsl:with-param>
			</xsl:call-template>
		</xsl:when>
		<xsl:when test="$type = 'date'" >
			<xsl:call-template name="reportInputDate" >
		      <xsl:with-param name="display"><xsl:value-of select="$display" /></xsl:with-param>
		      <xsl:with-param name="name"><xsl:value-of select="$name" /></xsl:with-param>
		      <xsl:with-param name="value"><xsl:value-of select="$value" /></xsl:with-param>
			</xsl:call-template>
		</xsl:when>
		<xsl:when test="$type = 'rdio'" >
			<xsl:call-template name="reportInputRadio" >
		      <xsl:with-param name="display"><xsl:value-of select="$display" /></xsl:with-param>
		      <xsl:with-param name="name"><xsl:value-of select="$name" /></xsl:with-param>
		      <xsl:with-param name="value"><xsl:value-of select="$value" /></xsl:with-param>
			</xsl:call-template>
		</xsl:when>
		<xsl:when test="$type = 'menu'" >
			<xsl:call-template name="reportInputMenu" >
		      <xsl:with-param name="display"><xsl:value-of select="$display" /></xsl:with-param>
		      <xsl:with-param name="name"><xsl:value-of select="$name" /></xsl:with-param>
		      <xsl:with-param name="value"><xsl:value-of select="$value" /></xsl:with-param>
			</xsl:call-template>
		</xsl:when>
		<xsl:when test="name(../.) = 'Groups'" >
			<xsl:call-template name="reportInputCheckboxGroup" >
		      <xsl:with-param name="groupName"><xsl:value-of select="$name" /></xsl:with-param>
		      <xsl:with-param name="heading"><xsl:value-of select="Heading" /></xsl:with-param>
		      <xsl:with-param name="fieldType"><xsl:value-of select="$fieldType" /></xsl:with-param>
		    </xsl:call-template>			
		</xsl:when>		
        <xsl:when test="$type = 'cstm'" >
        </xsl:when>
		<xsl:otherwise>
			Unknown Input Type: <xsl:value-of select="$type" />
		</xsl:otherwise>
	  </xsl:choose>

	</xsl:template>



	<xsl:template name="reportInputLabel" >
	  <div class="{$name}">
        <xsl:param name="value" />
	    <xsl:value-of select="$value" />
	  </div>
	</xsl:template>



    <xsl:template name="reportInputText" >
      <xsl:param name="display" />
      <xsl:param name="name" />
      <xsl:param name="value" />

      <div class="{$name}">
	  <xsl:choose>
		<xsl:when test="normalize-space($display)">
	      <xsl:value-of select="$display" />:
		</xsl:when>
		<xsl:otherwise>
	      <xsl:value-of select="$name" />:
		</xsl:otherwise>
	  </xsl:choose>

	  <input type="text" name="Parameters_{$name}" value="{$value}" />
	  </div>
	</xsl:template>



	<xsl:template name="reportInputCheckbox" >
      <xsl:param name="display" />
      <xsl:param name="name" />
      <xsl:param name="value" />

      <div class="{$name}">
    	  <input type="checkbox" name="Parameters_{$name}" id="Parameters_{$name}" >
    		<xsl:if test="normalize-space($value) and $value != 0">
    		  <xsl:attribute name="checked">checked</xsl:attribute>
    		</xsl:if>
    	  </input>
    
          <label for="Parameters_{$name}">
            <xsl:text> </xsl:text>
    	    <xsl:choose>
    	      <xsl:when test="normalize-space($display)">
    	        <xsl:value-of select="$display" />
    		  </xsl:when>
    		  <xsl:otherwise>
    	        <xsl:value-of select="$name" />
    		  </xsl:otherwise>
    	    </xsl:choose>
    	  </label>
	  </div>

	</xsl:template>
	


	<xsl:template name="reportInputCheckboxGroup" >
      <xsl:param name="groupName" />
      <xsl:param name="heading" />
      <xsl:param name="fieldType" />  

      <xsl:variable name="fieldTypePath">/Root/Form/Parameters/<xsl:value-of select="$fieldType" />/*</xsl:variable>
      <xsl:if test="dyn:evaluate($fieldTypePath)/@group = $groupName">     
          <div class="{$groupName}">   
          <xsl:if test="normalize-space($heading)">
    	    <xsl:value-of select="$heading" /><br /><br />
          </xsl:if>

          <xsl:for-each select="dyn:evaluate($fieldTypePath)[@group = $groupName]">
              <xsl:sort select="@order" />
              <xsl:variable name="name" select="name(.)" />
              <xsl:variable name="value" select="." />
        	  <input type="checkbox" name="Parameters_{$name}" id="Parameters_{$name}">
    		      <xsl:if test="normalize-space($value) and $value != 0">
    		          <xsl:attribute name="checked">checked</xsl:attribute>
    		      </xsl:if>
    	      </input>        	  
        
              <label for="Parameters_{$name}">
                <xsl:text> </xsl:text>
        	    <xsl:choose>
        	      <xsl:when test="normalize-space(@display)">
        	        <xsl:value-of select="@display" />
        		  </xsl:when>
        		  <xsl:otherwise>
        	        <xsl:value-of select="$name" />
        		  </xsl:otherwise>
        	    </xsl:choose>
        	  </label>
        	  <br />
    	  </xsl:for-each>

    	  </div>
      </xsl:if>

	</xsl:template>	



    <xsl:template name="reportInputDate" >
      <xsl:param name="display" />
      <xsl:param name="name" />
      <xsl:param name="value" />
      
      <div class="{$name}">
      <label for="Parameters_{$name}">
	    <xsl:choose>
		  <xsl:when test="normalize-space($display)">
	        <xsl:value-of select="$display" />
		  </xsl:when>
		  <xsl:otherwise>
	        <xsl:value-of select="$name" />
		  </xsl:otherwise>
	    </xsl:choose>
      </label>

	  <input type="text" name="Parameters_{$name}" id="Parameters_{$name}" value="{$value}" class="dateField" />
	  <a tip="Select Date">
		<img id="calendarIcon{$name}" class="calendarIcon" src="/production/images/icons/office/Calendar-(16x16).gif" />
	  </a>
	  </div>
	  <xsl:call-template name="calendar">
	    <xsl:with-param name="fieldID">Parameters_<xsl:value-of select="$name" /></xsl:with-param>
	    <xsl:with-param name="buttonID">calendarIcon<xsl:value-of select="$name" /></xsl:with-param>
	  </xsl:call-template>
	</xsl:template>

	<xsl:template name="reportInputRadio" >
      <xsl:param name="display" />
      <xsl:param name="name" />
      <xsl:param name="value" />

      <div class="{$name}">
      <xsl:if test="normalize-space($display)">
	    <xsl:value-of select="$display" /><br /><br />
      </xsl:if>

      <xsl:for-each select="/Root/Form/Parameters/DisplayOptions/*">
		<xsl:if test="name(.) = $name" >
		  <xsl:for-each select="./Options" >
		    <input type="radio" name="Parameters_{$name}" value="{Value}" >
			  <xsl:if test="Value = $value">
				<xsl:attribute name="checked">checked</xsl:attribute>
			  </xsl:if>

			</input>
			<label for="Parameters_{$name}">
			  <xsl:text> </xsl:text>
			  <xsl:choose>
  			    <xsl:when test="normalize-space(Display)">
			      <xsl:value-of select="Display" />
			    </xsl:when>
			    <xsl:otherwise>
			      <xsl:value-of select="Value" />
			    </xsl:otherwise>
			  </xsl:choose>
			</label>
			<br />
		  </xsl:for-each>
		</xsl:if>
	  </xsl:for-each>
	  </div>

	</xsl:template>

	<xsl:template name="reportInputMenu" >
      <xsl:param name="display" />
      <xsl:param name="name" />
      <xsl:param name="value" />

      <div class="{$name}">

      <xsl:call-template name="inlineError">
        <xsl:with-param name="path">Parameters/<xsl:value-of select="$name" /></xsl:with-param>
        <xsl:with-param name="displayName"><xsl:value-of select="$display" /></xsl:with-param>
      </xsl:call-template>      
      
      <xsl:if test="normalize-space($display)">
	    <label for="Parameters_{$name}"><xsl:value-of select="$display" /></label>
      </xsl:if>

      <select name="Parameters_{$name}" id="Parameters_{$name}">
        <!-- <option value="" >Choose...</option> -->

	  <xsl:for-each select="/Root/Form/Parameters/DisplayOptions/*">
		<xsl:if test="name(.) = $name" >
		  <xsl:for-each select="./Options" >
		    <option value="{Value}">
		      <xsl:if test="Value = $value">
		        <xsl:attribute name="selected">selected</xsl:attribute>
		      </xsl:if>
			  <xsl:choose>
				<xsl:when test="normalize-space(Display)">
				  <xsl:value-of select="Display" />
				</xsl:when>
				<xsl:otherwise>
				  <xsl:value-of select="Value" />
				</xsl:otherwise>
			  </xsl:choose>
		      <br />
			</option>
		  </xsl:for-each>
		</xsl:if>
	  </xsl:for-each>

	  </select>
	  </div>

	</xsl:template>

</xsl:stylesheet>
