﻿var ie = navigator.appName == "Microsoft Internet Explorer" ? true : false;

function setH() {
    this.set({
        'display': '',
        'opacity': 0
    });
    this.start({
        'opacity': 1
    });
}
function displayH() {
    this.start({
        'display': 'none'
    });
}
function CharMode(iN) {
    if (iN >= 48 && iN <= 57) //数字 
        return 1;
    if (iN >= 65 && iN <= 90) //大写字母 
        return 2;
    if (iN >= 97 && iN <= 122) //小写 
        return 4;
    else
        return 8; //特殊字符
}
//bitTotal函数 
//计算出当前密码当中一共有多少种模式
function bitTotal(num) {
    modes = 0;
    for (i = 0; i < 4; i++)
    { if (num & 1) modes++; num >>>= 1; }
    return modes;
}
//checkStrong函数 
//返回密码的强度级别
function checkStrong(sPW) {
    if (sPW.length <= 4) return 0; //密码太短 
    Modes = 0;
    for (i = 0; i < sPW.length; i++) {
        //测试每一个字符的类别并统计一共有多少种模式.
        Modes |= CharMode(sPW.charCodeAt(i));
    }
    return bitTotal(Modes);
}
function changeImgByPs(input) {
    if (input.value && input.value.length > 0) {
        var cs = parseInt(checkStrong(input.value));
        $('#pwSt').get(0).src = "/student/images/mmqd_" + (cs + 1) + ".gif";
        switch (cs) {
            case 0:
                $('#pwSSt').eq(0).html("弱");
                break;
            case 1:
                $('#pwSSt').eq(0).html("一般");
                break;
            case 2:
                $('#pwSSt').eq(0).html("中");
                break;
            case 3:
                $('#pwSSt').eq(0).html("佳");
                break;
        }
    }
}

