﻿function gel(a){
	return document.getElementById?document.getElementById(a):null;
}
function gelstn(a){
	return document.getElementsByTagName?document.getElementsByTagName(a):new Array();
}
function geln(a){
	return document.getElementsByName?document.getElementsByName(a):new Array();
}
function $_(a){
	document.writeln(a);
}
function setfocus(a){
	gel(a).className = "focus";
	gel(a).innerHTML = msg[a];
}
function setblur(a){
	gel(a).className = "blur";
}
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);
}

// 提示信息
var msg = new Array();
msg['info1'] = "请以字母开头，长度3-20个字符。由英文字母（不区分大小写）、汉字、数字（0-9）、下划线组成！";
//msg['info2'] = "请点击左边的按钮检测您的用户名是否已经被其他人注册过了?;
msg['info2'] = "";
msg['info3'] = "密码长度6-16位，字母请区分大小写，请使用字母加数字的组合！";
msg['info4'] = "请再输入一遍您上面输入的密码！";
msg['info5'] = "请认真填写您的生日！";//，找回密码需要确认您的生日！";
msg['info6'] = "请选择您所在的地区，可以让你找到更多的同城朋友！";
msg['info7'] = "请填写联系电话，格式：88888888 或者 13800000000！";
msg['info8'] = "请填写认证电话号码或小灵通号码，格式：025-88888888！";
msg['info9'] = "请输入一个您的电子邮件地址，如果没有，可以不用填写！";
msg['info12'] = "请认真填写。遗忘密码时，可通过此邮箱取回！";
msg['info13'] = "请以字母开头，长度3-20个字符。由英文字母（不区分大小写）、汉字、数字（0-9）、下划线组成！";
msg['info14'] = "请以真实的居民身份证格式填写！";
msg['info15'] = "请输入验证码！";

// 通过状态
var reg_1 = 0;//用户名
var reg_2 = 0;//密码
var reg_3 = 0;//确认密码
var reg_5 = 0;//密码提示答案
var reg_6 = 0;//生日
var reg_7 = 0;//验证码
var reg_8 = 0;//服务条款
var reg_9 = 0;//Email
var reg_13 = 0;//真实姓名
var reg_14 = 0;//身份证
var reg_15 = 0;//验证码

var msg_username = "";
var msg_password = "";
var msg_password2 = "";
var msg_realname = "";
var msg_idcard = "";
var msg_year = "";
var msg_month = "";
var msg_day = "";
var msg_question = "";
var msg_answer = "";
var msg_authnum = "";
var msg_email = "";
var msg_code = "";

/****************************************************************验证开始*********************************************************************************/
var message = "";
var current = {name: '', s: false, msg: ''};
// 检测用户名
function check_user(x) {
	gel("info2").className = "blur noback";
	gel("info2").innerHTML = "";
	
	var form = gel("form");
	
	if (current.name.length > 0 && current.name == form.UserName.value) 
	{
	    gel('info1').innerHTML = current.msg;
	    if (current.s)
	    {
		    gel('info1').className = "true";
		    return;
	    }
	    else
	    {
		    gel('info1').className = "fall";
		    return false;
	    }
	}
	
	current.name = form.UserName.value;
	if(form.UserName.value == "") {
		message = "请输入用户名！";
		gel(x).innerHTML = message;
		gel(x).className = "fall";
		return false;
	}
	if(P.Tlength(form.UserName.value) < 3 || P.Tlength(form.UserName.value) > 20) {
		message = "用户名长度为3-16个字符，请重新输入用户名！";
		gel(x).innerHTML = message;
		gel(x).className = "fall";
		return false;
	}
	
	var rex = form.UserName.value.charAt(0).match(/^([\u4e00-\u9fa5])|[a-zA-Z]$/);
	if (rex == null)
	{
		message = "用户名输入错误，请以字母开！";
		gel(x).innerHTML = message;
		gel(x).className = "fall";
		return false;
	}
	var userName = form.UserName.value;
	rex = userName.match(/^[\u4e00-\u9fa5a-z][\u4e00-\u9fa5a-z0-9_]*$/i);
	if (rex == null)
	{
		message = "用户名应该是数字、字母、汉字、下划线，不允许出现空格、点等其他字符，请重新输入用户名！";
		gel(x).innerHTML = message;
		gel(x).className = "fall";
		return false;
	}
	
	register.ExistUserName(form.UserName.value, _checkCallback);

}

