$(function () {
    //表单验证
    $("[mandatory],[name='LoginPassword'],[name='qLoginPassword']").each(function () {
        if ($(this).is("input") || $(this).is("textarea")) {
            $(this).on("keyup blur", function () {
                InputError(this);
            })
        } else if ($(this).is("select")) {
            $(this).on("change blur", function () {
                SelectError(this);
            })
        } else {
            $(this).find("[type=checkbox],[type=radio]").on("change", function () {
                CheckRadioError(this)
            })
        }
    });

    $('.selectpicker').selectpicker();

    //初始化自动补全
    //Autocomplete("#centrename");
    $("#centrename").combobox();
    //初始化成员列表
    $("[liinit=true]").find('input:hidden').each(function () {

        ControllerLi(this)

    })
});


//文本框文本域验证 a当前元素
function InputError(a) {
    if ($(a).parents('li').length) {
        var pa = $(a).parents('li');//组织机构
    } else {
        var pa = $(a).parents('.in-tr');
    }
    var placeholder = $(a).attr('placeholder');
    if (!$(a).val()) {
        if ($(a).prop('name') == 'qLoginPassword' || $(a).prop('name') == 'LoginPassword') {
            if (!$("[name = 'LoginPassword']").val() && !$("[name = 'qLoginPassword']").val()) {
            
                $("[name = 'LoginPassword'],[name = 'qLoginPassword']").parents('.in-tr').removeClass('err');
                $("[name = 'LoginPassword'],[name = 'qLoginPassword']").parents('.in-tr').find('.verifytext').remove();
            } else {
                $("[name = 'LoginPassword'],[name = 'qLoginPassword']").parents('.in-tr').addClass('err');
            }
            
        } else {
            pa.addClass('err')
       
       
        if (pa.children('.verifytext').length) {
            //pa.children('.verifytext').text('1222');
        } else {
            if ($(a).parents('li').length) {//组织机构
                pa.append('<p class="verifytext" style="text-align: center">' + placeholder + '</p>');
            } else {
                pa.append('<p class="verifytext">请输入' + placeholder + '</p>');
            }
            
        }
        }

    } else {
        //密码确认密码验证
        if ($(a).prop('name') == 'qLoginPassword' || $(a).prop('name') == 'LoginPassword') {
            if ($('[name="LoginPassword"]').val().length < 6 || $('[name="LoginPassword"]').val().length >16) {
                pa.addClass('err');
                if (pa.children('.verifytext').length) {
                    pa.children('.verifytext').text('密码长度必须大于6位小于16位');
                } else {
                    pa.append('<p class="verifytext">密码长度必须大于6位小于16位</p>');
                }
               
            } else {
                pa.find('.verifytext').remove();
                pa.removeClass('err');
                if ($('[name="qLoginPassword"]').val() != $('[name="LoginPassword"]').val()) {
                    $('[name="qLoginPassword"]').parents('.in-tr').addClass('err');
                    if ($('[name="qLoginPassword"]').parents('.in-tr').children('.verifytext').length) {
                        $('[name="qLoginPassword"]').parents('.in-tr').children('.verifytext').text('密码和确认密码不一致');
                    } else {
                        $('[name="qLoginPassword"]').parents('.in-tr').append('<p class="verifytext">密码和确认密码不一致</p>');
                    }

                } else {
                    pa.find('.verifytext').remove();
                    pa.removeClass('err');
                }
            }
            


        }else{
         pa.find('.verifytext').remove();
         pa.removeClass('err');
        }
        //判断是否输入数字
        if ($(a).attr('ntype') == 'number') {
            var bool = isNum($(a).val());
            if (!bool) {
                if (pa.children('.verifytext').length) {
                    pa.find('.verifytext').text('请输入数字格式');
                } else {
                    pa.append('<p class="verifytext" style="text-align: center">请输入数字格式</p>');
                }
                
                pa.addClass('err');
            } else {
                pa.find('.verifytext').remove();
                pa.removeClass('err');
            }
        }

        if ($(a).attr('ntype') == 'mobile') {
            var bool = isMobile($(a).val());
            if (!bool) {
                if (pa.children('.verifytext').length) {
                    pa.find('.verifytext').text('手机号格式不正确');
                } else {
                    pa.append('<p class="verifytext">手机号格式不正确</p>');
                }

                pa.addClass('err');
            } else {
                pa.find('.verifytext').remove();
                pa.removeClass('err');
            }
        }
       
      
    }
}
//验证数字
function isNum(num) {
    var reNum = /^[0-9]+$/;
    return (reNum.test(num));
}

