﻿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.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.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 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.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();
}

