﻿function $(a){document.write(a);}
function gel(a){return document.getElementById?document.getElementById(a):null;}
function setfocus(a){gel(a).className = "l uur1";gel(a).innerHTML =msg[a];}
function fIsNumber (sV,sR) {var sTmp;if(sV.length==0){ return (false);}for (var i=0; i < sV.length; i++){sTmp= sV.substring (i, i+1);if (sR.indexOf (sTmp, 0)==-1) {return (false);}}return (true);}
function unfIsNumber (sV,sR) {var sTmp;if(sV.length==0){ return (false);}for (var i=0; i < sV.length; i++){sTmp= sV.substring (i, i+1);if (sR.indexOf (sTmp, 0)!=-1) {return (true);}}return (false);}
function q(x,message,cn){gel(x).innerHTML = message;gel(x).className = cn;}
// 提示信息
var msg = new Array();
msg['user'] = "<span>用户名为<strong>4-20个英文字母、数字、下划线&quot;_&quot;</strong>组成，<br />	请以<strong>英文字母开头(不区分大小写)</strong></span>";
msg['pass1']="<span>密码可使用<strong>任何英文字母及阿拉伯数字</strong>组合，长度为6-20个字符(区分大小写)</span>";
msg['pass2']="请再输入一遍您上面输入的密码。";
msg['email']="以后如果忘了密码可以用邮箱取回密码。";
msg['qt']="当您忘记密码时可由此找回密码。例如，问题是“我是谁？”，答案为&quot;我是泉州人&quot;，问题长度在<b>4-20</b>个字符之间";
msg['aw']="答案长度在<b>4～20</b>个字符之间，英文字母区分大小写";
msg['cc']="";
msg['s']="正在检测中，请稍候...";
msg['z']="填写正确！";

msg['user1']="请输入用户名！";
msg['user2']="用户名长度为4-20个字符，请重新输入！";
msg['user3']="用户名应该是数字、字母、下划线、连字符号，不允许出现汉字、空格、点等其他字符，请重新输入用户名！";
msg['user4']="恭喜您，此用户名可以注册！";
msg['user5']="此用户以被注册！";
msg['user6']="用户名检查服务暂时不能使用，不过您可以继续申请！";

msg['p1']="密码不能为空，请输入！";
msg['p2']="密码长度为6-20个字符，请重新输入！";
msg['p3']="密码中不允许含有&,%,=,+,'字符，请重新输入！";
msg['p4']="密码格式正确！";
msg['p5']="确认密码不能为空，请输入！";
msg['p6']="两次密码输入不一致";

msg['mail1']="邮箱地址不能为空，请输入！";
msg['mail2']="请填写正确的电子邮箱地址";
msg['mail3']="电子邮箱地址正确！";
msg['mail4']="电子邮箱 已被注册!";

msg['q1']="密码提醒问题不能为空，请输入！";
msg['q2']="密码提醒问题长度为4-20个字符，请重新输入！";
msg['q3']="密码提醒问题中不允许含有&,%,=,+,'字符，请重新输入！";

msg['a1']="密码提醒答案不能为空，请输入！";
msg['a2']="密码提醒答案长度为4-20个字符，请重新输入！";

msg['c']="你必须同意服务条款才能完成注册";

msg['o']="";
msg['oo']="正在注册中，请稍候...";
msg['ok']="注册成功！"
// 检测用户名
function check_user(x)
{var form = gel("form");
 var txtuser=form.txtuser.value
	if(txtuser == "" || txtuser==null) {q(x,msg['user1'],"l uur2");return false;}
	if(txtuser.length < 4 || txtuser.length > 20) {q(x,msg['user2'],"l uur2");return false;}
	if(fIsNumber(txtuser, "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-") != 1){q(x,msg['user3'],"l uur2");return false;}
	q(x,msg['s'],"l uur");	
	window.setTimeout('doCheck("'+txtuser+'")',500);
}