//手机验证
function isMobile(num) {
    var reNum = /^((13[0-9])|(15[^4,\\d])|(18[0-9])|(14[0-9])|(16[0-9])|(17[0-9])|(19[0-9]))\d{8}$/;
    return (reNum.test(num));
}

//下拉验证 a当前元素
function SelectError(a) {
    var pa = $(a).parents('.in-tr');
    var placeholder = $(a).attr('placeholder');
    if (!$(a).val()) {
        pa.addClass('err')
        if (pa.children('.verifytext').length) {
            pa.children('.verifytext').text('请选择' + placeholder);
        } else {
            pa.append('<p class="verifytext">请选择' + placeholder + '</p>');
        }

    } else {
        if ($(a).attr('name') == 'city' || $(a).attr('name') == 'province') {
            if ($("[name=city]").val() && $("[name=province]").val()) {
                pa.find('.verifytext').remove();
                pa.removeClass('err');
            }
        } else {
            pa.find('.verifytext').remove();
            pa.removeClass('err');
        }

    }
}


//单选多选验证  a当前元素
function CheckRadioError(a) {
    debugger
    var name = $(a).prop('name');
    var pa = $(a).parents('.in-tr');
    if (!$('[name=' + name + ']:checked').length) {
        pa.addClass('err');

    } else {
        pa.removeClass('err');
    }

}

//提交按钮验证 a要验证的表单
function Verification(a) {
    $(a).find('[mandatory]').each(function () {
        if ($(this).is("input") || $(this).is("textarea")) {
            InputError(this);

        } else if ($(this).is("select")) {
            SelectError(this);

        } else {
            debugger
            var This = $(this).find('[type=checkbox],[type=radio]')[0];
            CheckRadioError(This)
        }
    });
    if ($(a).find('.err').length) {
        return false;
    } else {
        return true;
    }

}


$.fn.serializeJson = function () {
    var serializeObj = {};
    $(this.serializeArray()).each(function () {
        if (serializeObj[this.name]) {
            serializeObj[this.name] += ',' + this.value
        } else {
            serializeObj[this.name] = this.value;
        }

    });
    return serializeObj;
};

//form参数 要提交的表面表单
function PostVerInfo(form, loc) {
    if (Verification(form)) {
        var hos = $(form).find('#whospital');
        if (hos.length) {
            var len = hos.find('input:hidden').length;
            if (!len) {
                layer.alert("至少添加一家医院", {
                    skin: 'nprs2',
                    title: false,
                    shade: 0,
                    shift: 3,
                    btn: false,
                    time: 3000
                });
                return false;
            }
        }
        var url = $(form).attr('action');
        layer.load(2);
        var ajaxTimeoutTest = $.ajax({
            url: url,  //请求的URL
            timeout: 10000, //超时时间设置，单位毫秒
            type: 'post',  //请求方式，get或post
            data: $(form).serializeJson(),  //请求所传参数，json格式
            success: function (result) { //请求成功的回调函数
                layer.closeAll();
                if (result.result == 1) {
                    layer.alert(result.msg, {
                        skin: 'nprs1',
                        title: false,
                        shade: 0,
                        shift: 3,
                        btn: false,
                        time: 3000
                    });
                    if (loc) {
                        location.href = loc;
                    }

                } else if (result.result == 0) {
                    layer.alert(result.msg, {
                        skin: 'nprs2',
                        title: false,
                        shade: 0,
                        shift: 3,
                        btn: false,
                        time: 3000
                    });
                }
            },
            error: function () {
                layer.closeAll();
                layer.alert('请求失败!', {
                    skin: 'nprs2',
                    title: false,
                    shade: 0,
                    shift: 3,
                    btn: false,
                    time: 2000
                });
            },
            complete: function (XMLHttpRequest, status) { //请求完成后最终执行参数
                if (status == 'timeout') {//超时,status还有success,error等值的情况
                    ajaxTimeoutTest.abort();
                    layer.closeAll();
                    layer.alert('网络不通畅,请重试!', {
                        skin: 'nprs2',
                        title: false,
                        shade: 0,
                        shift: 3,
                        btn: false,
                        time: 2000
                    });
                }
            }
        });
    }
}

