﻿var xmlDom = false;//XMLHTTP对象
var arr_UserName = new Array();//保存已经查询过的 用户名
var arr_BackInfo = new Array();//保存查询过的用户名 是否可以注册的信息
var arr_QymcName = new Array();
var arr_QymcInfo = new Array();
var arr_EmailName = new Array();
var arr_EmailInfo = new Array();

//创建一个xmlhttp
try
{
	xmlDom = new ActiveXObject("Msxml2.XMLHTTP"); //IE高版本创建XMLHTTP
} 
catch (E)
{
	try
	{
		xmlDom = new ActiveXObject("Microsoft.XMLHTTP");//IE低版本创建XMLHTTP
	}
	catch (E)
	{
		  xmlDom = new XMLHttpRequest(); //兼容非ie浏览器，直接创建XMLHTTP对象
	}
} 



//------------------- 判断用户名是否重复----------------------------//

//注册时判断用户名是否符合规范，是否已经被注册
function j_username()
{
	document.getElementById("NameError").innerHTML = "";//清空错误信息
	var userName = document.getElementById("username").value;
	var reg = "[^a-zA-Z_0-9]";//判断用户名只能为字母，数字，下划线的正则表达式
	var reg1 = "\\D";//判断用户名必须以字母开头的正则表达式
	if(userName == "")//用户名为空，不可以
	{
		document.getElementById("NameError").innerHTML = "<font color=\"red\">用户名不能为空!<font><br>";
	}
	else if(userName.length < 5||userName.length > 18)//判断用户名长度
	{
		document.getElementById("NameError").innerHTML = "<font color=\"red\">你输入的用户名长度太短！长度必须为5～18位！<font><br>";
	}
	else 
	{
		if(!userName.substring(0,1).match(reg1))//用户名不是以字母开头
		{
			document.getElementById("NameError").innerHTML = "<font color=\"red\">必须已字母开头!<font><br>";
		}
		else if(userName.match(reg))//用户名中出现其他特殊字符
		{
			document.getElementById("NameError").innerHTML = "<font color=\"red\">用户名只能是字母、数字、下划线!<font><br>";
		}
		else
		{
			if(typeof(xmlDom) != 'undefined')
			{
				var isChecked = false;//是否检测过的bool变量
				//遍历检测过的用户数组，看是否已经查询过这个用户是否存在，如果已经查询过就不用再次到服务器进行查询了
				for(var i=0;i<arr_UserName.length;i++)
				{
				//这个账户名已经检测过。
					if(document.getElementById("username").value == arr_UserName[i])
					{
						switch (arr_BackInfo[i].toString())//根据检测过的账户信息数组，显示相应提示。
						{
							case "0":
								document.getElementById("NameError").innerHTML = "<font color=\"red\">该用户名不符合注册规则,您可以尝试注册!<font><br>";
								break;
							case "1":
								document.getElementById("NameError").innerHTML = "<font color=\"red\">对不起,您注册的用户名已经存在!<font><br>";
								break;
							case "2":
								document.getElementById("NameError").innerHTML = "<font color=\"red\">恭喜您,该用户名无人使用!<font><br>";
								break;
						}
						isChecked = true;
						break;
					}
				}
				//账户没有相关信息，只能到服务器进行查询
				if(!isChecked)
				{
					checkname(document.getElementById("username").value);
				}
			}
		}
	}
}
//向服务器发送请求，检测用户名是否已经被注册
function checkname(name)
{
	var d = new Date();
	var strURL = "../ashx/register.ashx?type=1&name=" + name + "&guid=" + d.getTime();
	xmlDom.Open("get",strURL , true);
	xmlDom.onreadystatechange = fnRun;
	xmlDom.Send(xmlDom);
	document.getElementById("NameError").innerHTML = "<font color=\"red\">正在检测用户名是否重复...您可以尝试注册!<font><br>";
}