function doCheck(username) {
	if (window.XMLHttpRequest) {
		req = new XMLHttpRequest();
		req.onreadystatechange = processChech;
		req.open("GET", "/user/UserRegister?username="+username, true);
		req.send(null);
	} else if (window.ActiveXObject) {
		req = new ActiveXObject("Microsoft.XMLHTTP");
		if (req) {
			req.onreadystatechange = processChech;
			req.open("GET", "/user/UserRegister?username="+username, true);
			req.send();
		}
	}
}
function processChech() {
	if (req.readyState == 4) {
		var content = gel("user");
		var tt=req.responseText;
		if (req.status == 200) {
			if(tt.indexOf("user4") != -1){content.innerHTML=msg['user4'];content.className = "l uur3";}
			else{content.innerHTML=msg['user5'];content.className = "l uur2";}
		} 
		else {content.innerHTML= msg['user6'];	content.className = "l uur3";}
	}
}


// 检测密码
function check_pass1(x)
{var form = gel("form");
 var pas1=form.pas1.value;
	if(pas1 == "" || pas1==null){q(x,msg['p1'],"l uur2");return false;}

	if(pas1.length < 6 || pas1.length > 20){q(x,msg['p2'],"l uur2");return false;}
	
	if(unfIsNumber(pas1, "&%=+'")){q(x,msg['p3'],"l uur2");return false;}
	
	q(x,msg['p4'],"l uur3");

}
// 检测确认密码
function check_pass2(x)
{var form=gel("form");
 var  pas1=form.pas1.value;
 var  pas2=form.pas2.value;
 if(pas2 == "" || pas2==null){q("pass2",msg['p5'],"l uur2");return false;}
 if(pas1!=pas2){q(x,msg['p6'],"l uur2");return false;}
 
 q(x,msg['z'],"l uur3");
}	

// 检测邮箱
function check_email(x)
{	var form = gel("form");
	var email=form.mail.value
	if(email=="" || email==null) {q("email",msg['mail1'],"l uur2");return false;}

	if(!emailValidate(email)) {q(x,msg['mail2'],"l uur2");return false;}
	
    else {q(x,msg['mail3'],"l uur3");return false;}

}
function emailValidate(emailStr) {

	var checkTLD=1;
	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum|mobi)$/;
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailStr.match(emailPat);

	if (matchArray==null) {
		return false;
	}

	var user=matchArray[1];
	var domain=matchArray[2];

	for (i=0; i<user.length; i++) {
		if (user.charCodeAt(i)>127) {
			return false;
		}
	}

	for (i=0; i<domain.length; i++) {
		if (domain.charCodeAt(i)>127) {
			return false;
		}
	}

	if (user.match(userPat)==null) {
		return false;
	}


	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) {
	// this is an IP address
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				return false;
			}
		}
		return true;
	}

	// Domain is symbolic name.  Check if it's valid.
	 
	var atomPat=new RegExp("^" + atom + "$");
	var domArr=domain.split(".");
	var len=domArr.length;
	for (i=0;i<len;i++) {
		if (domArr[i].search(atomPat)==-1) {
			return false;
		}
	}


	if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1) {
		return false;
	}

	if (len<2) {
		return false;
	}

	return true;
}


// 检测密码提醒问题
function check_qt(x)
{var form = gel("form");
 var qt=form.question.value
	if(qt == "" || qt==null){q(x,msg['q1'],"l uur2");return false;}
	if(qt.length < 4 || qt.length > 20) {q(x,msg['q2'],"l uur2");return false;}
	if(unfIsNumber(qt, "&%=+'")){q(x,msg['q3'],"l uur2");return false;}
    
    q(x,msg['z'],"l uur3");
}
function check_aw(x)
{var form = gel("form");
 var aw=form.answer.value
	if(aw == "" || aw==null){q(x,msg['a1'],"l uur2");return false;}
	if(aw.length < 4 || aw.length > 20) {q(x,msg['a2'],"l uur2");return false;}
    q(x,msg['z'],"l uur3");
}

// 检测条款
function check_service(x)
{var form = gel("form");
var cc=form.chkConfirm.checked;
 if (cc==false){q(x,msg['c'],"l uur2");return false;}
 else q(x,"","")
}

