﻿String.prototype.trueLength   =   function()   
  {   
  return   this.replace(/[^\x00-\xff]/g,   "**").length;   
  }
  
var random=0;
//var checkurl = "https://account.91.com/common/usernamecheck.aspx?info=";http://192.168.122.98/Foreignregisterfornet/common/
var checkurl = "usernamecheck.aspx?info=";

function getJsonData(para){
	var ajax = _jsc.ajax.getAjax();
	ajax.open("GET",para,false);
	ajax.send(null);
	try{
		//eval("var s = "+ajax.responseText);
		var s = ajax.responseText;
		return s;
	}catch(e){
		alert(e.message);
		return null;
	}
}
//regsvr32 scrrun.dll 

var msgs = {

	//帐号相关校验提示信息
	txtAccount_default: '*4-70位字母和数字或者邮箱!',
	txtAccount_leninvalid: '4-70位字母和数字或者邮箱!',
	txtAccount_contentinvalid: '账号应该由 a-z, A-Z , 0-9  或邮箱组成!',
	txtAccount_noblank: '4-70位字母和数字或者邮箱!',
	txtAccount_used: '用户名已经被使用!',
	txtAccount_valid: '填写正确!',
	//密码校验相关提示信息
	txtPassword_default: '*7-14位数字和字母!',
	txtPassword_noblank: '7-14位数字和字母!',
	txtPassword_leninvalid: '应该是7-14位数字和字母!',
	txtPassword_contentinvalid: '密码应该由 a-z, A-Z 和 0-9组成!',
	txtPassword_valid: '填写正确!',
	//确认密码校验相关提示信息
	txtConfirmPassword_default: '*7-14位数字和字母!',
	txtConfirmPassword_noblank: '7-14位数字和字母!',
	txtConfirmPassword_nocompare: '确认密码不对!',
	txtConfirmPassword_valid: '填写正确!',
	//真实姓名相关校验提示信息
	txtRealName_default: '真实姓名不能大于12个字符!',
	txtRealName_leninvalid: '真实姓名不能大于12个字符!',
	txtRealName_noblank: '请输入真实姓名!',
	txtRealName_valid: '填写正确!',
	//邮箱校验相关提示信息
	txtEmail_default: '* 请输入邮箱地址!',
	txtEmail_noblank: '请输入邮箱地址!',
	txtEmail_leninvalid: '邮箱地址应该不大于40个字符!',
	txtEmail_formatinvalid: '邮箱地址错误!  ',
	txtEmail_valid: '填写正确!',
	//确认邮箱校验相关提示信息
	txtConfirmEmail_default: '请输入邮箱地址!',
	txtConfirmEmail_noblank: '请输入邮箱地址!',
	txtConfirmEmail_nocompare: '确认邮箱不正确!',
	txtConfirmEmail_valid: '填写正确!',
	//身份证校验相关提示信息
	txtIDCard_default: '*请填写15或18位身份证号码1',
	txtIDCard_noblank:'您是未成年用户,将被纳入防沉迷系统!',
	txtIDCard_leninvalid: '请填写15或18位身份证号码!',
	txtIDCard_valid: '填写正确!',
	txtIDCard_year: '您是未成年用户,将被纳入防沉迷系统!',
	txtIDCard_error: '身份证不合法!',
	//确认身份证校验相关提示信息
	txtConfirmIDCard_default: '*请填写15或18位身份证号码',
	txtConfirmIDCard_noblank: '确认身份证号码需要15或18位',
	txtConfirmIDCard_nocompare: '身份证不匹配',
	txtConfirmIDCard_valid: '填写正确',	 
	//密保问题相关提示信息
	txtQuestion_default: '* 请输入4-30位字符或2-15位中文',
	txtQuestion_noblank: '请输入4-30位字符或2-15位中文!',
	txtQuestion_leninvalid: '密保问题4-30位字符或2-15位中文!',
	txtQuestion_valid: '填写正确!',
	//密保答案相关提示信息
	txtAnswer_default: '* 请输入4-30位字符或2-15位中文密保答案',
	txtAnswer_noblank: '请输入4-30位字符或2-15位中文密保答案!',
	txtAnswer_leninvalid: '请输入4-30位字符或2-15位中文密保答案',
	txtAnswer_valid: '填写正确!',
	//确认密保答案相关提示信息
	txtConfirmAnswer_default: '* 请输入4-30位字符或2-15位中文密保答案',
	txtConfirmAnswer_noblank: '请输入4-30位字符或2-15位中文密保答案!',
	txtConfirmAnswer_nocompare: '确认密保答案不正确!',
	txtConfirmAnswer_valid: '填写正确!'
};