//点击注册按钮后 回调的函数，用于显示服务器返回的结果
function fnRun()
{
	if (xmlDom.readyState == 4 && xmlDom.status == 200)//如果请求已经加载并且服务器返回成功
	{
		var str = xmlDom.responseText;		//保存已经查询过的用户名,下次直接返回
		arr_UserName[arr_UserName.length] = document.getElementById("username").value;//用户输入的账户名
		arr_BackInfo[arr_BackInfo.length] = str;//把刚查询的用户名的返回结果存储起来，再次使用就不用向服务器请求了
		switch (str)
		{
			case "0"://用户名不符合规则
				document.getElementById("NameError").innerHTML = "<font color=\"red\">该用户名不符合注册规则,您不可以尝试注册!<font><br>";
				break;
			case "1"://用户名已经注册
				document.getElementById("NameError").innerHTML = "<font color=\"red\">对不起,您注册的用户名已经存在!<font><br>";
				break;
			case "2"://可以注册
				document.getElementById("NameError").innerHTML = "<font color=\"red\">恭喜您,该用户名无人使用!<font><br>";
				break;
		}
	}        
}

//向服务器发送请求，检测用户名是否已经被注册
function checkemail(name)
{
	var d = new Date();
	var strURL = "../ashx/register.ashx?type=1&name=" + name + "&guid=" + d.getTime();
	xmlDom.Open("get",strURL , true);
	xmlDom.onreadystatechange = fnRuna;
	xmlDom.Send(xmlDom);
	document.getElementById("EmailError").innerHTML = "<font color=\"red\">正在检测邮箱名是否重复...您可以尝试注册!<font><br>";
}

function j_qymcname()
{
	document.getElementById("QymcError").innerHTML = "";//清空错误信息
	var qymc = document.getElementById("qymc").value;
	if(qymc == "")//用户名为空，不可以
	{
		document.getElementById("QymcError").innerHTML = "<font color=\"red\">公司名不能为空!<font><br>";
	}
	else 
	{
		if(typeof(xmlDom) != 'undefined')
		{
			var isChecked = false;
			for(var i=0;i<arr_QymcName.length;i++)
			{
				if(document.getElementById("qymc").value == arr_QymcName[i])
				{
					switch (arr_QymcInfo[i].toString())
					{
						case "0":
							document.getElementById("QymcError").innerHTML = "<font color=\"red\">该公司名不符合注册规则,您可以尝试注册!<font><br>";
							break;
						case "1":
							document.getElementById("QymcError").innerHTML = "<font color=\"red\">对不起,您注册的公司名已经存在!<font><br>";
							break;
						case "2":
							document.getElementById("QymcError").innerHTML = "<font color=\"red\">恭喜您,该公司名无人使用!<font><br>";
							break;
					}
					isChecked = true;
					break;
				}
			}
			if(!isChecked)
			{
				checkqymc(document.getElementById("qymc").value);
			}
		}
	}
}

function checkqymc(name)
{
	var d = new Date();
	var strURL = "../ashx/register.ashx?type=1&name=" + name + "&guid=" + d.getTime();
	xmlDom.Open("get",strURL , true);
	xmlDom.onreadystatechange = fnRunb;
	xmlDom.Send(xmlDom);
	document.getElementById("QymcError").innerHTML = "<font color=\"red\">正在检测公司名是否重复...您可以尝试注册!<font><br>";
}

//点击注册按钮后 回调的函数，用于显示服务器返回的结果
function fnRunb()
{
	if (xmlDom.readyState == 4 && xmlDom.status == 200)//如果请求已经加载并且服务器返回成功
	{
		var str = xmlDom.responseText;		//保存已经查询过的用户名,下次直接返回
		arr_QymcName[arr_QymcName.length] = document.getElementById("qymc").value;//用户输入的账户名
		arr_QymcInfo[arr_QymcInfo.length] = str;//把刚查询的用户名的返回结果存储起来，再次使用就不用向服务器请求了
		switch (str)
		{
			case "0"://用户名不符合规则
				document.getElementById("QymcError").innerHTML = "<font color=\"red\">该公司名不符合注册规则,您不可以尝试注册!<font><br>";
				break;
			case "1"://用户名已经注册
				document.getElementById("QymcError").innerHTML = "<font color=\"red\">对不起,您注册的公司名已经存在!<font><br>";
				break;
			case "2"://可以注册
				document.getElementById("QymcError").innerHTML = "<font color=\"red\">恭喜您,该公司名无人使用!<font><br>";
				break;
		}
	}        
}