//自动补全数据
//function Autocomplete(tags) {
//   // $.get("url", { name: "John", time: "2pm" }, function (data) {});
//    var availableTags = [
//         "ActionScript",
//         "AppleScript",
//         "Asp",
//         "BASIC",
//         "C",
//         "C++",
//         "Clojure",
//         "COBOL",
//         "ColdFusion",
//         "Erlang",
//         "Fortran",
//         "Groovy",
//         "Haskell",
//         "Java",
//         "JavaScript",
//         "Lisp",
//         "Perl",
//         "PHP",
//         "Python",
//         "Ruby",
//         "Scala",
//         "Scheme"
//    ];
//    $(tags).autocomplete({ source: availableTags });
//}
//添加中心调用弹框
function LayAddHospital(id) {

    layer.open({
        type: 1 //Page层类型
      , btn: ['确认', '取消']
      , area: ['700px', '300px']
      , title: '添加医院'
      , shade: 0.6 //遮罩透明度
      , maxmin: true //允许全屏最小化
      , anim: 1 //0-6的动画形式，-1不开启
      , content: $('#' + id)
      , yes: function (index) {
          //确定按钮
          PostVerInfo('#layerform');

      }
    });

}

//显示添加成员
function ToggleClick(ts) {
    $(ts).next('.n_popup').removeClass('hidden');
}
//隐藏添加成员
function ToggleHide(ts) {
    $(ts).parents('.n_popup').addClass('hidden');
}
//删除成员
function RemoveLi(ts, url) {
    var nid = $(ts).next('input:hidden');
    ControllerLi(nid, 'remove', delLi, '', url)

}


//成员公共函数 ts当前元素，fiy是否删除，fn回调函数,type类型,url地址

