﻿// ==UserScript==
// @name                邻所登录
// @description         包括了登录页面和弹出层的使用
// @created date        2010/3/31   13:00
// @created author      Martin
// @version             2.0.1
// @version owner       Copyright ? 2009-2010 keerr.com All rights reserved.
// ==/UserScript==
/********************************************************************
verified time 	:	2010/3/31   13:02
verified author	:	Tiger
verified purpose:	在做了弹出层的登录后，和login.aspx页面整合的一个新的js
*********************************************************************/

$.login = {
    loginFloatbox: function(opt) {
        if (_OnUserIDOrCustomerID === 0) {
            $.floatbox({
                content: {
                    head: "登录百楼",
                    summary: '<div style="_padding-bottom:0px;"><div class="left">请正确填写你的用户名和密码</div><div class="right"><a href="/join/reg.aspx">[ 百楼注册 ]</a></div><div class="clear"></div></div>',
                    main: '<div class="result clearfix">' +
                        '<div class="image">' +
                            '<span><img src="/images/tupian1.jpg" alt="David Walsh" class="photo" /></span>' +
                        '</div>' +
                        '<div class="info">' +
                            '<ul class="loginFrame">' +
                            	'<li><div class="loginleft">用户名：</div><div class="loginRight"><input type="text" class="text" id="txtU"/></div><div class="clear"></div></li>' +
                                '<li><div class="loginleft">密&nbsp;&nbsp;&nbsp;码：</div><div class="loginRight"><input type="password" class="text" id="txtP"/>&nbsp;&nbsp;<a href="/join/GetPassWord.aspx">忘记密码?</a></div><div class="clear"></div></li>' +
                                '<li id="licode" style="display:none;"><div class="loginleft">验证码：</div><div class="loginRight"><span class="yzm"><input type="text" class="text" id="txtC"></span></div><div class="clear"></div>' +
                                    '<div class="loginleft" style="visibility:hidden;">验证码：</div><div class="loginRight"><span class="yzm"><img width="154" style="" src="/codeImager2.aspx?d=0.8334931805860527" onclick="changeCode_reg(this);" id="codeimg" alt="验证码" /></span></div><div class="clear"></div></li>' +
                                '<li id="lg_Msg" style="display:none;"><div class="loginleft" style="visibility:hidden;">错误提示：</div><div class="loginRight font12"></div><div class="clear"></div></li>' +
                            '</ul>' +
                        '</div>' +
                        '<div class="clear">' +
                        '</div>' +
                    '</div>',
                    buttons: '<span class="button button-main" id="btlogin"><span><button>登录百楼</button></span></span>' +
                             '<span class="button button-main visible" onclick="$(\'.poptip_close\').click();"><span><button>取消</button></span></span>'
                },
                boxConfig: { width: "500px", marginLeft: "-" + 500 / 2 + "px" },
                afterOpen: function() {
                    $.login.init(opt);
                    // judge initial
                    $("#txtU").isEmail({ isUsed: false, isFloatOut: true, msgBoxOptions: { errmsg: "请输入账号", cssOptions: { top: "130px", left: "280px", opacity: "0.8" }, delay: 5000, clsName: "userNameErrMsg"} });
                    $("#txtP").isEmpty({
                        msgBoxOptions: {
                            errmsg: "请正确输入密码",
                            cssOptions: {
                                top: "190px",
                                left: "280px",
                                opacity: "0.8"
                            },
                            delay: 5000,
                            isID: true
                        }
                    });
                    $("#txtC").isValidate({
                        msgBoxOptions: {
                            errmsg: "请正确输入验证码",
                            cssOptions: {
                                top: "190px",
                                left: "280px",
                                opacity: "0.8"
                            },
                            delay: 5000,
                            isID: true
                        }
                    });
                },
                afterClose: function() {
                    $(".formError ").remove();
                }
            });
        }
        else if (_OnUserIDOrCustomerID > 0) {
            if ($.isFunction(opt.nextInit)) {
                opt.nextInit(opt);
            }
        }
    },

    // 文档加载完后执行入口程序
    init: function(opt) {
        // 弹出弹出层后获取验证码的值
        getCode_reg();

        // 点击登录后续操作
        $("#btlogin").isReady({
            readyFunction: function() {
                $("#btlogin").find("button").text("登录中...");
                $.login.login(opt);
            }
        });
        // enter事件
        $("body").keydown(function(event) {
            return $.login.enterSubmit(event);
        });

        $("input").keyup(function() {
            $("#btlogin").removeAttr("disabled");
            $("#lg_Msg").hide();
        });

        if ($.cookie("userEmail") != null) {
            $("#txtU").val($.cookie("userEmail"));
            $("#txtP").focus();
        }

        getLoginErrNumber();    // 在judge.js中
    },
    /// <summary>
    /// 登录主方法
    /// </summary>
    login: function(opt) {
        $("#btlogin").attr("disabled", "disabled");
        $("body").unbind("keydown");
        if (_LoginErrNumber > 9 && ($("#txtC").val() === "" || $("#txtC").val().toLowerCase() !== _reg_checkCode)) {
            //$.login.ShowlogErrMsg('验证码错误。', 5000);
            ShowMsgbox({ errmsg: "请正确输入验证码", cssOptions: { top: "130px", left: "280px", opacity: "0.8" }, top: 30, left: 50, delay: 5000, isID: true }, $("#txtC"));
            if ($("#txtC").val() != "") {
                changeCode_reg($("#codeimg"));
            }
            $("#txtC").select();
            $("#licode").css("display", "");
            $("#btlogin").find("button").text("登录百楼");
            return;
        }
        if ($("#txtU").val() === "") {
            ShowMsgbox({ errmsg: "请输入账号", cssOptions: { top: "130px", left: "280px", opacity: "0.8" }, top: 30, left: 50, delay: 5000, isID: true }, $("#txtU"));
            $("#txtU").select();
            $.login.resetBt();
            $("#btlogin").find("button").text("登录百楼");
            return;
        }
        if ($("#txtP").val() === "") {
            ShowMsgbox({ errmsg: "请输入密码", cssOptions: { top: "190px", left: "280px", opacity: "0.8" }, top: 30, left: 50, delay: 5000, isID: true }, $("#txtP"));
            $("#txtP").select();
            $.login.resetBt();
            $("#btlogin").find("button").text("登录百楼");
            return;
        }

        $.ajax({
            url: '/ajax/GetJson.aspx',
            type: 'POST',
            dataType: 'json',
            timeout: 5000,
            data: 'type=Login2&txtU=' + $("#txtU").val() + '&txtP=' + $("#txtP").val() + '&checkCode=' + $("#txtC").val(),
            cache: false,
            error: function() {
            },
            success: function(json) {
                switch (json["result"]) {
                    case "1":
                        // 全局变量登录状态
                        _UserOrCustomer = 2;
                        // 登录成功后改变头部dom
                        $.login.changeTopHeadDOM(json["username"]);
                        if ($.isFunction(opt.nextInit)) {
                            opt.nextInit(opt["params"]);
                        }

                        $.cookie("userEmail", $("#txtU").val());
                        $(".poptip_close").click();
                        break;
                    case "2":
                        // 全局变量登录状态
                        _UserOrCustomer = 1;
                        // 登录成功后改变头部dom
                        $.login.changeTopHeadDOM(json["username"]);
                        if ($.isFunction(opt.nextInit)) {
                            opt.nextInit(opt["params"]);
                        }

                        $.cookie("userEmail", $("#txtU").val());
                        $(".poptip_close").click();
                        break;
                    case "0":
                        break;
                    case "-1":
                        _LoginErrNumber = parseInt(json["result"]);
                        $("#txtP").val("");
                        $.login.ShowlogErrMsg('你今天登录失败次数太多了。', 2000);
                        break;
                    default:
                        _LoginErrNumber = parseInt(json["result"]);
                        $("#txtP").val("");
                        $.login.ShowlogErrMsg('账号或密码不正确。', 2000);
                        getLoginErrNumber();
                };
                /*
                if (json["result"] === "1") {
                _OnUserIDOrCustomerID = 1;
                if ($.isFunction(opt.nextInit)) {
                opt.nextInit(opt["params"]);
                }

                    $.cookie("userEmail", $("#txtU").val());
                $(".poptip_close").click();
                return true;
                }
                else if (json["result"] === "-2") {
                _LoginErrNumber = parseInt(str);
                $("#txtP").val("");
                $.login.ShowlogErrMsg('你今天登录失败次数太多了。', 5000);
                }
                else {
                _LoginErrNumber = parseInt(str);
                $("#txtP").val("");
                $.login.ShowlogErrMsg('账号或密码不正确。', 2000);
                getLoginErrNumber();
                }
                */
            },
            complete: function() {
                $("#btlogin").find("button").text("登录百楼");
            }
        });
        //return false;
    },
    /// <summary>
    /// 错误提示
    /// </summary>
    /// <param name="msg">提示内容</param>
    /// <param name="delay">显示时间</param>
    ShowlogErrMsg: function(msg, delay) {
        $(".font12").text(msg);
        $("#lg_Msg").fadeIn("slow");
        setTimeout('$("#lg_Msg").fadeOut("slow")', delay);
        setTimeout('$.login.resetBt();', delay);
        if ($("#licode:visible").length === 1) {
            $("#txtC").val("").focus();
            $("#codeimg").click();
        }
        $("#txtP").focus();
    },
    /// <summary>
    /// 回车登录
    /// </summary>
    enterSubmit: function(e) {
        if ($("#btlogin").attr("disabled") == "disabled") {
            return false;
        }
        if (window.event)
            keyPressed = window.event.keyCode; // IE
        else
            keyPressed = e.which; // Firefox
        if (keyPressed === 13) {
            //login();
            $("#btlogin").click();
            return false;
        }
    },
    /// <summary>
    /// 激活回车及按钮事件
    /// </summary>
    resetBt: function() {
        $("#btlogin").attr("disabled", "");
        $("body").keydown(function(event) {
            return $.login.enterSubmit(event);
        });
    },
    /// <summary>
    /// 登录成功后改变头部dom
    /// </summary>
    changeTopHeadDOM: function(userName) {
        var $_item = $('<a target="_blank" title="上百楼，找邻居！" href="http://www.bylou.com/" linkindex="0" style=""><img src="/images/slogo.gif" alt="上百楼，找邻居！"></a> ' + userName + '，' + (new Date().getHours() < 12 ? '上午好' : '下午好') + '，欢迎来到邻所！<a target="_top" href="/logout.aspx">[退出]</a>');
        $(".lg_info").html($_item);
    }
}

