var oAjaxCheckName;
var oAjaxCheckEmail;
var oAjaxCheckAuth;

//登录验证参数 bool类型
var bName = false;
var bPwd = false;
var bEmail = false;
var bVerifyCode = false;
var bRealName = false;
var bIDNumber = false;
	
/**
 * 刷新验证码
 */
function refreshAuth(){
	var ran = Math.random();
	document.getElementById('authImg').src = 'operator/ranImg.php?ran=' + ran;
}

function checkIdNumber(){
	var uName = getEle('regidnum').value;
	if(uName.match(/^(\d{18,18}|\d{15,15}|\d{17,17}[x|X])$/) == null){
	    getEle('regidnumSpan').innerHTML = "<img src='../images/check_error.gif' /><span>身份证号由15或18位组成,请正确填写。</span>";
		bIDNumber = false;
		return ;
	} else {
		getEle('regidnumSpan').innerHTML = "<img src='../images/check_right.gif' />";
		bIDNumber = true;
	}
}///~checkIdNumber()

function checkRealName(){
	var uName = getEle('regrealname').value;
	if(uName==''){
		getEle('regrealnameSpan').innerHTML = "<img src='../images/check_error.gif' /><span>真实姓名由2-4个汉字组成。</span>";
		bRealName = false;
		return ;
	}
	if(uName.match(/^[\u4e00-\u9fa5]{2,4}$/g) == null){
	    getEle('regrealnameSpan').innerHTML = "<img src='../images/check_error.gif' /><span>真实姓名由2-4个汉字组成。</span>";
		bRealName = false;
		return ;
	} else {
		getEle('regrealnameSpan').innerHTML = "<img src='../images/check_right.gif' />";
		bRealName = true;
	}
}///~checkRealName()

/**
 * 判断用户名是否合法,
 * 合法的话,进一步发送请求验证,该用户是否被注册过
 */
function checkUserReq(){
	var uName = getEle('registerName').value;
	if(uName==''){
		getEle('nameSpan').innerHTML = "<img src='../images/check_error.gif' /><span>用户名4-14个字符，以字母开头，且必须为数字，字母或下划线</span>";
		bName = false;
		return ;
	}
	if(uName.match(/^[A-Za-z][A-Za-z0-9_]{3,14}$/g) == null){
	    getEle('nameSpan').innerHTML = "<img src='../images/check_error.gif' /><span>用户名4-14个字符，以字母开头，且必须为数字，字母或下划线</span>";
		bName = false;
		return ;
	}
	//合法用户名
	if(!legalUserName(uName)){
		bName = false;
		getEle('nameSpan').innerHTML = "<img src='../images/check_error.gif' /><span>您输入用户名含有非法字符！</span>";
		return ;
	//用户名合法,ajax发送请求
	}else{
		oAjaxCheckName = AJAX_objRedefine(oAjaxCheckName);
		var params = 'userName=' + uName + "&ran=" + Math.random();
		var url = 'operator/checkUser.php';
		AJAX_sendRequestByPost(oAjaxCheckName,url,params,checkUser);	
	}
	
}///~checkUser()

function checkUser(){
	if(oAjaxCheckName.readyState == 4 && oAjaxCheckName.status == 200){
		var result = AJAX_getResponseText(oAjaxCheckName);
		var oDomNameSpan = getEle('nameSpan');
		//用户存在
		if(result == 2){
			bName = false;
			oDomNameSpan.innerHTML = "<img src='../images/check_error.gif' /><span>用户名不合法</span>";
		//用户不存在,可以注册
		}else if(result == 1){
			oDomNameSpan.innerHTML = "<img src='../images/check_right.gif' />";
			bName = true;
		}else if(result == 3){
			bName = false;
			oDomNameSpan.innerHTML = "<img src='../images/check_error.gif' /><span>包含不允许注册的词语</span>";
		
		}else if(result == 4){
			bName = false;
			oDomNameSpan.innerHTML = "<img src='../images/check_error.gif' /><span>用户名已被使用</span>";
		}
	}
}///~checkUser()


/**
 * 验证email,需要传入参数name,pwd,email
 */ 