function ControllerLi(ts, ify, fn, type, url) {
    var nid = $(ts).val();
    if (ify === 'remove') {
        //删除


        layer.confirm('您确认要删除吗？', {
            btn: ['确认', '取消'] //按钮
        }, function () {
            debugger
            fn(ts, type, url)

            layer.closeAll();
        });
    } else {
        //初始化添加
        $(ts).parents('ul').siblings('.liinit').find('[nid=' + nid + ']').addClass('n_popup_sty');
    }

}
//删除
function delLi(ts, type, url) {
    if (url) {
        var nid = $(ts).val();
        var orgid = $(ts).parents("[orgid]").attr("orgid");
        $.ajax({
            url: url,
            type: 'post',
            data: { orgid: orgid, hosid: nid },
            success: function (data) {
                if (data.result) {
                    (ts).parents('ul').siblings('.liinit').find('[nid=' + nid + ']').removeClass('n_popup_sty');
                    $(ts).parents('li').remove();
                } else {
                    alert(data.msg);
                }
            }
        });
    } else {
        var nid = $(ts).val();
        $(ts).parents('ul').siblings('.liinit').find('[nid=' + nid + ']').removeClass('n_popup_sty');
        $(ts).parents('li').remove();
    }
}
//添加成员
//ts当前元素，uname 隐藏input的name，type 类型
function AddLi(ts, uname, type, url) {
    var that = $(ts);
    //单选处理
    if (that.attr('redio')) {
        if (that.hasClass('n_popup_sty')) {
            that.removeClass('n_popup_sty');
            //$('[name=' + uname + ']').val("").attr('disabled', false);
            $('[name=' + uname + '],[name=id],[name=LoginName],[name=PhoneNumber],[name=LoginPassword],[name=qLoginPassword]').val("")
        } else {
            that.addClass('n_popup_sty').siblings('li').removeClass('n_popup_sty');
            $('[name=' + uname + ']').val(that.attr('nname'));
            $('[name=id]').val(that.attr('nid'));
            $('[name=LoginName]').val(that.attr('nloginname'));
            $('[name=PhoneNumber]').val(that.attr('nphonenumber'));
            $('[name=LoginPassword],[name=qLoginPassword]').val(that.attr('nloginpassword'));

            //$('[name=' + uname + ']').val(that.attr('nid')).attr('disabled', true);
            //$('[name=' + uname + ']').parents('.in-tr').removeClass('err').find('.verifytext').remove();

        }
    }
    else {
        var box = that.parents('.liinit').siblings('[liinit=true]')
        //var box = that.parents('[liinit=true]');
        var clon = '';
        if (that.hasClass('n_popup_sty')) {

            var nid = box.find('input:hidden[value=' + that.attr('nid') + ']');
           // ControllerLi(nid, 'remove', delLi)
        } else {
            if (url) {  //实时添加医院的
                var orgid = $(ts).parents("[orgid]").attr("orgid");//组织id
                var hostid = that.attr('nid');//医院id
                $.ajax({
                    url: url,
                    type: 'post',
                    data: { orgid: orgid, hostId: hostid },
                    success: function (data) {
                        if (data.result) {
                            clon = '<li class="pull-left"><p>' + that.attr('nname') + '</p><span class="x-close"onclick="RemoveLi(this)"></span><input type="hidden" name="hospital" value="' + that.attr('nid') + '" /></li>';
                            box.append(clon)
                        } else {
                            alert(data.msg);
                        }
                    }
                });
            } else {
                if (box.find('input:hidden').length > 0) {
                    clon = box.find('li:first').clone(true);
                    clon.find('p').text(that.attr('nname'));
                    clon.find('input:hidden').val(that.attr('nid'));
                    box.append(clon)

                } else {
                    if (type === '1') {
                        clon = '<li class="pull-left"><img src="../../content/img/icon_name.png" alt="" title="" /><p>' + that.attr('nname') + '</p><span class="x-close" onclick="RemoveLi(this)"></span><input type="hidden" name="' + uname + '" value="' + that.attr('nid') + '" /></li>';
                        box.append(clon)
                    }
                    else {
                        clon = '<li class="pull-left"><p>' + that.attr('nname') + '</p><span class="x-close"onclick="RemoveLi(this)"></span><input type="hidden" name="' + uname + '" value="' + that.attr('nid') + '" /></li>';
                        box.append(clon)

                    }
                }
            }

            //that.parents('li').before(clon);
            that.addClass('n_popup_sty');
        }
    }
}
//搜索成员 ts搜索框，pro 省份，city城市
function SearchLi(ts, pro, city) {
    var box = $(ts).siblings('.n_popup_show').find('li');
    if ($(ts).val() && $(pro).val() && $(city).val()) {

        box.each(function () {
            if ($(this).attr('nname').indexOf($(ts).val()) >= 0 && $(this).attr('nprovince').indexOf($(pro).val()) >= 0 && $(this).attr('ncity').indexOf($(city).val()) >= 0) {
                $(this).css('display', 'block');
            } else {
                $(this).css('display', 'none');
            }
        })

    } else if ($(ts).val() && $(pro).val()) {
        box.each(function () {
            if ($(this).attr('nname').indexOf($(ts).val()) >= 0 && $(this).attr('nprovince').indexOf($(pro).val()) >= 0) {
                $(this).css('display', 'block');
            } else {
                $(this).css('display', 'none');
            }
        })

    } else if ($(ts).val() && $(city).val()) {
        box.each(function () {
            if ($(this).attr('nname').indexOf($(ts).val()) >= 0 && $(this).attr('ncity').indexOf($(city).val()) >= 0) {
                $(this).css('display', 'block');
            } else {
                $(this).css('display', 'none');
            }
        })
    } else if ($(pro).val() && $(city).val()) {
        box.each(function () {
            if ($(this).attr('nprovince').indexOf($(pro).val()) >= 0 && $(this).attr('ncity').indexOf($(city).val()) >= 0) {
                $(this).css('display', 'block');
            } else {
                $(this).css('display', 'none');
            }
        })
    } else if ($(ts).val()) {
        box.each(function () {
            if ($(this).attr('nname').indexOf($(ts).val()) >= 0) {
                $(this).css('display', 'block');
            } else {
                $(this).css('display', 'none');
            }
        })
    } else if ($(pro).val()) {
        box.each(function () {
            if ($(this).attr('nprovince').indexOf($(pro).val()) >= 0) {
                $(this).css('display', 'block');
            } else {
                $(this).css('display', 'none');
            }
        })

    } else if ($(city).val()) {
        box.each(function () {
            if ($(this).attr('ncity').indexOf($(city).val()) >= 0) {
                $(this).css('display', 'block');
            } else {
                $(this).css('display', 'none');
            }
        })
    } else {
        box.each(function () {
            $(this).css('display', 'block');
        })
    }
}

