

/*====common js begin====*/
var tNow = new Date();
//声明错误信息
var aMsg = [];
aMsg[0]='';
aMsg[1]='不能为空';
aMsg[2]='太长';
aMsg['2username']='用户名太长，请不要超过31位';
aMsg['2password']='密码太长，请不要超过20位';
aMsg['2realname']='真实姓名太长，请输入2～6位汉字';
aMsg['2idnum'] = '身份证号码太长，请您输入15或18位';
aMsg['2otppass'] = '将军令动态密码太长，请您输入6位动态密码';
aMsg['2ppcpass'] = '密保卡密码太长，请您输入3～9位数字密码';
aMsg['2idnum1'] = '证件号码太长，请您输入6～18位证件号';
aMsg['2pingma']='安全码太长，长度为6～16位，字母区分大小写';

aMsg[3]='太短';
aMsg['3realname']='真实姓名太短，请输入2～6位汉字';
aMsg['3idnum'] = '身份证号码太短，请您输入15或18位';
aMsg['3otppass'] = '将军令动态密码太短，请您输入6位动态密码';
aMsg['3ppcpass'] = '密保卡密码太短，请您输入3～9位数字密码';
aMsg['3idnum1'] = '证件号码太短，请您输入6～18位证件号';
aMsg['3pingma']='安全码太短，长度为6～16位，字母区分大小写';

aMsg[4]='不符合要求';
aMsg['4username']='不能输入特殊字符，用户名只能有不区分大小写的字母、数字、点、减号、下划线组成';
aMsg['4username2'] = '请输入正确的用户名';
aMsg['4realname']='请输入2～6位汉字';
aMsg['4idnum'] = '身份证不正确，请您输入真实身份证';
aMsg['4otppass'] = '请您输入6位数字动态密码';
aMsg['4ppcpass'] = '请您输入3～9位数字密码';

aMsg['5realname'] = '对不起，您输入的中文姓名不正确，请重新输入';
aMsg['5crealname'] = '对不起，您重复的真实姓名不正确，请重新输入';

aMsg[6]='您两次输入不一致';
aMsg['6cid']= '您两次输入的身份证不一致';
aMsg['6crealname'] = '您两次输入的姓名不一致';

aMsg[34]='邮箱地址无效';

