﻿var membership =
{
    _urlSignUp: "/handlers/signup.ashx",
    _urlSignIn: "/handlers/signin.ashx",
    _urlCheck: '/handlers/checkExit.ashx',
    _urlCheckEmail: "/handlers/core.ashx",
    _urlCheckDomain: "/handlers/",
    _defaultPage: "/home",
    _pageSignIn: "/login",
    _urlLoginSuccess: "/home",
    _urlRegSuccess: "/guide/push",
    _cacheEmail: null, _cacheEmailState: true, _cacheDomain: null, _cacheDomainState: true, _cacheUserName: null, _cacheUserNameState: -1,
    _cacheInvationCode: null, _cacheInvationCodeState: -1,
    sigin_error: function(obj) {
        dojo.byId("_content").innerHTML = obj.msg;
        dojo.byId("_tip").style.display = "";
    },
    _l_foucs: function(obj) {
        obj.onmouseout = null;
        obj.onmouseover = null;
        obj.className = "mouse2";
        var _email = dojo.byId("email").value;
        if (_email == "请输入Email或手机号") {
            dojo.byId("email").value = "";
        }
    },
    _l_blur: function(obj) {
        obj.onmouseout = function(obj) { this.className = 'put' };
        obj.onmouseover = function(obj) { this.className = 'mouse1' };
        obj.className = "put";
    },
    showError: function(id, error, message) {
        dojo.byId("" + id + "_error").innerHTML = "<span class=\"" + error + "\">" + message + "</span>";
    },
    showLoading: function(id) {
        //dojo.byId(""+id+"_error").innerHTML='<img src="/images/loading.gif" width="5" height="16" />';
    }, checkEmail: function() {
        var _value2 = dojo.trim(dojo.byId("email").value);
        var _pa = /^[\w\.\-\+]+@([\w\-]+\.)+[a-z0-9]{1,4}$/i;
        var _bool = _pa.test(_value2);
        if (_bool) {
            membership.actionCheckEmail();
            return true;
        }
        else {
            if (true) membership.showError("email", "ss2", "Email格式不正确，请重新输入");
            return false;
        }
    },
    isAgreeProtocol: function() {
        if (!dojo.byId("AgreeProtocol").checked) {
            dojo.byId("_reg_submit").disabled = 'disabled';
            dojo.attr("_reg_submit", "title", "您还没有看过或同意赶牛的《使用协议》");
        } else {
            dojo.byId("_reg_submit").disabled = false;
            dojo.attr("_reg_submit", "title", "");
        }
    },
    checkInvationCode: function() {
        var _value2 = dojo.trim(dojo.byId("invatecode").value);
        var _pa = /^.{6}$/;
        var _bool = _pa.test(_value2);
        if (_bool) {
            membership.actionCheckInvacode();
            return true;
        }
        else {
            if (true) membership.showError("invatecode", "ss2", "邀请码格式不正确，请重新输入");
            return false;
        }
    },
    checkDomain: function() {
        var _value = dojo.byId("user_domainName").value;
        var _p = /^[a-zA-Z0-9_]{4,20}$/i;
        if (_p.test(_value)) {
            membership.actionCheckDomain();
            return true;
        }
        else {
            if (true) membership.showError("domainname", "ss2", "账号格式不正确，请重新输入");
            return false;
        }
    }, checkUsername: function() {
        var _value = dojo.byId("username").value;
        var _p = /^[a-zA-Z0-9_\u4e00-\u9fa5]{2,20}$/i;
        if (_p.test(_value)) {
            membership.actionCheckUserName();
            return true;
        }
        else {
            if (true) membership.showError("username", "ss2", "昵称仅可以使用中文，数字，字母，下划线");
            return false;
        }
    },
    checkPassword: function() {
        var _value = dojo.byId("password").value;
        var _p = /^.{4,20}$/;
        if (_value.length >= 4) {
            membership.showError("password", "ok", "");
            return true;
        }
        else {
            if (true) membership.showError("password", "ss2", "密码格式不正确，请重新输入");
            return false;
        }
    },
    checkPassword2: function() {
        var _value = dojo.byId("password").value;
        var _value2 = dojo.byId("password2").value;
        var _p = /^.{4,20}$/;
        if (_value == _value2 && _p.test(_value)) {
            membership.showError("password2", "ok", "");
            return true;
        }
        else {
            if (true) {
                if (_value == _value2)
                    membership.showError("password2", "ss2", "密码格式不正确，请重新输入");
                else
                    membership.showError("password2", "ss2", "两次密码输入不一致，请重新输入");
            }
            return false;
        }
    },
    actionSignUp: function() {
        if (!membership.checkEmail() || membership._cacheEmailState) return;
        if (!membership.checkUsername() || membership._cacheUserNameState != 0) return;
        //if (!membership.checkDomain() || membership._cacheDomainState) return;
        if (!membership.checkPassword()) return;
        if (!membership.checkPassword2()) return;
        //if (!membership.checkInvationCode() || membership._cacheInvationCodeState != 0) return;
        var _username = dojo.byId("username").value;
        var _email = dojo.byId("email").value;
        var _password = dojo.byId("password").value;
        //var _domain = dojo.byId("user_domainName").value;
        var _invationId = dojo.byId("invationId") != null && dojo.byId("invationId") != undefined ? dojo.byId("invationId").value : "";
        //var _invatecode = dojo.byId("invatecode").value;
        dojo.byId("_reg_submit").disabled = "disabled";
        dojo.byId("_reg_submit").disabled = true;
        dojo.xhrPost(
        {
            url: membership._urlSignUp,
            sync: false,
            handleAs: "json",
            content: { username: _username, password: _password, email: _email,  invationId: _invationId },
            load: function(data, event) {
                if (data.state == 1) { window.location.href = membership._urlRegSuccess; }
                else {
                    membership.sigin_error({ msg: data.text });
                    dojo.byId("_reg_submit").disabled = false;
                }
            },
            error: function(data, event) {
                membership.sigin_error({ msg: "注册失败，请检查网络连接" })
                dojo.byId("_reg_submit").disabled = false;
            },
            mimetype: "application/json-comment-filtered"
        });
    },
    actionSignIn: function(obj) {
        var _password = dojo.byId("password").value;
        var _email = dojo.byId("email").value;
        if (_email == "" || _email == "请输入Email或手机号") {
            dojo.byId("email").value = "";
            dojo.byId("email").focus(); return false;
        }
        var _p = /^[\w\.\-\+]+@([\w\-]+\.)+[a-z0-9]{1,4}$/i;

        if (_password == "") { alert("请输入您的密码"); dojo.byId("password").focus(); return false; }
        return true;
    },

    actionSignInDefault: function() {
        var _password = dojo.byId("password").value;
        var _email = dojo.byId("email").value;

        dojo.xhrPost(
        {
            url: membership._urlSignIn,
            sync: false,
            handleAs: "json",
            content: { password: _password, email: _email, autologin: dojo.byId("save").value, urlreffer: dojo.byId("urlreffer").value, urlreffer: window.location.href },
            load: function(data, event) {
                if (data.state == 1) {
                    if (data.url == "")
                        window.location.href = membership._urlLoginSuccess;
                    else {
                        window.location.href = decodeURI(data.url);
                    }
                }
                else { window.location.href = membership._pageSignIn; }
            },
            error: function(data, event) {
                window.location.href = membership._pageSignIn;
            },
            mimetype: "application/json-comment-filtered"
        });
    },

    actionCheckEmail: function() {
        var _value = dojo.byId("email").value;
        if (_value != membership._cacheEmail) {
            membership.showLoading("email");
            dojo.xhrPost(
				{
				    url: membership._urlCheck,
				    sync: false,
				    handleAs: "json",
				    content: { email: _value, parms: 'IsExitEmail' },
				    load: function(data, event) {
				        data.state == 0 ? membership._cacheEmailState = true : membership._cacheEmailState = false;
				        membership._cacheEmail = _value;
				        unkonw();
				    },
				    error: function(data, event) {
				    },
				    mimetype: "application/json-comment-filtered"
				});
        } else
            unkonw();
        function unkonw() {
            if (membership._cacheEmailState)
                membership.showError("email", "ss2", "Email已被注册，请重新输入");
            else
                membership.showError("email", "ok", "");
        }
    },
    actionCheckDomain: function() {
        var _value = dojo.byId("user_domainName").value;
        if (_value != membership._cacheDomain) {
            membership.showLoading("domainname");
            dojo.xhrPost(
			{
			    url: membership._urlCheck,
			    sync: false,
			    handleAs: "json",
			    content: { domain: _value, parms: 'IsExitDomain' },
			    load: function(data, event) {
			        data.state == 0 ? membership._cacheDomainState = true : membership._cacheDomainState = false;
			        membership._cacheDomain = _value;
			        unkonw();
			    },
			    error: function(data, event) {
			    },
			    mimetype: "application/json-comment-filtered"
			});
        } else
            unkonw();
        function unkonw() {
            if (membership._cacheDomainState)
                membership.showError("domainname", "ss2", "此账号已被使用");
            else
                membership.showError("domainname", "ok", "");
        }
    },
    actionCheckUserName: function() {
        var _value = dojo.byId("username").value;
        if (_value != membership._cacheUserName) {
            membership.showLoading("username");
            dojo.xhrPost(
			{
			    url: membership._urlCheck,
			    sync: false,
			    handleAs: "json",
			    content: { username: _value, parms: 'IsExitUserName' },
			    load: function(data, event) {
			        membership._cacheUserNameState = data.state;
			        //data.state==0?membership._cacheUserNameState=true:membership._cacheUserNameState=false;
			        membership._cacheUserName = _value;
			        unkonw();
			    },
			    error: function(data, event) {
			    },
			    mimetype: "application/json-comment-filtered"
			});
        } else
            unkonw();
        function unkonw() {
            if (membership._cacheUserNameState == -1)
                membership.showError("username", "ss2", "昵称已被占用");
            else if (membership._cacheUserNameState == -2)
                membership.showError("username", "ss2", "昵称不可用");
            else if (membership._cacheUserNameState == 0)
                membership.showError("username", "ok", "");
        }
    }, actionCheckInvacode: function() {
        var _value = dojo.byId("invatecode").value;
        if (_value != membership._cacheInvationCode) {
            membership.showLoading("invatecode");
            dojo.xhrPost(
			{
			    url: membership._urlCheck,
			    sync: false,
			    handleAs: "json",
			    content: { invatecode: _value, parms: 'IsExitInvationCode' },
			    load: function(data, event) {
			        membership._cacheInvationCodeState = data.state;
			        unkonw();
			        membership._cacheInvationCode = _value;
			    },
			    error: function(data, event) {
			    },
			    mimetype: "application/json-comment-filtered"
			});
        } else
            unkonw();
        function unkonw() {
            if (membership._cacheInvationCodeState == -1)
                membership.showError("invatecode", "ss2", "邀请码已被使用。");
            else if (membership._cacheInvationCodeState == -2)
                membership.showError("invatecode", "ss2", "邀请码无效。");
            else if (membership._cacheInvationCodeState == -3)
                membership.showError("invatecode", "ss2", "邀请码已过期。");
            else if (membership._cacheInvationCodeState == 0)
                membership.showError("invatecode", "ok", "");
        }
    },
    keyDown: function(Fun, e) {
        var keycode;
        if (dojo.isIE)
            keycode = e.keyCode;
        else
            keycode = e.which;
        if (keycode == 13) {
            if (Fun != null) Fun();
        }
    },
    ShowAccount: function() {
        setTimeout(function() {
            var _value = dojo.trim(dojo.byId("user_domainName").value);
            dojo.query("#_domain_show i")[0].innerHTML = _value;
        }, 200);
    },
    selectfollow: function(obj, pic, removeId,nickName) {
        if (dojo.attr(obj, "checked") == "false" || dojo.attr(obj, "checked") == "")
            dojo.destroy(removeId);
        else
            dojo.create("li", { id: removeId, innerHTML: "<img alt=\"" + nickName + "\" src=\"" + membership.joinString(pic, pic.lastIndexOf("."), "_2") + "\" width=\"30\" height=\"30\">" }, "__follow");
    },
    selectAllfolow: function(obj) {
        dojo.forEach(dojo.query("#_form1_follow").query("input[type='checkbox']"),
			function(item) {
			    if (obj.checked) {
			        if (!item.checked) {
			            var imgsrc = dojo.attr(item.id.replace("$", "_$"), "src");
			            var nickName = dojo.attr(item.id.replace("$", "_$"), "alt");
			            dojo.create("li", { id: item.id.split('$')[1], innerHTML: "<img  alt=\"" + nickName + "\" width=\"30\" height=\"30\" src=\"" + membership.joinString(imgsrc, imgsrc.lastIndexOf("."), "_2") + "\">" }, "__follow");
			            item.checked = true;
			        }
			    } else {
			        if (item.checked) {
			            dojo.destroy(item.id.split('$')[1]);
			            item.checked = false;
			        }
			    }
			});
    },
    joinString: function(str, index, value) {
        return str.substring(0, index) + value + str.substring(index);
    }
}