/**
 *  用户注册及新手卡激活相关js
 *  autor: xukesong(xukesong@kingsoft.com)
 **/
$(document).ready(function(){
		if (type == 'zone1')
			$("#passport").focus();
		else 
			$("#zone2_passport").focus();
		$("#passport").blur(function(){checkPassport(this);});	
		$("#password").blur(function(){
			checkPassword(this, $("#password2")[0], $("#passport")[0]);
			if ($("#repassword").val() == "")
				return;
			else if ($("#password").val() != $("#repassword").val())
				error($("#repassword")[0], "您两次输入的登录密码不一致");
			else
				ok($("#repassword")[0], true);


			if ($("#password2").val() == "")
				return;
			else if ($("#password").val() == $("#password2").val())
				error($("#password2")[0], "二级密码不能和登录密码相同");
			else
				ok($("#password2")[0], true);
		});	
		$("#repassword").blur(function(){checkRePassword($("#password")[0], this);});	
		$("#password2").blur(function(){
			checkPassword2($("#password")[0],this, $("#passport")[0]);
			if ($("#repassword2").val() == "")
				return;
			else if ($("#password2").val() != $("#repassword2").val())
				error($("#repassword2")[0], "您两次输入的二级密码不一致");
			else
				ok($("#repassword2")[0], true);
		});
		$("#password").keyup(function(){testPasswordLevel($("#password_level")[0],this.value);});
		$("#password2").keyup(function(){testPasswordLevel($("#password_level2")[0],this.value);});
		$("#repassword2").blur(function(){checkRePassword2($("#password2")[0],this);});
		$("#email").blur(function(){checkEmail(this);});
		$("#realname").blur(function(){checkRealname(this);});
		$("#idcard_num").blur(function(){checkIdCardNum(this);});
		$("#addr").blur(function() {checkAddr(this);});
		$("#zip_code").blur(function() {checkZipCode(this);});
		$("#scode1").blur(function(){checkScode(this);});
		$("#submit_form1").submit(function() {
			checkRegForm();
			if ($("img.ico-stop").size() != 0)
				return false;
			if ($("#agree:checked").size() == 0) {
				alert("您必须接受条款才能激活");
				return false;
			}
			return true;
		});
		$("#submit_form2").submit(function() {
			return checkRegForm2();
		});
});

function showMsg(id, msg, type)
{
    try
    {
		error($('#'+id)[0], msg);
    }
    catch (e)
    { 
    }
}

function checkRegForm()
{
	checkPassport($("#passport")[0]);
	checkPassword($("#password")[0], $("#password2")[0], $("#passport")[0]);
	checkRePassword($("#password")[0], $("#repassword")[0]);
	checkPassword2($("#password")[0], $("#password2")[0], $("#passport")[0]);
	checkRePassword2($("#password2")[0], $("#repassword2")[0]);
	checkEmail($("#email")[0]);
	checkRealname($("#realname")[0]);
	checkIdCardNum($("#idcard_num")[0], "idcard_type");
	checkAddr($("#addr")[0]);
	checkZipCode($('#zip_code')[0]);
	checkRegion($('#regions_1')[0]);
	checkScode($("#scode1")[0]);
}

function checkRegForm2()
{
	if($('#zone2_passport').val()=='')
	{
		alert('请填写金山通行证！');
		$('#zone2_passport').focus();
		return false;
	}
	if($('#zone2_password').val()=='')
	{
		alert('请填写登录密码！');
		$('#zone2_password').focus();
		return false;
	}
	if($('#scode2').val()=='')
	{
		alert('请填写验证码！');
		$('#scode2').focus();
		return false;
	}
	return true;
}

function checkScode(obj)
{
	var scode = $(obj).val();
	if (scode == "")
		error(obj, "请输入验证码");
	else
		ok(obj);
}

//检查passport
function checkPassport(obj)
{
	var passport = $(obj).val();
	if (passport == "")
		error(obj, "请输入金山通行证");
	else if (passport.length <4) {
		error(obj, "通行证至少4位");
	}
	else if (!isPassport(passport))
		error(obj, "通行证格式不正确");
	else if (!isValidPassport(passport))
			error(obj, "抱歉，该金山通行证已经被使用");
	else
		$.get("index.php", {action:"ajax.isExistedPassport", passport: passport}, function(data) {
			if (data == 1)
				error(obj, "抱歉，该金山通行证已经被使用");
			else
				ok(obj, true);

		});
}

function isValidPassport(str)
{

	function validHead(str, except_callback)
	{
		var head = ["bjsupport","kingsoft", "cb", "ks", "gm", "test", "fs", "jx", "db", "cq", "blog", "passport", "vip", "wps", "system", "duba", "ciba", "xoyo", "kol", "shqz"];
		for(var i in head) {
			if (typeof(except_callback) === "function") {
				if (str.substr(0, head[i].length) === head[i] && !except_callback(str))
					return false;
			}
			else if (str.substr(0, head[i].length) === head[i])
				return false;
		}

		return true;
	}

	function validWord(str, except_callback)
	{
		var word = ["hujintao", "wenjiabao", "jiangzemin", "zhurongji", "qiubojun", "leijun", "flg", "falun", "minghui", "lihongzhi", "tmd", "nmd", "fuck", "sex", "xxx", "penis", "viagra", "tits", "pussy", "shit", "damn", "bastard", "asshole", "bitch", "vagina", "breast", "root", "admin", "gamemaster", "kingsoft", "gm"];

		for (var i in word) {
			if (typeof(except_callback) === "function") {
				if (str.indexOf(word[i]) !== -1 && !except_callback(str))
					return false;
			}
			else if (str.indexOf(word[i]) !== -1 )
					return false;
		}

		return true;
	}

	//例外的
	function wordException(str)
	{
		//判断是否是@gmail.com结尾的并且@gmail.com之前不含gm
		var index = str.lastIndexOf('@gmail.com');
		if (index === -1)
			return false;
		var s = str.substring(0, index); //取@gmail.com之前的部分
		if (s.indexOf('gm') === -1)
			return true;

		return false;
	}

	function validFoot(str, except_callback)
	{
		var foots = ["@xoyo.com", "xoyo", "@kol.com", "kol"];
		for (var i in foots) {
			if (typeof(except_callback) === "function") {
				if (str.match(/foots[i]$/i) && !except_callback(str))
					return false;
			}
			else if (str.indexOf(foots[i]) !== -1 )
				return false;
		}

		return true;
	}

	str = str.toLowerCase();

	if (!validHead(str))
		return false;

	if (!validWord(str, wordException))
		return false;

	if (!validFoot(str))
		return false;

	return true;
}