// 检测密码
function checkpass1(x) {
	var form = gel("form");
	var password1 = form.txtPassWord.value;
	var Condition1 = (password1.length < 6 || password1.length > 16);
	var Condition2 = (password1.indexOf(" ") != -1 || password1.indexOf("&") != -1 || password1.indexOf("%") != -1 || password1.indexOf("=") != -1 || password1.indexOf("+") != -1 || password1.indexOf("'") != -1);
	if(Condition1) {
		message = "密码长度6-16位，请重新输入。谢谢！";
		gel(x).innerHTML = message;
		gel(x).className = "fall";
		return false;
	} else if(Condition2) {
		message = "密码中不允许含有空格,&,%,=,+,'字符，请重新输入密码！";
		gel(x).innerHTML = message;
		gel(x).className = "fall";
		return false;
	} else {
		message = "密码格式正确，请继续！";
		gel(x).innerHTML = message;
		gel(x).className = "true";
		reg_2 = 1;
		return false;
	}
}

// 检测密码
function checkpass2(x) {
	var form = gel("form");
	var password1 = form.txtPassWord.value;
	var password2 = form.txtConfirmPW.value;
	var Condition3 = (password2 == "");
	var Condition4 = (password2 != password1);
	if(Condition3) {
		gel(x).innerHTML = "确认密码不能为空，请重新输入！";
		gel(x).className = 'fall';
		return false;
	} else if(Condition4) {
		gel(x).innerHTML = "两次输入密码不相同，请重新输入确认密码！";
		gel(x).className = 'fall';
		return false;
	} else {
		gel(x).innerHTML = "确认密码正确，请继续！";
		gel(x).className = 'true';
		reg_3 = 1;
		return false;
	}
}

// 检测真实姓名
function check_real(x) {
	
	gel("info13").className = "blur noback";
	gel("info13").innerHTML = "";
	
	var form = gel("form");
	if(form.RealName.value.length > 0 && (P.Tlength(form.RealName.value) < 3 || P.Tlength(form.RealName.value) > 20)) {
		message = "真实姓名长度为3-20个字符，请重新输入真实姓名！";
		gel(x).innerHTML = message;
		gel(x).className = "fall";
		return false;
	}
	
	var rex = form.RealName.value.charAt(0).match(/^([\u4e00-\u9fa5])|[a-zA-Z]$/);
	if (form.RealName.value.length > 0 && rex == null)
	{
		message = "真实姓名输入错误，请以字母开！";
		gel(x).innerHTML = message;
		gel(x).className = "fall";
		return false;
	}
	
	rex = form.RealName.value.match(/^([\u4e00-\u9fa5])*(\w)*|(\w)*$/);
	if (form.RealName.value.length > 0 && rex == null)
	{
		message = "真实姓名应该是数字、字母、汉字、下划线、连字符号，不允许出现空格、点等其他字符，请重新输入真实姓名！";
		gel(x).innerHTML = message;
		gel(x).className = "fall";
		return false;
	}
	
	if (form.RealName.value.length > 0 && !CheckBad(form.RealName.value))
	{
	    message = "真实姓名包含敏感字，请重新输入！";
		gel(x).innerHTML = message;
		gel(x).className = "fall";
		return false;
	}

	message = "真实姓名格式正确！";
	gel(x).innerHTML = message;
	gel(x).className = "true";
	reg_13 = 1;
}

// 检测身份证
function check_idcard(x) {
	
	gel("info14").className = "blur noback";
	gel("info14").innerHTML = "";
	
	var form = gel("form");
	if(form.UidCard.value.length > 0 && !P.IsIdCard(form.UidCard.value)) {
		message = "身份证号码格式不正确，请重新输入！";
		gel(x).innerHTML = message;
		gel(x).className = "fall";
		return false;
	}
	
	var reg = register.ExistIDCRAD($('UidCard').value).value;
	if (form.UidCard.value.length > 0 && reg)
	{
	    message = "身份证号码已被注册，请重新输入！";
		gel(x).innerHTML = message;
		gel(x).className = "fall";
		return false;
	}

	message = "身份证号码格式正确！";
	gel(x).innerHTML = message;
	gel(x).className = "true";
	reg_14 = 1;
}

// 检测出生年
function checkbirthday(x){
	var form = gel("form");
	if(form.birthdayTxt.value == '' || form.birthdayTxt.value == null) {
		message = "出生日期没有输入！";
		gel(x).innerHTML = message;
		gel(x).className = "fall";
		return false;
	} else {
		gel(x).innerHTML = "出生日期选择正确，请继续！";
		gel(x).className = 'true';
		reg_6 = 1;
		return false;
	}
}

