﻿netliao.register("netliao.reg");
netliao.reg = function () {

    this.NameExsits = false;
    this.message = new Array();
    this.message[0] = "用户名由4-20个字符(2-8个汉字或4-20个英文)组成限制字符字符 ' # & * ( ) 空格 和\"";
    this.message[1] = "6-20个任意字符组成,为了您的帐号安全请使用英文字母加数字或符号的组合";
    this.message[2] = "请再输入一遍您上面输入的密码 ";
    this.message[3] = "修改密码的时候验证用。不可更改，请正确填写";
    this.message[4] = "请填写真实QQ,找回密码和抽奖时用";
    this.message[5] = "密码保护提示问题:遗失密码时可以用来找回密码";
    this.message[6] = "密码保护提示答案:遗失密码时可以用来找回密码";
    this.message[7] = "我们会严格保密用户的私人信息";
    this.message[8] = "取回密码时使用。请正确填写";

    this.focus = function (obj, msg) {

        var err = "tip_" + obj.id;
        this.style(err, msg);
    };

    this.fail = function (eid, msg) {
        msg = "<img src=\"/images/b3.gif\" />&nbsp;&nbsp;" + msg;
        this.style(eid, msg);
    };

    this.succ = function (eid, msg) {
        msg = "<img src=\"/images/b2.gif\" />&nbsp;&nbsp;" + msg;
        this.style(eid, msg);
    };

    this.error = function (eid, msg) {
        msg = "<img src=\"/images/b1.gif\" />&nbsp;&nbsp;" + msg;
        this.style(eid, msg);
    };

    this.trim = function (str) {
        var pattern = /(^[\s\u3000]*)|([\s\u3000]*$)/g;
        return str.replace(pattern, "");
    }

    this.style = function (eid, msg) {
        document.getElementById(eid).className = "bj_1i";
        document.getElementById(eid).innerHTML = msg;
    };

    this.validateTrim = function (elem, msg) {
        if (this.trim(elem.value).length == 0) {
            this.fail("tip_" + elem.id, msg);
            return false;
        }

        return true;
    };

    this.strByteLen = function (str) {
        var pattern = /[^\x00-\xff]/g;
        return str.replace(pattern, "xx").length;
    };

    this.validateOldName = function (elem) {

        if (!this.validateTrim(elem, "请输入用户名"))
            return false;

        if (this.trim(elem.value).length == 0) {
            this.error("tip_" + elem.id, "用户名格式不正确");
            return false;
        }

        this.succ("tip_" + elem.id, "用户名格式正确");
        return true;
    };

    this.validateName = function (elem) {

        if (!this.validateTrim(elem, "请输入用户名"))
            return false;

        if (this.strByteLen(elem.value) < 4 || this.strByteLen(elem.value) > 20) {
            this.error("tip_" + elem.id, "用户名格式不正确");
            return false;
        }

        if (!this.validaBadWords(elem.value)) {
            this.error("tip_" + elem.id, "用户名格式不正确,包含非法的字符");
            return false;
        }

        this.focus(elem, "正在验证您选择的用户名是否可以使用...");
        Request.send("/login.aspx?action=exsits&UserName=" + escape(elem.value), null, this.callback.bind([this, elem]));
        return true;
    };

    this.callback = function (responseText) {
        var exsits = eval(responseText);
        if (exsits) {
            this[0].NameExsits = true;
            this[0].succ("tip_" + this[1].id, "恭喜您,您选择的用户名可以使用。");
        }
        else {
            this[0].NameExsits = false;
            this[0].error("tip_" + this[1].id, "对不起,您选择的用户名已被注册。");
        }
    };

    this.validaBadWords = function (str) {
        var badWords = new Array("站长","茉莉","茉莉花", "爷爷", "爹", "许愿", "０", ";", "；", "碧聊", "\\.", "网聊", "．", "◥◣", "学聊", "dos家族", "◢◤", "戰士", "\u3000", "\\[", "\\]",
        "\\<", "\\>", "煞笔", "客服", "巡管", "战士", "dos", "\\!", "﹗", "吖", "操", "逼", "性", "做爱", "裸", " *◥◣◢◤", "插", "！", "！", "", "sex", "", "", "'", "#", "&",
        "\\*", "\\\"", "\\(", "\\)", "", "\\s", "　", "[0x80-0xFF]", "．", "", "〇〇", "●", "●", "┆", "", "日", "〇", "站长", "草", "989999", "网友", "网站", "老大", "晴天", "qingtian", "日", "vip", "&", "chat", " ", "#", "'", "死", "\"", " *爷爷", "法论功", "许愿", "碧聊", "数", "◥◣", "学聊", "dos家族", "◢◤", "戰士", "字", "操", "逼", "性", "做爱", "com", "www", "垃圾", "裸", "\\[", "\\]", "\\<", "\\>", "%", "◥◣◢◤", "插", "数字网络", "數字網絡", "许願", "精英", "干", "骗", "騙", "装", "奸", "B", "Ｂ", "床", "许願", "站長", "許願","網聊","㊣");

        for (var i = 0; i < badWords.length; i++) {
            var regex = new RegExp(badWords[i], "g");
            if (regex.test(str))
                return false;
        }

        return true;
    };
    this.validaBadWordss = function (str) {
        var badWords = new Array("站长", "爷爷", "爹", "许愿", "０", ";", "；", "〇〇", "碧聊", "网聊", "◥◣", "学聊", "dos家族", "◢◤", "戰士", "\u3000", "\\[", "\\]",
        "\\<", "\\>", "煞笔", "客服", "巡管", "战士", "dos", "﹗", "吖", "操", "逼", "性", "做爱", "裸", " *◥◣◢◤", "插", "", "sex", "'", "#", "&",
        "\\*", "\\\"", "\\(", "\\)", "", "\\s", "　", "[0x80-0xFF]", "．", "", "┆", "","㊣");

        for (var i = 0; i < badWords.length; i++) {
            var regex = new RegExp(badWords[i], "g");
            if (regex.test(str))
                return false;
        }

        return true;
    };

    this.mmvalidaBadWords = function (str) {
        var badWords = new Array("abc", "123456", "123abc", "abc123", "1234a", "12345a", "123456a", "a123", "1234a", "12345a", "a123456", "111qqq", "123qaz", "qaz123", "'");

        for (var i = 0; i < badWords.length; i++) {
            var regex = new RegExp(badWords[i], "g");
            if (regex.test(str))
                return false;
        }

        return true;
    };


    this.validateOldPwd = function (elem) {
        if (!this.validateTrim(elem, "请输入密码"))
            return false;

        var pwt = /\S{4,16}/;
        if (!pwt.test(elem.value)) {
            this.error("tip_" + elem.id, "密码格式不正确");
            return false;
        }

        this.succ("tip_" + elem.id, "密码格式正确");
        return true;
    };

    this.validatePassword = function (elem) {

        if (!this.validateTrim(elem, "请输入密码"))
            return false;

        var pwt = /\S{6,16}/;
        if (!pwt.test(elem.value)) {
            this.error("tip_" + elem.id, "密码格式不正确");
            return false;
        }

        var pattern = /(?:^[a-zA-Z]+$)|(?:^[0-9]+$)|(?:^[^a-zA-Z]*[a-zA-Z]{1,1}[^a-zA-Z]*$)/i;
        if (pattern.test(elem.value)) {
            this.error("tip_" + elem.id, "密码强度太弱,请重新填写,必须由数字、字母组成,并且至少包含两个字母");
            return false;
        }
        if (!this.mmvalidaBadWords(elem.value)) {
            this.error("tip_" + elem.id, "输入的密码过于简单");
            return false;
        }

        this.succ("tip_" + elem.id, "密码格式正确");
        return true;
    };

    this.validateConfrimPassword = function (elem, password) {

        if (!this.validateTrim(elem, "请输入确认密码"))
            return false;

        if (elem.value != password) {
            this.error("tip_" + elem.id, "确认密码格式错误,必须与密码一致");
            return false;
        }

        this.succ("tip_" + elem.id, "确认密码正确");
        return true;
    };

    this.validateOldSafeCode = function (elem) {

        if (!this.validateTrim(elem, "请输入安全码"))
            return false;

        this.succ("tip_" + elem.id, "安全码格式正确");
        return true;
    };

    this.validateSafeCode = function (elem) {

        if (!this.validateTrim(elem, "请输入安全码"))
            return false;

        var pattern = /^\S{4,25}$/;
        if (!pattern.test(elem.value)) {
            this.error("tip_" + elem.id, "安全码格式不正确,必须由4-25位字符组成");
            return false;
        }

        this.succ("tip_" + elem.id, "安全码格式正确");
        return true;
    };

    this.validateNewEmail = function (elem) {

        if (!this.validateTrim(elem, "请输入邮箱地址"))
            return false;

        var pattern = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
        if (!pattern.test(elem.value)) {
            this.error("tip_" + elem.id, "邮箱格式不正确");
            return false;
        }

        this.succ("tip_" + elem.id, "邮箱格式正确");
        return true;
    };

    this.validateTencent = function (elem) {

        if (!this.validateTrim(elem, "请输入QQ号码"))
            return false;

        var pattern = /^\d{5,11}$/;
        if (!pattern.test(elem.value)) {
            this.error("tip_" + elem.id, "QQ号码格式不正确,必须由5-11位数字组成");
            return false;
        }

        this.succ("tip_" + elem.id, "QQ号码格式正确");
        return true;
    };

    this.validatemobile = function (elem) {

        if (!this.validateTrim(elem, "请输入手机号码"))
            return false;

        var pattern = /^(?:13\d|15[03689])-?\d{5}(\d{3}|\*{3})$/;
        if (!pattern.test(elem.value)) {
            this.error("tip_" + elem.id, "手机号码格式不正确");
            return false;
        }

        this.succ("tip_" + elem.id, "手机号码格式正确");
        return true;
    };

    this.validateQQmail = function (elem) {

        if (!this.validateTrim(elem, "请输入QQ邮箱"))
            return false;

        var pattern = /^\S{1,44}\@qq.com$/;
        var pattern2 = /^\S{1,40}\@vip.qq.com$/;

        if (!pattern.test(elem.value)) {
            this.error("tip_" + elem.id, "QQ邮箱格式不正确");
            return false;
        }

        this.succ("tip_" + elem.id, "QQ邮箱格式正确");
        return true;
    };


    this.validateProtectQuestion = function (elem) {

        if (!this.validateTrim(elem, "请输入密码保护提示问题"))
            return false;

        var len = this.strByteLen(elem.value);
        if (len < 6 || len > 25) {
            this.error("tip_" + elem.id, "密码保护提示问题格式不正确,必须由6-25位字符组成");
            return false;
        }

        this.succ("tip_" + elem.id, "密码保护提示问题格式正确");
        return true;
    };

    this.validateProtectAnswer = function (elem) {

        if (!this.validateTrim(elem, "请输入密码保护提示答案"))
            return false;

        var len = this.strByteLen(elem.value);
        if (len < 6 || len > 25) {
            this.error("tip_" + elem.id, "密码保护提示答案格式不正确,必须由6-25位字符组成");
            return false;
        }

        this.succ("tip_" + elem.id, "密码保护提示答案格式正确");
        return true;
    };

    this.validateForm = function (formName) {
        var form = document.getElementById(formName);
        var userName = document.getElementById("ctl00_Content_userName");
        var userPassword = document.getElementById("ctl00_Content_userPassword");
        var confirmPassword = document.getElementById("ctl00_Content_confirmPassword");
        var SafeCode = document.getElementById("ctl00_Content_SafeCode");
        var NewEmail = document.getElementById("ctl00_Content_NewEmail");
        var Tencent = document.getElementById("ctl00_Content_Tencent");
        //var ProtectQuestion = document.getElementById("ctl00_Content_ProtectQuestion");
        //var ProtectAnswer = document.getElementById("ctl00_Content_ProtectAnswer");
        var VerifyCode = document.getElementById("ctl00_Content_VerifyCode");
        //     if (this.validateName(userName) && this.NameExsits && this.validatePassword(userPassword) && 
        //        this.validateConfrimPassword(confirmPassword, userPassword.value) && this.validateSafeCode(SafeCode) &&
        //        this.validateTencent(Tencent) && this.validateProtectQuestion(ProtectQuestion) && 
        //        this.validateProtectAnswer(ProtectAnswer) && this.validateVerifyCode(VerifyCode))
        if (this.validateName(userName) && this.NameExsits && this.validatePassword(userPassword) &&
        this.validateConfrimPassword(confirmPassword, userPassword.value) && this.validateSafeCode(SafeCode) &&
        this.validateNewEmail(NewEmail) && this.validateTencent(Tencent) && this.validateVerifyCode(VerifyCode)) {          
            form.submit();
        }
        else {
            return false;
        }
    };

    this.validateVerifyCode = function (elem) {
        if (this.trim(elem.value).length == 0) {
            alert("请输入验证码");
            return false;
        }

        var pattern = /^\S{4}$/;
        if (!pattern.test(elem.value)) {
            alert("您输入的验证码格式不正确,请重新输入");
            return false;
        }

        return true;
    };
};
var validate = new netliao.reg();