/*====common js end====*/
/*====form js beign====*/
//document.domain = '163.com';
var checkFrom,pattern;
var _myQuestion = '我的自定义问题';
//表单验证调用函数
function addActionListener(sForm){
	Form.reset(sForm);
	var oForm = $(sForm);
	var checkFrom;
	var oInputs = Form.getElements(oForm);
	Form.focusFirstElement(oForm);
	for(var prop in oCheckForm.stat.options){oCheckForm.stat.options[prop] = true;}
	oInputs.each(function(oInput){
		Event.observe(oInput,'keyup',fClearTip,false);
		Event.observe(oInput,'blur',function(){
			if(oCheckForm.stat.options[oInput.id]==false){
				Element.removeClassName(oInput,'inputFocus');
				Element.addClassName(oInput,'inputError');
			}else{
				Element.removeClassName(oInput,'inputFocus');
				Element.removeClassName(oInput,'inputError');
			}
		},false);
		Event.observe(oInput,'focus',function(){
				Element.removeClassName(oInput,'inputError');
				Element.addClassName(oInput,'inputFocus');
		},false);
		var sId = oInput.id;
		switch(sId){
			case 'username':
				Event.observe(sId, 'blur', fUsernameBlur, false);
			break;
			case 'password':
				Event.observe(sId, 'blur', fPasswordBlur, false);
			break;
			case 'steal_date':
				Event.observe(sId, 'blur', fStealDateBlur,false);
			break;
			case 'realname':
				Event.observe(sId, 'blur', fRealnameBlur, false);
			break;
			case 'crealname':
				Event.observe(sId, 'blur', fCRealnameBlur, false);
			break;
			case 'idnum':
				Event.observe(sId, 'blur', fIdBlur, false);
			break;
			case 'cid':
				Event.observe(sId, 'blur', fCIdBlur, false);
			break;
			case 'otppass':
				Event.observe(sId,'blur',fOtppassBlur,false);
			break;
			case 'ppcpass':
				Event.observe(sId,'blur',fPpcpassBlur,false);
			break;
			case 'mail':
				Event.observe(sId,'blur',fMailBlur,false);
			break;
			case 'idnum1':
				Event.observe(sId,'blur',fIdnum1Blur,false);
			break;
			case 'pingma':
				Event.observe(sId,'blur',fPingmaBlur,false);
			break;
			case 'cpingma':
				Event.observe(sId,'blur',fCpingmaBlur,false);
			break;
			case 'question':
				if($F(sId)==_myQuestion){
					Element.addClassName('myQuestion','show');
					Event.observe('myQuestion','blur',fMyQuestionBlur,false);
				}
				Event.observe(sId, 'change', fQuestionChange, false);
				break;
			case 'answer':
				Event.observe(sId, 'blur', fAnswerBlur, false);
				break;
			case 'year':
				Event.observe(sId, 'blur', fYearBlur, false);
			break;
			case 'month':
			case 'day':
				Event.observe(sId, 'change', fDateChange, false);
			break;
				
		}
	});
	oForm.onsubmit = function(event){
		oInputs.each(function(oInput){
			var sId = oInput.id;
			switch(sId){
				case 'password':
					fPasswordBlur(event,oInput);
				break;
				case 'realname':
					fRealnameBlur(event,oInput);
				break;
				case 'steal_date':
					fStealDateBlur(event,oInput);
				break;
				case 'crealname':
					fCRealnameBlur(event,oInput);
				break;
				case 'idnum':
					fIdBlur(event,oInput);
				break;
				case 'cid':
					fCIdBlur(event,oInput);
				break;
				case 'otppass':
					fOtppassBlur(event,oInput);
				break;
				case 'ppcpass':
					fPpcpassBlur(event,oInput);
				break;
				case 'mail':
					fMailBlur(event,oInput);
				break;
				case 'idnum1':
				fIdnum1Blur(event,oInput);
				break;
				case 'pingma':
					fPingmaBlur(event,oInput);
				break;
				case 'cpingma':
					fCpingmaBlur(event,oInput);
				break;
				case 'answer':{
					fAnswerBlur(event,oInput);
					}
				
				break;
				case 'year':
					fYearBlur(event,oInput);
				break;
				case 'month':
				case 'day':
					fDateChange(event,oInput);
			  break;
				
			}
		});
		fConfirmSubmit(event);
		return false;
	}
}

//表单输入验证函数 begin================================================================================

//年
function fYearBlur(event,obj){
	var oEvt = $oEvt(event,obj);
	if(!oEvt) return;
	pattern = /^\d+$/;
	checkForm = new oCheckForm.checkInput(oEvt,{iMin:4,iMax:4,sPattern:pattern,bBirthDay:true,bDate:true});
}
//月日
function fDateChange(event,obj){
	var oEvt = $oEvt(event,obj);
	if(!oEvt) return;
	checkForm = new oCheckForm.checkInput(oEvt,{bDate:true});
}

//用户名
function fUsernameBlur(event,obj){
	var oEvt = $oEvt(event,obj);
	if(!oEvt) return;
	checkForm = new oCheckForm.checkInput(oEvt,{usernameCheck:true});
}
//密码
function fPasswordKeyup(event,obj){
	var oEvt = $oEvt(event,obj);
	if(!oEvt) return;
	checkForm = new oCheckForm.checkInput(oEvt,{});
}
function fPasswordBlur(event,obj){
	var oEvt = $oEvt(event,obj);
	if(!oEvt) return;
	checkForm = new oCheckForm.checkInput(oEvt,{iMax:20});
}
//邮箱
function fMailBlur(event,obj){
	var oEvt = $oEvt(event,obj);
	if(!oEvt) return;
	pattern = /^[a-zA-Z\d]+[\w\.\-@]*$/;
	checkForm = new oCheckForm.checkInput(oEvt,{sPattern:pattern,bEmail:true});
}

//判断是否成年
/*
@param id 身份证号
*/

