﻿// --------------------------------------------------------=
// 注册-金银街 2008.4.30 10:43 by  
// --------------------------------------------------------=
//  created by :stoneta 
//=--------------------------------------------------------=
// User Name
// --------------------------------------------------------
// 1-2.4-16 个字符(包括英文字母,中文,数字,下划线)，1个汉字为2个字符，
// 不能使用纯数字、空格或 @ . # * 等特殊符号，请重新设置。
// 3.是否包含非法字符
// 4-5.正则表达式判断
// 6.包含非法单词
// 7.包含内置帐号名
// 8.用户已存在
// --------------------------------------------------------
// EMail
// --------------------------------------------------------
// 9.EMAIL空字符
// 10.是否包含非法字符
// 11.正则表达式判断
// 12.邮件格式是否正确
// 13.用户库中是否存在相同的EMAIL地址
// --------------------------------------------------------
// Password
// --------------------------------------------------------
// 14.密码空字符
// 15.密码有误
// 16.两次输入的密码不一致
// --------------------------------------------------------
// Other
// --------------------------------------------------------
// 17.邮箱限制			- [EMAIL]
// 18.会员名和密码相同		- [USER.PWD]
//=--------------------------------------------------------=
// "用户名由4-16个字符(包括汉字、字母、数字、下划线)组成，1个汉字为2个字符，不能使用纯数字、空格或<font color=\"#ff0000\">@ . # * </font>等特殊符号，请重新设置。",
//    "用户名由4-16个字符(包括汉字、字母、数字、下划线)组成，1个汉字为2个字符，不能使用纯数字、空格或<font color=\"#ff0000\">@ . # * </font>等特殊符号，请重新设置。",
//    "用户名由4-16个字符(包括汉字、字母、数字、下划线)组成，1个汉字为2个字符，不能使用纯数字、空格或<font color=\"#ff0000\">@ . # * </font>等特殊符号，请重新设置。",
//    "用户名由4-16个字符(包括汉字、字母、数字、下划线)组成，1个汉字为2个字符，不能使用纯数字、空格或<font color=\"#ff0000\">@ . # * </font>等特殊符号，请重新设置。",
//    "用户名由4-16个字符(包括汉字、字母、数字、下划线)组成，1个汉字为2个字符，不能使用纯数字、空格或<font color=\"#ff0000\">@ . # * </font>等特殊符号，请重新设置。",
//validator info
var msgInfo = ["",	
    "用户名由4-16个字符(包括汉字、字母、数字、下划线)组成，1个汉字为2个字符，不能使用纯数字、空格或<font color=\"#ff0000\">@ . # * </font>等特殊符号，请重新设置。",
    "用户名由4-16个字符(包括汉字、字母、数字、下划线)组成，1个汉字为2个字符，不能使用纯数字、空格或<font color=\"#ff0000\">@ . # * </font>等特殊符号，请重新设置。",
    "用户名由4-16个字符(包括汉字、字母、数字、下划线)组成，1个汉字为2个字符，不能使用纯数字、空格或<font color=\"#ff0000\">@ . # * </font>等特殊符号，请重新设置。",
    "用户名由4-16个字符(包括汉字、字母、数字、下划线)组成，1个汉字为2个字符，不能使用纯数字、空格或<font color=\"#ff0000\">@ . # * </font>等特殊符号，请重新设置。",
    "用户名由4-16个字符(包括汉字、字母、数字、下划线)组成，1个汉字为2个字符，不能使用纯数字、空格或<font color=\"#ff0000\">@ . # * </font>等特殊符号，请重新设置。",
    "该用户名已被注册，请重新输入！",
    "该用户名已被注册，请重新输入！",
    "您输入的用户名已被注册，请选择其他用户名。",
    "请填写正确的Email，可以用来找回密码。",
    "Email地址格式不正确,请输入正确的Email地址。",
    "Email地址格式不正确,请输入正确的Email地址。",
    "Email地址有误,请输入正确的Email地址。",
    "您输入的EMail地址已被注册，请填写其他EMail地址。",
    "密码由6-20个字符，区分大小写(A-Z, a-z, 0-9和符号)。",
    "您设置的密码有误，密码由6-20个英文字母、数字或符号组成，请重新设置。",
    "两次输入的密码不一致，请重新输入。",
    "很抱歉，没有此类邮箱，您需要更换一个Email。",
    "与会员名相同的密码将无法通过注册，请重新输入。",
    "请输入您的用户名",
    "恭喜您，该用户名可以使用 :)",
    "Email地址有误,请输入正确的Email地址。"];