//组织机构添加大区省份办事处显示隐藏
function shStructure(ts) {
    var box = $(ts).parents('.formbox');
    var intr=$(ts).parents('.in-tr');
    $('.verifytext').remove();//删除验证文字
    if (!$(ts).is('button')) {
        $(ts).parent().addClass('hidden').prev().removeClass('hidden');
        intr.find('input').val("");
        intr.find('.text-addbtn').text('添加' + intr.find('.text-addbtn').text().substring(2))
        

    } else {
        box.addClass('hidden').next().removeClass('hidden');
        box.find('.text-addbtn').removeAttr("id");
        box.find('input').val("");

    }

}
//删除大区省份城市 type 类型 ，url地址
//function shClose(ts, type, url) {
//    var that = $(ts);
//    var data = {
//        nnumber: that.parents('li').attr('nnumber'),
//        nname: that.parents('li').attr('nname')
//    }

//    ControllerLi(that, 'remove', delAreaLi, type, url)


//}
//大区省份办事处删除
function delAreaLi(ts, url) {
    //ajax请求
    var id = $(ts).parents('li').attr('id');
    layer.confirm('您确认要删除吗？', {
        btn: ['确认', '取消'] //按钮
    }, function () {
        $.ajax
              ({
                  url: url,
                  type: 'post',
                  data: { orgId: id },
                  success: function (data) {
                      if (data.result == 1) {
                          if ($(ts).parent().find(".nt-txt").hasClass("nt-sty"))//判断是否删除的选中
                          {
                              var currentIndex = parseInt($(ts).parents(".structure-box").attr("data-index"));
                              for (var i = currentIndex + 1; i < 4; i++) {  //逐层隐藏下级,并清空数据
                                  $(".structure-box[data-index=" + i + "]").hide();
                                  $(".structure-box[data-index=" + i + "]").find(".btn-abox").html("");
                              }
                          }
                          $(ts).parents('li').remove();

                      } else {
                          alert(data.msg);
                      }
                  }
              });

        layer.closeAll();
    });


}
//大区省份办事处编辑
function shEdit(ts) {
    var box = $(ts).parents('.in-tr');
    var nnumber = $(ts).parents('li').attr('nnumber');
    var nname = $(ts).parents('li').attr('nname');
    var id = $(ts).parents('li').attr('id');
    //文本框赋值
    box.find('.nnumber').val(nnumber);
    box.find('.nname').val(nname);
    box.find('.text-addbtn').text('修改'+ box.find('.text-addbtn').text().substring(2))
   
    //控制隐藏显示哪一个
    box.find('.formbox:first').removeClass('hidden');
    box.find('.formbox:last').addClass('hidden');
    box.find('.text-addbtn').attr('id', id);
}