function isAdult(id){
	
	var year; 
	var month;
	var day;


	if(id.length == 18){
		
		year = id.slice(6,10);
		month = id.slice(10,12);
		day = id.slice(12,14);

	}else if (id.length == 15){
		year = "19" + id.slice(6,8); 
		month = id.slice(8,10);
		day = id.slice(10,12);

	}
	
	var adultTimeString  = (parseInt(year) + 18) + "/" + month + "/" + day;
	var adultMills = Date.parse(adultTimeString);
	var nowMills = new Date().getTime();
	
	if(nowMills > adultMills)
		return true;
	else 
		return false;

	
}


//证件号码
function fIdBlur(event,obj){
	var oEvt = $oEvt(event,obj);
	if(!oEvt) return;
	oEvt.value = oEvt.value.toUpperCase();
	pattern = /^\d{15}$|^\d{17}[\d|X|x]$/;
	checkForm = new oCheckForm.checkInput(oEvt,{iMin:15,iMax:18,sPattern:pattern,bIdentityCard:true});						
}
//重复证件号码
function fCIdBlur(event,obj){
	var oEvt = $oEvt(event,obj);
	if(!oEvt) return;
	oEvt.value = oEvt.value.toUpperCase();
	checkForm = new oCheckForm.checkInput(oEvt,{sContrast:'idnum'});						
}

//姓名
function fRealnameBlur(event,obj){
	var oEvt = $oEvt(event,obj);
	if(!oEvt) return;
	pattern =  /^[\u4e00-\u9fa5\uf900-\ufa2d]{2,6}$/;
	checkFrom = new oCheckForm.checkInput(oEvt,{iMin:4,iMax:12,sPattern:pattern,bChineseNameValid:true});
	
}
//被盗填的大概时间
function fStealDateBlur(event,obj){
	var oEvt = $oEvt(event,obj);
	if(!oEvt) return;
	pattern = /^(\d{4})\-(\d{1,2})\-(\d{1,2})$/;
	checkFrom = new oCheckForm.checkInput(oEvt,{sPattern:pattern});
	
}
function fRealnameKeyup(event,obj){
	var oEvt = $oEvt(event,obj);
	if(!oEvt) return;
	pattern =  /^[\u4e00-\u9fa5\uf900-\ufa2d]{0,6}$/;
	checkFrom = new oCheckForm.checkInput(oEvt,{iMax:6,sPattern:pattern});
}

//重复姓名
function fCRealnameBlur(event,obj){
	var oEvt = $oEvt(event,obj);
	if(!oEvt) return;
	checkForm = new oCheckForm.checkInput(oEvt,{sContrast:'realname'});
}

//将军令
function fOtppassBlur(event,obj){
	var oEvt = $oEvt(event,obj);
	if(!oEvt) return;
	pattern =  /^\d{6}$/; 
	checkFrom = new oCheckForm.checkInput(oEvt,{iMax:6,sPattern:pattern});
}

//密保卡
function fPpcpassBlur(event,obj){
	var oEvt = $oEvt(event,obj);
	if(!oEvt) return;
	pattern =  /^\d{3,9}$/; 
	checkFrom = new oCheckForm.checkInput(oEvt,{iMin:3,iMax:9,sPattern:pattern});
}

//证件号码(安全信息)
function fIdnum1Blur(event,obj){
	var oEvt = $oEvt(event,obj);
	if(!oEvt) return;
	pattern = /^\S+[\s\S]*\S+$/;
	checkForm = new oCheckForm.checkInput(oEvt,{iMin:6,iMax:18,sPattern:pattern});	
}

function fAlert(){
	var ele = oCheckForm.stat.first();
	var eleHTML = $T(ele).innerHTML;
	if(eleHTML.indexOf('不能为空')>-1||eleHTML.indexOf('不能和用户名相同')>-1||eleHTML.indexOf('不能和密码相同')>-1||eleHTML.indexOf('不能和安全码相同')>-1||eleHTML.indexOf('未被使用')>-1||eleHTML.indexOf('不能使用该邮箱')>-1||eleHTML.indexOf('请选择')>-1){
		var eleHTML = $(ele).title + eleHTML;
	}
	alert(eleHTML);
	window.location = '#' + ele;
	$(ele).focus();
}
//表单输入验证函数 begin================================================================================

