﻿var infoboxOkClass		= "notetrue";
var infoboxWarningClass	= "notetrue";
var infoboxErrorClass	= "noteawoke";
var infoboxHintClass	= "note";
var inputWarningClass	= "note";
var inputErrorClass		= "noteawoke";
var inputOkClass		= "notetrue";
var inputNormalClass	= "note";
var UserName = 0;

//显示相关提示信息
function InitForm(DivName){
   var infobox;
	var x = document.getElementById(DivName);
	if(!x) return;
	var y = x.getElementsByTagName("input");
	for (var i = 0 ; i < y.length ; i++){
		if(y[i].type == 'text' || y[i].type == 'password'){
			initStatus(y[i],true);
			y[i].onfocus = getFocus;
			y[i].onblur = lostFocus;
		}	
	}
}

function initStatus(obj,isInput){
	var infobox = getInfobox(obj);
	if(infobox && infobox.innerHTML == ""){
		infobox.className	= infoboxHintClass;
		infobox.innerHTML	= getErrorMsg(obj,0);
	}	
}

function getDatatype(obj){
	if(obj.id){
		if(eval(obj.id).r) return eval(obj.id).r;
	}
	return false;
}

function showInfo(obj,errorCode,forcible) {
   var infobox = getInfobox(obj);
	if(infobox){
		if(infobox.className != infoboxErrorClass){
		    if(errorCode == 0 ){
				infobox.innerHTML = getErrorMsg(obj,errorCode);
				if(infobox.innerHTML != '&nbsp;'){
				    infobox.className	= infoboxWarningClass;
				}
			}
			if(errorCode > 0){
				infobox.className	= infoboxErrorClass;
				infobox.innerHTML	= getErrorMsg(obj,errorCode);
			}
			if(errorCode < 0) {
				infobox.className	= infoboxHintClass;
			}
		}
	}	
}
function getErrorMsg(obj,errorCode){

	if(obj.id){
		if(eval(obj.id).e[errorCode]) return eval(obj.id).e[errorCode];
	}
	return;
}

function getFocus(evnt) {
	var obj;
	if (isIE()) {
		obj = event.srcElement;
	}
	else {
		obj = evnt.target;
	}
	showInfo(obj,0);
}
function lostFocus(evnt)
{
	var obj;
	if (isIE()) {
		obj = event.srcElement;
	}else {
		obj = evnt.target;
	}
	showInfo(obj,-1);
	errorCode = validateValue(obj);
	if(errorCode == 0){
		if(obj.id){
			if(obj.id == "UserName"){
				document.getElementById(eval(obj.id).i).className = 'note';
				document.getElementById(eval(obj.id).i).innerHTML = "检测中，请稍等...";
				ExistsUserName();
			}
			else if(obj.id == "NickName"){
				document.getElementById(eval(obj.id).i).className = 'note';
				document.getElementById(eval(obj.id).i).innerHTML = "检测中，请稍等...";
				ExistsNickName();
			}
			else if(obj.id == "VerifyCode"){
				document.getElementById(eval(obj.id).i).className = 'note';
				document.getElementById(eval(obj.id).i).innerHTML = "检测中，请稍等...";
				CheckXmlHttpVerifyCode();
			}
			else{
				document.getElementById(eval(obj.id).i).className = 'note';
				document.getElementById(eval(obj.id).i).innerHTML = '填写正确。'
			}
		}	
	}
	if(errorCode == 1){
		
		if(obj.id){
			if(eval(obj.id).i && document.getElementById(eval(obj.id).i)){
				document.getElementById(eval(obj.id).i).className = 'noteawoke';
			}
			document.getElementById(eval(obj.id).i).innerHTML = (eval(obj.id).e)[errorCode];
		}
	}
}

function formEle(required,infobox,errormsg){
	this.r	= required;	
	this.i	= infobox;
	this.e	= errormsg;
} 
//var UserName = new formEle("UserName","UserName_Info",msgUserName);


function getInfobox(obj){
	if(obj.id){
		if(eval(obj.id).i && document.getElementById(eval(obj.id).i)) 
		{
			return document.getElementById(eval(obj.id).i);
		}
	}
	return;
}