$(document).ready(function() {
    //验证
    $.formValidator.initConfig({ formid: "form1", onerror: function(msg) { } });

    $("#txt_LoginName").formValidator({ onshow: "用户由6-16个英文字母、数字组成，不含特殊字符!", onfocus: "用户账号不能为空", oncorrect: "输入正确" }
            ).inputValidator({ min: 6, max: 18, onerror: "账号长度应该在6-18之间,请确认" }
            ).ajaxValidator({

                url: "/student/Handlers/QuickSignUpHandler.ashx?action=CheckUserExist",
                addidvalue: true,
                datatype: "html",
                async: false,
                success: function(data) { if (JSON.parse(data).Message == 1) { return false; } else { return true; } },
                onerror: "对不起，该账号已经存在，请您换个账号!",
                onwait: "正在对该账号进行重复性检测..."
            }).regexValidator({
                datatype: "enum",
                regexp: "username",
                onerror: "用户由6-16个英文字母、数字、下划线组成，不含特殊字符"
            });

    $("#txt_password1").formValidator({ onshow: "请输入密码", onfocus: "用户密码不能为空", oncorrect: "输入正确" }
            ).inputValidator({ min: 6, max: 18, onerror: "密码长度应该在6-18之间,请确认" }
            );

    $("#password2").formValidator({ onshow: "请重复密码，保证两次输入的密码一致", onfocus: "用户密码不能为空", oncorrect: "输入正确" }
            ).inputValidator({ min: 6, max: 18, onerror: "密码长度应该在6-18之间,请确认" }
            ).compareValidator({ desid: "txt_password1",
                operateor: "=",
                onerror: "2次输入的密码不匹配"
            });

    $("#realName").formValidator({ onshow: "请输入真实姓名", onfocus: "真实姓名不能为空", oncorrect: "输入正确" }
            ).inputValidator({ min: 1, onerror: "真实姓名非法,请确认" }
            );

    //    $("#xueli").formValidator({ onshow: "(证书按此学历打印,可不选。)", onfocus: "学历不能为空", oncorrect: "输入正确" }
    //            ).functionValidator({
    //                fun: function() { if ($("#xueli").val() != "") { this.isvalid = true; } else { this.isvalid = false; } },
    //                onerror: "您还没有选择学历"
    //            });

    $("#certType").formValidator({ onshow: "请选择证件类型", onfocus: "证件类型不能为空", oncorrect: "输入正确" }
            ).functionValidator({
                fun: function() { if ($("#certType").val() != "") { this.isvalid = true; } else { this.isvalid = false; } },
                onerror: "您还没有选择证件类型"
            });

    $("#certNumber").formValidator({ onshow: "请输入证件号码", onfocus: "证件号码不能为空", oncorrect: "输入正确" }
            ).inputValidator({ min: 1, onerror: "证件号码非法,请确认" }
            );


    $("#signUpType").formValidator({ onshow: "请选择报考课程", onfocus: "报考课程不能为空", oncorrect: "输入正确" }
            ).functionValidator({
                fun: function() {
                    if ($("#isBM").get(0).checked) {
                        if ($("#signUpType").val().length > 0) {
                            this.isvalid = true;
                        }
                        else {
                            this.isvalid = false; 
                        }
                    }
                    else {
                        this.isvalid = true;
                    }
                },
                onerror: "您还没有选择报考课程"
            });

    $("#email").formValidator({ onshow: "请填写电子邮件", onfocus: "电子邮件不能为空", oncorrect: "输入正确" }
            ).inputValidator({ min: 1, onerror: "电子邮件非法,请确认" }
            ).regexValidator({
                datatype: "enum",
                regexp: "email",
                onerror: "邮件地址非法"
            });

    $("#sl_Country").formValidator({ onshow: "请选择所在国家", onfocus: "所在国家不能为空", oncorrect: "输入正确" }
            ).functionValidator({
                fun: function() { if ($("#sl_Country").val() != "") { this.isvalid = true; } else { this.isvalid = false; } },
                onerror: "您还没有选择所在国家"
            });

    $("#sl_Province").formValidator({ onshow: "请选择所在省市", onfocus: "所在省份不能为空", oncorrect: "输入正确" }
            ).functionValidator({
                fun: function() { if ($("#sl_Province").val() != "") { this.isvalid = true; } else { this.isvalid = false; } },
                onerror: "您还没有选择所在省市"
            });

    $("#sl_City").formValidator({ onshow: "请选择所在县市", onfocus: "所在县市不能为空", oncorrect: "输入正确" }
            ).functionValidator({
                fun: function() { if ($("#sl_City").val() != "") { this.isvalid = true; } else { this.isvalid = false; } },
                onerror: "您还没有选择所在县市"
            });

    $("#phone").formValidator({ onshow: "可以是多个号码、或分机、手机号等，逗号隔开！", onfocus: "联系电话不能为空", oncorrect: "输入正确" }
            ).inputValidator({ min: 1, onerror: "联系电话非法,请确认" }
            );

    //    $("#fax").formValidator({ onshow: "格式：省+市+区+路+号+其他名称", onfocus: "邮寄地址不能为空", oncorrect: "输入正确" }
    //            ).inputValidator({ min: 1, onerror: "邮寄地址非法,请确认" }
    //            );

    $("#yzcode").formValidator({ onshow: "请填写邮政编码", onfocus: "邮政编码不能为空", oncorrect: "输入正确" }
            ).inputValidator({ min: 1, onerror: "邮政编码非法,请确认" }
            ).regexValidator({
                datatype: "enum",
                regexp: "zipcode",
                onerror: "邮编非法"
            });

            $("#TxtVerify").formValidator({ onshow: "请填写右侧的验证码！", onfocus: "验证码不能为空", oncorrect: "输入正确" }
            ).inputValidator({ min: 1, onerror: "验证码非法,请确认" }
            );
});

function siFP_Change(checkbox) {
    if (checkbox.checked) {
        $("#txtExamSubjectCharge_EndTotal").html(makeNum(parseInt($("#txtExamSubjectCharge_EndTotal").val()) * 1.1, 3));
        $("#tr_fpdw").show();
    }
    else {
        $("#tr_fpdw").hide();
        $("#txtExamSubjectCharge_EndTotal").html(makeNum(parseInt($("#txtExamSubjectCharge_EndTotal").val()) * 1, 3));
    }
}

function isBM_Change(checkbox) {
    if (checkbox.checked) {
        $("#tr_bm").show();
    }
    else {
        $("#tr_bm").hide();
    }
}

function makeNum(num, n) {
    var dd = 1;
    var tempnum = new Number;
    for (i = 0; i < n; i++) { dd *= 10; }
    tempnum = num * dd;
    tempnum = Math.round(tempnum);
    return tempnum / dd;
}

$(document).ready(function() {

    //绑定学历
    BindEducation();

    //绑定证书类型
    BindCertType();

    //绑定行政单位
    _regionHelper.BindCountry();

    //设置学历和证书类型默认值
    SetOptionIndex($("#xueli").get(0), "本科");

    SetOptionIndex($("#certType").get(0), "公民身份证");
});