// 验证所有数据项
function validate(foucs){
	var regButton = document.getElementById("reg");
	var infoColor = "#FF2D00";
	if(null==foucs){
		regButton.disabled = true;
		foucs=true;
	}
	var username = document.getElementById("username").value;
	var pwd1 = document.getElementById("password1").value;
	var pwd2 = document.getElementById("password2").value;
	var email = document.getElementById("email").value;
	var result = 0;
	//result = validateUsername(username);	
	//if(result>0){showResult(result,foucs); regButton.disabled = false; return false;}
	if(result>0){showResult(result,foucs); regButton.disabled = false; return false;}
	result = validateSafePassword(pwd1, pwd2, username);
	if(result>0){showResult(result,foucs); regButton.disabled = false; return false;}
	result = validateEmail(email);
	if(result>0){showResult(result,foucs); regButton.disabled = false; return false;}

	return true;
}
// 触发用户名input焦点
function userFocus(obj){	
	var msg = msgInfo[19];
	var infoColor = "#FF2D00";
	var userId = document.getElementById(obj.id);
	if( userId.value.length < 1 ){	
		showInfoStyle( "validateusername", msg, infoColor);	
	}
}
// 输入时检测用户名是否符合规范
function checkUserName( obj ){	
	var userId = document.getElementById("username");
	var userName = userId.value;
	var msg = "";
	var infoColor = "#FF2D00";
	if( validateUsername( userName ) == 1 || userName.trim().ByteCount() < 4 || userName.trim().ByteCount() > 17 || checkInteger( userName ) == 1){
		msg = msgInfo[1];		
		infoColor = "#FF2D00";
		showInfoStyle( "validateusername", msg, infoColor);	
		var regButton = document.getElementById("reg");
		  regButton.disabled = true;	
	}	
	else{
		
			startRequestGet("CheckUser.aspx?name="+escape(userName));//将obj.value 替换为userName
				

	}	
	
}
// 输入完成后验证用户名是否正确以及存在
function validateUser( input ){
	var obj = input.id;
	
	
	startRequestGet("CheckUser.aspx?name="+obj.value);
	 
		
		
	}
	
 function doResult()//处理返回的结果
		{
			var varText=xmlHttp.responseText;
			if(varText == "0")
			{
//			     
               var regButton = document.getElementById("reg");
			     regButton.disabled = false;
                showInfoStyle("validateusername",msgInfo[20],"#2BAF31");
//			 
              
			}
			if(varText == "1")
			{
			    //document.getElementById("username").value = "";
		  result = 8;
			  // user.innerHTML="用户名已经存在,请重新输入!";
			  var regButton = document.getElementById("reg");
			     regButton.disabled = true;
                 showInfoStyle("validateusername",msgInfo[8],"#FF2D00");
			}
			
		}
	
	
	
// 验证纯数字
function checkInteger( str ){
	var patten = /\D/;
	if( str.match( patten ) ){
		return 0;
	}
	return 1;
}
// 验证用户名是否正确
function validateUsername(str){
	var patn = /^[\u0391-\uFFE5a-zA-Z0-9][\u0391-\uFFE5\w]{2,17}$/; //支持中文注册名
// 不再支持中文注册名
//	var patn = /^[\uFFE5a-zA-Z0-9]{2,17}$/; 

	if(patn.test(str)){
		return 0;
	}
	return 1; 
}