function fnRuna()
{
	if (xmlDom.readyState == 4 && xmlDom.status == 200)//如果请求已经加载并且服务器返回成功
	{
		var str = xmlDom.responseText;		//保存已经查询过的用户名,下次直接返回
		arr_EmailName[arr_EmailName.length] = document.getElementById("email").value;//用户输入的账户名
		arr_EmailInfo[arr_EmailInfo.length] = str;//把刚查询的用户名的返回结果存储起来，再次使用就不用向服务器请求了
		switch (str)
		{
			case "0"://用户名不符合规则
				document.getElementById("EmailError").innerHTML = "<font color=\"red\">该邮箱名不符合注册规则,您不可以尝试注册!<font><br>";
				break;
			case "1"://用户名已经注册
				document.getElementById("EmailError").innerHTML = "<font color=\"red\">对不起,您注册的邮箱名已经存在!<font><br>";
				break;
			case "2"://可以注册
				document.getElementById("EmailError").innerHTML = "<font color=\"red\">恭喜您,该邮箱名无人使用!<font><br>";
				break;
		}
	}        
}



//------------输入数据的检验------------------//


//验证密码是否符合规则
function j_password()
{
	var password = document.getElementById("userpassword").value;
	if (password.length < 6 || password.length > 12)//密码长度是否符合规则
	{
		document.getElementById("PwdError").innerHTML = "<font color=\"red\">密码长度不正确。<font>";
		return;
	}
	if (document.getElementById("username").value == password)//用户名和密码不能相同
	{
		document.getElementById("PwdError").innerHTML = "<font color=\"red\">为了您的安全，用户名与密码不能一致，请使用新的密码<font>";
		return;
	}
	var reg = "\\W";
	if(password.match(reg))//密码是否出现英文或数字之外的字符
	{
		document.getElementById("PwdError").innerHTML = "<font color=\"red\">密码只能是英文或者数字!<font>";
		return;
	}
	document.getElementById("PwdError").innerHTML = "";
}
//判断两次输入的密码是否一致
function j_password1()
{
	var password = document.getElementById("userpassworda").value;
	if(password != document.getElementById("userpassword").value)//两次输入的密码不相同，出现错误提示
	{
		document.getElementById("PwdError2").innerHTML = "<font color=\"red\">两次输入的密码不一致,请重新输入!<font>";
		document.getElementById("userpassworda").value = "";
		return;
	}
	//两次输入的密码相同，校验通过。
	document.getElementById("PwdError2").innerHTML = "";
}
//检验邮件格式是否正确
function j_email()
{
	var email = document.getElementById("email").value;//得到输入的邮箱
	var reg = /^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@(([0-9a-zA-Z])+([-\w]*[0-9a-zA-Z])*\.)+[a-zA-Z]{2,9})$/;//定义验证邮件的正则表达式
	if(!email.match(reg))//验证失败，显示错误信息，返回
	{
		document.getElementById("EmailError").innerHTML = "<font color=\"red\">邮件地址无效!<font>";
		return;
	}
	else
	{
	    if(typeof(xmlDom) != 'undefined')
	    {
	       var isChecked = false;//是否检测过的bool变量
	       //遍历检测过的用户数组，看是否已经查询过这个用户是否存在，如果已经查询过就不用再次到服务器进行查询了
	       for(var i=0;i<arr_EmailName.length;i++)
	       {
	           //这个账户名已经检测过。
	           if(document.getElementById("email").value == arr_EmailName[i])
	           {
	               switch (arr_BackInfo[i])//根据检测过的账户信息数组，显示相应提示。
	               {
	                   case "0":
	                      document.getElementById("EmailError").innerHTML = "<font color=\"red\">该邮箱不符合注册规则,您可以尝试注册!<font><br>";
	                      break;
	                   case "1":
	                      document.getElementById("EmailError").innerHTML = "<font color=\"red\">对不起,您注册的邮箱名已经存在!<font><br>";
	                      break;
					   case "2":
					      document.getElementById("EmailError").innerHTML = "<font color=\"red\">恭喜您,该邮箱名无人使用!<font><br>";
					      break;
					}
					isChecked = true;
					break;
			    }
			 }
			 //账户没有相关信息，只能到服务器进行查询
			 if(!isChecked)
			 {
			    checkemail(document.getElementById("email").value);
			 }
	     }
	}
}