function SaveData() {
    //进行数据验证
    if ($.formValidator.pageIsValid()) {
        //收集数据
        var loginName = $("#txt_LoginName").val();
        var Sex = $("#sl_Sex").val();
        var PassWord = $("#txt_password1").val();
        var RealName = $("#realName").val();
        var XueLi = $("#xueli").val();
        var CertType = $("#certType").val();
        var CertNumber = $("#certNumber").val();
        var SignUpType = $("#txtExamSubjectId").val();
        var SignUpTypeName = $("#txtExamSubjectName").val();
        var SignUpCost = $("#txtExamSubjectCharge").val();
        var IsFP = $("#isFP").get(0).checked;
        var IsBM = $("#isBM").get(0).checked;
        var FPDW = $("#FPDW").val();
        var Email = $("#email").val();
        var Country = $("#sl_Country").val();
        var Province = $("#sl_Province").val();
        var City = $("#sl_City").val();
        var Area = $("#sl_Area").val();
        var Phone = $("#phone").val();
        var Fax = $("#fax").val();
        var Address = $("#address").val();
        var YzCode = $("#yzcode").val();
        var TxtVerify = $("#TxtVerify").val();
        var otherRequest = $("#txtOtherRequest").val();

        var _data = { "LoginName": loginName,
            "Sex": Sex,
            "PassWord": PassWord,
            "RealName": RealName,
            "XueLi": XueLi,
            "CertType": CertType,
            "CertNumber": CertNumber,
            "SignUpType": SignUpType,
            //"SignUpTypeName": SignUpTypeName,
            "SignUpCost": SignUpCost,
            "IsFP": IsFP,
            "IsBM": IsBM,
            "FPDW": FPDW,
            "Email": Email,
            "Country": Country,
            "Province": Province,
            "City": City,
            "Area": Area,
            "Phone": Phone,
            "Fax": Fax,
            "Address": Address,
            "YzCode": YzCode,
            "TxtVerify": TxtVerify,
            "OtherRequest": otherRequest
        };

        var process = $("<div id='jboxWait'><div style=\"text-align:center; margin: 30pt 0pt 0pt;\"><img src='/student/Images/loading.gif' /> 正在提交数据,请稍候...</div></div>");
        var winStyle = "width=100,height=10,center=1,resize=0, minimizable=0,draggable=1,model=1,closeable=0";
        var boxID = "boxQuickSignUp";
        var jb_1 = jBox.open(boxID, "inline", "<div id='jboxWait'><img src='/student/Images/loading.gif' /> 正在提交数据,请稍候...</div>", "提交注册信息", winStyle, null);

        //提交注册请求
        $.ajax({
            url: "/Student/Handlers/QuickSignUpHandler.ashx?action=QickSignUp",
            type: "POST",
            data: { data: encodeURI(JSON.stringify(_data)) },
            beforeSend: function(XMLHttpRequest) { XMLHttpRequest.setRequestHeader("isAjax", "true"); },
            complete: function(data) {
                if (data.responseText) {

                    var ri = JSON.parse(data.responseText);

                    if (ri.Result) {
                        if (ri.NextPage && ri.NextPage.length > 0) {//需要跳转

                            $("#jboxWait").html(ri.Message + "...");
                            window.location.href = ri.NextPage;
                        }
                        else {
                            jBox.close(boxID);
                            jBox.alert(ri.Message, 100, 40);
                        }
                    }
                    else {
                        jBox.close(boxID);
                        jBox.alert(ri.Message, 100, 40);
                    }
                }
            }
        });
    }
}

//刷新验证码
function RefreshValdisplayDateCodeImage(ValdisplayDateCodeImageControl) {
    ValdisplayDateCodeImageControl.src = ValdisplayDateCodeImageControl.src + '?code=' + RandomNum(10);
}

function RandomNum(n) {
    var rnd = '';
    for (var i = 0; i < n; i++)
        rnd += Math.floor(Math.random() * 10);
    return rnd;
}

function BindEducation() {
    AddSingleItemForSelect($("#xueli").get(0), "", "请选择");

    if (EducationList && EducationList.length > 0) {
        for (var i = 0; i < EducationList.length; i++) {
            AddSingleItemForSelect($("#xueli").get(0), EducationList[i].DataValueField, EducationList[i].DataTextField);
        }
    }
}