//添加大区省份办事处type 类型 ,url地址,url2表示修改地址
function addStructure(ts, url, url2) {
    
    var intr = $(ts).parents(".in-tr");
    var number = intr.find('.nnumber').val();
    var nname = intr.find('.nname').val();

    var parentid = $(ts).parents("[data-levelId]").attr("parentid");
    var levelId = $(ts).parents("[data-levelId]").attr("data-levelId");
    if (Verification(intr[0])) {
        if (number + nname) {
            //判断是修改或添加
            if ($(ts).attr('id')) {
                //修改ajax
                var editid = $(ts).attr('id');
                $.ajax({
                    url: url2,
                    type: 'post',
                    dataType: 'json',
                    data: { name: nname, orgId: editid, num: number },
                    success: function (data) {
                        if (data.result == 1) {
                            $('#' + editid).find('.nt-txt').text(number + '' + nname);
                            var box = $(ts).parents('.in-tr');
                            box.find('.formbox:first').addClass('hidden');
                            box.find('.formbox:last').removeClass('hidden');
                            $('.text-offbtn').click();
                        } else {
                            alert(data.msg);
                        }
                    }
                }
                );

            } else {
                //添加ajax
                $.ajax({
                    url: url,
                    type: 'post',
                    dataType: 'json',
                    data: { name: nname, orglevel: levelId, parentId: parentid, num: number },
                    success: function (data) {
                        if (data.result == 1) {
                            var resultId = data.newId; //返回id
                            var str = '<li class="pull-left" id="' + resultId + '" nnumber="' + number + '" nname="' + nname + '"><span class="nt-txt">' + number + nname + '</span><span class="nt-edit" ></span><span class="nt-close" ></span></li>'
                            intr.find('.btn-abox').append(str);
                            var box = $(ts).parents('.in-tr');
                            box.find('.formbox:first').addClass('hidden');
                            box.find('.formbox:last').removeClass('hidden');
                        } else {
                            alert(data.msg);
                        }
                    }
                }
                );


            }
        } else {
            //空
        }
    }

}

//type为1的时候加载下层组织结构，为2 的时候加载医院数据
function hierarchy(ts, url, url2, minlevelId) {
    var id = $(ts).parent().attr('id');
    var levelId = $(ts).parents("[data-levelId]").attr("data-levelId");//获取当前的组织等级方便显示下一级
    $(ts).addClass('nt-sty').parents('li').siblings().find('.nt-txt').removeClass('nt-sty');
    $('[data-levelPId=' + levelId + ']').removeClass('hidden');
    if (levelId != minlevelId) {
        $.ajax({
            url: url,
            type: 'post',
            dataType: 'json',
            data: { currentOrgId: id },
            success: function (data) {
                if (data.result == 1) {
                    
                    $('[data-levelPId=' + levelId + ']').find('.btn-abox').html("");
                    $('[data-levelPId=' + levelId + ']').attr("parentid", id);
                    for (var i = 0; i < data.list.length; i++) {
                        var obj = data.list[i];
                        var str = '<li class="pull-left" nnumber="" id="' + obj.Id + '" nname="' + obj.OrganizationName + '"><span class="nt-txt">' + obj.OrganizationName + '</span><span class="nt-edit" ></span><span class="nt-close" ></span></li>'
                        $('[data-levelPId=' + levelId + ']').find('.btn-abox').append(str);
                    }
                    $('.text-offbtn').click();
                } else {
                    alert(data.msg);
                }
            }
        });
    } else {  //加载医院
        $("#hostList").parents(".in-tr").attr("orgid", id);
        $("#hostList").html("");
        $.ajax({
            url: url2,
            type: 'post',
            dataType: 'json',
            data: { orgId: id },
            success: function (data) {
                if (data.result == 1) {
                    for (var i = 0; i < data.hospitallist.length; i++) {
                        var host = data.hospitallist[i];
                        var clon = '<li class="pull-left"><p>' + host.HosFullName + '</p><span class="x-close"></span><input type="hidden" name="hospital" value="' + host.Id + '" /></li>';
                        $("#hostList").append(clon);
                    }
                    //ul清除之前选中的医院
                    $("#hostList").siblings('.liinit').find('[nid]').removeClass('n_popup_sty');
                    $("[liinit=true]").find('input:hidden').each(function () {
                        //初始化选中的医院
                        ControllerLi(this)

                    })

                }
                else {
                    alert(data.msg);
                }
            }
        });
    }
    //$().jax


}


