/**
 * @version 2.0
 * @author panlianghu
 * @copyright 2007 vekcn.com
 * Tue Dec 18 10:01:48 CST 2007
 */

function changesafecode() 
{
	url = '/task/include/safecode.php'+'?'+Math.random();
	G("authimg").src = url;
}


function checkInput(id) {
	G(id).style.backgroundColor='#ffffff';	
	switch (id) {
		case 'membername':
			checkmembername();
			break;
		case 'email':
			checkEmail();
			break;
		case 'password_once':
			checkPwdOnce();
			break;
		case 'password_twice':
			checkPwdTwice();
			break;
		case 'safecode':
			checkSafecode();
			break;
	}
}

//及时检查输入内容，给出输入框的提示状态
function KeyupCheck(id) {
	switch (id) {
		case 'membername':
			Keyupmembername();
			break;
		case 'password_twice':
			KeyupPwdTwice();
			break;
		case 'email':
			KeyupEmail();
			break;
		case 'safecode':
			KeyupSafecode();
			break;
	}
}


//异步检查用户名
function checkmembername(){
	var membername = $F('membername');
	if(membername == ""){
		setError('membername_info','用户名不能为空，请重新输入。');
		return false;
	} else if(membername.len() < 3 || membername.len() > 20) {
		setError('membername_info','用户名长度错误，应该在3-20个字符之间');
		return false;
	} else if(!/^[a-z]\w{2,20}$/i.test(membername.replace(/[\u4e00-\u9fa5]/g, 'mm'))){
		setError('membername_info','用户名只能由字母、数字和中文组成，不能包含空格及其他特殊字符。');
		return false;
	}
	var url = "ajax/check_membername.php?membername="+escape(membername);
	var result = getTextResponse(url);
	if(result == '用户名可以注册') {
		changeStyle('membername','Ok');
		changeStyle('membername_info', 'OkMsg')
		setWord('membername_info',result);
		return true;
	} else {
		changeStyle('membername','Error')
		changeStyle('membername_info', 'ErrorMsg');
		setWord('membername_info',result);
		return false;
	}
}


//异步检查验证码
function checkSafecode() {
	var safecode = $F("safecode");
	var class_name = '';
	var url = "/task/ajax/check_safecode.php?safecode="+safecode;
	var result = getTextResponse(url);
	if(result == '验证码输入正确') {
		changeStyle('safecode','Ok');
		changeStyle('safecode_info','OkMsg');
		setWord('safecode_info',result);
		return true;
	} else {
		changeStyle('safecode','Error')
		changeStyle('safecode_info','ErrorMsg');
		setWord('safecode_info',result);
		return false;
	}
}

//及时检查验证码输入，给出输入框的提示状态
function KeyupSafecode(){
	var safecode = $F('safecode');
	if(safecode == '') {
		changeStyle('safecode','Error');
		return false;
	} else if(safecode.length !=4) {
		changeStyle('safecode','Error')
		return false;
	}
	else {
		changeStyle('safecode','Ok')
		return true;
	}
}

//及时检查用户名长度，给出输入框的提示状态
function Keyupmembername(){
	var membername = $F('membername');
	if(membername == '') {
		changeStyle('membername','Error');
		return false;
	} else if(membername.len() < 3 || membername.len() > 20) {
		changeStyle('membername','Error')
		return false;
	}
	else {
		changeStyle('membername','Ok')
		return true;
	}
}

function checkSafe(pwd){
	if(pwd == '') {
		changeStyle('password_once','Error');
		return false;
	} else if(pwd.length<6){//密码位数小于6位，不安全
		changeStyle('mimasafe','mimasafe1');
		changeStyle('password_once','Error');
	} else if(pwd == G('membername').value){//密码和用户名相同，不安全
			changeStyle('password_once','Error');
			changeStyle('mimasafe','mimasafe1');
			return false;
	} else {
				var safe_1= (pwd.search(/[a-zA-Z]/)!=-1) ? 1 : 0;
				var safe_2= (pwd.search(/[0-9]/)!=-1) ? 1 : 0;
				var safe_3= (pwd.search(/[^A-Za-z0-9]/)!=-1) ? 1 : 0;
				var safe_all=safe_1+safe_2+safe_3;
				if(safe_all==1){//不安全
					changeStyle('mimasafe','mimasafe1');
				}else if(safe_all==2){//普通
					changeStyle('mimasafe','mimasafe2');
				}else if(safe_all==3){//安全
					changeStyle('mimasafe','mimasafe3');
				}
				changeStyle('password_once','Ok');
				return true;
		}
}

