<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

  	<xsl:template name="userImportLayout">
		<form action="/rps/user" name="UserImport" id="UserImport" method="post">
			<xsl:choose>
				<xsl:when test="Messages/Message/Code = 'email_found'">
					<xsl:call-template name="confirmImport" />
				</xsl:when>
				<xsl:when test="Messages/Message/Code = 'import_success'">
					<xsl:call-template name="userImportSuccess" />
				</xsl:when>
				<xsl:otherwise>
					<xsl:call-template name="userImportForm" />
				</xsl:otherwise>
			</xsl:choose>
		</form>
	</xsl:template>

	<xsl:template name="userImportForm">
    <script src="/production/javascript/validateUserImport.js?t={$now}" type="text/javascript"></script>
		<input type="hidden" name="formSubmit" value="1" />
		<input type="hidden" name="c" value="import" />
		<p class="User-edit-subheader">Import users here.<span class="Required-notice"/></p>
		<xsl:call-template name="errorMessageGeneral" />

		<fieldset class="User-edit-fieldset">
			<div class="Form-item Form-item-required Form-item-error" id="formEmailWrapper">
				<label class="Form-label">
					<span class="Form-label-caption">E-mail</span>
					<div class="Form-input-wrapper">
						<input type="text" name="Form_Email" id="Form_Email" class="Input Form-input" maxlength="80" value="{Form/Email}" />
						<xsl:call-template name="inlineError">
							<xsl:with-param name="path">Form/Email</xsl:with-param>
							<xsl:with-param name="displayName">E-mail</xsl:with-param>
						</xsl:call-template>
					</div>
				</label>
			</div>
		</fieldset>

		<script>
			if(!document.getElementById('ERRORForm_Email').innerHTML) {
				removeClass(document.getElementById('formEmailWrapper'), 'Form-item-error');
			};
		</script>

		<fieldset class="User-edit-fieldset">
			<div class="Form-item Form-item-required">
				<label class="Form-label">
					<span class="Form-label-caption">Type</span>
					<div class="Form-input-wrapper">
						<xsl:variable name="selectAccessLevelsList">
							<map>
								<mapEntry>
									<name>Choose...</name>
									<value></value>
								</mapEntry>
								<xsl:for-each select="Form/AccessLevelList/AccessLevel">
                                    <xsl:variable name="accessLevel" select="AccessLevelID" />
                                    <xsl:if test="/Root/Form/AccessLevelList/AccessLevel[AccessLevelID = /Root/User/AccessLevel]/CanEditList/CanEdit[@id = $accessLevel] = 1">
                                        <mapEntry>
                                            <name><xsl:value-of select="Name"/></name>
                                            <value><xsl:value-of select="AccessLevelID"/></value>
                                            <selected>
                                                <xsl:if test="(AccessLevelID = /Root/Form/UserAccess/AccessLevel) or (/Root/Params/LabelID and $accessLevel=5)">
                                                    <xsl:text>true</xsl:text>
                                                </xsl:if>
                                            </selected>
                                        </mapEntry>
                                    </xsl:if>
								</xsl:for-each>
							</map>
						</xsl:variable>
						<xsl:call-template name="uiDropdown">
							<xsl:with-param name="items" select="$selectAccessLevelsList"/>
							<xsl:with-param name="id" select="'Form_UserAccess_AccessLevel'"/>
							<xsl:with-param name="name" select="'Form_UserAccess_AccessLevel'"/>
							<xsl:with-param name="active" select="/Root/Form/UserAccess/AccessLevel" />
							<xsl:with-param name="onChange">checkImportAccess(this.value)</xsl:with-param>
						</xsl:call-template>
                        <xsl:if test="not(Form/LabelList/Label)">
                            <span id="userLabel"></span>
                        </xsl:if>
                    </div>
                </label>
				<xsl:call-template name="inlineError">
					<xsl:with-param name="path">Form/UserAccess/AccessLevel</xsl:with-param>
					<xsl:with-param name="displayName">Type</xsl:with-param>
				</xsl:call-template>
			</div>
		</fieldset>

		<div id="userLabel">
			<xsl:if test="Form/LabelList/Label">
				<fieldset class="User-edit-fieldset User-edit-fieldset-dualselect">
					<div class="Form-item Form-item-required">
						<label class="Form-label">
							<span class="Form-label-caption">Labels</span>
							<div class="Form-input-wrapper">
								<xsl:variable name="selectLabelsAvailable">
									<map>
										<xsl:choose>
											<xsl:when test="normalize-space(Form/UserAccess/LabelID)">
												<xsl:for-each select="Form/LabelList/Label">
													<xsl:variable name="labelTest" select="LabelID" />
													<xsl:if test="not(/Root/Form[LabelID = $labelTest])">
														<mapEntry>
															<name><xsl:value-of select="LabelName"/></name>
															<value><xsl:value-of select="LabelID"/></value>
														</mapEntry>
													</xsl:if>
												</xsl:for-each>
											</xsl:when>
											<xsl:otherwise>
												<xsl:for-each select="Form/LabelList/Label">
													<mapEntry>
														<name><xsl:value-of select="LabelName"/></name>
														<value><xsl:value-of select="LabelID"/></value>
													</mapEntry>
												</xsl:for-each>
											</xsl:otherwise>
										</xsl:choose>
									</map>
								</xsl:variable>
								<xsl:variable name="selectLabelsSelected">
									<map>
										<xsl:variable name="labelID" select="Form/UserAccess/LabelID" />
										<xsl:for-each select="Form/LabelList/Label[LabelID = $labelID]">
											<mapEntry>
												<name><xsl:value-of select="LabelName"/></name>
												<value><xsl:value-of select="LabelID"/></value>
											</mapEntry>
										</xsl:for-each>
									</map>
								</xsl:variable>
								<xsl:call-template name="uiDualSelect">
									<xsl:with-param name="name" select="'Form_UserAccess_LabelID'"/>
									<xsl:with-param name="itemsAvailable" select="$selectLabelsAvailable"/>
									<xsl:with-param name="itemsSelected" select="$selectLabelsSelected"/>
								</xsl:call-template>
								<xsl:call-template name="inlineError">
									<xsl:with-param name="path">Form/LabelID</xsl:with-param>
									<xsl:with-param name="displayName">Labels</xsl:with-param>
								</xsl:call-template>
							</div>
						</label>
					</div>
				</fieldset>
			</xsl:if>
		</div>
		<xsl:choose>
			<xsl:when test="Form/AccessLevel = 5">
				<script type="text/javascript">checkImportAccess(5);</script>
			</xsl:when>
            <xsl:when test="/Root/Params/LabelID">
                <script type="text/javascript">
                    seededMover('remove','AvailItems','Form_UserAccess_LabelID', <xsl:value-of select="/Root/Params/LabelID" />);
                </script>
            </xsl:when>
			<xsl:otherwise>
				<script type="text/javascript">checkImportAccess(99);</script>
			</xsl:otherwise>
		</xsl:choose>

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



	<xsl:template name="confirmImport">
		<input type="hidden" name="c" value="import" />
		<input type="hidden" name="formSubmit" value="1" />
		<input type="hidden" name="Form_Import" value="1" />
		<input type="hidden" name="Form_Email" value="{Form/Email}" />
		<input type="hidden" name="Form_UserAccess_AccessLevel" value="{Form/UserAccess/AccessLevel}" />
		<xsl:for-each select="Form/UserAccess/LabelID">
			<input type="hidden" name="Form_UserAccess_LabelID" value="{.}" />
		</xsl:for-each>
		<div class="User-import-copy">
			<p>The account <strong><xsl:value-of select="Form/Email" /></strong> already exists in the RoyaltyShare system, but not in <strong><xsl:value-of select="Form/Hostname" /></strong>.</p>
			<p>Would you like to create an account for that user here?</p>
			<p>Clicking "Import" will import <strong><xsl:value-of select="Form/Email" />'s</strong> existing account information including their existing password and <strong><xsl:value-of select="Form/Email" /></strong> will receive an email to notifying them that they have <strong><xsl:value-of select="Form/AccessLevelList/AccessLevel[AccessLevelID = /Root/Form/UserAccess/AccessLevel]/Name" /></strong> access to <strong><xsl:value-of select="Form/Hostname" /></strong>.</p>
		</div>
		<xsl:call-template name="buttons" />
	</xsl:template>

	<xsl:template name="userImportSuccess">
		<div class="User-import-copy">
			<p>User <strong><xsl:value-of select="Form/Email" /></strong> successfully imported!</p>
		</div>
		<xsl:call-template name="buttons" />
	</xsl:template>

</xsl:stylesheet>

