var MSG_USERID_NORMAL = "用户名必须为以字母开头，由小写英文字母和数字组成的4-16位字符。"
var MSG_USERID_OK = "您可以使用当前用户名。"
var MSG_USERID_ERR = "请输入正确的用户名。"
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_ATTACH_CODE_NORMAL = "请填写推荐码";
var MSG_ATTACH_CODE_ERROR = "请填写正确的推荐码，包含英文或者数字，长度为6-10位。";
var MSG_ATTACH_CODE_OK = "正确的推荐码";
var MSG_ATTACH_CODE_NOT_EXISTS = "该推荐码不存在!";

var MSG_ATTACH_CODE_NORMAL_5173 = "请填写5173特权码";
var MSG_ATTACH_CODE_ERROR_5173 = "错误，只允许英文或数字,长度6-10位";
var MSG_ATTACH_CODE_5173_OK = "正确的5173特权码";
var MSG_ATTACH_CODE_5173_NOT_EXISTS = "该5173特权码不存在!";

var MSG_ATTACH_CODE_SYSTEM_ERROR = "系统检查错误，请重新输入";

var isValFormatUserId = false; //是否通过用户名格式检查
var isValExsitCheck = false; //是否进行过服务端检查
var isValExsitUserId = false; //服务端检查结果
var isNeedGetNewCode = true;
var isAttachCodeExists =false;   

//用户名更改
function useridChange() {
    $("#validate2").css("display", "none");
    isNeedGetNewCode = true;
    isValFormatUserId = false;
    isValExsitCheck = false;
}

//验证码框获得焦点
function codeOnfocus() {
    if(isValFormatUserId) {
        getValidate();
        return;
    }
    if(!isValFormatUserId) {
        checkUserId();
        if(isValFormatUserId) {
            getValidate();
            return;
        }
    }
    window.alert(MSG_USERID_ERR);
    $("#userid").focus();
}

//获取新的验证码
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;
    }
}

//检查userid格式是否有效
function checkUserId() {
    var reg = /^[a-z][a-z0-9]{3,15}$/;
    var strUserId = jQuery.trim($("#userid").val());
    if(strUserId.length == 0) {
        isValFormatUserId = false;
        return false;
    }
    if(reg.test(strUserId)) {
        isValFormatUserId = true;
        return true;
    }
    isValFormatUserId = false;
    $("#userid").focus();
    $("#userid").select();
    return false;
};

//服务端检查userid
function checkUserIdExists() {
    if(!isValFormatUserId) {
        checkUserId();
        if(!isValFormatUserId) {
            window.alert(MSG_USERID_NORMAL);
            $("#userid").focus();
            $("#userid").select();
            return false;
        }
    }
    isValExsitCheck = true;
    var strUserId = jQuery.trim($("#userid").val());
    var checkUrl = "AccountRegChk.aspx?userid=" + strUserId;
    $.get(checkUrl, {}, 
        function (responseText) {
            switch(responseText) {
                case "1000":
                    window.alert(MSG_USERID_OK);
                    isValExsitUserId = true;
                    break;
                case "1010":
                    window.alert(MSG_USERID_NORMAL);
                    setExsitUserId();
                    break;
                case "1020":
                    window.alert(MSG_USERID_EXIST);
                    setExsitUserId();
                    break;
                case "1030":
                    window.alert(MSG_USERID_BAN);
                    setExsitUserId();
                    break;
                default:
                    window.alert(MSG_USERID_NORMAL);
                    setExsitUserId();
                    break;
            }
            
            function setExsitUserId() {
                isValExsitUserId = false;
                $("#userid").focus();
                $("#userid").select();
            }
        }
    );
    return true;
};

//检查密码格式
function checkPassword() {
    var reg = /^[a-zA-Z0-9]{4,10}$/;
    var strPwd = jQuery.trim($("#pwd").val());
    if(reg.test(strPwd) == false) {
        window.alert(MSG_PASSWORD_NORMAL);
        return false;
    }
    return true;
}

//验证两次密码是否一致
function checkComfirmPwdSame() {
    if($("#pwd").val().length == 0) {
        window.alert(MSG_PASSWORD_EMPTY);
        return false;   
    }
    if($("#pwd").val() != $("#pwd2").val()) {
        window.alert(MSG_PASSWORD_NOT_MATCH);
        return false;
    }
    return true;
}

