var MSG_USERID_NORMAL = "用户名必须为以字母开头，由小写英文字母和数字组成的4-16位字符。"
var MSG_RIGHT = "正确。"
var MSG_USERID_OK = "您可以使用当前用户名。"
var MSG_USERID_EXIST = "该用户名已经存在，请重新输入。"
var MSG_USERID_BAN = "该用户名已被禁止注册，请重新输入。"
var MSG_PASSWORD_NORMAL = "密码必须为以英文和数字组成的4-10位字符。"
var MSG_PASSWORD_NOT_MATCH = "两次密码输入不一致，请重新输入。"
var MSG_PASSWORD_EMPTY = "请先输入密码。"
var MSG_REAL_NAME_NORMAL = "请填写您的真实姓名，以保障您的用户权益。";
var MSG_SEX_NORMAL = "请选择性别。";
var MSG_SEX_MATCH = "性别必须和身份证一致。";
var MSG_IDNO_NORMAL = "请填写您真实的身份证号码，长度为18或15位。";
var MSG_EMAIL_NORMAL = "请输入正确的Email地址。";

//表单验证组
var isValUserId = false;
var isValPwd = false;
var isValPwd2 = false;
var isValUsername = false;
var isValSex = false;
var isValIdno = false;
var isValEmail = true;
var isNeedGetNewCode = true;

//提交状态
var ajaxing = false;
						
//用户名更改
function useridChange() {
    $("#validate2").css("display", "none");
    isValUserId = false;
    isNeedGetNewCode = true;
}

//验证码框获得焦点
function codeOnfocus() {
    if(isValUserId == true) {
        getValidate();
        return;
    }
    window.alert("请先输入正确的用户名");
    $("#userid").focus();
    $("#userid").select();
}

//获取新的验证码
function getValidate() {
    if($("#imgCheckCode").length > 0 && isNeedGetNewCode) {
        var urlCode = "..\/modules\/Validate.aspx?uid=" + $("#userid").val()
        $("#imgCheckCode").attr("src", urlCode + "&rnd=" + Math.random()*99999);
        $("#validate2").css("display","");
        isNeedGetNewCode = false;
    }
}

//更改提示信息和样式
function toggleStyle(obj, isRight, msg) {
    var spanText = obj.find("span");
    obj.removeClass();
    spanText.removeClass();
    if(isRight) {
        obj.addClass("tgb2");
        spanText.addClass("tgb_right");
    } else {
        obj.addClass("tgb3");
        spanText.addClass("tgb_wrong");
    }
    spanText.html(msg);
}

//检查userid格式是否有效
function checkUserId() {
    var reg = /^[a-z][a-z0-9]{3,15}$/;
    var strUserId = jQuery.trim($("#userid").val());
    if(reg.test(strUserId)) {
        checkUserIdExists();
        return true;
    }
    toggleStyle($("#divUserId"), false, MSG_USERID_NORMAL);
    isValUserId = false;
    return false;
};

//服务端检查userid
function checkUserIdExists() {
    var strUserId = jQuery.trim($("#userid").val());
    var checkUrl = "AccountRegChk.aspx?userid=" + strUserId;
    $.get(checkUrl, {}, 
        function (responseText) {
            switch(responseText) {
                case "1000":
                    toggleStyle($("#divUserId"), true, MSG_USERID_OK);
                    isValUserId = true;
                    break;
                case "1010":
                    toggleStyle($("#divUserId"), false, MSG_USERID_NORMAL);
                    isValUserId = false;
                    break;
                case "1020":
                    toggleStyle($("#divUserId"), false, MSG_USERID_EXIST);
                    isValUserId = false;
                    break;
                case "1030":
                    toggleStyle($("#divUserId"), false, MSG_USERID_BAN);
                    isValUserId = false;
                    break;
                default:
                    toggleStyle($("#divUserId"), false, MSG_USERID_NORMAL);
                    isValUserId = false;
                    break;
            }
        }
    );
    return true;
};

function checkUserIdAlert()
{
    alert(MSG_USERID_OK);    
}

//检查密码格式
function checkPassword() {
    var reg = /^[a-zA-Z0-9]{4,10}$/;
    var strPwd = jQuery.trim($("#pwd").val());
    if(reg.test(strPwd) == false) {
        toggleStyle($("#divPwd"), false, MSG_PASSWORD_NORMAL);
        isValPwd = false;
        return false;
    }
    toggleStyle($("#divPwd"), true, MSG_PASSWORD_NORMAL);
    isValPwd = true;
    return true;
}

