<%@ page buffer="8kb" autoFlush="true" %>
<%@ page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="zm" uri="com.zimbra.zm" %>
<%@ taglib prefix="app" uri="com.zimbra.htmlclient" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<fmt:setBundle basename="/msgs/ZhMsg" scope="request"/>
<app:handleError>
    <zm:getMailbox var="mailbox"/>
    <c:set var="successfullLogin" value="false"/>
    <fmt:message var="errorMessage" key="enterNewPassword"/>
    <c:set var="messageImage" value="/images/dwt/Information_32.gif"/>
    <c:choose>
        <c:when test="${(not empty param.loginNewPassword or not empty param.loginConfirmNewPassword) and (param.loginNewPassword ne param.loginConfirmNewPassword)}">
            <fmt:message var="errorMessage" key="bothNewPasswordsMustMatch"/>
            <c:set var="messageImage" value="/images/dwt/Critical_32.gif"/>
        </c:when>
        <c:when test="${(param.loginOp eq 'login') && ((empty param.loginNewPassword) or (empty param.password) or (empty param.loginConfirmNewPassword))}">
            <fmt:message var="errorMessage" key="passwordFieldMissing"/>
            <c:set var="messageImage" value="/images/dwt/Critical_32.gif"/>
        </c:when>
        <c:when test="${(param.loginOp eq 'login') && (not empty param.loginNewPassword) && (not empty param.password)}">
            <c:catch var="loginException">
                <zm:changePassword username="${mailbox.name}" password="${param.password}"
                                   newpassword="${param.loginNewPassword}" />
                <c:set var="successfullLogin" value="true"/>
                <fmt:message var="errorMessage" key="passwordChangeSucceededCloseWindow"/>
            </c:catch>
            <c:if test="${loginException != null}">
                <zm:getException var="error" exception="${loginException}"/>
                <c:set var="errorCode" value="${error.code}"/>
                <fmt:message var="errorMessage" key="${errorCode}"/>
                <c:set var="messageImage" value="/images/dwt/Critical_32.gif"/>
            </c:if>
        </c:when>

    </c:choose>

</app:handleError>

<html>

<head>
    <title><fmt:message key="changePassword"/></title>
    <c:set var="skin" value="${empty cookie.ZM_SKIN ? 'sand' : cookie.ZM_SKIN.value}"/>
    <style type="text/css">
         @import url( "<c:url value='/css/common,login,zhtml,${skin},skin.css?skin=${skin}'/>" );
    </style>
    <link rel="ICON" type="image/gif" href="<c:url value='/img/loRes/logo/favicon.gif'/>">
    <link rel="SHORTCUT ICON" href="<c:url value='/img/loRes/logo/favicon.ico'/>">
</head>
<body <c:if test="${successfullLogin ne 'true'}">
        onload="document.changePassForm.password.focus();"
        </c:if>>
<table width=100% height=100%>
    <tr>
        <td align=center valign=middle>
            <div id="ZloginPanel">
                <table width=100%>
                    <tr>
                        <td>
                            <table width=100%>
                                <tr>
                                    <td align=center valign=middle>
                                        <a href="http://www.zimbra.com/" target="_new"><div class='ImgLoginBanner'/></a>
                                    </td>
                                </tr>
                                <tr>
                                    <td>
                                        <div id='ZLoginAppName'><fmt:message key="splashScreenAppName"/></div>
                                    </td>
                                </tr>
                            </table>
                        </td>
                        <td>
                    </tr>
                    <tr>
                        <td id='ZloginBodyContainer'>
                            <c:if test="${not empty errorMessage}">
                                <!-- ${fn:escapeXml(error.stackStrace)} -->
                                <div id='ZloginErrorPanel'>
                                    <table width=100%>
                                        <tr>
                                            <td valign='top' width='40'>
                                                <img alt='<fmt:message key="ALT_ERROR"/>' src="<c:url value='${messageImage}'/>"/>
                                            </td>
                                            <td class='errorText'>
                                                <c:out value="${errorMessage}"/> 
                                            </td>
                                        </tr>
                                    </table>
                                </div>
                            </c:if>
                            
                            <c:if test="${successfullLogin ne 'true'}">
                                <div id='ZloginFormPanel'>
                                    <form method='post' name="changePassForm" action="" autocomplete="off">
                                        <input type="hidden" name="loginOp" value="login"/>
                                        <table width=100% cellpadding=4>
                                            <tr>
                                                <td class='zLoginLabelContainer'><fmt:message key="password"/>:</td>
                                                <td colspan=2 class='zLoginFieldContainer'>
                                                    <input autocomplete="off" class='zLoginField' name='password' type='password' value="${fn:escapeXml(param.password)}"/>
                                                </td>
                                            </tr>
                                            <tr>
                                                <td class='zLoginLabelContainer'><fmt:message key="newPassword"/>:</td>
                                                <td colspan=2 class='zLoginFieldContainer'>
                                                    <input autocomplete="off" class='zLoginField' name='loginNewPassword' type='password' value="${fn:escapeXml(param.loginNewPassword)}"/>
                                                </td>
                                            </tr>
                                            <tr>
                                                <td class='zLoginLabelContainer'><fmt:message key="confirm"/>:</td>
                                                <td colspan=2 class='zLoginFieldContainer'>
                                                    <input autocomplete="off" class='zLoginField' name='loginConfirmNewPassword' type='password' value="${fn:escapeXml(param.loginConfirmNewPassword)}"/>
                                                </td>
                                            </tr>
                                            <tr>
                                                <td></td>
                                                <td colspan=2><input type=submit class='zLoginButton'
                                                                     value="<fmt:message key="changePassword"/>"/></td>
                                            </tr>
                                        </table>
                                    </form>
                                </div>
                            </c:if>
                        </td>
                    </tr>
                </table>
            </div>
        </td>
    </tr>
</table>
</body>
</html>