var xmlhttp=null;
var xmlhttp2=null;
var lastEmail;
var lastNickname;
var emailStatus=false;
var nicknameStatus=false;
var emailReturned=false;
var nicknameReturned=false;
var handle;

function sleep()
{
	if(emailReturned&&nicknameReturned)
	{
		clearInterval(handle);
		emailReturned=false;
		nicknameReturned=false;
		if(emailStatus&&nicknameStatus)
		{
			checkCode();
		}
		else
		{
			enableControls();
			if(!emailStatus)
			{
				document.getElementById("emailTextBox").focus();
			}
			if(!nicknameStatus)
			{
				document.getElementById("nicknameTextBox").focus();
			}
		}	
	}
}

function checkEmail()
{
	document.getElementById("emailEm").innerHTML="<img src='images/loading.gif'>";
	var email=document.getElementById("emailTextBox").value.trim();
	xmlhttp=ajax();
	xmlhttp.onreadystatechange=handleCheckEmail;
	xmlhttp.open("GET","checkEmail.aspx?email="+email,true);
	xmlhttp.send(null);
}

function handleCheckEmail()
{
	if(xmlhttp.readyState==4)
	{
		if(xmlhttp.status==200)
		{
			if(xmlhttp.responseText=="0")
			{
				document.getElementById("emailEm").innerHTML="<font color='green'>可以使用</font>";
				emailStatus=true;
			}
			if(xmlhttp.responseText=="1")
			{
				document.getElementById("emailEm").innerHTML="<font color='red'>已被注册</font>";
				emailStatus=false;
			}
			if(xmlhttp.responseText=="-1")
			{
				document.getElementById("emailEm").innerHTML="<font color='red'>连接服务器失败</font>";
				emailStatus=false;
			}
		}
		else
		{
			document.getElementById("emailEm").innerHTML="<font color='red'>连接服务器失败100</font>";
			emailStatus=false;
		}
		emailReturned=true;
	}
}

function checkNickname()
{
	document.getElementById("nicknameEm").innerHTML="<img src='images/loading.gif'>";
	var nickname=document.getElementById("nicknameTextBox").value.trim();
	xmlhttp2=ajax();
	xmlhttp2.onreadystatechange=handleCheckNickname;
	xmlhttp2.open("GET","checkNickname.aspx?nickname="+escape(nickname),true);
	xmlhttp2.send(null);
}

function handleCheckNickname()
{
	if(xmlhttp2.readyState==4)
	{
		if(xmlhttp2.status==200)
		{
			if(xmlhttp2.responseText=="0")
			{
				document.getElementById("nicknameEm").innerHTML="<font color='green'>可以使用</font>";
				nicknameStatus=true;
			}
			if(xmlhttp2.responseText=="1")
			{
				document.getElementById("nicknameEm").innerHTML="<font color='red'>已被注册</font>";
				nicknameStatus=false;
			}
			if(xmlhttp2.responseText=="-1")
			{
				document.getElementById("nicknameEm").innerHTML="<font color='red'>连接服务器失败</font>";
				nicknameStatus=false;
			}
		}
		else
		{
			document.getElementById("nicknameEm").innerHTML="<font color='red'>连接服务器失败101</font>";
			nicknameStatus=false;
		}
		nicknameReturned=true;
	}
}

function checkCode()
{
	showUp();
	document.getElementById("barSpan").innerHTML="<img src='images/progressBar.gif'>";
	document.getElementById("statusSpan").innerHTML="<font color='red'>验证</font> - 注册 - 完成";
	var imageCode=document.getElementById("codeTextBox").value.trim();
	xmlhttp=ajax();
	xmlhttp.onreadystatechange=handleCheckCode;
	xmlhttp.open("GET","checkCode.aspx?imageCode="+imageCode,true);
	xmlhttp.send(null);
}

function handleCheckCode()
{
	if(xmlhttp.readyState==4)
	{
		if(xmlhttp.status==200)
		{
			if(xmlhttp.responseText=="0")
			{
				hide();
				alert("您的浏览器禁用了cookie导致验证无法通过,请打开cookie支持并关闭浏览器,然后再次打开重新注册");
				enableControls();
				document.getElementById("codeTextBox").focus();
			}
			if(xmlhttp.responseText=="-1")
			{
				hide();
				alert("验证码错误");
				enableControls();
				document.getElementById("codeTextBox").focus();
			}
			if(xmlhttp.responseText=="1")
			{
				preRegister();
			}		
		}
		else
		{
			hide();
			alert("连接服务器失败");
			enableControls();
		}
	}
}