//新JS

function DateSelector(selYear, selMonth, selDay) {
    this.selYear = selYear;
    this.selMonth = selMonth;
    this.selDay = selDay;
    this.InitYearSelect();
    this.InitMonthSelect();
    this.InitDaySelect();
    this.selYear.Group = this;
    this.selMonth.Group = this;

    // 给年份、月份下拉菜单添加处理onchange事件的函数
    if (window.document.all != null) // IE
    {
        this.selYear.attachEvent("onchange", DateSelector.Onchange);
        this.selMonth.attachEvent("onchange", DateSelector.Onchange);
    }
    else // Firefox
    {
        this.selYear.addEventListener("change", DateSelector.Onchange, false);
        this.selMonth.addEventListener("change", DateSelector.Onchange, false);
    }
}

// 增加一个最大年份的属性
DateSelector.prototype.MinYear = 1900;

// 增加一个最大年份的属性
DateSelector.prototype.MaxYear = (new Date()).getFullYear();

// 初始化年份
DateSelector.prototype.InitYearSelect = function () {
    // 循环添加OPION元素到年份select对象中
    for (var i = this.MaxYear; i >= this.MinYear; i--) {
        // 新建一个OPTION对象
        var op = window.document.createElement("OPTION");

        // 设置OPTION对象的值
        op.value = i;

        // 设置OPTION对象的内容
        op.innerHTML = i;

        // 添加到年份select对象
        this.selYear.appendChild(op);
    }
}