function checkPasswordZone2(obj)
{
	if ($(obj).val() == '')
		error(obj, "请输入登录密码");
	ok(obj);
}
function checkPassword(obj1, obj2, passport_obj)
{
	var password1 = $(obj1).val();
	var password2 = $(obj2).val();
	var passport = $(passport_obj).val();
	if (password1 === "")
		error(obj1, "请输入登录密码");
	else if(password1.length < 6)
		error(obj1, "登录密码至少6位");
	else if (password1 == passport)
		error(obj1, "登录密码不能和金山通行证相同");
	else if (password2 != "" && password1 == password2)
    {
        error(obj1, "二级密码不能和登录密码相同");
    }
	else if (!isRightPassword(password1))
		error(obj1, "登录密码过于简单,建议使用数字和字母混合的密码");
	else if (checkLevel(password1) <= 2)
	{
		alertTip(obj1, '登录密码比较简单,建议增加密码复杂度');
	}
	else {
		ok(obj1, true);
	}

}

/**
 * checkPassword2 检查二级密码
 * 
 * @param obj1  一级密码
 * @param obj2  二级密码
 * @access public
 * @return void
 */
function checkPassword2(obj1, obj2, passport_obj)
{
	var password1 = $(obj1).val();
	var password2 = $(obj2).val();
	var repassword2 = $("#repassword2").val();
	var passport = $(passport_obj).val();
	if (password2 == "")
		error(obj2, "请输入二级密码");
	else if (password2.length < 8)
		error(obj2, "二级密码至少8位");
	else if (password1 == password2)
    {
		error(obj2, "二级密码不能和登录密码相同");
    }
	else if (password2 == passport)
		error(obj2, "二级密码不能和金山通行证相同");
	else if (!isRightPassword(password2))
		error(obj2, "二级密码过于简单,建议使用数字和字母混合的密码");
	else if (checkLevel(password2) <= 2)
		alertTip(obj2, '二级密码比较简单,建议增加密码复杂度');
	else {
		ok(obj2, true);
	}
}

//检查email
function checkEmail(obj)
{
	var email = $(obj).val();
	if (email == "")
		error(obj, "请输入电子邮件");
	else if (!isEmail(email)) {
		error(obj, "电子邮件格式不正确");
	}
	else {
		ok(obj, true);
	}
}

/**
 * checkRePassword 检查确认密码（格式及是否和二级密码一致
 * 
 * @param obj1 密码的html对象
 * @param obj2 $obj2 确认密码的html对象
 */
function checkRePassword(obj1,obj2)
{
	var password = $(obj1).val();
	var repassword = $(obj2).val();
	if (repassword == "")
		error(obj2, "请再次输入登录密码");
	else if (repassword != password)
	{
		error(obj2, "您两次输入的登录密码不一致");
	}
	else
		ok(obj2, true);
}
/**
 * checkRePassword2 检查确认二级密码（格式及是否和二级密码一致
 * 
 * @param obj1 二级密码的html对象
 * @param obj2 $obj2 确认二级密码的html对象
 */
function checkRePassword2(obj1,obj2)
{
	var repassword2 = $(obj2).val();
	var password2 = $(obj1).val();
	if (repassword2 == "")
		error(obj2, "请再次输入二级密码");
	else if (repassword2 != password2)
	{
		error(obj2, "您两次输入的二级密码不一致");
	}
	else
		ok(obj2, true);
}

//检查真实用户名
function checkRealname(obj)
{
	var realname = $(obj).val();
	if (realname == "")
		error(obj, "请输入真实姓名");
	else if (!isRealname(realname))
		error(obj, "请输入真实姓名");
	else {
		ok(obj, true);
	}

}

//检查证件号码
function checkIdCardNum(obj)
{
	var card_num = $(obj).val();
	if (card_num == "")
		error(obj, "请输入身份证号码");
	else if (checkIdCard(card_num) != 1) {
		error(obj, "身份证号码格式不正确");
	}
	else
		ok(obj, true);
}

function checkAddr(obj)
{
	var addr = $(obj).val();
	if (addr == "")
		error(obj, "请输入联系地址");
	else 
		ok(obj, true);
}

function checkZipCode(obj)
{
	var zip_code = $(obj).val();
	if (zip_code == "")
		error(obj, "请输入邮编");
	else 
		ok(obj, true);
}

function checkRegion(obj)
{
	var region_obj = "";
	for (var i=2; i<=5; i++)
	{
		region_obj  = $('#' + 'regions_' + i);
		if (region_obj.size() <= 0)
			break;
		if ((region_obj.val() == "" || region_obj.val() == 9999 ) && $('#regions'+(i-1)).html() != "")
		{
			error(obj, "请选择地区");
			return;
		}
	}
	ok(obj);
}

//检查真实用户名
function isRealname(realname)
{
	return (isChinese(realname) && realname.length >=2 && realname.length<=8);
}

