﻿(function() {
    $(function() {
        cAppUserLogin.init();
    });
})(this);

(function($) {
    window.cAppUserLogin = function() {
        var Options = {
            header: $('body>header.probootstrap-header'),
            menubox: $('body>section.menubox'),
            footer: $('body>footer.footer-area'),
            form: {
                form: $("#form_login"),
                submit: $('#form_login button[type="button"][data-command="submit"]'),
                cvalidate: null,
                isSubmit: false,
                imgcodeEl: $('#form_login img#CaptchaImage'),
            },
            pageData: {},
        };

        var Plugin = {
            init: function() {

                BrowserVersionHelper.lowVersionStop();
                changeApp.init();
                changeUtil.backgroundImgResize({ imgSrc: 'assets/img/Login/bg.png' });
                Plugin.initHeight();
                $(window).resize(function() {
                    Plugin.initHeight();
                });

                Options.form.cvalidate = Options.form.form.cvalidate({
                    key: "name"
                });

                changeUtil.scrollTo(Options.form.form, -90);
                Options.form.submit.click(function() {
                    Options.form.cvalidate = Options.form.form.cvalidate({
                        key: "name"
                    });
                    Options.form.isSubmit = true;
                    var result = Options.form.cvalidate.submit();
                    if (result !== true) {
                        return;
                    }
                    var model = Options.form.cvalidate.formvalue();
                    model = changeUtil.mix(model, Options.pageData);
                    model = changeUtil.TextEnDe.encryptModel({ model: model, encryptKeys: ['UserID', 'MiMa'] });
                    Plugin.submit(Options.form.submit, model);
                });

                changeUtil.enter(Options.form.form.find('input[type="text"],input[type="password"]'), function(el) {
                    Options.form.submit.click();
                });
            },
            initHeight: function() {
                var wH = $(window).height();
                var hh = wH - (Options.menubox.outerHeight() + Options.header.outerHeight() + 15 + Options.footer.outerHeight());
                if (hh > 0) {
                    var hh1 = (hh / 2);
                    var hh2 = (hh / 2) + 15;
                    Options.header.css('margin-top', hh1);
                    Options.footer.css('margin-top', hh2);
                } else {
                    Options.header.css('margin-top', 0);
                    Options.footer.css('margin-top', 15);
                }
            },
            submit: function(el, model) {
                changeApp.Menu.clearData();
                if (el.hasClass("c--lock")) {
                    return;
                }
                el.addClass("c--lock").attr("disabled", true);
                el.addClass(
                    "kt-spinner kt-spinner--right kt-spinner--md kt-spinner--light"
                );
                Options.form.form.find(">.form-msg").find('.c--alert.alert').fadeOut();
                changeAjax.postAntiForgery({
                    url: "System/User/Login",
                    data: model,
                    success: function(data) {
                        _execute(data);
                    },
                    error: function(data) {
                        _execute({
                            Success: false,
                            Message: "登录系统操作失败！",
                            ErrorList: []
                        });
                    }
                });

                var _execute = function(data) {
                    if (data.Success) {
                        changeUtil.locationHref(data.Data.Url);
                    } else {
                        if (data.Data && data.Data.TokenElementId) {
                            Options.form.form.find("#" + data.Data.TokenElementId).val(data.Data.TokenValue);
                        }
                        Options.form.imgcodeEl.click();
                        el.removeClass("c--lock").attr("disabled", false);
                        el.removeClass(
                            "kt-spinner kt-spinner--right kt-spinner--md kt-spinner--light"
                        );
                        changeUtil.unobtrusive.error(Options.form.form, {
                            errorMsg: data.Message,
                            errors: data.ErrorList,
                            msgAlertContainer: Options.form.form.find(">.form-msg"),
                        });
                    }
                };
            },
        };

        return {
            init: Plugin.init
        };
    }();


}(jQuery));