function getInitStatus(obj){
	if(obj.id){
		if(eval(obj.id).s || eval(obj.id).s==0 ) return eval(obj.id).s;
	}
	return;
}

function isIE() {
	if(document.all) return true;
	return false;
}

function validateValue(obj){
	var errorCode = -1;
	switch(getDatatype(obj)){
		case "UserName":
			errorCode = CheckUserName(obj);
			break;
		case "UserPassword":
			errorCode = CheckUserPassword(obj);
			break;
		case "UserCheckPassword":
			errorCode = CheckCUserPassword(obj);
			break;
		case "NickName":
			errorCode = CheckNickName(obj);
			break;
		case "UserEmail":
			errorCode = CheckUserEmail(obj);
			break;
		case "JobUnit":
			errorCode = CheckJobUnit(obj);
			break;
		case "UserPhone":
			errorCode = CheckUserPhone(obj);
			break;
		case "UserQuestion":
			errorCode = CheckUserQuestion(obj);
			break;
		case "UserAnswer":
			errorCode = CheckUserAnswer(obj);
			break;
		case "VerifyCode":
			errorCode = CheckVerifyCode(obj);
			break;
		default:
			errorCode = -1;
			break;
	}
	return errorCode;
}


//只能输入3-20个以字母、数字、“_”、“.”的字串													
function CheckUserName(obj){
	var str = obj.value;
	var patn =   /^([a-zA-Z0-9])+$/; 
	if(!checkByteLength(str,3,20)) 
		return 1;
	if(!patn.test(str)){
		return 1;
	}
	return 0; 
}

//判断是否为电话号码
function IsTel(s){
	var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
	if (!patrn.exec(s)) return false;
	return true;
}

//判断用户名是否已注册
function ExistsUserName(){
    var obj = GetObject("UserName");
	var UserName_v = obj.value;
	var errUserName = new Array();
	errUserName[0] = 'aaaday';
	errUserName[1] = 'admin';
	errUserName[2] = 'administrator';
	errUserName[3] = 'xmlhttp';
	errUserName[4] = 'js';
	errUserName[5] = 'template';
	errUserName[6] = 'blog';
	errUserName[7] = 'bin';
	errUserName[8] = 'con';
	errUserName[9] = 'prn';
	for (var i = 0 ; i < errUserName.length ; i++) {
	    if (UserName_v.toLowerCase() == errUserName[i]) {
	        document.getElementById(eval(obj.id).i).className = 'noteawoke';
		    document.getElementById(eval(obj.id).i).innerHTML = '该用户名已经存在，请选择其它用户名。';
	    }
	}
	var xmlHttp = GetXmlHttp();
	xmlHttp.onreadystatechange = function(){
		if(xmlHttp.readyState == 4 && xmlHttp.status == 200){ 
			var v = xmlHttp.responseText;		
			if(v == "1"){
				document.getElementById(eval(obj.id).i).className = 'noteawoke';
				document.getElementById(eval(obj.id).i).innerHTML = '该用户名已经存在，请选择其它用户名。';
			}		
			else{
				document.getElementById(eval(obj.id).i).className = 'note';
				document.getElementById(eval(obj.id).i).innerHTML = '该用户可以注册。';
			}
		}
	}
	var Url = "/XmlHttp/User/IsFindUserName.Aspx?UserName=" + UserName_v;
	xmlHttp.open("GET",Url,true);
	xmlHttp.send(null);
}

//判断昵称是否已注册
function ExistsNickName(){
	var obj = GetObject("NickName");
	var NickName_v = obj.value;
	var xmlHttp = GetXmlHttp();
	xmlHttp.onreadystatechange = function(){
	    if(xmlHttp.readyState == 4 && xmlHttp.status == 200){ 
			var v = xmlHttp.responseText;				
				if(v == "1"){
					document.getElementById(eval(obj.id).i).className = 'noteawoke';
					document.getElementById(eval(obj.id).i).innerHTML = '该昵称已经被人强先使用，请重新选择一个。';
				}		
				else{
					document.getElementById(eval(obj.id).i).className = 'note';
					document.getElementById(eval(obj.id).i).innerHTML = '该昵称可以注册。';
				}
		} 
	}
	var Url = "/XmlHttp/User/IsFindNickName.Aspx?NickName=" + NickName_v;
	xmlHttp.open("GET",Url,true);
	xmlHttp.send(null);
}