//验证密码强度
function checkPasswordStrong() {  
    var strPwd = jQuery.trim($("#pwd").val());
    var isNotSimple = (/^[0-9]{4,10}$/.test(strPwd) == false && /^[a-z]{4,10}$/.test(strPwd) == false && /^[A-Z]{4,10}$/.test(strPwd) == false);
    if(strPwd.length <= 4 || !isNotSimple) {
        $('#imgPwdStrong').attr("src","http://images.tiancity.com/images/portal/member/sm3.jpg");
        return;
    }
    if((/^[a-z0-9]{4,10}$/.test(strPwd) == true || /^[A-Z0-9]{4,10}$/.test(strPwd) == true || /^[A-Za-z]{4,10}$/.test(strPwd) == true) && isNotSimple) {
        $('#imgPwdStrong').attr("src","http://images.tiancity.com/images/portal/member/sm2.jpg");
        return;
    }
    if(/^[A-Za-z0-9]{4,10}$/.test(strPwd)==true && isNotSimple) {
        $('#imgPwdStrong').attr("src","http://images.tiancity.com/images/portal/member/sm1.jpg");
        return;
    }
}

//验证两次密码是否一致
function checkComfirmPwdSame() {
    if($("#pwd").val().length == 0){
        toggleStyle($("#divPwd2"), false, MSG_PASSWORD_EMPTY);
        return false;   
    }
    if($("#pwd").val() != $("#pwd2").val()) {
        toggleStyle($("#divPwd2"), false, MSG_PASSWORD_NOT_MATCH);
        isValPwd2 = false;
        return false;
    }
    toggleStyle($("#divPwd2"), true, MSG_RIGHT);
    isValPwd2 = true;
    return true;
}

//验证用户真实姓名
function checkUserName() {
    var userName = jQuery.trim($("#username").val());
    if(/^[\u4e00-\u9fa5]{1,20}$/.test(userName) == false) {
        toggleStyle($("#divUserName"), false, MSG_REAL_NAME_NORMAL);
        isValUsername = false;
        return false;
    }
    toggleStyle($("#divUserName"), true, MSG_REAL_NAME_NORMAL);
    isValUsername = true;
    return true;
}

//判断是否选择性别
function checkSex() {
    var sex = $("#sex").val();
    if(sex != "1" && sex != "0") {
        toggleStyle($("#divSex"), false, MSG_SEX_NORMAL);
        isValSex = false;
        return false;
    } else {
        toggleStyle($("#divSex"), true, MSG_RIGHT);
    }
    var idno = jQuery.trim($("#idno").val());
    if(idno.length == 15 || idno.length == 18) {
        if(!isValidateSexAndIdno(idno,parseInt(sex))) {
            toggleStyle($("#divSex"), false, MSG_SEX_MATCH);
            isValSex = false;
            return false; 
        }
    }
    isValSex = true;
    return true;
}

//验证身份证号码
function checkIdNo() {
    var divIdNo = $("#divIDNO");
    var idno = jQuery.trim($("#idno").val());
    if((18 != idno.length && 15 != idno.length) || (!isChinaIDCard(idno)) || (idno == "111111111111111")) {
	    toggleStyle(divIdNo, false, MSG_IDNO_NORMAL);
	    isValIdno = false;
		return false;
	}
	var i1 = idno.substr(0,1);
	var i2 = idno.substr(1,1);
	var i3 = idno.substr(2,1);
	var i4 = idno.substr(3,1);
	if((!(parseInt(i1)>=1&&parseInt(i1)<7)) || (!(parseInt(i2)>=0&&parseInt(i2)<=7)) || (i1==i2&&i2==i3&&i1==i3&&i1!='2') || (i1==i2&&i2==i3&&i3==i4)) {
	    toggleStyle(divIdNo, false, MSG_IDNO_NORMAL);
	    isValIdno = false;
		return false;
	}
	var sexV = jQuery.trim($("#sex").val());
	if(sexV =="1" || sexV == "0") {
	    if(!isValidateSexAndIdno(idno,parseInt(sexV))) {
            toggleStyle($("#divSex"), false, MSG_SEX_MATCH);
            isValIdno = false;
	        return false; 
        }
    }
    toggleStyle(divIdNo, true, MSG_IDNO_NORMAL);
    isValIdno = true;
    return true;
}

//验证码判断
function checkRondomCode() {
    var rndCode = jQuery.trim($("#randcode").val());
    if(/^[A-Za-z0-9]{4}$/.test(rndCode) == false) {
        alert("请输入正确的验证码");
        return false;
    }
    return true;
}

