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

    <xsl:output method="html" indent="no" doctype-system="" encoding="utf-8" />

    <xsl:include href="/app/tools/appuser/templates/global.xsl" />
    <xsl:include href="/app/tools/appuser/templates/passwordtoggle.xsl" />

    <xsl:template name="pickLayout">
        <xsl:choose>
            <xsl:when test="Form/Token/@e">
                <xsl:call-template name="requestEmailLayout" />
            </xsl:when>
            <xsl:when test="Messages/Message/Code = 'email_sent'">
                <xsl:call-template name="forgotSuccessLayout" />
            </xsl:when>
            <xsl:when test="Messages/Message/Code = 'password_changed'">
                <xsl:call-template name="resetSuccessLayout" />
            </xsl:when>
            <xsl:when test="Params/Form_Token and Params/Form_Email">
                <xsl:call-template name="resetPasswordsLayout" />
            </xsl:when>
            <xsl:otherwise>
                <xsl:call-template name="forgotEnterLayout" />
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>

    <xsl:template name="requestEmailLayout">
        <p>
            This link has expired.  For security reasons, please <a href="?c=forgotpw&amp;Form_Email={Form/Email}&amp;new=1">click here</a>
        </p>
    </xsl:template>

    <xsl:template name="forgotEnterLayout">
        <p class="Restore-copy">
            Enter your e-mail address here and we will send instructions on how to access your account.
        </p>
        <form action="/rps/forgotpw" method="POST" id="login">

            <script src="/production/javascript/validateForgot.js" type="text/javascript"></script>

            <xsl:if test="/Root//*[@e]">
                <xsl:call-template name="uiWarning">
                    <xsl:with-param name="type" select="'error'" />
                    <xsl:with-param name="className" select="'Login-general-error'" />
                    <xsl:with-param name="description">
                        <xsl:text>E-mail not found in our system.</xsl:text>
                    </xsl:with-param>
                </xsl:call-template>
            </xsl:if>

            <fieldset class="Form-fieldset">
            <div class="Form-item">
                <label class="Form-label">
                    <span class="Form-label-caption">E-mail</span>
                    <div class="Form-input-wrapper">
                        <input type="text" class="Input Form-input" id="Form_Email" name="Form_Email" placeholder="Enter Your E-mail">
                            <xsl:attribute name="value">
                                <xsl:if test="Params/Form_Email">
                                    <xsl:value-of select="Params/Form_Email" />
                                </xsl:if>
                            </xsl:attribute>
                        </input>
                        <div class="Form-error-text-wrapper">
                            <span class="Form-error" id="ERRORForm_Email"></span>
                        </div>
                    </div>
                </label>
            </div>
            </fieldset>

            <fieldset class="Form-fieldset Form-fieldset-buttons">
                <xsl:call-template name="uiButton">
                    <xsl:with-param name="content" select="'Back to login'" />
                    <xsl:with-param name="type" select="'default'"/>
                    <xsl:with-param name="className" select="'Form-button'"/>
                    <xsl:with-param name="elemType" select="'button'"/>
                    <xsl:with-param name="onClick">location.href='/rps/login'</xsl:with-param>
                </xsl:call-template>
                <xsl:call-template name="uiButton">
                    <xsl:with-param name="content" select="'Submit'" />
                    <xsl:with-param name="type" select="'primary'"/>
                    <xsl:with-param name="className" select="'Form-button'"/>
                    <xsl:with-param name="elemType" select="'submit'"/>
                </xsl:call-template>
            </fieldset>

        </form>
    </xsl:template>


    <xsl:template name="forgotSuccessLayout">
        <p class="Restore-copy">
            Thank you. An e-mail has been sent to <strong><xsl:value-of select="Params/Form_Email" /></strong>.
        </p>
        <p class="Restore-copy">
            Please follow the instructions in the e-mail to continue.
        </p>
        <p class="Restore-copy">
            <a href="/rps/login">Back to Login</a>
        </p>
    </xsl:template>


    <xsl:template name="resetPasswordsLayout">
        <xsl:choose>
            <xsl:when test="Messages/Message/Code = 'token_invalid'"></xsl:when>
            <xsl:otherwise>
                <form id="newPasswords" name="newPasswords" action="/rps/forgotpw" method="post">
                    <input type="hidden" name="Form_Email" value="{Params/Form_Email}" />
                    <input type="hidden" name="Form_Token" value="{Params/Form_Token}" />
                    <script src="/production/javascript/jquery/jquery-3.6.0.min.js"></script>
                    <script src="/production/javascript/validatePasswordCommon.js?t={$now}" type="text/javascript"></script>
                    <script src="/production/javascript/validateResetPasswords.js?t={$now}" type="text/javascript"></script>

                    <input type="hidden" name="new" value="1" />

                    <xsl:if test="Params/new and not(Params/change)">
                        <h2>Welcome!</h2>
                        <p class="Restore-copy">
                            An account has been created for you in our system.  You will be able to log in using your e-mail address and the password you create on this page.
                        </p>
                        </xsl:if>
                        <xsl:if test="not(Params/new) or Params/change">
                        <p class="Restore-copy">
                            Thank you for verifying your e-mail address. You may now create a new password.
                            <input type="hidden" name="change" value="1" />
                        </p>
                    </xsl:if>

                    <xsl:if test="Form/NewPassword/@e or Form/NewPasswordConfirm/@e">
                        <p id="errorGeneral" class="General-error">
                            <xsl:choose>
                                <xsl:when test="Form/NewPasswordConfirm/@e = 'password_mismatch'">
                                    Passwords do not match.
                                </xsl:when>
                                <xsl:when test="Form/NewPassword/@e = 'password_history'">
                                    Password cannot be one of previous 24 passwords.  Please select a new one.
                                </xsl:when>
                                <xsl:when test="Form/NewPassword/@e = 'password_unsafe'">
                                    Password matches your current password or user name.  Please select a new one.
                                </xsl:when>
                                <xsl:otherwise>
                                    Password not valid.
                                </xsl:otherwise>
                            </xsl:choose>
                        </p>
                    </xsl:if>

                    <fieldset class="Form-fieldset">
                        <div class="Form-item">
                            <label class="Form-label">
                                <span class="Form-label-caption">E-mail</span>
                                <div class="Form-input-wrapper">
                                    <input type="text" class="Input Form-input" id="Form_Email" name="Form_Email" value="{Params/Form_Email}" disabled="true" />
                                </div>
                            </label>
                        </div>
                        <div class="Form-item">
                            <label class="Form-label">
                                <span class="Form-label-caption">New Password</span>
                                <div class="Form-input-wrapper">
                                    <input type="password" class="Input Form-input" id="Form_NewPassword" name="Form_NewPassword" onkeyup="validateResetPassword(this.value)" />
                                    <div class="Form-error-text-wrapper">
                                        <span class="Form-error" id="ERRORForm_NewPassword"></span>
                                    </div>
                                    <xsl:call-template name="passwordRequirements"/>

                                </div>
                            </label>
                        </div>
                        <div class="Form-item">
                            <label class="Form-label">
                                <span class="Form-label-caption">Confirm Password</span>
                                <div class="Form-input-wrapper">
                                    <input type="password" class="Input Form-input" id="Form_NewPasswordConfirm" name="Form_NewPasswordConfirm" disabled="disabled"/>
                                    <div class="Form-error-text-wrapper">
                                        <span class="Form-error" id="ERRORForm_NewPasswordConfirm"></span>
                                    </div>
                                </div>
                            </label>
                        </div>
                    </fieldset>
                    <fieldset class="Form-fieldset Form-fieldset-buttons">
                        <xsl:call-template name="uiButton">
                            <xsl:with-param name="content" select="'Submit'" />
                            <xsl:with-param name="type" select="'primary'"/>
                            <xsl:with-param name="className" select="'Form-button'"/>
                            <xsl:with-param name="elemType" select="'submit'"/>
                        </xsl:call-template>
                    </fieldset>
                </form>
                <xsl:call-template name="passwordToggleLogic"/>

            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>

    <xsl:template name="resetSuccessLayout">
        <p>
            Password <xsl:if test="not(Params/new)">change</xsl:if><xsl:if test="Params/new">setup</xsl:if> is complete.  <a href="/">Click here</a> to log in.
        </p>
    </xsl:template>

</xsl:stylesheet>