function checkEmailReq(){
	oAjaxCheckEmail = AJAX_objRedefine(oAjaxCheckEmail);
	var email = getEle('mail').value;
	var oDOMEmailSpan = getEle('emailSpan');
	if( email == ''){
		bEmail = false;
		oDOMEmailSpan.innerHTML = '';
		return false;
	}
	if( !isEmail(email) ){
		bEmail = false;
		oDOMEmailSpan.innerHTML = "<img src='../images/check_error.gif' /><span>邮箱地址格式不正确<span>";
		return false;
	}
	//用户输入均合法
	var params = '&email=' + email + '&ran=' + Math.random();
	var url = 'operator/checkEmail.php';
	AJAX_sendRequestByPost(oAjaxCheckEmail,url,params,checkEmail);
}///~checkEmailReq()

/**
 * 
 */
function checkEmail(){
	if(oAjaxCheckEmail.readyState == 4 && oAjaxCheckEmail.status == 200){
		var oDOMEmailSpan = getEle('emailSpan');
		var result = AJAX_getResponseText(oAjaxCheckEmail);
		//email没有被使用过
		if(result == 2){
			bEmail = false;
			oDOMEmailSpan.innerHTML = "<img src='../images/check_error.gif' /><span>Email 格式有误<span>";
		}else if(result == 1){
			oDOMEmailSpan.innerHTML = "<img src='../images/check_right.gif' />";
			bEmail = true;
		}else if(result == 3){
			bEmail = false;
			oDOMEmailSpan.innerHTML = "<img src='../images/check_error.gif' /><span>Email 不允许注册<span>";
		}else if(result == 4){
			bEmail = false;
			oDOMEmailSpan.innerHTML = "<img src='../images/check_error.gif' /><span>邮箱地址已经被使用<span>";
		}
	}
}///~checkEmail()


/**
 * js 验证用户密码
 */
function checkPwd(){
	var pwd = getEle('registerPwd').value;
	var rePwd = getEle('repwd').value;
	var oDOMPwdSpan = getEle('pwdSpan');
	var oDOMRePwdSpan = getEle('repwdSpan');
	//2个密码都没有填写
	if( (pwd == '') && (rePwd == '')){
		oDOMPwdSpan.innerHTML = '';
		oDOMRePwdSpan.innerHTML = '';
		return false;
	//填写了密码没有填密码确认
	}else if((pwd != '') && (rePwd == '')){
	    if(pwd.length < 4 || pwd.length > 10){
	        oDOMPwdSpan.innerHTML = "<img src='../images/check_error.gif' /><span>密码长度4-10个字符<span>";
			oDOMRePwdSpan.innerHTML = "";
			return false;    
	    }
	//密码 只填写了确认密码
	}else if((pwd == '') && (rePwd != '')){
		oDOMPwdSpan.innerHTML = "<img src='../images/check_error.gif' /><span>密码不能为空<span>";
		return false;
	//2个密码都填了
	}else{
		if(pwd.length < 4 || pwd.length > 10){
			oDOMPwdSpan.innerHTML = "<img src='../images/check_error.gif' /><span>密码长度4-10个字符<span>";
			oDOMRePwdSpan.innerHTML = "";
			return false;
		}else {
			if(pwd != rePwd ){
				oDOMPwdSpan.innerHTML = "<img src='../images/check_right.gif' />";
				oDOMRePwdSpan.innerHTML = "<img src='../images/check_error.gif' /><span>确认密码不一致<span>";
				return false;
			}else{
				oDOMPwdSpan.innerHTML = "<img src='../images/check_right.gif' />";
				oDOMRePwdSpan.innerHTML = "<img src='../images/check_right.gif' />";
				return true;
			}
		}
	}
	return true;
}///~checkPwd()


/**
 * 验证码匹配请求
 */
function checkAuthReq(){
	oAjaxCheckAuth = AJAX_objRedefine(oAjaxCheckAuth);
	var verifyCode = getEle('verify').value;
	if(verifyCode != ''){
		var url = 'operator/checkAuth.php';
		var params = 'verCode=' + verifyCode + "&ran=" + Math.random();
		AJAX_sendRequestByPost(oAjaxCheckAuth,url,params,checkAuth);
	}else{
		bVerifyCode = false;
	}
}///~checkAuthReq()


/**
 * 
 */