// 初始化月份
DateSelector.prototype.InitMonthSelect = function () {
    // 循环添加OPION元素到月份select对象中
    for (var i = 1; i < 13; i++) {
        // 新建一个OPTION对象
        var op = window.document.createElement("OPTION");

        // 设置OPTION对象的值
        op.value = i;

        // 设置OPTION对象的内容
        op.innerHTML = i;

        // 添加到月份select对象
        this.selMonth.appendChild(op);
    }
}

// 根据年份与月份获取当月的天数
DateSelector.DaysInMonth = function (year, month) {
    var date = new Date(year, month, 0);
    return date.getDate();
}

// 初始化天数
DateSelector.prototype.InitDaySelect = function () {
    // 使用parseInt函数获取当前的年份和月份
    var year = parseInt(this.selYear.value);
    var month = parseInt(this.selMonth.value);

    // 获取当月的天数
    var daysInMonth = DateSelector.DaysInMonth(year, month);

    // 清空原有的选项
    this.selDay.options.length = 0;
    // 循环添加OPION元素到天数select对象中
    for (var i = 1; i <= daysInMonth; i++) {
        // 新建一个OPTION对象
        var op = window.document.createElement("OPTION");

        // 设置OPTION对象的值
        op.value = i;

        // 设置OPTION对象的内容
        op.innerHTML = i;

        // 添加到天数select对象
        this.selDay.appendChild(op);
    }
}

// 处理年份和月份onchange事件的方法，它获取事件来源对象（即selYear或selMonth）
// 并调用它的Group对象（即DateSelector实例，请见构造函数）提供的InitDaySelect方法重新初始化天数
// 参数e为event对象
DateSelector.Onchange = function (e) {
    var selector = window.document.all != null ? e.srcElement : e.target;
    selector.Group.InitDaySelect();
}
