﻿var loginHelp = function() {
    var base = this;
    var recommendName = null;
    var error = function(xmlhttp) {
        return;
        jAlert("系统错误代码：<b style=\"color:red\">" + xmlhttp.status + "</b>", "操作提示", function() {
            $("input#mname").focus()
            showLogin();
            $("#register input[name=submit]").show()
            $("span.ing").hide()
        })
    }
    this.verfyCode = function(name) {
        var url = "../ajax/validateImageCode.aspx?r=" + new Date().valueOf();
        var oImage = document.getElementById(name)
        if (oImage) {
            oImage.src = url
        }
    }
    var hideLogin = function() {
        var logining = $("span.ing"); var loginBtn = $("li .loginbtn"); logining.show(); loginBtn.hide()
    }
    var showLogin = function() {
        var logining = $("span.ing")
        var loginBtn = $("li .loginbtn")
        logining.hide()
        loginBtn.show()
    }
    var loginSuccess = function() {
        $("div.popup_bg").remove()
        $("div.popup_container").remove()
        $("div.popup_overlay").remove()
        $.ajax({ url: "../ajax/loginHelp.ashx?r=" + new Date().valueOf(), type: "post", success: function(data) {
            $("li#login").html(data);
        }, error: error
        })
    }

    var sso = function(arr) {
        var len = arr.length;
        for (var i = 1; i < len - 1; i++) {
            $.ajax({ url: arr[i] + arr[len - 1], success: function(data) { alert() }, type: "post", error: error });
        }
    }

    this.login = function() {
        hideLogin();
        var mname = $("input#mname")
        if (mname.val() == "" || mname.val() == "请输入用户名登陆") {
            jAlert("请输入用户名！", "操作提示", function() {
                mname.focus()
                showLogin();
            });
            return;
        }
        var mpassword = $("input#mpassword");
        if (mpassword.val() == "" || mpassword.val() == "请输入密码登陆") {
            jAlert("请输入密码！", "操作提示", function() {
                mpassword.focus()
                showLogin();
            })
            return;
        }
        var verfyCode = $("input[name=CheckCode]")
        if (verfyCode.val() == "" || verfyCode.val() == "验证码") {
            jAlert("请输入验证码！", "操作提示", function() {
                verfyCode.focus()
                base.verfyCode("verfyCode")
                showLogin();
            })
            return
        }
        var data = {
            name: mname.val(),
            pwd: mpassword.val(),
            code: verfyCode.val()
        }

        $.ajax({ url: "../ajax/loginHelp.ashx?action=login&r=" + new Date().valueOf(), type: "post", dataType: "text", data: data, success: function(data) {
            if (data == "badverifycode") {
                jAlert("验证码不正确！", "操作提示", function() {
                    verfyCode.focus()
                    base.verfyCode("verfyCode")
                    showLogin();
                })
            }
            else if (data == "badusernameorpassword") {
                jAlert("用户名或密码不正确！", "操作提示", function() {
                    verfyCode.focus()
                    base.verfyCode("verfyCode")
                    showLogin();
                })
            }
            else if (data == "ok") {
                $("#ssoIframe").attr("src", "/sso/login.html");
                setTimeout(function() { window.location.reload(); }, 1500);
            }
            else if (data == "inactive") {
                jAlert("用户名不存在或还未激活！", "操作提示", function() {
                    verfyCode.focus()
                    base.verfyCode("verfyCode")
                    showLogin();
                })
            }
            else {
                jAlert("登录失败，请重新登录！", "操作提示", function() {
                    verfyCode.focus()
                    base.verfyCode("verfyCode")
                    showLogin();
                })
            }
        }, error: error
        })
    }
    var getInfo = function() {
        $.ajax({ url: "../ajax/loginHelp.ashx?r=" + new Date().valueOf(), success: function(data) {
            $("#login").html(data);
        }, error: error, type: "post", dataType: "text"
        })
    }
    this.getLoginInfo = function(flashbox) {
        var loginStr = ["<div id=\"uccontain\" class=\"uccontain\"><form action=\"\" method=\"post\" onsubmit=\"return false\"><ul>",
         "<li><span>登录名：</span><input name=\"Username\" type=\"text\" id=\"mname\" class=\"box\" onfocus=\"if(this.value=='请输入用户名登陆'){this.value='';this.style.color='black'}\" onblur=\"if(this.value==''){this.value='请输入用户名登陆';this.style.color='gray'}\" value=\"请输入用户名登陆\"></li>",
         "<li><span>密&nbsp;&nbsp;&nbsp;码：</span><input name=\"Password\" type=\"password\" id=\"mpassword\" class=\"box\" onfocus=\"if(this.value=='请输入密码登陆'){this.value='';this.style.color='black'}\" onblur=\"if(this.value==''){this.value='请输入密码登陆';this.style.color='gray'}\" value=\"请输入密码登陆\"></li>",
         "<li><span><span>验证码：</span><input name=\"CheckCode\" style=\"width:50px\" type=\"text\" class=\"box\" onfocus=\"if(this.value=='验证码'){this.value='';this.style.color='black'}\" onblur=\"if(this.value==''){this.value='验证码';this.style.color='gray'}\" value=\"验证码\"></span><span class=\"verfyCode\" style='margin-left:10px;'><img width=\"89\" class=\"img\" height=\"30\" id=\"verfyCode\"/></span></li>",
         "<li><a href=\"../member/ForgetPassword.aspx\">忘记密码 ? </a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"javascript:\" id=\"regist\">注册会员</a></li>",
         "<li><input type='submit' class='loginbtn' value='' onclick=\"login.login()\" /><span class=\"ing\">正在登录...</span></li>",
         "</ul></form></div>"]
        jHtml(loginStr.join(""), "登录", flashbox ? flashbox : "a-login");
        base.verfyCode("verfyCode")
        $("div.uccontain a#regist").click(function() {
            base.regist_info("uccontain")
        })
        $("#verfyCode").click(function() { base.verfyCode("verfyCode") })
    }
    this.loginOut = function() {
        $.ajax({ url: "../ajax/loginHelp.ashx?action=logingout&r=" + new Date().valueOf(), success: function(data) {
            $("#ssoIframe").attr("src", "/sso/login_out.html");
            setTimeout(function() {
                window.history.go(0);
            }, 1500);
        }, error: error, type: "post", dataType: "text"
        });
    }

    var async_validate_name = function(data) {
    }

    var validate = {}  //验证数组
    var reg_value = {}  //注册组数据

    var validate_exists = function(data) {
        var isError = false;
        if (data == "true") {
            isError = true;
        }
        else if (data == "false") { }
        else {
            jAlert("输入有错误，请检查！", "错误提示");
        }
        return isError;
    }
    var register_validate = function(obj, needValidate) {
        var target = obj.parent().next()
        var tips = target.find("span.tips")
        var errorObj = target.find(".error-head,.bg-error")
        var errorMsg = target.find("font")
        obj.css("border", "1px solid #868686")
        var type = obj.attr("name")
        var msg = ""
        var isError = false
        switch (type) {
            case "name":
                if (obj.val() == "") {
                    msg = "用户名不能为空!";
                    isError = true
                }
                else if (obj.val().length < 3 || obj.val().length > 8) {
                    msg = "用户名长度介于3-8之间！";
                    isError = true
                }
                else {
                    var data = { name: obj.val() }
                    $.ajax({ url: "../ajax/loginHelp.ashx?action=check&r=" + new Date().valueOf(), data: data, type: "post", success: function(data) {
                        msg = "该用户名已被注册！";
                        if (data != "false" && data != "true") {
                            msg = data;
                            isError = true;
                        } else {
                            isError = validate_exists(data);
                        }
                    }, error: error, dataType: "text", async: false
                    })
                }
                break;
            case "pwd": if (obj.val() == "") {
                    msg = "密码不能为空！"
                    isError = true;
                } else if (obj.val().length < 6 || obj.val().length > 20) {
                    msg = "密码长度为6-20个字符！"
                    isError = true
                }; break;
            case "re-pwd": if (obj.val() == "") {
                    msg = "确认密码不能为空！"
                    isError = true;
                } else {
                    var pwd = $("div.register li.box input[name=pwd]")
                    if (pwd.val() != obj.val()) {
                        msg = "两次密码不一致！"
                        isError = true
                    }
                }; break;
            case "safe": if (obj.val() == "") {
                    msg = "安全问题不能为空！"
                    isError = true;
                }
                else if (obj.val().length < 4 || obj.val().length > 10) {
                    msg = "安全问题长度为4-10个字符！"
                    isError = true
                }; break;
            case "answer": if (obj.val() == "") {
                    msg = "问题回答不能为空！"
                    isError = true;
                }
                else if (obj.val().length < 3 || obj.val().length > 15) {
                    msg = "问题回答长度为3-15个字符！"
                    isError = true;
                }; break;
            case "recommend":
                if (obj.val() != recommendName) {
                    var data = { name: obj.val() }
                    $.ajax({ url: "../ajax/loginHelp.ashx?action=check&r=" + new Date().valueOf(), data: data, type: "post", success: function(data) {
                        msg = "无该会员，请您仔细核对！";
                        isError = !validate_exists(data);
                    }, error: error, dataType: "text", async: false
                    });
                } break;
            case "email":
                if (obj.val() != "") {
                    var myreg = /(\S)+[@]{1}(\S)+[.]{1}(\w)+/
                    if (!myreg.test(obj.val())) {
                        msg = "邮箱不合法！"
                        isError = true
                    } else {
                        $.ajax({ url: "../ajax/loginHelp.ashx?action=check_email&r=" + new Date().valueOf(), data: { email: obj.val() }, dataType: "text", type: "post", success: function(data) {
                            msg = "该邮箱已经被注册！"
                            isError = validate_exists(data)
                        }, error: error, async: false
                        });
                    }
                };
                break;
            case "phone": if (obj.val() == "") {
                    msg = "手机号码不能为空！";
                    isError = true
                }
                else {
                    var myreg = /^(13\d{9})|(15\d{9})|(18\d{9})|(0\d{10,11})$/;
                    if (!myreg.test(obj.val())) {
                        msg = "电手机号码不合法！";
                        isError = true;
                    }
                    else {
                        $.ajax({ url: "../ajax/loginHelp.ashx?action=check_phone&r=" + new Date().valueOf(), data: { phone: obj.val() }, dataType: "text", type: "post", success: function(data) {
                            msg = "该手机号码已经被注册！"
                            isError = validate_exists(data);
                        }, error: error, async: false
                        })
                    }
                }; break;
            case "qq": if (obj.val() != "") {
                    var myreg = /\d{5,11}/
                    if (!myreg.test(obj.val())) {
                        msg = "QQ号不合法！"
                        isError = true
                    }
                };
                break;
            case "code": if (obj.val() == "") {
                    msg = "请输入手机验证码！"
                    isError = true;
                }
                else {
                    $.ajax({ url: '../ajax/loginHelp.ashx?action=check_phone_code&r=' + new Date().valueOf(), data: { code: obj.val() }, dataType: "text", type: "post", success: function(data) {
                        if (data == "false") {
                            msg = "手机验证码不正确！";
                            isError = true;
                        }
                    }, type: "post", async: false
                    });
                }; break;
        }
        if (needValidate) {
            if (isError) {
                obj.css("border", "1px solid red")
                errorMsg.html(msg)
                tips.hide()
                errorObj.show()
            }
            else {
                reg_value[type] = obj.val();
                target.find("span.correct").show();
                obj.css("border", "1px solid #868686");
                tips.hide();
                errorObj.hide();
                if (type == "qq" || type == "email" || type == "recommend" || type == "code") {
                    target.find("span.correct").hide();
                    tips.show();
                }
                if (obj.val() != "") {
                    target.find("span.correct").show();
                    tips.hide();
                }
            }
        }
        validate[type] = !isError;
    }
    var regist = function() {
        var data = {};
        var s = "{"
        for (var m in reg_value) {
            s += "'" + m + "':\"" + reg_value[m] + "\","
        }
        s = s.substr(0, s.length - 1)
        s += "}"
        data = eval("(" + s + ")")
        $("div#register li.box span.ing ").show()
        $("div#register li.box input[name=submit]").hide()
        $.ajax({ url: "../ajax/loginHelp.ashx?action=regist&r=" + new Date().valueOf(), data: data, dataType: "text", success: function(data) {
            switch (data) {
                case "ok": jAlert("注册成功", "操作提示", function() {
                    $("#ssoIframe").attr("src", "/sso/login.html"); jClear();
                    setTimeout(function() { window.location.reload(); }, 1500);
                }); break;
                case "needactivation": window.location = "/member/activate.aspx"; break;
                case "badverifycode": jAlert("要绑定的手机与发送验证码的号码不一至！", "操作提示", function() {
                    $("span.ing").hide()
                    $("div#register li.box input[name=submit]").show()
                    //base.verfyCode("verifyCode");
                }); break;
                case "bademail": jAlert("邮箱地址不可用！", "操作提示", function() {
                    $("span.ing").hide()
                    $("div#register li.box input[name=submit]").show()
                    //base.verfyCode("verifyCode");
                })
            }
        }, error: error, type: "post"
        })
    }
    var load_recommend_name = function() {
        $.ajax({ url: "../ajax/loginHelp.ashx?action=load_recommend_name&r=" + new Date().valueOf(), dataType: "text", success: function(data) {
            recommendName = data;
        }, async: false
        });
    }
    this.regist_info = function(flashbox) {
        if (recommendName == null) load_recommend_name();
        var temp = ['<div id="register" class="register">',
                        '<form action="" onsubmit="return false"><ul><li class="left">用户名：</li><li class="box"><input type="text" id="re-name"  name="name" /></li><li ><span class="tips ml10px"><b>*</b>中英文，3-8个字节以内，区分大小写</span><span class="correct ml10px"></span><span class="error-head ml10px"></span><span class="bg-error"><img src="../images/icon/error1.png" width="16" height="16" /><font>请输入用户名</font><span class="error-end"></span></span></li></ul>',
                        '<ul><li class="left">密&nbsp;&nbsp;&nbsp;码：</li><li class="box"><input type="password" name="pwd" /></li><li><span class="tips ml10px"><b>*</b>6到16个字符，区分大小写。</span><span class="correct ml10px"></span><span class="error-head ml10px"></span><span class="bg-error"><img src="../images/icon/error1.png" width="16" height="16" /><font></font><span class="error-end"></span></span></li></ul>',
                        '<ul><li class="left">确认密码：</li><li class="box"><input type="password" name="re-pwd" /></li><li><span class="tips ml10px"><b>*</b>请再输入一次密码</span><span class="correct ml10px"></span><span class="error-head ml10px"></span><span class="bg-error"><img src="../images/icon/error1.png" width="16" height="16" /><font></font><span class="error-end"></span></span></li></ul>',
                        '<ul><li class="left">安全问题：</li><li class="box"><input type="text"  name="safe" /></li><li><span class="tips ml10px"><b>*</b>此项为用户找回密码所用,请劳记</span><span class="correct ml10px"></span><span class="error-head ml10px"></span><span class="bg-error"><img src="../images/icon/error1.png" width="16" height="16" /><font></font><span class="error-end"></span></span></li></ul>',
                        '<ul><li class="left">问题答案：</li><li class="box"><input type="text"  name="answer" /></li><li><span class="tips ml10px"><b>*</b>请输入您的答案</span><span class="correct ml10px"></span><span class="error-head ml10px"></span><span class="bg-error"><img src="../images/icon/error1.png" width="16" height="16" /><font></font><span class="error-end"></span></span></li></ul>',
                        '<ul><li class="left">推荐人：</li><li class="box"><input type="text" name="recommend" value="' + recommendName + '" /></li><li><span class="tips ml10px">若有推荐人请填写推荐人！</span><span class="correct ml10px"></span><span class="error-head ml10px"></span><span class="bg-error"><img src="../images/icon/error1.png" width="16" height="16" /><font></font><span class="error-end"></span></span></li></ul>',
                        '<ul><li class="left">电子邮箱：</li><li class="box"><input type="text" name="email" /></li><li><span class="tips ml10px">请输入合法邮箱</span><span class="correct ml10px"></span><span class="error-head ml10px"></span><span class="bg-error"><img src="../images/icon/error1.png" width="16" height="16" /><font></font><span class="error-end"></span></span></li></ul>',
                        '<ul><li class="left">QQ：</li><li class="box"><input type="text"  name="qq" /></li><li><span class="tips ml10px">请输入正确的QQ号码</span><span class="correct ml10px"></span><span class="error-head ml10px"></span><span class="bg-error"><img src="../images/icon/error1.png" width="16" height="16" /><font></font><span class="error-end"></span></span></li></ul>',
                        '<ul><li class="left">手机：</li><li class="box"><input type="text"  name="phone" /></li><li><span class="tips ml10px"><b>*</b>请输入您的手机号码 </span><span class="correct ml10px"></span><span class="error-head ml10px"></span><span class="bg-error"><img src="../images/icon/error1.png" width="16" height="16" /><font></font><span class="error-end"></span></span></li></ul>',
                        '<ul><li class="left">手机验证码：</li><li class="box"><input type="text"  name="code" autocomplete="off" /></li><li><span class="tips ml10px"><b>*</b><input type="button" id="get_phone_code" value="获取手机验证码" /></span><span class="correct ml10px"></span><span class="error-head ml10px"></span><span class="bg-error"><img src="../images/icon/error1.png" width="16" height="16" /><font></font><span class="error-end"></span></span></li></ul>',
                        '<ul><li class="left">&nbsp;</li><li class="box"><input type="submit" name="submit" class="submit" onclick="" value=""/><span class=\"ing\">正在注册...</span></li><li></li></ul>',
                        '</form></div>'];
        jHtml(temp.join(""), "注册", flashbox ? flashbox : "a-register");
        var boxs = $("div#register li.box input:text,div#register li.box input:password")
        //base.verfyCode("verifyCode")
        $("div.register #verifyCode").click(function() {
            //base.verfyCode("verifyCode")
        })
        boxs.blur(function() {
            var obj = $(this)
            validate = {}
            if (obj.attr("name") == "code") {
                validate = register_validate(obj, false)
            }
            else register_validate(obj, true)
        }).focus(function() {
            var obj = $(this)
            var target = obj.parent().next()
            var tips = target.find("span.tips")
            var errorObj = target.find(".error-head,.bg-error,.correct")
            tips.show()
            errorObj.hide()
            obj.css("border", "1px solid #EED5D2")
        })
        $("#get_phone_code").click(function() {
            var phoneObj = $("input[name=phone]");
            var phone = phoneObj.val();
            if (phone == "") {
                var target = phoneObj.parent().next();
                var tips = target.find("span.tips");
                var errorObj = target.find(".error-head,.bg-error");
                var errorMsg = target.find("font");
                phoneObj.css("border", "1px solid red")
                errorMsg.text("手机号码不能为空！");
                tips.hide();
                errorObj.show();
            }
            $.ajax({ url: "../ajax/loginHelp.ashx?action=get_phone_code&r=" + new Date().valueOf(), data: { phone: phone }, dataType: "json", success: function(data) {
                if (!data.success) {
                    if (data.exists) { }
                    else if (data.msg == "")
                        jAlert("对不起，您需再等待" + data.seconds + "秒才能再次发送手机验证码！", "操作提示", function() { });
                    else
                        jAlert("对不起，" + data.msg + "！", "操作提示", function() { });
                }
                else
                    jAlert("已成功发送验证码至" + phone, "操作提示", function() { });
            }, type: "post", error: error
            });
        });
        $("div.register li.box input[name=submit]").focus().click(function() {
            validate = {}
            reg_value = {}
            boxs.each(function() {
                register_validate($(this), true)
            })
            var allow_reg = true
            for (var m in validate) {
                if (!validate[m]) {
                    allow_reg = false
                    break;
                }
            }
            if (allow_reg) {
                regist()
            }
        })
    }
    var siteInfo = function() {

    }
}
var login = new loginHelp();