// 验证EMAIL地址是否正确
function validateEmail(str){
	var patn = /^[_a-zA-Z0-9\-]+(\.[_a-zA-Z0-9\-]*)*@[a-zA-Z0-9\-]+([\.][a-zA-Z0-9\-]+)+$/;
	if ( str.ByteCount()>46)
	   return 21;
	if(patn.test(str)){
		var mailServer = getMailServer(str);
		if (mailServer == "qq.com") {
			//关闭QQ邮箱支持，目前开放QQ邮箱
			//return 17;
		}
		return 0;
	}
	else
	{
		return 9; //incorrect format
	}
}

// 检测是否存在空格，存在则返回true，不存在返回false
function scan_space(s){
	return -1!=s.indexOf(" ")? true: false;
}

// 密码长度验证
function validatePassword(str){
	if(scan_space(str)) return 15;
	var patn = /.{6,20}/; 
	if(patn.test(str)) return 0;
	return 15; 
}

// 密码安全验证
function validateSafePassword(pwd1, pwd2, user){
	var ret = validatePassword(pwd1);
	//check length and alphabet
	if(ret>0) return ret;
	//check if same as password2
	if(pwd1 != pwd2) return 16;
	//check if same as username
	if(pwd1 == user) return 18;
	return 0;
}
// 触发密码input焦点
function pwd1Focus(obj){	
	var msg = "请输入密码";
	var infoColor = "#FF2D00";
	var userId = document.getElementById(obj.id);
	if( userId.value.length < 1 ){	
		showInfoStyle( "validatepassword1", msg, infoColor);	
	}
}
// 触发密码input焦点
function pwd2Focus(obj){	
	var msg = "请再输入一遍您上面输入的密码";
	var infoColor = "#FF2D00";
	var userId = document.getElementById(obj.id);
	if( userId.value.length < 1 ){	
		showInfoStyle( "validatepassword2", msg, infoColor);	
	}
}
// 密码检测
function checkPwd(){
	var passId = document.getElementById("password1");
	var password = passId.value;
	var msg = "";
	var infoColor = "#FF2D00";
	if( scan_space(password) ){
		msg = "不允许有空格存在";		
	}
	else if( password.length < 1 ){
		msg = "请输入密码";
	}
	else if( password.length < 6 ){
		msg = "密码太短了，继续..";		
	}
	else if( password.length >= 6 && password.length <= 10 ){
		msg = "密码安全度:低";
		infoColor = "#2BAF31";
	}	
	else if( password.length > 10 && password.length <= 15 ){
		msg = "密码安全度:中";
		infoColor = "#2BAF31";
	}
	else if( password.length > 15 && password.length <= 20 ){
		msg = "密码安全度:高";
		infoColor = "#2BAF31";
	}
	else{
		msg = "6-20&nbsp;个字符(包括英文字母、数字、符号)，区分大小写";
		infoColor = "#777777";
	}	
	showInfoStyle( "validatepassword1", msg, infoColor);	
}