var types = ['text', 'password'];
//var blank_check_excepts = ['txtPaperCard','txtConfirmPaperCard','txtQuestion','txtAnswer','txtConfirmAnswer','txtAccount','txtConfirmPassword','txtPassword','txtRealName','txtEmail','txtConfirmEmail'];
var blank_check_excepts = ['txtAccount','txtPassword','txtConfirmPassword','txtRealName','txtEmail','txtConfirmEmail','txtIDCard','txtConfirmIDCard','txtQuestion','txtAnswer','txtConfirmAnswer'];

var depends = {
	txtConfirmPassword: 'txtPassword'
};

var valid_reg = Validator.extend({
	
	valid_txtAccount: function(o){
		if (o.value.trim().length >= 4 && o.value.trim().length <= 70) {
			$(o.id + '_info').innerHTML = 'Checking...';
			var url=checkurl+o.value + "&checkstatus=0";
			var result = getJsonData(url);

			if(result.trim().length != 0){
			//alert(result);
				if(result == '0')
				{
					this.setDefinedStyle(o,'leninvalid','FailedMsg');
					this.valid_r &= false;
					return;
				}
				if(result == '1'||result == '2')
				{
					this.setDefinedStyle(o,'contentinvalid','FailedMsg');
					this.valid_r &= false;
					return;
				}
				if(result == '4')
				{
					this.setDefinedStyle(o,'used','FailedMsg');
					this.valid_r &= false;
					return;
				}
				this.setDefinedStyle(o,'valid','SucceedMsg');
				this.valid_r &= true;
			}
			else
			{
				this.setDefinedStyle(o,'sysbusy','FailedMsg');
				this.valid_r &= false;
			}
		}
		else
		{
			if(o.value.trim().length == 0)
			{
				this.setDefinedStyle(o,'noblank','FailedMsg');
				this.valid_r &= false;
			}
			else
			{
				this.setDefinedStyle(o,'leninvalid','FailedMsg');
				this.valid_r &= false;
			}
		}
	},
	valid_txtQuestion: function(o){
			if (o.value.trueLength() < 4 || o.value.trueLength() > 30)
			{
				this.setDefinedStyle(o,'leninvalid','FailedMsg');
				this.valid_r &= false;
				return;
			}			 
			this.setDefinedStyle(o,'valid','SucceedMsg');
			this.valid_r &= true;
	},
	valid_txtIDCard: function(o){
		if (o.value.trim().length ==15|| o.value.trim().length == 18||o.value.trim().length==0) {
			$(o.id + '_info').innerHTML = 'Checking...';
			var url=checkurl+o.value + "&checkstatus=1";
			var result = getJsonData(url);

			if(result.trim().length != 0){
				if(result == '0'||result == '2')
				{
					this.setDefinedStyle(o,'error','FailedMsg');
					this.valid_r &= false;
					return;
				}
				if(result == '1')
				{
					this.setDefinedStyle(o,'year','FailedMsg');
					this.valid_r &= false;
					return;
				}
				if(result == '4')
				{
				$('no18').checked=true;
					this.setDefinedStyle(o,'year','SucceedMsg');
					this.valid_r &= false;
					return;
				}	
				if(result == '5')
				{
				$('no18').checked=true;
					this.setDefinedStyle(o,'year','SucceedMsg');
					this.valid_r &= false;
					return;
				}			
				$('yes18').checked=true;	
				this.setDefinedStyle(o,'valid','SucceedMsg');
				this.valid_r &= true;
			}
			else
			{
				this.setDefinedStyle(o,'sysbusy','FailedMsg');
				this.valid_r &= false;
			}
		}
		else
		{ 
				this.setDefinedStyle(o,'leninvalid','FailedMsg');
				this.valid_r &= false;
			 
		}
	},
	valid_txtConfirmIDCard: function(o){
		if (o.value == $('txtIDCard').value||(o.value==''&&$('txtIDCard').value=='')) {
			this.setDefinedStyle(o,'valid','SucceedMsg');
			this.valid_r &= true;
		} else {
			this.setDefinedStyle(o,'nocompare','FailedMsg');
			this.valid_r &= false;
		}
	},
	valid_txtPassword: function(o){
			if (o.value.length < 7 || o.value.length > 14)
			{
				this.setDefinedStyle(o,'leninvalid','FailedMsg');
				this.valid_r &= false;
				return;
			}
			if (!CheckIfEnglish(o.value))
			{
				this.setDefinedStyle(o,'contentinvalid','FailedMsg');
				this.valid_r &= false;
				return;
			}
			this.setDefinedStyle(o,'valid','SucceedMsg');
			this.valid_r &= true;
	},
	valid_txtConfirmPassword: function(o){
		if (o.value == $('txtPassword').value && o.value != '') {
			this.setDefinedStyle(o,'valid','SucceedMsg');
			this.valid_r &= true;
		} else {
			this.setDefinedStyle(o,'nocompare','FailedMsg');
			this.valid_r &= false;
		}
	},	
	valid_txtRealName: function(o){
			if(o.value.trim().length == 0)
			{
				this.setDefinedStyle(o,'noblank','FailedMsg');
				this.valid_r &= false;
				return;
			}
			else if (o.value.length < 1 || o.value.trueLength() > 12)
			{
				this.setDefinedStyle(o,'leninvalid','FailedMsg');
				this.valid_r &= false;
				return;
			}
		this.setDefinedStyle(o,'valid','SucceedMsg');
			this.valid_r &= true;
	},
	valid_txtEmail: function(o){
			if (o.value.length < 1 || o.value.length > 40)
			{
				this.setDefinedStyle(o,'leninvalid','FailedMsg');
				this.valid_r &= false;
				return;
			}
			if (!checkemail(o.value))
			{
				this.setDefinedStyle(o,'formatinvalid','FailedMsg');
				this.valid_r &= false;
				return;
			}
			this.setDefinedStyle(o,'valid','SucceedMsg');
			this.valid_r &= true;
	},
	valid_txtConfirmEmail: function(o){
		if (o.value.toLowerCase() == $('txtEmail').value.toLowerCase() && o.value != '') {
			this.setDefinedStyle(o,'valid','SucceedMsg'); 
			this.valid_r &= true;			
		} else {
			this.setDefinedStyle(o,'nocompare','FailedMsg');
			this.valid_r &= false;
		}
	},
	
	valid_txtAnswer: function(o){
			if (o.value.trueLength() < 4 || o.value.trueLength() > 30)
			{
				this.setDefinedStyle(o,'leninvalid','FailedMsg');
				this.valid_r &= false;
				return;
			}
			this.setDefinedStyle(o,'valid','SucceedMsg');
			this.valid_r &= true;
	},
	valid_txtConfirmAnswer: function(o){
		if (o.value == $('txtAnswer').value && o.value != '') {
			this.setDefinedStyle(o,'valid','SucceedMsg');
			this.valid_r &= true;
		} else {
			this.setDefinedStyle(o,'nocompare','FailedMsg');
			this.valid_r &= false;
		}
	} 
	
});

var valid = new valid_reg('Form1', 'Form1', msgs, types, blank_check_excepts, depends);