//表单的提交事件函数 begin=================================================================================
//提交表单信息
function fConfirmSubmit(event){
	var sF = $fId(event);
		if(oCheckForm.stat.result()){
			var reqInputs = [];
			var oForm = $(sF);
			switch(sF){
				//登录
				case 'realname_login_form':
					reqInputs = ['username', 'password'];
				break;
				//密码保护
				case 'realname_passprotect_form':
					var tmpArray = new Array();
					if($('ppcpass')){
						tmpArray.push("ppcpass");
					}
					reqInputs = tmpArray;
				break;
				//登记
				case 'realname_setinfo_form':
					reqInputs = ['realname', 'crealname', 'idnum', 'cid', 'mail', 'pingma', 'cpingma', 'idnum1','question','answer','year','month','day'];
				break;
				
				//修改实名认证
				case 'realname_changeinfo_form':
					reqInputs = ['steal_date','realname', 'crealname', 'idnum', 'cid', 'mail', 'pingma', 'cpingma', 'idnum1','question','answer','year','month','day'];
				break;
				//查询
				case 'realname_query_form':
					reqInputs = ['realname', 'idnum'];
				break;
			
			}
			//验证提交时必填项是否为空
			if(reqInputs.length>0){
				reqInputs.each(function(oI){
					if($(oI))
					var oC = new oCheckForm.checkInput($(oI),{bEmpty:true});
				});
			}
			if(oCheckForm.stat.result()){
				
				//var 
				var a = true;
				
				if(sF == 'realname_setinfo_form' || sF == 'realname_changeinfo_form'){					
					if(!isAdult(document.getElementById('idnum').value)){
						if(!confirm('您填写的身份证年龄未满18岁，将暂时纳入网易的网络游戏防沉迷系统!等您成年后将重新审核您的资料，审核通过后不再受防沉迷的限制。'))
							a = false;							
					}				
				}
				
				if(a){
					if(sF == 'realname_setinfo_form' || sF == 'realname_changeinfo_form'){
						if(!checkChineseLastName(document.getElementById('realname').value)){
							if(!confirm('您填写的姓氏比较生僻，可能无法通过实名认证，是否提交?'))
								a = false;	
						
						}
					}
					
						
				}
				
				if(a){
					oForm.submit();
					return true;	
				}else 
					return false;
				
								
			}
		}
	fAlert();
}

function checkUsername(username) {
		//return /^[a-zA-Z\d\.\@\-_]+$/.test(username);
	 	var pos = username.indexOf("@");
	 	if(pos == -1)
	 		return username.length > 0;
	 	else{
	 		var ssn = username.substring(0,pos);
	 		return ssn.length > 0;
	 		
	 	}
	 	
}
	
//表单的提交事件 end====================================================================================