// 密码再次检测
function checkPwd2(){
	var passId1 = document.getElementById("password1");
	var password1 = passId1.value;
	var passId2 = document.getElementById("password2");
	var password2 = passId2.value;	
	var msg = "";
	var infoColor = "#FF2D00";
	if( password1.length < 6 ){
		msg = "密码太短了";
		showInfoStyle( "validatepassword1", msg, infoColor);		
	}
	if( password2.length < 1 ){
		msg = "请再输入一遍您上面输入的密码";
	}
	else if( password2 != password1 ){
		msg = "两次密码不符，请重新输入";
	}
	else if( password2 == password1 ){
		msg = "两次密码输入完全符合 :)";
		infoColor = "#2BAF31";
	}
	showInfoStyle( "validatepassword2", msg, infoColor);	
}
// 触发email的input焦点
function emailFocus(obj){	
	var msg = "请输入您的email";
	var infoColor = "#FF2D00";
	var userId = document.getElementById(obj.id);
	if( userId.value.length < 1 ){	
		showInfoStyle( "validateemail", msg, infoColor);	
	}
}
// 输入时检测email是否符合规范
function checkEmail( obj ){
	var emailId = document.getElementById("email");
	var email = emailId.value;
	var msg = "";
	var infoColor = "#FF2D00";
	if( validateEmail( email ) != 0){
		msg = msgInfo[10];
		infoColor = "#FF2D00";
	}	
	else{
		msg = "重要！这是您激活帐户和找回密码的唯一方式！";
		infoColor = "#2BAF31";
	}	
	showInfoStyle( "validateemail", msg, infoColor);	
}
// String去除前后空格
String.prototype.trim = function(){
    return this.replace(/(^\s*)|(\s*$)/g, "");
}
// 统计字符串字节数
String.prototype.ByteCount = function(){
	txt = this.replace(/([\u0391-\uFFE5])/ig,'11');
	var count = txt.length;
	return count;
}

// 获取EMAIL服务器地址
function getMailServer(str){
	//be sure str is a correct email address
	str = str.trim();
	return str.substr(str.indexOf("@")+1);
}
// 显示信息的样式
function showInfoStyle(id, msg, infoColor){
	var obj = document.getElementById(id);	
	obj.innerHTML = msg;
	obj.style.color = infoColor;
}
// 改变输入框底色
function changeinputColor( obj , over){	
	var inputId = document.getElementById(obj.id);
	if( over == 1 ){
		inputId.style.border = "1px solid";	
		inputId.style.borderColor = "#FF2D00";
	}else{
		inputId.style.border = "1px solid";	
		inputId.style.borderColor = "#7F9DB9";
	}
}

// 显示样式
function showStyle(id, msg){
	var obj = document.getElementById(id);
	obj.style.display = "";
	obj.innerHTML = msg+"<BR />";
}

//显示返回结果
function showResult(data, foucs){
	var obj = null; // document.getElementById("errmsg");
	var msg = "";
	var infoColor = "#FF2D00";
	if(data>0){
		msg = msgInfo[data];
	}
	switch(data){
	case 1: ; case 2: ; case 3: ; case 4: ; case 5: ; case 6: ; case 7: ; case 8:
		// Username
		if(foucs){document.getElementById("username").focus();}
		//showStyle("infousername", msg);
		showInfoStyle("validateusername", msg, infoColor);
		//traceInputError("dm_reg_username"); // 用户名
		break;
	case 9: ; case 10: ; case 11: ; case 12: ; case 13: ; case 17:;case 21:
		// Email
		if(foucs){document.getElementById("email").focus();}
		//showStyle("infoemail", msg);
		showInfoStyle("validateemail", msg, infoColor);
		//traceInputError("dm_reg_mail"); // EMAIL
		break;
	case 14: ; case 15: ; case 18:
		// Password
		if(foucs){document.getElementById("password1").focus();}
		//showStyle("infopassword1", msg);
		showInfoStyle("validatepassword1", msg, infoColor);
		//traceInputError("dm_reg_pwd"); // 设密码
		break;
	case 16:
		// Password 2
		if(foucs){document.getElementById("password2").focus();}
		//showStyle("infopassword2", msg); // 重输密码
		showInfoStyle("validatepassword2", msg, infoColor);
		//traceInputError("dm_reg_pwd2"); // 设密码
		break;
	}
}