function preRegister()
{
	showUp();
	document.getElementById("statusSpan").innerHTML="验证 - <font color='red'>注册</font> - 完成";
	var email=document.getElementById("emailTextBox").value.trim();
	var pass=document.getElementById("passTextBox").value.trim();
	var nickname=document.getElementById("nicknameTextBox").value.trim();
	xmlhttp=ajax();
	xmlhttp.onreadystatechange=handlePreRegister;
	xmlhttp.open("POST","register.aspx",true);
	xmlhttp.send(email+"<"+pass+"<"+nickname);
}

function handlePreRegister()
{
	if(xmlhttp.readyState==4)
	{
		if(xmlhttp.status==200)
		{
			if(xmlhttp.responseText=="-1")
			{
				hide();
				document.getElementById("statusSpan").innerHTML="<font color='red'>注册失败</font> <a href='javascript:' onClick='preRegister();return false;'>重新注册</a>";
				var choice=confirm("注册失败,可能是系统忙,要重新注册吗?");
				if(choice)
				{
					preRegister();
				}
			}
			else
			{
				document.getElementById("statusSpan").innerHTML="验证 - 注册 - <font color='red'>完成</font>";
				//location.href="registered.aspx";
				location.href="/";
			}	
		}
		else
		{
			hide();
			document.getElementById("statusSpan").innerHTML="<font color='red'>连接服务器失败103</font>";
		}
	}
}

function hide()
{
	document.getElementById("statusSpan").style.display="none";
	document.getElementById("barSpan").style.display="none";
}

function showUp()
{
	document.getElementById("statusSpan").style.display="";
	document.getElementById("barSpan").style.display="";
}

function enableControls()
{
	document.getElementById("emailTextBox").disabled=false;
	document.getElementById("emailTextBox2").disabled=false;
	document.getElementById("passTextBox").disabled=false;
	document.getElementById("passTextBox2").disabled=false;
	document.getElementById("nicknameTextBox").disabled=false;
	document.getElementById("codeTextBox").disabled=false;
	document.getElementById("codeImage").disabled=false;
	document.getElementById("barSpan").innerHTML="";
	document.getElementById("button1").disabled=false;
}

function disableControls()
{
	document.getElementById("emailTextBox").disabled=true;
	document.getElementById("emailTextBox2").disabled=true;
	document.getElementById("passTextBox").disabled=true;
	document.getElementById("passTextBox2").disabled=true;
	document.getElementById("nicknameTextBox").disabled=true;
	document.getElementById("codeTextBox").disabled=true;
	document.getElementById("codeImage").disabled=true;
	document.getElementById("button1").disabled=true;
}

function check()
{
	var newEmail=document.getElementById("emailTextBox").value.trim();
	var newNickname=document.getElementById("nicknameTextBox").value.trim();
	if(newEmail!=lastEmail||newNickname!=lastNickname)
	{
		handle=setInterval("sleep()",300);
	}
	if(newEmail!=lastEmail&&newNickname!=lastNickname)
	{
		checkEmail();
		checkNickname();
	}
	if(newEmail!=lastEmail&&newNickname==lastNickname)
	{
		nicknameReturned=true;
		checkEmail();
	}
	if(newNickname!=lastNickname&&newEmail==lastEmail)
	{
		emailReturned=true;
		checkNickname();
	}
	if(newNickname==lastNickname&&newEmail==lastEmail)
	{
		if(emailStatus&&nicknameStatus)
		{
			checkCode();
		}
		else
		{
			enableControls();	
		}
	}
	saveStatus();
}

function saveStatus()
{
	lastEmail=document.getElementById("emailTextBox").value.trim();
	lastNickname=document.getElementById("nicknameTextBox").value.trim();
}

function register()
{
	if(verify())
	{
		if(document.getElementById("termCheckBox").checked)
		{
			if(!cookieEnabled())
			{
				alert("您的浏览器禁用了cookie导致验证无法通过,请打开cookie支持以完成注册");
			}
			else
			{
				document.getElementById("statusSpan").innerHTML="";
				disableControls();
				check();	
			}
		}
		else
		{
			alert("您不同意注册协议,无法注册");
		}
	}
}

function pressEnter(e)
{
	if(e.keyCode==13)
	{
		register();
	}
}