//用户输入验证 begin========================================================================================
var oCheckForm = {};
oCheckForm.checkInput=Class.create();
oCheckForm.checkInput.prototype={
	initialize: function(obj, oOptions) {
		this.setOptions(oOptions);
		this.request(obj);
	},
	setOptions: function(oOptions) {
		this.options = {
		  bEmpty:			false,
		  iMin:				0,
		  iMax: 			0,
		  sPattern:			'',
		  sContrast:		'',
		  bPwdStrength:		false,
		  bEmail:			false,
		  bIdentityCard:	false,
		  bSimplePwd:		false,
		  bChineseNameValid:false,
		  usernameCheck: false
		}
		Object.extend(this.options, oOptions || {});
	},
	request: function(obj){
		var iMsgId = -1;
		var sValue = obj.value;
		var iLen = strLen(sValue);
		var oTip = $T(obj);
		var objId = obj.id;
		var objType = obj.type.toLowerCase();
		var objTagName = obj.tagName.toLowerCase();
		var opt = this.options;
		//为空
		if(!opt.bEmpty && sValue == ''){iMsgId = 0;}
		else if(opt.bEmpty && sValue == ''){iMsgId = 1;}
		//长度
		else if(opt.iMin > 0 && opt.iMin > iLen){iMsgId = '3' + objId;}
		else if(opt.iMax > 0 && opt.iMax < iLen){iMsgId = '2' + objId;}
		//符合要求
		else if(opt.sPattern!=''&&!opt.sPattern.test(sValue)){iMsgId = '4' + objId;}
		else if(opt.bEmail && !/^(-|\.|\w)+\@((-|\w)+\.)+[A-Za-z]{2,}$/.test(sValue)){iMsgId = 34;}
		else if(opt.bIdentityCard){if(!verifyIdCard(sValue)){iMsgId = '4' + objId;} }
		else if(opt.bChineseNameValid){
			//检查中文姓名是否合法
			/*
			if(!checkChineseLastName(sValue)){
				iMsgId = '5' + objId;		
			}
			*/
			
		}
		else if(opt.usernameCheck && !checkUsername(sValue)){		
			iMsgId = '4username2';
		}
		//重复输入一致
		else if(opt.sContrast!=''&&$F(opt.sContrast)!=sValue){iMsgId = '6' + objId;}
		var detailInfo = String(iMsgId).indexOf(objId) > 0;
		if(iMsgId>0 || detailInfo){
			oTip.innerHTML = aMsg[iMsgId] ? aMsg[iMsgId] : aMsg[iMsgId.substring(0 , iMsgId.indexOf(objId))];
			if(detailInfo){iMsgId = iMsgId.substring(0 , iMsgId.indexOf(objId))} 
			if(iMsgId>12||iMsgId<10){
				oCheckForm.stat.options[objId]=false;
				Element.addClassName(obj,'inputError');
			}else{
				Element.removeClassName(obj,'inputError');
				oCheckForm.stat.options[objId]=true;
			}
		}
		else{
			if(iMsgId == 0 && oTip.innerHTML == aMsg[1]){return;}
			if(iMsgId == -1){
				oTip.innerHTML=''; 
				if($('errorMsg')){
					$('errorMsg').innerHTML = ''
				}
			}
			oCheckForm.stat.options[objId]=true;
		}
		
	}
}

//验证结果
oCheckForm.stat={
	options: {
		  username:			true,
		  password:			true,
		  otppass:			true,
		  ppcpass:			true,
		  realname:			true,
		  crealname:		true,
		  idnum:			true,
		  cid:				true,
		  mail:				true
	},
	result: function(){
		for(var prop in this.options){
			if(this.options[prop]==false){
				return false;
			}
		}
		return true;
	},
	first: function(){
		for(var prop in this.options){
			if(this.options[prop]==false){
				return prop;
			}
		}
		return document.forms[0].elements[0].id;
	}
}
//用户输入验证 end========================================================================================
var wi=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];
//17位数对应的加权因子，自左至右;

var vi=['1','0','X','9','8','7','6','5','4','3','2'];
//余数对应的校验码;

var areaCodes = new Array();
areaCodes['11'] = '1';//北京市
areaCodes['12'] = '1';//天津市
areaCodes['13'] = '1';//河北省
areaCodes['14'] = '1';//山西省
areaCodes['15'] = '1';//内蒙古
areaCodes['21'] = '1';//辽宁省
areaCodes['22'] = '1';//吉林省
areaCodes['23'] = '1';//黑龙江
areaCodes['31'] = '1';//上海市
areaCodes['32'] = '1';//江苏省
areaCodes['33'] = '1';//浙江省
areaCodes['34'] = '1';//安徽省
areaCodes['35'] = '1';//福建省
areaCodes['36'] = '1';//江西省
areaCodes['37'] = '1';//山东省
areaCodes['41'] = '1';//河南省
areaCodes['42'] = '1';//湖北省
areaCodes['43'] = '1';//湖南省
areaCodes['44'] = '1';//广东省
areaCodes['45'] = '1';//广西
areaCodes['46'] = '1';//海南省
areaCodes['50'] = '1';//重庆市
areaCodes['51'] = '1';//四川省
areaCodes['52'] = '1';//贵州省
areaCodes['53'] = '1';//云南省
areaCodes['54'] = '1';//西藏自治区
areaCodes['61'] = '1';//陕西省
areaCodes['62'] = '1';//甘肃省
areaCodes['63'] = '1';//青海省
areaCodes['64'] = '1';//宁夏
areaCodes['65'] = '1';//新疆
areaCodes['71'] = '1';//台湾省
areaCodes['81'] = '1';//香港
areaCodes['82'] = '1';//澳门