function BindCertType() {
    AddSingleItemForSelect($("#certType").get(0), "", "请选择");

    if (CertTypeList && CertTypeList.length > 0) {
        for (var i = 0; i < CertTypeList.length; i++) {
            AddSingleItemForSelect($("#certType").get(0), CertTypeList[i].DataValueField, CertTypeList[i].DataTextField);
        }
    }
}

//国家切换
function Country_Change(sl) {

    sl.disabled = true;

    //绑定省份
    _regionHelper.BindProvince($("#sl_Country").val());

    AddressChange();

    sl.disabled = false;
}

//省份切换
function Province_Change(sl) {

    sl.disabled = true;

    //绑定城市
    _regionHelper.BindCity($("#sl_Province").val());

    AddressChange();

    sl.disabled = false;
}

//城市切换
function City_Change(sl) {

    sl.disabled = true;

    //绑定地区
    _regionHelper.BindArea($("#sl_City").val());

    AddressChange();

    PostCodeChange1();
    
    sl.disabled = false;
}

//地区切换
function Area_Change(sl) {
    sl.disabled = true;

    AddressChange();

    PostCodeChange();
    
    sl.disabled = false;
}

//自动填充地址
function AddressChange() {
    var country = $("#sl_Country").val();
    var province = $("#sl_Province").val();
    var city = $("#sl_City").val();
    var area = $("#sl_Area").val();

    $("#address").val((country ? country : "") + " " + (province ? province : "") + " " + (city ? city : "") + " " + (area ? area : ""));
}

function PostCodeChange() {
    _regionHelper.BindPostCodeByArea($("#sl_Country").val(), $("#sl_Province").val(), $("#sl_City").val(), $("#sl_Area").val());
}

function PostCodeChange1() {
    _regionHelper.BindPostCodeByCity($("#sl_Country").val(), $("#sl_Province").val(), $("#sl_City").val());
}

//选择考试科目
function OpenExamSubjectSelectWindow() {
    this.FileUploadWindowID = "jbox_ExamSubjectSelect";

    var winTitle = "考试科目选择窗口";
    var jsonData = {};

    var attr = "width=350,height=330,center=true,resize=false, scrolling=false,minimizable=false,draggable=true,closeable=false,model=true";

    var source = { url: "/student/ExamSubjectSelectTree.aspx?InitNodes=" + $("#txtExamSubjectId").val() + "&x=" + GetDateTimeSymbol(),
        method: "post",
        data: JSON.stringify(jsonData)
    };

    var buttons =
        [
            {
                text: "确定",
                fn: function() {
                    DealWithSubjectSelectWindowClose();
                    window.focus();
                    jBox.close("jbox_ExamSubjectSelect");
                }
            },
            {
                text: "关闭",
                fn: function() {
                    jBox.close("jbox_ExamSubjectSelect");
                }
            }
        ];

    jBox.open("jbox_ExamSubjectSelect", "iframe", source, winTitle, attr, buttons, function() { });
}


function DealWithSubjectSelectWindowClose() {
    $("#txtExamSubjectName").val("");
    $("#txtExamSubjectId").val("");
    $("#txtExamSubjectCharge").val("");
    var total = 0;

    var iframe = $(".jBoxIframe").get(0).contentWindow;

    if (iframe) {
        var checkedObjects = iframe.getCheckObjects();

        if (checkedObjects && checkedObjects.length > 0) {
            for (var i = 0; i < checkedObjects.length; i++) {
                total += parseInt(iframe.getNodeById(checkedObjects[i].id).DisCountSubjectCharge);
                $("#txtExamSubjectName").val($("#txtExamSubjectName").val() + checkedObjects[i].text + (i < checkedObjects.length - 1 ? "\r\n" : ""));
                $("#txtExamSubjectId").val($("#txtExamSubjectId").val() + checkedObjects[i].value + (i < checkedObjects.length - 1 ? "," : ""));
                $("#txtExamSubjectCharge").val($("#txtExamSubjectCharge").val() + iframe.getNodeById(checkedObjects[i].id).DisCountSubjectCharge + (i < checkedObjects.length - 1 ? "," : ""));
            }
        }
    }
    
    //统计总价格
    $("#txtExamSubjectCharge_EndTotal").val(total);
    
    //统计总价格
    $("#txtExamSubjectCharge_Total").html(total);

    $("#txtExamSubjectCharge_EndTotal").html(makeNum(parseInt($("#txtExamSubjectCharge_EndTotal").val()) * ($("#isFP").get(0).checked ? 1.1 : 1), 3));
}