function do_signup(){
	var signupform = document.signup_form;
	if(0 == signupform.password1.value.length){
		signupform.password1.focus();
		return false;
	}
	if(0 == signupform.password2.value.length){
		signupform.password2.focus();
		return false;
	}
	if(signupform.password1.value != signupform.password2.value){
		signupform.password2.focus();
		return false;
	}
	signupform.submit();
}
function hideInputInfo(spanid,value) {
	var spanid = getElementId(spanid);
	var info = "info" + spanid;
	var valid = "validate" + spanid;
	try {
	    //document.getElementById(info).style.display = "none" ; 
	    document.getElementById(valid).style.display = "" ; 
	    document.getElementById(valid).innerHTML += "<br />"; 
    } catch(e){}	
}
function getElementId(objectName){
	var spanid = objectName;
	if (spanid.indexOf(".") > 0) {
		try {
			while (spanid.indexOf(".") > 0) {
				spanid = getInputLastName(spanid);
			}
		} catch(e){}
	}
	return spanid;
}
function remoteAlert(data){
	showResult(data, true);
}


function lostFocus(obj){
	var username = document.getElementById("username").value;
	var pwd1 = document.getElementById("password1").value;
	var pwd2 = document.getElementById("password2").value;
	var email = document.getElementById("email").value;
	var result = 0;
	var id = obj.name;
	var spanid = getElementId(obj.name);
	var info = "info" + spanid;
	var valid = "validate" + spanid;
	//startRequestGet("Ajax.aspx?name="+username);
	//document.getElementById(info).style.display = "" ; 
	//document.getElementById(valid).style.display = "none" ; 
	if("username"==id){
		// 输入框为空，不提示错误信息
		if(""==obj.value){return;}
		// 检测输入框信息是否正确
		
		//showInfoStyle("infousername",msgInfo[20],"#2BAF31");		
	}
	if("password1"==id){
		// 输入框为空，不提示错误信息
		if(""==obj.value){return;}
		//check if same as username
		if(obj.value == username){
			result = 18;
		}else{
			result = validatePassword(obj.value);
		}
		if(result==0){document.getElementById("validatepassword1").style.display = "none";}
	}
	
	
	  
	if("password2"==id){
		// 输入框为空，不提示错误信息
		if(""==obj.value){return;}
		//check if same as password2
		if(pwd1 != pwd2) result = 16;
		if(result==0){document.getElementById("validatepassword2").style.display = "none";}
	}
	if(result>0){showResult(result, false);}
	if("email"==id){
		// 输入框为空，不提示错误信息
		if(""==obj.value){return;}
		// 检测输入框信息是否正确
		
	}
}

//显示返回结果
function showEmailError(data, foucs){
	var obj = null; // document.getElementById("errmsg");
	var msg = "";
	if(data>0){
		msg = msgInfo[data];
	}
	switch(data){
	case 9: ; case 10: ; case 11: ; case 12: ; case 13: ; case 17: ; case 21:
		// Email
		if(foucs){document.getElementById("email").focus();}
		//showStyle("validateemail", msg);
		showInfoStyle("validateemail", msg, "#FF2D00");
		break;
	default:
		showInfoStyle("validateemail","恭喜您，该Email可以使用 :)","#2BAF31");
	}
}

function showUserError(data, foucs){
	var obj = null; // document.getElementById("errmsg");
	var msg = "";
	if(data>0){
		msg = msgInfo[data];
	}
	switch(data){
	case 1: ; case 2: ; case 3: ; case 4: ; case 5: ; case 6: ; case 7: ; case 8: ; case 18:
		// Username
		if(foucs){document.getElementById("username").focus();}
		showInfoStyle("validateusername", msg, "#FF2D00");
		break;
	default:
		//document.getElementById("infousername").style.color = "#777777" ; 
		showInfoStyle("validateusername",msgInfo[20],"#2BAF31");	
	}
}

function checkall(){
 var username = document.getElementById("username").value;
 if (username==null||username=="")
  {  var msg="请输入用户名";
    showInfoStyle("validateusername",msg,"#FF2D00");
    return false;
   }
   
 
 
}