//验证用户真实姓名
function checkUserName() {
    var userName = jQuery.trim($("#username").val());
    if(/^[\u4e00-\u9fa5]{1,20}$/.test(userName) == false) {
        window.alert(MSG_REAL_NAME_NORMAL);
        return false;
    }
    return true;
}

//判断是否选择性别
function checkSex() {
    var sex = $("#sex").val();
    if(sex != "1" && sex != "0") {
        window.alert(MSG_SEX_NORMAL);
        return false;
    }
    var idno = jQuery.trim($("#idno").val());
    if(idno.length == 15 || idno.length == 18) {
        if(!isValidateSexAndIdno(idno,parseInt(sex))) {
            window.alert(MSG_SEX_MATCH);
            return false; 
        }
    }
    return true;
}

//验证身份证号码
function checkIdNo() {
    var idno = jQuery.trim($("#idno").val());
    if((18 != idno.length && 15 != idno.length) || (!isChinaIDCard(idno)) || (idno == "111111111111111")) {
        window.alert(MSG_IDNO_NORMAL);
		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)) {
	    window.alert(MSG_IDNO_NORMAL);
		return false;
	}
	var sexV = jQuery.trim($("#sex").val());
	if(sexV =="1" || sexV == "0") {
	    if(!isValidateSexAndIdno(idno,parseInt(sexV))) {
	        window.alert(MSG_SEX_MATCH);
	        return false; 
        }
    }
    return true;
}
function onChangeAttachCode()
{
    toggleStyle($("#divAttachMsg"), true, "");
}

//推荐码
function checkAttachCode()
{    
    var attachCode = jQuery.trim($("#attachcode").val());
    var attachType = jQuery.trim($("#attachtype").val());         
    
    if(attachCode.length==0)
    {
//        if("5173"==attachType)
//            alert(MSG_ATTACH_CODE_NORMAL_5173);
//        else
//            alert(MSG_ATTACH_CODE_NORMAL);
       if("5173"==attachType)
            toggleStyle($("#divAttachMsg"), true, "<font color=red siz=12>"+MSG_ATTACH_CODE_NORMAL_5173+"</font>");
        else
            toggleStyle($("#divAttachMsg"), true, "<font color=red siz=12>"+MSG_ATTACH_CODE_NORMAL+"</font>");
        return false;
    }
//    if(/^[A-Za-z0-9]{6,10}$/.test(attachCode) == false) {
//        if("5173"==attachType)
//            alert(MSG_ATTACH_CODE_ERROR_5173);
//        else
//            alert(MSG_ATTACH_CODE_ERROR);
//        return false;
//    }
    if(!isAttachCodeExists)
    {
        return false;
    }
    
    return true;
}


//服务端检查attachcode
function checkAttachCodeExists() {
    var strUserId = jQuery.trim($("#userid").val());
    var attachCode = jQuery.trim($("#attachcode").val());
    var attachType = jQuery.trim($("#attachtype").val());
    
    if(attachCode.length==0)
    {
        if("5173"==attachType)
            toggleStyle($("#divAttachMsg"), true, "<font color=red siz=12>"+MSG_ATTACH_CODE_NORMAL_5173+"</font>");
        else
            toggleStyle($("#divAttachMsg"), true, "<font color=red siz=12>"+MSG_ATTACH_CODE_NORMAL+"</font>");
        return false;
    }
    if(/^[A-Za-z0-9]{6,10}$/.test(attachCode) == false) {
        if("5173"==attachType)
            toggleStyle($("#divAttachMsg"), true, "<font color=red siz=12>"+MSG_ATTACH_CODE_ERROR_5173+"</font>");
        else
            toggleStyle($("#divAttachMsg"), true, "<font color=red siz=12>"+MSG_ATTACH_CODE_ERROR+"</font>");
        return false;
    }
    
    var checkUrl = "../Attach/AttchChk.aspx?userid=" + strUserId+ "&attachcode="+attachCode+"&attachtype="+attachType;
    $.get(checkUrl, {}, 
        function (responseText) {
            switch(responseText) {
                case "1":
                    if("5173"==attachType)
                        toggleStyle($("#divAttachMsg"), true, "<font color=green siz=12>"+MSG_ATTACH_CODE_5173_OK+"</font>");
                    else
                        toggleStyle($("#divAttachMsg"), true, "<font color=green siz=12>"+MSG_ATTACH_CODE_OK+"</font>");
                    isAttachCodeExists = true;
                    break;
                case "-3":
                    if("5173"==attachType)
                       toggleStyle($("#divAttachMsg"), true, "<font color=red siz=12>"+MSG_ATTACH_CODE_5173_NOT_EXISTS+"</font>");
                    else
                       toggleStyle($("#divAttachMsg"), true, "<font color=red siz=12>"+MSG_ATTACH_CODE_NOT_EXISTS+"</font>");
                    isAttachCodeExists = false;
                    break;  
                case "-1000":                                   
                     toggleStyle($("#divAttachMsg"), true, "<font color=red siz=12>"+MSG_ATTACH_CODE_SYSTEM_ERROR+"</font>");
                     //$("#attachcode").attr("value",'')
                     isAttachCodeExists = false;
                    break; 
                case "-1001":                                   
                     toggleStyle($("#divAttachMsg"), true, "<font color=red siz=12>"+MSG_ATTACH_CODE_SYSTEM_ERROR+"</font>");
                     //$("#attachcode").attr("value",'')
                     isAttachCodeExists = false;
                    break;                                 
                default:
                    toggleStyle($("#divAttachMsg"), true, MSG_ATTACH_CODE_ERROR);
                    isAttachCodeExists = false;
                    break;
            } 
        }
    );
    if(isAttachCodeExists)
        return true;
    else
        return 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);
}
 