function checkAuth(){
	if(oAjaxCheckAuth.readyState == 4 && oAjaxCheckAuth.status == 200){
		var oDOMVerifySpan = getEle('verifySpan');
		var result = AJAX_getResponseText(oAjaxCheckAuth);
		//alert('result = ' + result);
		//匹配
		if(result == 1){
			bVerifyCode = true;
			oDOMVerifySpan.innerHTML="<img src='../images/check_right.gif' />";
		//不匹配
		}else if(result == 2){
			bVerifyCode = false;
			oDOMVerifySpan.innerHTML="<img src='../images/check_error.gif' /><span>验证码错误<span>";
		//会话中不存在验证码
		}else if(result == 3){
			bVerifyCode = false;
			oDOMVerifySpan.innerHTML="<img src='../images/check_error.gif' /><span>验证码未知<span>";
		}else{
			bVerifyCode = false;
			oDOMVerifySpan.innerHTML='';
		}
	}
}///~checkAuth()


/**
 * 注册信息填写验证
 */
function register_validate(){
    getEle('rgFailSpan').innerHTML=""; 
	var name = getEle('registerName').value;
	var pwd =  getEle('registerPwd').value;
	var rePwd = getEle('repwd').value;
	var email = getEle('mail').value;
	var verify = getEle('verify').value;
	bPwd = checkPwd();
	if( !bName){
		alert('请输入或更换用户名');
		return false;
	}else if(!bPwd){
		alert('密码设置有误');
		return false;
	}else if(!bEmail){
		alert('请正确填写邮箱地址');
		return false;
	}else if(!bRealName){
		alert('请正确填写真实姓名');
		return false;
	}else if(!bIDNumber){
		alert('请正确填写身份证号码');
		return false;
	}else if( verify == ''){
		alert('验证码不能为空');	
		return false;
	}
	return true;								
}///~register_validate()




///ajaxFun .js
/**
 *	获得 xmlHttpRequest对象函数
 */
function AJAX_getXMLHTTPRequest(){
	var xRequest = null;    
    if(window.XMLHttpRequest){
        xRequest = new XMLHttpRequest();
    }
    else if(typeof ActiveXObject != 'undefined'){
        xRequest = new ActiveXObject('Msxml2.XMLHTTP');
        //xRequest = new ActiveXObject('Microsoft.XMLHTTP');
    }
    return xRequest;
}///~getXMLHTTPRequest()


/**
 * xmlHttp对象 重新初始化,
 * 原因: IE的缓存, 导致onreadystatechange 的状态不会触发
 */
function AJAX_objRedefine(xmlHttp){
	//已经初始化过的话
	if(xmlHttp != null){
		xmlHttp = null;
		xmlHttp = AJAX_getXMLHTTPRequest();
	}else{
		xmlHttp = AJAX_getXMLHTTPRequest();
	}
	return xmlHttp;
}///~AJAX_objRedefined()

/**
 * xmlHttp对象按照post方法发送请求
 * @param onchangeMethod : 状态改变时候  触发的请求
 */
function AJAX_sendRequestByPost(xmlHttp,url,params,onchangeMethod){
	//重新初始化xmlhttp对象
	//AJAX_objRedefine(xmlHttp);
	if(onchangeMethod != null){
		xmlHttp.onreadystatechange = onchangeMethod;
	}
	xmlHttp.open('POST',url,true);
	xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	xmlHttp.send(params);
}//~AJAX_sendRequestByPost()


/**
 * xmlHttp对象按照get方法发送请求
 */
function AJAX_sendRequestByGet(xmlHttp,url,onchangeMethod){
	//重新初始化xmlhttp对象
	//AJAX_objRedefine(xmlHttp);
	if(onchangeMethod != null){
		xmlHttp.onreadystatechange = onchangeMethod;
	}
	xmlHttp.open('GET',url,true);
	xmlHttp.send(null);
}///~AJAX_sendRequestByGet()

/**
 * 获得xmlHttp对象从服务器取得的text 文本
 */
function AJAX_getResponseText(xmlHttp){
	var text = xmlHttp.responseText;
	return text;
}///~AJAX_getResponseText

/**
 * 获得xmlHttp对象从服务器取得的xml 文本
 */
function AJAX_getResponseXML(xmlHttp){
	var xml = xmlHttp.responseXML;
	return xml;
}///~AJAX_getResponseXML()