function convertToEighteen(fifteenCardId){
	var eighteen = '';
	eighteen = fifteenCardId.substr(0,6)+"19"+fifteenCardId.substr(6);
	eighteen = eighteen + getCheckCode(eighteen);
	return eighteen;
}
	
function getCheckCode(eightcardid){
		var checkCodeIndex = 0;
		var checkCode = '';
		try {
			eightcardid = eightcardid.substring(0, 17);
			var sum = 0;
			for (var i = 0; i < 17; i++) {
				sum = sum + wi[i] * (eightcardid.charAt(i));
			}
			checkCodeIndex = sum % 11;
			checkCode = vi[checkCodeIndex];

		} catch (ex) {
			checkCode = '';
		} 
		return checkCode;
}	

function validDate(year,month,day){         
	var time=new Date(year,month-1,day);
	var e_year=time.getFullYear();
    var e_month=time.getMonth()+1;
    var e_day=time.getDate();
    if(year!=e_year||month!=e_month||day!=e_day){
		return false;
	}
	if(year.indexOf("19") == 0 || year.indexOf("20") == 0){
	}else{
		return false;
	}
    return true;
}

function validArea(areaCode){
	if(areaCodes[areaCode]){
		return true;
	} else {
		return false;
	}
}

function verifyIdCard(idcard) {
	var verifyCode = ''; // 最后一位校验位
	
	if (!idcard) {
		return false;
	}
	if (idcard.length == 15) {
		idcard = convertToEighteen(idcard);
	}
	if (idcard.length != 18) {
		return false;
	}
	try {

		if (! /^\d{15}$|^\d{17}[\d|X|x]$/.test(idcard)) {
			return false;
		}
		var area = idcard.substring(0, 2);
		if(!validArea(area)){
			return false;
		}
		var birth = idcard.substring(6, 14);
		var year = birth.substring(0,4);
		var month = birth.substring(4,6);
		var day = birth.substring(6,8);
		//日期部分不合法
		if(!validDate(year, month, day)){
			return false;				
		}
		//小于等于当天
		if (new Date() <= new Date(year,month,day)) {
			return false;
		}
		//校验位
		verifyCode = idcard.substring(17);
		if (verifyCode != ''
				&& verifyCode == getCheckCode(idcard.substring(0, 17))) {
			return true;
		} else {
			return false;
		}

	} catch (ex) {
		return false;
	} 

}

//姓氏库代码开始