//验证码判断
function checkRandomCode() {
    var rndCode = jQuery.trim($("#randcode").val());
    if(/^[A-Za-z0-9]{4}$/.test(rndCode) == false) {
        alert("请输入正确的验证码");
        return false;
    }
    return true;
}

//表单总验证
function checkRegForm() {
    if(!isValFormatUserId) {
        checkUserId();
        if (!(isValExsitCheck && isValExsitUserId && isValFormatUserId || isValFormatUserId && !isValExsitCheck )) {
            window.alert(MSG_USERID_ERR);
            $("#userid").focus();
            $("#userid").select();
            return false;
        }
    } else if (isValExsitCheck && !isValExsitUserId) {
        window.alert(MSG_USERID_ERR);
        $("#userid").focus();
        $("#userid").select();
        return false;
    }
    if(!checkPassword()) {
        $("#pwd").focus();
        return false;
    }
    if(!checkComfirmPwdSame()) {
        $("#pwd2").focus();
        return false;
    }
    if((null == document.getElementById("checkDetails")) ||
        (null != document.getElementById("checkDetails")) && $("#checkDetails").attr('checked') == true)
    {
        if(!checkUserName()) {
            $("#username").focus();
            return false;
        }
        if(!checkSex()) {
            $("#sex").focus();
            return false;
        }
        if(!checkIdNo()) {
            $("#idno").focus();
            return false;
        }
    }
    if( null != document.getElementById("checkAttachDetails") && $("#checkAttachDetails").attr('checked') == true )
    {
         if(!checkAttachCode()) {
            $("#attachcode").focus();
            return false;
        }
    }
    if(!checkRandomCode()) {
        $("#randcode").focus();
        return false;
    }   
    if($("#agree").attr('checked') == undefined) {
        window.alert("您必须同意《最终用户协议》，才能继续注册。");
        return false;
    }
    return true;
}

//注册其他信息
function showdetails(){
    if($("#details").css("display") == "none") {
        $("#details").css("display","block");
        $("#checkDetails").attr('checked', true);
    } else {
        $("#details").css("display","none");
        $("#checkDetails").attr('checked', false);
    }
};

//附加代码信息
 function showAttachDetail(show_din)
   {
      var traget=document.getElementById(show_din);
       var checkdetal = document.getElementById("checkAttachDetails");
       if(traget.style.display=="none")
       {
                traget.style.display="block";
                checkdetal.checked = true;
       }
       else if(traget.style.display=="block")
       {
               traget.style.display="none";
                checkdetal.checked = false;
        }
   };



//页面初始化
$(document).ready(        
    function(){
        if(/msie/i.test(navigator.userAgent))
            document.getElementById('userid').onpropertychange = useridChange
        else
            document.getElementById('userid').addEventListener("input",useridChange,false);
        $('#btnSubmit').click( function() { return checkRegForm();} );
        $("#attachcode").blur( function() { return checkAttachCodeExists();} );
    }
);