/*
/// <summary>
/// 登录主方法
/// </summary>
function login() {
$("#btlogin").attr("disabled", "disabled");
$("body").unbind("keydown");
if (_LoginErrNumber > 9 && ($("#txtC").val() == "" || $("#txtC").val() != _reg_checkCode)) {
ShowlogErrMsg('验证码错误。', 5000);
if ($("#txtC").val() != "") {
changeCode_reg($("#codeimg"));
}
$("#txtC").select();
$("#licode").css("display", "");
return;
}
if ($("#txtU").val() === "") {
ShowMsgbox({ errmsg: "请输入账号", cssOptions: { top: "130px", left: "280px", opacity: "0.8" }, top: 30, left: 50, delay: 5000, isID: true }, $("#txtU"));
$("#txtU").select();
resetBt();
return;
}
if ($("#txtP").val() === "") {
ShowMsgbox({ errmsg: "请输入密码。", cssOptions: { top: "190px", left: "280px", opacity: "0.8" }, top: 30, left: 50, delay: 5000, isID: true }, $("#txtP"));
$("#txtP").select();
resetBt();
return;
}


$.ajax({
url: '/ajax/GetJson.aspx',
type: 'POST',
dataType: 'text',
timeout: 5000,
data: 'type=Login&txtU=' + $("#txtU").val() + '&txtP=' + $("#txtP").val() + '&checkCode=' + _reg_checkCode,
cache: false,
error: function() {
},
success: function(str) {
if (str === "1") {
var _s = "个人管理首页";
if (_f_url !== "http://linsuo.bylou.com/admin/index.aspx") {
_s = "最后访问的页面";
}
redirectIndex(_s);  // 程序在floatbox.js
var CookieOptions = {// cookie的统一参数集
path: '/',
domain: '',
expires: 365,
secure: false
};
$.cookie("userEmail", $("#txtU").val(), CookieOptions);
setTimeout("window.location.href =  '" + _f_url + "';", 3000);
}
else if (str === "-2") {
_LoginErrNumber = parseInt(str);
$("#txtP").val("");
ShowlogErrMsg('你今天登录失败次数太多了。', 5000);
}
else {
_LoginErrNumber = parseInt(str);
$("#txtP").val("");
ShowlogErrMsg('账号或密码不正确。', 5000);
getLoginErrNumber();
}
}
});
return false;
}
/// <summary>
/// 错误提示
/// </summary>
/// <param name="msg">提示内容</param>
/// <param name="delay">显示时间</param>
function ShowlogErrMsg(msg, delay) {
$(".font12").text(msg);
$("#lg_Msg").fadeIn("slow");
setTimeout('$("#lg_Msg").fadeOut("slow")', delay);
setTimeout('resetBt();', delay);
}
/// <summary>
/// 回车登录
/// </summary>
function enterSubmit(e) {
if ($("#btlogin").attr("disabled") == "disabled") {
return false;
}
if (window.event)
keyPressed = window.event.keyCode; // IE
else
keyPressed = e.which; // Firefox
if (keyPressed === 13) {
//login();
$("#btlogin").click();
return false;
}

}
/// <summary>
/// 激活回车及按钮事件
/// </summary>
function resetBt() {
$("#btlogin").attr("disabled", "");
$("body").keydown(function(event) {
return enterSubmit(event);
});
}

// 文档加载完后执行入口程序
$(function() {
// 点击登录后续操作
$("#btlogin").isReady({
readyFunction: function() {
login();
}
});
// enter事件
$("body").keydown(function(event) {
return enterSubmit(event);
});

$("input").keyup(function() {
$("#btlogin").removeAttr("disabled");
$("#lg_Msg").hide();
});

if ($.cookie("userEmail") != null) {
$("#txtU").val($.cookie("userEmail"));
$("#txtP").focus();
}

getLoginErrNumber();    // 在judge.js中

});*/