var single_name_array = ["赵","钱","孙","李","周","吴","郑","王","冯","陈","褚","卫",
		"蒋","沈","韩","杨","朱","秦","尤","许","何","吕","施","张",
		"孔","曹","严","华","金","魏","陶","姜","戚","谢","邹","喻",
		"柏","水","窦","章","云","苏","潘","葛","奚","范","彭","郎",
		"鲁","韦","昌","马","苗","凤","花","方","俞","任","袁","柳",
		"酆","鲍","史","唐","费","廉","岑","薛","雷","贺","倪","汤",
		"滕","殷","罗","毕","郝","邬","安","常","乐","于","时","傅",
		"皮","卞","齐","康","伍","余","元","卜","顾","孟","平","黄",
		"和","穆","萧","尹","姚","邵","湛","汪","祁","毛","禹","狄",
		"米","贝","明","臧","计","伏","成","戴","谈","宋","茅","庞",
		"熊","纪","舒","屈","项","祝","董","梁","杜","阮","蓝","闵",
		"席","季","麻","强","贾","路","娄","危","江","童","颜","郭",
		"梅","盛","林","刁","锺","徐","邱","骆","高","夏","蔡","田",
		"樊","胡","凌","霍","虞","万","支","柯","昝","管","卢","莫",
		"经","房","裘","缪","干","解","应","宗","丁","宣","贲","邓",
		"郁","单","杭","洪","包","诸","左","石","崔","吉","钮","龚",
		"程","嵇","邢","滑","裴","陆","荣","翁","荀","羊","於","惠",
		"甄","麴","家","封","芮","羿","储","靳","汲","邴","糜","松",
		"井","段","富","巫","乌","焦","巴","弓","牧","隗","山","谷",
		"车","侯","宓","蓬","全","郗","班","仰","秋","仲","伊","宫",
		"宁","仇","栾","暴","甘","钭","历","戎","祖","武","符","刘",
		"景","詹","束","龙","叶","幸","司","韶","郜","黎","蓟","溥",
		"印","宿","白","怀","蒲","邰","从","鄂","索","咸","籍","赖",
		"卓","蔺","屠","蒙","池","乔","阳","郁","胥","能","苍","双",
		"闻","莘","党","翟","谭","贡","劳","逄","姬","申","扶","堵",
		"冉","宰","郦","雍","却","璩","桑","桂","濮","牛","寿","通",
		"边","扈","燕","冀","僪","浦","尚","农","温","别","庄","晏",
		"柴","瞿","阎","充","慕","连","茹","习","宦","艾","鱼","容",
		"向","古","易","慎","戈","廖","庾","终","暨","居","衡","步",
		"都","耿","满","弘","匡","国","文","寇","广","禄","阙","东",
		"欧","殳","沃","利","蔚","越","夔","隆","师","巩","厍","聂",
		"晁","勾","敖","融","冷","訾","辛","阚","那","简","饶","空",
		"曾","毋","沙","乜","养","鞠","须","丰","巢","关","蒯","相",
		"查","后","荆","红","游","竺","权","逮","盍","益","桓","公",
		"召","有","舜","丛","岳","寸","贰","皇","侨","彤","竭","端",
		"赫","实","甫","集","象","翠","狂","辟","典","良","函","芒",
		"苦","其","京","中","夕","之","冠","宾","香","果","蹇","称",
		"税","荤","靖","绪","愈","硕","牢","买","但","巧","枚","撒",
		"泰","秘","亥","绍","以","壬","森","斋","释","奕","姒","朋",
		"求","羽","用","占","真","穰","翦","闾","漆","贵","代","贯",
		"旁","崇","栋","告","休","褒","谏","锐","皋","闳","在","歧",
		"禾","示","是","委","钊","频","嬴","呼","大","威","昂","律",
		"冒","保","系","抄","定","化","莱","校","么","抗","祢","綦",
		"悟","宏","功","庚","务","敏","捷","拱","兆","丑","丙","畅",
		"苟","随","类","卯","俟","友","答","乙","允","甲","留","尾",
		"佼","玄","乘","裔","延","植","环","矫","赛","昔","侍","度",
		"旷","遇","偶","前","由","咎","塞","敛","受","泷","袭","衅",
		"叔","圣","御","夫","仆","镇","藩","邸","府","掌","首","员",
		"焉","戏","可","智","尔","凭","悉","进","笃","厚","仁","业",
		"肇","资","合","仍","九","衷","哀","刑","俎","仵","圭","夷",
		"徭","蛮","汗","孛","乾","帖","罕","洛","淦","洋","邶","郸",
		"郯","邗","邛","剑","虢","隋","蒿","茆","菅","苌","树","桐",
		"锁","钟","机","盘","铎","斛","玉","线","针","箕","庹","绳",
		"磨","蒉","瓮","弭","刀","疏","牵","浑","恽","势","世","仝",
		"同","蚁","止","戢","睢","冼","种","涂","肖","己","泣","潜",
		"卷","脱","谬","蹉","赧","浮","顿","说","次","错","念","夙",
		"斯","完","丹","表","聊","源","姓","吾","寻","展","出","不",
		"户","闭","才","无","书","学","愚","本","性","雪","霜","烟",
		"寒","少","字","桥","板","斐","独","千","诗","嘉","扬","善",
		"揭","祈","析","赤","紫","青","柔","刚","奇","拜","佛","陀",
		"弥","阿","素","长","僧","隐","仙","隽","宇","祭","酒","淡",
		"塔","琦","闪","始","星","南","天","接","波","碧","速","禚",
		"腾","潮","镜","似","澄","潭","謇","纵","渠","奈","风","春",
		"濯","沐","茂","英","兰","檀","藤","枝","检","生","折","登",
		"驹","骑","貊","虎","肥","鹿","雀","野","禽","飞","节","宜",
		"鲜","粟","栗","豆","帛","官","布","衣","藏","宝","钞","银",
		"门","盈","庆","喜","及","普","建","营","巨","望","希","道",
		"载","声","漫","犁","力","贸","勤","革","改","兴","亓","睦",
		"修","信","闽","北","守","坚","勇","汉","练","尉","士","旅",
		"五","令","将","旗","军","行","奉","敬","恭","仪","母","堂",
		"丘","义","礼","慈","孝","理","伦","卿","问","永","辉","位",
		"让","尧","依","犹","介","承","市","所","苑","杞","剧","第",
		"零","谌","招","续","达","忻","六","鄞","战","迟","候","宛",
		"励","粘","萨","邝","覃","辜","初","楼","城","区","局","台",
		"原","考","妫","纳","泉","老","清","德","卑","过","麦","曲",
		"竹","百","福","言","佟","爱","年","笪","谯","哈","墨","赏",
		"伯","佴","佘","牟","商","琴","后","况","亢","缑","帅","海",
		"归","钦","鄢","汝","法","闫","楚","晋","督","仉","盖","逯",
		"库","郏","逢","阴","薄","厉","稽","开","光","操","瑞","眭",
		"泥","运","摩","伟","铁","迮","诺","来","多","繁","戊","朴",
		"回","毓","甑","禤","付","苻","征","部","移","琚","职","邑",
		"呙","格","陕","芦","晨","亚"];