//审核登陆密码
function CheckUserPassword(obj){
	var str = obj.value;
	if((str.length < 6) || (str.length > 20))
		return 1;
	else
		return 0;
}

//审核确认密码
function CheckCUserPassword(obj){
	var str = obj.value;
	if(str.length < 6)
		return 1;
	if(str != document.getElementById("UserPassword").value)
		return 1;
	else
		return 0;
}

//审核登陆呢称
function CheckNickName(obj){
	var str = obj.value;
	if(str.length < 1)
		return 1;
	else
		return 0;
}

//审核联系邮箱
function CheckUserEmail(obj){
	var str = obj.value;
	var patn = /^[_a-zA-Z0-9\-]+(\.[_a-zA-Z0-9\-]*)*@[a-zA-Z0-9\-]+([\.][a-zA-Z0-9\-]+)+$/;
	if(patn.test(str)){
		
		return 0;
	}else{
		return 1;
	}
}

//审核联系电话
function CheckUserPhone(obj){
	var str = obj.value;
	if(str.length < 1)
		return 1;
	else
		return 0;
} 

//审核公司名称
function CheckJobUnit(obj){
	var str = obj.value;
	if(str.length < 1)
		return 1;
	else
		return 0;
} 

//审核提示问题
function CheckUserQuestion(obj){
	var str = obj.value;
	if(str.length < 1)
		return 1;
	else
		return 0;
} 

//审核提示答案
function CheckUserAnswer(obj){
	var str = obj.value;
	if(str.length < 1)
		return 1;
	else
		return 0;
}

//审核验证码
function CheckVerifyCode(obj){
	var str = obj.value;
	str = str.toLowerCase();
	if(str.length != 4)
		return 1;
	else
		return 0;
}

//审核输入的验证码
function CheckXmlHttpVerifyCode(){
	var obj = GetObject("VerifyCode");
	var VerifyCode_v = obj.value;
	VerifyCode_v = VerifyCode_v.toLowerCase();
	var xmlHttp = GetXmlHttp();
	xmlHttp.onreadystatechange = function(){
		if(xmlHttp.readyState == 4 && xmlHttp.status == 200) {
		    if(xmlHttp.responseText == VerifyCode_v){
				document.getElementById(eval(obj.id).i).className = 'note';
				document.getElementById(eval(obj.id).i).innerHTML = '填写正确。'
			}
			else{
				document.getElementById(eval(obj.id).i).className = 'noteawoke';
				document.getElementById(eval(obj.id).i).innerHTML = '验证码错误。'
			}
		}
	}
	var Url = "/XmlHttp/User/GetVerifyCode.Aspx";
	xmlHttp.open("post",Url,true);
	xmlHttp.send();
}

//获取新的验证码
function GetNewVerifyCode()
{
	document.getElementById("Code").src = "../manager/GetCode.Aspx?VerifyCode=" + timenow;
}


function checkByteLength(str,minlen,maxlen) {
	if(str == null) 
		return false;
	var l = str.length;
	var blen = 0;
	for(i = 0 ; i < l ; i++){
		if((str.charCodeAt(i) & 0xff00) != 0){
			blen ++;
		}
		blen ++;
	}
	if (blen > maxlen || blen < minlen){
		return false;
	}
	return true;
}

function showVerifyCode() {
    document.getElementById("showVerifyCode").src = "/User/VerifyCode.Aspx?" + Math.random();
}