//验证Email地址
function checkEmailAddress() {
    var email = jQuery.trim($("#email").val());
    if(email.length > 0) {
        var reg = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/g;
        if(reg.test(email) == false) {
            toggleStyle($("#divEmail"), false, MSG_EMAIL_NORMAL);
            isValEmail = false;
            return false;
        }
        toggleStyle($("#divEmail"), true, MSG_RIGHT);
    }
    else
    {
        $("#divEmail").attr("class","");
        $("#divEmail").find("span").html("");
    }
    isValEmail = true;
    return true;
}

//表单总验证
function checkRegForm() {
    if(!isValEmail) {
        toggleStyle($("#divEmail"), false, MSG_EMAIL_NORMAL);
        $("#divEmail").focus();
    }
    if(!isValIdno) {
        toggleStyle($("#divIDNO"), false, MSG_IDNO_NORMAL);
        $("#divIDNO").focus();
    }
    if(!isValSex) {
        toggleStyle($("#divSex"), false, MSG_SEX_NORMAL);
        $("#divSex").focus();
    }
    if(!isValUsername) {
        toggleStyle($("#divUserName"), false, MSG_REAL_NAME_NORMAL);
        $("#divUserName").focus();
    }
    if(!isValPwd2) {
        toggleStyle($("#divPwd2"), false, MSG_PASSWORD_NOT_MATCH);
        $("#divPwd2").focus();
    }
    if(!isValPwd) {
        toggleStyle($("#divPwd"), false, MSG_PASSWORD_NORMAL);
        $("#divPwd").focus();
    }
    if(!isValUserId) {
        toggleStyle($("#divUserId"), false, MSG_USERID_NORMAL);
        $("#divUserId").focus();
    }
    if (!(isValUserId && isValPwd && isValPwd2 && isValUsername && isValSex && isValIdno && isValEmail))
        return false;
        
    if($("#agree").attr('checked') == undefined) {
        window.alert("您必须同意《最终用户协议》，才能继续注册。");
        return false;
    }
    if(!checkRondomCode()) {
        return false;
    }
    return true;
}

//页面初始化
$(document).ready(
    function(){
        if(/msie/i.test(navigator.userAgent))
            document.getElementById('userid').onpropertychange = useridChange
        else
            document.getElementById('userid').addEventListener("input",useridChange,false);
        $('#userid').blur( function() { checkUserId();} );
        $('#pwd').blur( function() { checkPassword();} );
        $('#pwd').keyup( function() { checkPasswordStrong();} );
        $('#pwd2').blur( function() { checkComfirmPwdSame();} );
        $("#username").blur( function() { checkUserName();} );
        $("#sex").blur( function() { checkSex();} );
        $("#idno").blur( function() { checkIdNo();} );
        $("#email").blur( function() { checkEmailAddress();} );         
        $('#btnSubmit').click( function() { if(checkRegForm())ajaxSubmit();} );
        $('#btnCancel').click( function() { window.location="../Session/Default.aspx"; return false;} );
    }
);

//ajax提交表单
function ajaxSubmit() {
    if(ajaxing == false) {
        ajaxing = true; 
    } else {
        alert("表单提交中，请稍候……");
        return;
    }
    var postUserId = $("#userid").val();
    var postPwd = $("#pwd").val();
    var postPwd2 = $("#pwd2").val();
    var postUserName = escape($("#username").val());
    var postSex = $("#sex").val();
    var postIdno = $("#idno").val();
    var postRandcode = $("#randcode").val();
    var postEmail = $("#email").val();
    var postAgree = $("#agree").val();
    var postFrom = $("#from").val();
    var postFuid = $("#fuid").val();
    var postFromUrl = $("#fromurl").val();
    var postGB = $("#gb").val();
    $.post("AccountRegSave.aspx", { 
            userid: postUserId, 
            pwd: postPwd, 
            pwd2: postPwd2, 
            username: postUserName,
            sex: postSex,
            idno: postIdno,
            randcode: postRandcode,
            email: postEmail,
            agree: postAgree,
            from:postFrom,
            fuid:postFuid,
            fromurl:postFromUrl,
            gb:postGB
        },function(data){
            var datas = data.split("|");
            var isSuccess = datas[0];
            var strMessage = datas[1];
            if(isSuccess == "1") {
                ajaxing = false;
                window.location.href = strMessage;
                return;
            } else {
                alert(strMessage);
                ajaxing = false;
                isNeedGetNewCode = true;
                getValidate();
            }
        });
}