var double_name_array = ["万俟","司马","上官","欧阳","夏侯","诸葛","闻人","东方","赫连","皇甫","尉迟","公羊",
		"澹台","公冶","宗政","濮阳","淳于","单于","太叔","申屠","公孙","仲孙","轩辕","令狐",
		"钟离","宇文","长孙","慕容","司徒","司空","章佳","那拉","纳喇","乌雅","范姜","碧鲁",
		"张廖","张简","图门","太史","公叔","乌孙","完颜","马佳","佟佳","富察","费莫","南宫",
		"西门","东门","左丘","梁丘","微生","羊舌","呼延","南门","东郭","百里","谷梁","宰父",
		"夹谷","拓跋","壤驷","乐正","漆雕","公西","巫马","端木","颛孙","子车","司寇","亓官",
		"鲜于","锺离","闾丘","公良","段干","第五"];

var triple_name_array = ["萨克达","钮祜禄","他塔喇","喜塔腊","萨嘛喇","赫舍里","库雅喇","瓜尔佳","舒穆禄","索绰络"];

var four_name_array =  ["讷殷富察","叶赫那兰","爱新觉罗","依尔觉罗","额尔德特","叶赫那拉"];

var five_name_array = ["依尔根觉罗"];



String.prototype.Left = function(len){
	if(isNaN(len) || len == null){
		len = this.length;
	}else{
		if(parseInt(len) < 0 || parseInt(len) > this.length)
			len = this.length;
	}
	return this.substr(0,len);
}



function checkChineseLastName(name){

	var isValid = false;
	var i;
	var lastName;
	
	
	if(!isValid && name.length >= 1){
		lastName = name.Left(1);
	 
		for(i = 0; i < single_name_array.length; ++i){
			if(lastName == single_name_array[i]){
				isValid = true;
				break;
			}
		}
	}
	if(!isValid && name.length >= 2 ){
		lastName = name.Left(2);
		for(i = 0; i < double_name_array.length; ++i){
			if(lastName == double_name_array[i]){
				isValid = true;
				break;
			}
		}
	}
	
	if(!isValid && name.length >= 3){
		lastName = name.Left(3);
		for(i = 0; i < triple_name_array.length; ++i){
			if(lastName == triple_name_array[i]){
				isValid = true;
				break;
			}
		}
	}
	
	if(!isValid && name.length >= 4){
		lastName = name.Left(4);
		for(i = 0; i < four_name_array.length; ++i){
			if(lastName == four_name_array[i]){
				isValid = true;
				break;
			}
		}
	}
	
	if(!isValid && name.length >= 5) {
		lastName = name.Left(5);
		for(i = 0; i < five_name_array.length; ++i){
			if(lastName == five_name_array[i]){
				isValid = true;
				break;
			}
		}
	}
	return isValid;

}
//姓氏库代码结束