var msgUserName = new Array('注册用户名长度3-20个英文字母或数字，不区分大小写。','<span class=\"R\">您的填写有误。<\/span>注册用户名长度3-20个英文字母或数字。');
var msgNickName = new Array('请输入您的昵称。','<span class=\"R\">请输入您的昵称。<\/span>'); 
var msgUserPassword = new Array('请输入会员登陆密码；密码长度为6-20位。','<span class=\"R\">您设置的密码有误。<\/span>密码由6-20个英文字母(区分大小写)或数字组成');
var msgUserCheckPassword = new Array('请输入和上面一样的密码。','<span class=\"R\">两次输入的密码不一致；或者原始密码输入错误；<\/span>请再输入一遍您上面填写的密码。');
var msgUserEmail = new Array('请输入正确的电子邮箱。','<span class=\"R\">输入的电子邮箱错误。<\/span>');
var msgJobUnit = new Array('请输入所属公司','<span class=\"R\">请输入您的所在的公司。<\/span>');
var msgPersonName = new Array('请输入联系人','<span class=\"R\">请输入能联系到你的人。<\/span>');
var msgUserPhone= new Array('请输入联系电话。','<span class=\"R\">请输入您的联系电话。<\/span>');
var msgUserHandset = new Array('请输入手机号码。','<span class=\"R\">请输入手机号码。<\/span>');
var msgUserQuestion = new Array('请输入密码提示问题，可以为你找回丢失的密码。','<span class=\"R\">输入的密码提示问题不能为空。<\/span>');
var msgUserAnswer = new Array('请输入密码提示问题答案，请记住提示答案。','<span class=\"R\">密码提示问题答案不能为空，请重新输入。<\/span>');
var msgVerifyCode = new Array('请输入注册验证码，可以不区分大小写。','<span class=\"R\">验证码错误。<\/span>');


var UserName = new formEle("UserName","UserName_Info",msgUserName);
var UserPassword = new formEle("UserPassword","UserPassword_Info",msgUserPassword);
var UserCheckPassword = new formEle("UserCheckPassword","UserCheckPassword_Info",msgUserCheckPassword);
var NickName = new formEle("NickName","NickName_Info",msgNickName);
var UserEmail = new formEle("UserEmail","UserEmail_Info",msgUserEmail);
var JobUnit = new formEle("JobUnit","JobUnit_Info",msgJobUnit);
var PersonName = new formEle("PersonName","PersonName_Info",msgPersonName);
var UserPhone = new formEle("UserPhone","UserPhone_Info",msgUserPhone);
var UserHandset = new formEle("UserHandset","UserHandset_Info",msgUserHandset);
var UserQuestion = new formEle("UserQuestion","UserQuestion_Info",msgUserQuestion);
var UserAnswer = new formEle("UserAnswer","UserAnswer_Info",msgUserAnswer);
var VerifyCode = new formEle("VerifyCode","VerifyCode_Info",msgVerifyCode);