// 检测
function check_form()
{var i=0;
 var form = gel("form");
 var txtuser=form.txtuser.value;
 form.btRegister.disabled=true;
 
	if (txtuser == "" || txtuser==null) {q("user",msg['user1'],"l uur2");i=1;}
	else if(txtuser.length < 4 || txtuser.length > 20) {q("user",msg['user2'],"l uur2");i=1;}
	else if(fIsNumber(txtuser, "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-") != 1){q("user",msg['user3'],"l uur2");i=1;}
     


 var pas1=form.pas1.value;
	if(pas1 == "" || pas1==null){q("pass1",msg['p1'],"l uur2");i=1;}
	else if(pas1.length < 6 || pas1.length > 20){q("pass1",msg['p2'],"l uur2");i=1;}
	else if(unfIsNumber(pas1, "&%=+'")){q("pass1",msg['p3'],"l uur2");i=1;}

 var  pas2=form.pas2.value;
   if(pas2 == "" || pas2==null){q("pass2",msg['p5'],"l uur2");i=1;}
   else if(pas1!=pas2){q("pass2",msg['p6'],"l uur2");i=1;}

 var email=form.mail.value;
	if(email=="" || email==null) {q("email",msg['mail1'],"l uur2");i=1;}
	else if(!emailValidate(email)) {q("email",msg['mail2'],"l uur2");i=1;}
	
 var qt=form.question.value;
	if(qt == "" || qt==null){q("qt",msg['q1'],"l uur2");i=1;}
	else if(qt.length < 4 || qt.length > 20) {q("qt",msg['q2'],"l uur2");i=1;}
	else if(unfIsNumber(qt, "&%=+'")){q("qt",msg['q3'],"l uur2");i=1;}

 var aw=form.answer.value;
	if(aw == "" || aw==null){q("aw",msg['a1'],"l uur2");i=1;}
	else if(aw.length < 4 || aw.length > 20) {q("aw",msg['a2'],"l uur2");i=1;}
	
 var cc=form.chkConfirm.checked;
  if (cc==false){q("cc",msg['c'],"l uur2");i=1;}
	
 if (i==1 || gel('user').className=="l uur2"){form.btRegister.disabled=false;return false;}
 else{q("o",msg['oo'],"l uur_ok");window.setTimeout('ff()',200);return false;}

}


function ff() {
   var form = gel("form");
   txtuser=form.txtuser.value;
   pas1=form.pas1.value;
   pas2=form.pas2.value;
   mail=form.mail.value;
   question=form.question.value;
   answer=form.answer.value;
   ccs=form.chkConfirm.checked;
	if (window.XMLHttpRequest) {
		req = new XMLHttpRequest();
		req.onreadystatechange = processChechs;
		req.open("GET", "/user/UserRegister?txtuser="+txtuser+"&pas1="+pas1+"&pas2="+pas2+"&mail="+mail+"&question="+escape(question)+"&answer="+escape(answer)+"&ccs="+ccs+"", true);
		req.send(null);
	} else if (window.ActiveXObject) {
		req = new ActiveXObject("Microsoft.XMLHTTP");
		if (req) {
			req.onreadystatechange = processChechs;
			req.open("GET", "/user/UserRegister?txtuser="+txtuser+"&pas1="+pas1+"&pas2="+pas2+"&mail="+mail+"&question="+escape(question)+"&answer="+escape(answer)+"&ccs="+ccs+"", true);
			req.send();
		}
	}
}
function processChechs() {
	if (req.readyState == 4) {
		if (req.status == 200) {
			var tt=req.responseText;
			if(tt.indexOf("user") != -1){uu("user","l uur2",tt);uu("o","l uurs","cc")};
			if(tt.indexOf("p") !=-1){uu("pass1","l uur2",tt);uu("o","l uurs","cc")};
			if(tt.indexOf("e6") !=-1){uu("pass2","l uur2","p6");uu("o","l uurs","cc")};
			if(tt.indexOf("mail") !=-1){uu("email","l uur2",tt);uu("o","l uurs","cc")};
			if(tt.indexOf("ok") !=-1){uu("o","l uur_ok",tt);window.setTimeout('location.href="index.asp"',200);};
			
		}
		else {gel("form").btRegister.disabled=false}
	}
}
function uu(g,c,tt)
{
var content = gel(g);
content.className = c;
content.innerHTML = msg[tt];
if(c=="l uurs"){gel("form").btRegister.disabled=false}
}


