function hideAllErr(ai){
	ai=ai.length?ai:ai.parentNode.getElementsByTagName('i');
	for(var n=0;n<ai.length;n++){ai[n].className=''}
}
function showErr(el){
	el.parentNode.className='err';
	el.className='on';
}
function showOk(el){el.parentNode.className='ok'}
//验证用户名的规则
function checkUname(){
	var el=$('username');
	var name=el.value;
	var ai=el.parentNode.getElementsByTagName('i');

	hideAllErr(ai);
	if(el.value.length<1){showErr(ai[0]);return 0}
	hideAllErr(ai);
	if(name.Tlength()>20){showErr(ai[2]);return 0}
	hideAllErr(ai);
	var reg=/(^[0-9]+)|([\~\!@#\$%\^\&\*\(\)\{\}\":<>\?\/\.,;\'\[\]\/\*\-| ]{1,})/ig;
	if(name.test(reg)){hideAllErr(ai);showErr(ai[1]);return 0}
	hideAllErr(ai);
	var reg = /^(?!_)[a-zA-Z0-9_\u4e00-\u9fa5]+$/ig;
	if(!name.test(reg)){showErr(ai[1]);return 0}
	hideAllErr(ai);
	if(name.Tlength()<6){showErr(ai[2]);return 0}
	hideAllErr(ai);
	//验证用户名是否存在
	Ajax.sendPost('isUserNameExsit.do?username='+encodeURI(name),'',valiName);

	var check=$('checkusername');
	if(check.value=='1'){
		return 1;//form提交
	}else{
		return 0;//form不提交
	}

}
//验证密码的规则
function checkPassword(){
	var el=$('password');
	var pw=el.value;
	var ai=el.parentNode.getElementsByTagName('i');
	hideAllErr(ai);
	if(pw.length<1){showErr(ai[0]);return 0}
	hideAllErr(ai);
	var reg=/^([\S]{6,30})$/ig;
	if(!pw.test(reg)){hideAllErr(ai);showErr(ai[1]);return 0}
	hideAllErr(ai);
	showOk(el);
	return 1;
}
//验证第一次和第二此输入的密码是否相同
function checkConfirmPassword(){
	var el=$('repassword');
	var el2=$('password');
	var ai=el.parentNode.getElementsByTagName('i');
	hideAllErr(ai);
	if(!checkPassword()){return 0}
	if(el2.value!=el.value){showErr(ai[0]);return 0}
	hideAllErr(ai);
	showOk(el);
	return 1
}
//验证Email
function checkMail(){
	var el=$('usermail')
	var check=$('checkusermail');
	var mail=el.value;
	var ai=el.parentNode.getElementsByTagName('i');
	if(mail.length<1){showErr(ai[0]);return 0}
	hideAllErr(ai);
	var reg=/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/ig;
	if(!mail.test(reg)){showErr(ai[1]);return 0}
	if(mail.length>100){showErr(ai[3]);return 0}
	if(mail.length>0){
		Ajax.sendPost('isUserMailExsit.do?usermail='+encodeURI(mail),'',valiEmail);
	}
	if(check.value=='1'){
		return 1;//form提交
	}else{
		return 0;//不提交
	}
}
//验证验证码
function checkValidateCode(){
	var el=$('validationcode');
	var check=$('checkcode');
	var ai=el.parentNode.getElementsByTagName('i');
	hideAllErr(ai);
	el.value = el.value.toUpperCase();
	if(el.value.length!=4){showErr(ai[0]);return 0}
	hideAllErr(ai);
	Ajax.sendPost('getValidateCode.do?code='+el.value,'',valiCode);
	if(check.value=='1'){
		return 1;//form提交
	}else{
		return 0;//不提交
	}
}
$('validationcode').onblur=checkValidateCode;

//验证是否同意协议
function checkAgreement(el){
	var el=$('checkboxreaded');
	var ai=el.parentNode.getElementsByTagName('i');
	if(el.checked){
	hideAllErr(el);
	showOk(el)}
	else{
		showErr(ai[0]);
		return 0
	}
	return 1
}
//验证用户名是否存在的返回值
function valiName(xml){
	var str=xml.responseText;
	var el=$('username');
	var check=$('checkusername');
	var ai=el.parentNode.getElementsByTagName('i');
	hideAllErr(ai);
	if(str=='0'){
		showOk(el);
		check.value='1';
	}else if(str=='1'){
		showErr(ai[3]);
		check.value='0';
	}else if(str=='2'){
		showErr(ai[4]);
		check.value='0';
	}
}
//验证email是否存在的返回值
function valiEmail(xml){
	var str=xml.responseText;
	var el=$('usermail');
	var check=$('checkusermail');
	var ai=el.parentNode.getElementsByTagName('i');
	hideAllErr(ai);
	if(str=='0'){
		showOk(el);
		check.value='1';
	}else if(str=='1'){
		showErr(ai[2]);
		check.value='0';
	}
}
//验证码是否正确的返回值
function valiCode(xml){
	var str=xml.responseText;
	var el=$('validationcode');
	var check=$('checkcode');
	var ai=el.parentNode.getElementsByTagName('i');
	hideAllErr(ai);
	if(str=='1'){
		showOk(el);
		check.value='1';
	}else {
		showErr(ai[0]);
		check.value='0';
	}
}
//form提交验证
function checkForm(){
	var flag=checkUname()&&checkValidateCode()&&checkMail()&&checkConfirmPassword()&&checkPassword()&&checkAgreement()&&checkValidateCode();
	//alert('flag=='+flag);
	return flag?true:false
}

function restoreTip(){
	var el=event.srcElement;
	hideAllErr(el);
	var c=el.parentNode.className
	el.parentNode.className=c=='ok'?'ok':'';
}

$('username').onfocus=$('password').onfocus=$('repassword').onfocus=$('usermail').onfocus=restoreTip;
$('username').onblur=checkUname;
$('password').onblur=checkPassword;
$('repassword').onblur=checkConfirmPassword.bind($('password'));
$('usermail').onblur=checkMail;
$('validationcode').onblur=checkValidateCode;
$('checkboxreaded').onclick=checkAgreement;