<%@page pageEncoding="UTF-8" %>
<%@include file="/jsp/init.jsp" %>

<div>
    <ul class="nav nav-tabs">
        <li class="active"><a href="#changeUserPanel" data-toggle="pill"><spring:message code="GENERAL"/></a></li>
        <li><a href="#changePasswordPanel" data-toggle="pill"><spring:message code="SECURITY"/></a></li>
        <li><a href="#languagePanel" data-toggle="pill"><spring:message code="LANGUAGE"/></a></li>
    </ul>

    <div class="tab-content">
        <div class="tab-pane fade active in" id="changeUserPanel">
            <div id="changeInfoMsg" class="alert">
            </div>
            <form action="#" method="POST" id="changeUserForm">
                <fieldset>
                    <label for="email"><strong><spring:message code="EMAIL"/>:</strong></label>
                    <input type="text" name="password" id="email" required="required" readonly="readonly"
                           value="${user.email}"/>

                    <label for="userName"><strong><spring:message code="USERNAME"/>:</strong></label>
                    <input type="text" name="password" id="userName" required="required" value="${user.username}"
                           readonly="readonly"/>

                    <label for="firstname"><strong><spring:message code="FIRSTNAME"/>:</strong></label>
                    <input type="text" name="firstname" id="firstname" required="required" value="${user.firstname}"/>

                    <label for="lastname"><strong><spring:message code="LASTNAME"/>:</strong></label>
                    <input type="text" name="lastname" id="lastname" required="required" value="${user.lastname}"/>
                    <br/>
                    <input type="submit" id="changeUserInfoBtn" class="btn btn-primary" value="<spring:message code="SAVE_CHANGES"/>"/>
                </fieldset>
            </form>

        </div>
        <div class="tab-pane fade" id="changePasswordPanel">
            <div id="changePasswordMsg" class="alert">
            </div>
            <form action="#" method="POST" id="changePasswordForm">
                <fieldset>
                    <label for="password"><strong><spring:message code="NEW_PASSWORD"/>:</strong></label>
                    <input type="password" name="password" id="password" required="required"/>

                    <label for="repassword"><strong><spring:message code="CONFIRM_NEW_PASSWORD"/>:</strong></label>
                    <input type="password" name="password" id="repassword" required="required"/>
                    <br/>
                    <input type="submit" id="changePasswordBtn" class="btn btn-primary"
                           value="<spring:message code="CHANGE_PASSWORD"/>"/>
                </fieldset>
            </form>
        </div>
        <div class="tab-pane fade" id="languagePanel">
            <div id="languageMsg" class="alert">
            </div>
            <form action="#" method="POST" id="languageForm">
                <fieldset>
                    <label for="language"><strong><spring:message code="LANGUAGE"/>:</strong></label>
                    <select name="language" id="language">
                        <option value="en">English</option>
                        <option value="es" <c:if test="${user.locale=='es'}">selected="selected" </c:if>>Spanish -
                            español
                        </option>
                        <option value="zh_cn" <c:if test="${user.locale=='zh_cn'}">selected="selected" </c:if>>Chinese
                            (Simplified Han) - 中文（简体中文）
                        </option>
                        <option value="zh_tw" <c:if test="${user.locale=='zh_tw'}">selected="selected" </c:if>>Chinese
                            (Traditional Han) - 中文 (繁體中文)
                        </option>
                    </select>
                    <br/>
                    <input type="submit" id="changeLanguageBtn" class="btn btn-primary"
                           value="<spring:message code="CHANGE_LANGUAGE"/>"/>
                </fieldset>
            </form>
        </div>
    </div>
</div>

<script type="text/javascript">
    $('#changePasswordMsg').hide();
    $('#changeInfoMsg').hide();
    $('#languageMsg').hide();

    function postChange(url, postBody, msgContainerId, successMsg) {
        // Change success message ...
        jQuery.ajax(url, {
            async:false,
            dataType:'json',
            data:postBody,
            type:'PUT',
            contentType:"text/plain; charset=utf-8",
            success:function (data, textStatus, jqXHR) {
                $('#' + msgContainerId).removeClass('alert-error').addClass('alert-info').show();
                $('#' + msgContainerId).text(successMsg);
            },
            error:function (jqXHR, textStatus, errorThrown) {
                $('#' + msgContainerId).removeClass('alert-info').addClass('alert-error').show();
                $('#' + msgContainerId).text(textStatus);
            }
        });
    }

    $('#changePasswordForm').submit(function (event) {

        var inputVal = $('#changePasswordForm #password').val();
        var rinputVal = $('#changePasswordForm #repassword').val();
        if (inputVal != rinputVal) {
            // Password mismatch message ...
            $('#changePasswordMsg').removeClass('alert-info').addClass('alert-error').show();
            $('#changePasswordMsg').text('<spring:message code="PASSWORD_MISSMATCH"/>');
        } else {
            postChange("service/account/password", inputVal, 'changePasswordMsg', '<spring:message code="CHANGE_PASSWORD_SUCCESS"/>');
        }
        event.preventDefault();
    });

    $('#changeUserForm').submit(function (event) {

        var fistname = $('#changeUserForm #firstname').val();
        var lastname = $('#changeUserForm #lastname').val();
        postChange("service/account/firstname", fistname, 'changeInfoMsg', '<spring:message code="INFO_UPDATE_SUCCESS"/>');
        postChange("service/account/lastname", lastname, 'changeInfoMsg', '<spring:message code="INFO_UPDATE_SUCCESS"/>');
        event.preventDefault();
    });

    $('#languageForm').submit(function (event) {

        var locale = $('#languageForm option:selected').val();
        postChange("service/account/locale", locale, 'languageMsg', '<spring:message code="INFO_UPDATE_SUCCESS"/>');
        event.preventDefault();
    });
</script>