//判断表单信息
function checkRegister(){
    var errorCode = -1;
	var obj = null;
	var IsFindErr = false;
	//判断会员登录名称
	obj = GetObject("UserName");
	errorCode = CheckUserName(obj);
	if(errorCode == 0){		
		ExistsUserName();		
		var Str = document.getElementById(eval(obj.id).i).className;		
		if(Str == "noteawoke"){			
			IsFindErr = true;
		}	
	}	
	else if(errorCode == 1){
        IsFindErr = true;
        if(obj.id){
		    if(eval(obj.id).i && document.getElementById(eval(obj.id).i)){
			    document.getElementById(eval(obj.id).i).className = 'noteawoke';
		    }
		    document.getElementById(eval(obj.id).i).innerHTML = (eval(obj.id).e)[errorCode];
		}
	}
	//判断会员登录密码
	obj = GetObject("UserPassword");
	errorCode = CheckUserPassword(obj);
	if(errorCode == 1){
		IsFindErr = true;
		if(obj.id){
			if(eval(obj.id).i && document.getElementById(eval(obj.id).i)){
				document.getElementById(eval(obj.id).i).className = 'noteawoke';
			}
			document.getElementById(eval(obj.id).i).innerHTML = (eval(obj.id).e)[errorCode];
		}
	}
	//判断会员确认密码
	obj = GetObject("UserCheckPassword");
	errorCode = CheckCUserPassword(obj);
	if(errorCode == 1){
		IsFindErr = true;
		if(obj.id){
			if(eval(obj.id).i && document.getElementById(eval(obj.id).i)){
				document.getElementById(eval(obj.id).i).className = 'noteawoke';
			}
			document.getElementById(eval(obj.id).i).innerHTML = (eval(obj.id).e)[errorCode];
		}
	}
	//判断会员昵称
	obj = GetObject("NickName");
	errorCode = CheckNickName(obj);
	if(errorCode == 0){
		ExistsNickName();
		var Str = document.getElementById(eval(obj.id).i).className;
		if(Str == "noteawoke"){
			IsFindErr = true;
	    }
	}
	else if(errorCode == 1){
		IsFindErr = true;
		if(obj.id){
			if(eval(obj.id).i && document.getElementById(eval(obj.id).i)){
				document.getElementById(eval(obj.id).i).className = 'noteawoke';
			}
			document.getElementById(eval(obj.id).i).innerHTML = (eval(obj.id).e)[errorCode];
		}
	}
	//判断会员电子邮箱
	obj = GetObject("UserEmail");
	errorCode = CheckUserEmail(obj);
	if(errorCode == 1){
		IsFindErr = true;
		if(obj.id){
			if(eval(obj.id).i && document.getElementById(eval(obj.id).i)){
				document.getElementById(eval(obj.id).i).className = 'noteawoke';
			}
			document.getElementById(eval(obj.id).i).innerHTML = (eval(obj.id).e)[errorCode];
		}
	}
	//判断所在公司
	obj = GetObject("JobUnit");
	errorCode = CheckJobUnit(obj);
	if(errorCode == 1){
		IsFindErr = true;
		if(obj.id){
			if(eval(obj.id).i && document.getElementById(eval(obj.id).i)){
				document.getElementById(eval(obj.id).i).className = 'noteawoke';
			}
			document.getElementById(eval(obj.id).i).innerHTML = (eval(obj.id).e)[errorCode];
		}
	}
	//判断联系电话
	obj = GetObject("UserPhone");
	errorCode = CheckUserPhone(obj);
	if(errorCode == 1){
		IsFindErr = true;
		if(obj.id){
			if(eval(obj.id).i && document.getElementById(eval(obj.id).i)){
				document.getElementById(eval(obj.id).i).className = 'noteawoke';
			}
			document.getElementById(eval(obj.id).i).innerHTML = (eval(obj.id).e)[errorCode];
		}
	}
	//判断密码提示问题
	obj = GetObject("UserQuestion");
	errorCode = CheckUserQuestion(obj);
	if(errorCode == 1){
		IsFindErr = true;
		if(obj.id){
			if(eval(obj.id).i && document.getElementById(eval(obj.id).i)){
				document.getElementById(eval(obj.id).i).className = 'noteawoke';
			}
			document.getElementById(eval(obj.id).i).innerHTML = (eval(obj.id).e)[errorCode];
		}
	}
	
	//判断密码问题答案
	obj = GetObject("UserAnswer");
	errorCode = CheckUserAnswer(obj);
	if(errorCode == 1){
		IsFindErr = true;
		if(obj.id){
			if(eval(obj.id).i && document.getElementById(eval(obj.id).i)){
				document.getElementById(eval(obj.id).i).className = 'noteawoke';
			}
			document.getElementById(eval(obj.id).i).innerHTML = (eval(obj.id).e)[errorCode];
		}
	}
	//判断验证代码
	obj = GetObject("VerifyCode");
	errorCode = CheckVerifyCode(obj);
	if(errorCode == 0){
		CheckXmlHttpVerifyCode();
		var Str = document.getElementById(eval(obj.id).i).className;
		if(Str == "noteawoke"){
			IsFindErr = true;
		}
	}
	else if(errorCode == 1){
		IsFindErr = true;
		if(obj.id){
			if(eval(obj.id).i && document.getElementById(eval(obj.id).i)){
				document.getElementById(eval(obj.id).i).className = 'noteawoke';
			}
			document.getElementById(eval(obj.id).i).innerHTML = (eval(obj.id).e)[errorCode];
		}
	}
	//发生错误
	if(IsFindErr){
		return false;
	}
	else{
		document.getElementById("reg_Button").style.display = "none";
		document.getElementById("temp_Reg_Button").style.display = "";
		return true;
	}
}