//检测联系电话
function checkpass3_1(x){
	var form = gel("form");
	var txtPhone = form.txtPhone.value;
	var re = txtPhone.match(/(\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{8})|(\d{4}|\d{3})-(\d{8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{8})-(\d{4}|\d{3}|\d{2}|\d{1}))$/);
	
	if(txtPhone.length > 0 && re == null) {
		gel(x).innerHTML = "联系电话格式不正确，请重新输入！";
		gel(x).className = 'fall';
		return false;
	} else {
		gel(x).innerHTML = "联系电话输入正确，请继续！";
		gel(x).className = 'true';
		reg_4 = 1;
		return false;
	}
}

//检测固定电话
function checkpass3(x){
	var form = gel("form");
	var txtPhone = form.txtgPhone.value;
	var re = txtPhone.match(/^((\d{8})|(\d{4}|\d{3})-(\d{8})|(\d{4}|\d{3})-(\d{8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{8})-(\d{4}|\d{3}|\d{2}|\d{1}))$/);
	
	if(txtPhone.length <= 0) {
		gel(x).innerHTML = "认证电话不能为空，请重新输入！";
		gel(x).className = 'fall';
		return false;
	} else if(re == null) {
		gel(x).innerHTML = "认证电话格式不正确，请重新输入！";
		gel(x).className = 'fall';
		return false;
	} else {
		gel(x).innerHTML = "认证电话输入正确，请继续！";
		gel(x).className = 'true';
		reg_5 = 1;
		return false;
	}
}

function check_code(x) {
	
//	gel("info15").className = "blur noback";
//	gel("info15").innerHTML = "";
//	
//	var form = gel("form");
//	if(form.txtVerify.value.length < 5) {
//		message = "验证码长度为5！";
//		gel(x).innerHTML = message;
//		gel(x).className = "fall";
//		return false;
//	}
//	else if (!checkCode(form.txtVerify.value))
//	{
//	    message = "输入验证码不正确！";
//		gel(x).innerHTML = message;
//		gel(x).className = "fall";
//		return false;
//	}
//	else
//	{
//	    gel(x).innerHTML = "输入验证码正确！";
//		gel(x).className = 'true';
//		reg_15 = 1;
//		return false;
//	}
}

/****************************************************************验证结束*********************************************************************************/

//服务条款
function check_service(x) {
	var form = gel("form");
	if(form.service.checked == false) {
		gel(x).innerHTML = "你必须同意服务条款才能完成注册！";
		gel(x).className = 'fall';
	} else {
		gel(x).innerHTML = "";
		gel(x).className = 'none';
		reg_8 = 1;
	}
}
//检测表单数据完整性
function fCheck(){
	//info1		用户?
	//info2		用户名检?
	//info3		密码
	//info4		二次密码
	//info5		生日
	//info6		地区
	//info7		联系点哈
	//info8		固定电话
	//info9		邮件地址
	check_user('info1');
	checkpass1('info3');
	checkpass2('info4');
//	check_real("info13");
//    check_idcard("info14");
//	checkbirthday('info5');
//	checkpass3_1('info7');
//	checkpass3('info8');
//	check_service('info11');
	checkemail('info12');
	check_code('info15');


	if(reg_1 == 0){
		gel("info1").className = 'fall';
		$("UserName").select();
		$("UserName").focus();
		return false;
	}else if(reg_2 == 0){
		gel("info3").className = 'fall';
		$("txtPassWord").select();
		$("txtPassWord").focus();
		return false;
	}else if(reg_3 == 0){
		gel("info4").className = 'fall';
		$("txtConfirmPW").select();
		$("txtConfirmPW").focus();
		return false;
//	}else if (reg_13 == 0){
//	    gel("info13").className = 'fall';
//		$("RealName").select();
//		$("RealName").focus();
//		return false;
//	}else if (reg_14 == 0){
//	    window.setTimeout('gel("info14").className = "fall"', 50);
//		$("UidCard").select();
//		$("UidCard").focus();
//		return false;
//	}else if(reg_15 == 0) {
//	    gel("info15").className = 'fall';
//		$("txtVerify").select();
//		$("txtVerify").focus();
//		return false;
//	}else if(reg_9 == 0) {
//		gel("info12").className = 'fall';
//		$("txtEmail").select();
//		$("txtEmail").focus();
//		return false;
//	}else if(reg_6 ==0){
//		gel("info5").className = 'fall';	
//		$("birthdayTxt").select();
//		$("birthdayTxt").focus();
//		return false;
//	}else if(reg_4 == 0){
//		gel("info7").className = 'fall';
//		$("txtPhone").select();
//		$("txtPhone").focus();
//		return false;
//	}else if(reg_5 == 0){
//		gel("info8").className = 'fall';
//		$("txtgPhone").select();
//		$("txtgPhone").focus();
//		return false;
//	}else if(reg_8 == 0){
//		gel("info11").className = 'fall';
//		return false;	
	}else {		
	    //$("").disbaled = "disbaled";
		return true;
	}
}

//AJAX check
function checkUsername(x){
	var form = gel("form");
	var username = form.UserName.value;
	if( reg_1 = 0 || username == "" || username == null ) {
		gel(x).innerHTML = "请先填写用户名！";
		gel(x).className = "fall";
		gel("UserName").focus();
		return;
	}
	message = "正在检测中，请稍...";
	gel(x).innerHTML = message;
	gel(x).className = "focus";

	window.setTimeout('doCheck("'+username+'")',500);
}
function doCheck(username) {
	if (window.XMLHttpRequest) {
		req = new XMLHttpRequest();
		req.onreadystatechange = processChech;
		req.open("GET", "http://urs.56.com/check.php?username="+username, true);
		req.send(null);
	} else if (window.ActiveXObject) {
		req = new ActiveXObject("Microsoft.XMLHTTP");
		if (req) {
			req.onreadystatechange = processChech;
			req.open("GET", "http://urs.56.com/check.php?username="+username, true);
			req.send();
		}
	}
}
function processChech() {
	if (req.readyState == 4) {
		var content = gel("info2");
		if (req.status == 200) {
			content.innerHTML = req.responseText;
			if(req.responseText.indexOf("还没有被注册") != -1){
				content.className = "true";
			}else{
				content.className = "fall";
				gel("UserName").focus();
			}
		} else {
			content.innnerHTML = "用户名检查服务暂时不能使用，不过您可以继续申请！";
			content.className = "true";
		}
	}
}
function fGetCode() {
	var gNow = new Date();
	gel('imgCount').src="http://urs.56.com/GetImage.php?x="+gNow.getSeconds();
}

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 checkemail(x) {
//	var form = gel("form");
//	if(form.txtEmail.value.length <= 0) {
//		gel(x).innerHTML = "请填写电子邮件地址！";
//		gel(x).className = 'fall';
//		reg_9 = 0;
//		return false;
//	}
//	else if(!emailValidate(form.txtEmail.value)) {
//		gel(x).innerHTML = "请填写正确的电子邮件地址！";
//		gel(x).className = 'fall';
//		reg_9 = 0;
//		return false;
//	} else {
//		gel(x).innerHTML = "电子邮件地址正确，请继续！";
//		gel(x).className = 'true';
//		reg_9 = 1;
//		return false;
//	}
}
function checkOldValue() {
	
	if(b_username){
		gel("UserName").value = b_username;
		gel("info1").className = 'true';
		gel("info1").innerHTML = "用户名格式正确，请继续！";
		reg_1 = 1;
	}
	if(b_year && b_month && b_day ){
		gel("form").txtYear.value = b_year;
		gel("form").txtMonth.value = b_month;
		gel("form").txtDay.value = b_day;
		gel("info5").innerHTML = "出生日期选择正确，请继续！";
		gel("info5").className = 'true';
		reg_6 = 1;
	}
	if(b_email ) {
		gel("txtEmail").value = b_email;
		gel("info12").className = 'true';
		gel("info12").innerHTML = "电子邮件地址正确，请继续！";
		reg_9 = 1;
	}			
}

window.onload = function(){
	
	if(msg_username.length>1){
		gel("info1").className = "blur";
		gel("info1").innerHTML = msg['info1'];
		gel("info2").innerHTML = msg_username;
		gel("info2").className = "fall";
		reg_1 = 0;	
	}
	/*
	b_username = "test_xxx";
	b_year = "1986";
	b_month = "4";
	b_day = "7";
	b_email = "test_xxx@js118114.com";
	b_question = "您的启蒙老师叫什?;
	b_answer = "葛test"
	*/
	try{checkOldValue();}catch(e){}
}

function Agree(obj)
{
	if (obj.checked)
	{
	    $('sub').disabled = "";
	}
	else
	{
	    $('sub').disabled = "disabled";
	}
}

function keyEvent()
{
    $("birthdayTxt").select();
    return false; 
}