//检查密码输入,并及时给出输入框的提示状态
function checkPwdOnce()
{
	var pwd = '';
	pwd = $F('password_once');
	if(pwd == '') {
		setError('password_once_info','密码不能为空');
		changeStyle('password_once','Error');
		return false;
	} else if(pwd.length < 6 || pwd.length > 16) {
		setError('password_once_info','6-16位，建议使用英文字母加数字或符号组合提高密码安全度，不能和用户名一致');
		changeStyle('password_once','Error');
		return false;
	} else if(pwd == $F('membername')) {
		setError('password_once_info','密码不能和用户名一致');
		changeStyle('password_once','Error');
		return false;
	} else {
		changeStyle('password_once_info','OkMsg');
		changeStyle('password_once','Ok');
		setWord('password_once_info','密码输入正确');
		return true;
	}
}

//及时检查重复密码的输入，给出输入框的提示状态
function KeyupPwdTwice(){
	var pwd = '';
	pwd = $F('password_twice');
	if(pwd == '') {
		changeStyle('password_twice','Error');
		return false;
	} else if(pwd == $F('membername')) {
		changeStyle('password_twice','Error');
		return false;
	} else if($F('password_once') != pwd) {
		changeStyle('password_twice','Error');
		return false;
	}
	else {
		changeStyle('password_twice','Ok');
		return true;
	}
}
//检查核实密码
function checkPwdTwice()
{
	var pwd = '';
	pwd = $F('password_twice');
	if(pwd == '') {
		setError('password_twice_info','确认密码不能为空');
		changeStyle('password_twice','Error');
		return false;
	}
	if(pwd == $F('membername')) {
		setError('password_twice_info','密码不能和用户名一致');
		changeStyle('password_twice','Error');
		return false;
	}
	if($F('password_once') != pwd) {
		setError('password_twice_info','请再输入一遍您上面输入的密码，并确保两次输入一致');
		changeStyle('password_twice','Error');
		return false;
	} else {
		changeStyle('password_once_info','OkMsg');
		setWord('password_once_info','密码输入正确');
		changeStyle('password_twice_info','OkMsg');
		setWord('password_twice_info','密码两次输入一致');
		changeStyle('password_twice','Ok');
		return true;
	}
}

//及时检查电子邮件输入，给出输入框的提示状态
function KeyupEmail(){
	var email = $F('email');
	if(email == '') {
		changeStyle('email','Error');
		return false;
	}
	rs = email.match('^[0-9a-zA-Z-_.]+@[0-9a-zA-Z-_]+[.]{1}[0-9a-zA-Z-_]{2,4}');
	if(rs!= null) {
		changeStyle('email','Ok');
		return true;
	}
	else {
		changeStyle('email','Error');
		return false;
	}
}

//异步检查电子邮箱
function checkEmail(){
	var email = $F('email');
	if(email == '') {
		setError('email_info','邮箱地址不能为空');
		changeStyle('email','Error');
		return false;
	} else if($F('password_once') == $F('email')){
		changeStyle('mimasafe','mimasafe1');//如果设置的密码和邮箱一样，则提示密码不安全
		setError('email_info','为了您的帐户安全，请勿将密码设置和邮箱一样');
		return false;
	} else {
		checkSafe($F('password_once'));
	}
	var url = "/task/ajax/check_email.php?email="+email;
	var result = getTextResponse(url);
	if(result == '您的电子邮箱可以正常使用') {
		changeStyle('email','Ok');
		changeStyle('email_info', 'OkMsg')
		setWord('email_info',result);
		return true;
	} else {
		changeStyle('email','Error')
		changeStyle('email_info', 'ErrorMsg');
		setWord('email_info',result);
		return false;
	}
}

//检查表单是否完全符合要求可以提交数据
function checkform()
{
	var arr;
	var user_error = 0;
	var class_error = 0;
	arr = new Array("membername","password_once","password_twice","email","safecode");
	
	for(var j=0; j<arr.length; j++)
	{
		if(G(arr[j]).value == ''){//当用户还有有必填项没有填写的时候，不允许提交表单
			checkInput(arr[j]);
			user_error = user_error + 1;
		}
		if(G(arr[j] + '_info').className != 'OkMsg'){//当还有错误或警告提示而用户没有修改的时候，不允许提交表单
			class_error = class_error + 1;
		}
	}
	if(user_error == 0 && class_error == 0){
		return true;
	} else {
		alert("您填写的信息不符合规范，请按照页面中红色文字提示修改，谢谢！");
		return false;
	}
}
