var Utils = {
    sprintf: function() {
        var arg = arguments,
                str = arg[0] || '',
                i, n;
        for (i = 1, n = arg.length; i < n; i++) {
            str = str.replace(/%s/, arg[i]);
        }
        return str;
    },

    //获取窗口的宽、高
    getDocWH: function () {
        var doc = jQuery(document), win = jQuery(window), Obj = {
            doc_h: doc.height(), //页面的高、宽
            doc_w: doc.width(),
            sTop: doc.scrollTop(), //页面卷上的高、宽
            sLeft: doc.scrollLeft(),
            win_h: win.height(), //浏览器窗口的高、宽
            win_w: win.width()
        };
        return Obj;
    },

    //是否是数组
    isArray: function (a) {
        return a &&
                typeof a === 'object' &&
                typeof a.length === 'number' &&
                typeof a.splice === 'function' &&
                !(a.propertyIsEnumerable('length'));
    },

    //判断值是否在数组内
    inArray: function (str, arr) {
        for (var i = 0; i < arr.length; i++) {
            if (arr[i].toString() == str) {
                return true;
            }
        }
        return false;
    },

    //是否为空,allowBlank为是否可为空字符串
    isEmpty: function (v, allowBlank) {
        return v === null || v === undefined || ((Utils.isArray(v) && !v.length)) || (!allowBlank ? v === '' : false);
    },

    hasOwnProperty: function (sKey) {
        try{
            return (new RegExp("(?:^|;\\s*)" + escape(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=")).test(document.cookie);
        }catch(e){}

        return "";
    },

    //添加Cookie
    addCookie: function (sKey, sValue, cookieDay)
    {
        try{
            if(!sKey) { return; }

            var str = "";
            if (cookieDay > 0){
                //为0时不设定过期时间,浏览器关闭时cookie自动消失
                var date = new Date();
                var ms = cookieDay * 24 * 3600 * 1000;
                date.setTime(date.getTime() + ms);
                str = ";expires=" + date.toGMTString();
            }

            document.cookie = escape(sKey) + "=" + escape(sValue) + "; path=/"+str;
        }catch(e){}
    },

    //删除Cookie
    removeCookie: function (sKey)
    {
        try{
            if (!sKey || !Utils.hasOwnProperty(sKey)) { return; }
            document.cookie = escape(sKey) + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/";
        }catch(e){}
    },

    //获取指定名称的cookie的值
    getCookie: function (sKey)
    {
        try{
            if (!sKey || !Utils.hasOwnProperty(sKey)) { return null; }
            return unescape(document.cookie.replace(new RegExp("(?:^|.*;\\s*)" + escape(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=\\s*((?:[^;](?!;))*[^;]?).*"), "$1"));
        }catch(e){}

        return "";
    },

    /**
     * 仿smarty 标签替换
     * eg: renderTpl(tpl, replace, ...)
     * renderTpl(tpl, {placeholder: replace, ...})
     */
    renderTpl: function (tpl, data) {
        var reg = /{[^<^=^}.]*}/ig,
                mode = 1,
                args = arguments,
                count = 1;
        d = data;
        if (arguments.length > 2) {
            mode = 1;
        }
        else if (Object.prototype.toString.apply(data) === '[object Object]') {
            mode = 2;
        }
        // 将字符串中所有以{开始,以}结束的字符串替换为对应的值
        return tpl.replace(reg, function (placeholder, pos) {
            placeholder = placeholder.substr(1, placeholder.length - 2);
            var groups = placeholder.split('|'),
                    valueOnEmpty = '',
                    wrapper = '',
                    replace = '',
                    i, sep;
            if (groups.length == 2) {
                placeholder = groups[0];
                if (groups[1].toUpperCase() == 'S') {
                    if (groups[1] == 's') {
                        wrapper = '\'';
                    }
                    else {
                        wrapper = '\"';
                    }
                }
                else {
                    valueOnEmpty = groups[1];
                }
            }
            else if (groups.length == 3) {
                placeholder = groups[0];
                valueOnEmpty = groups[1];
                if (groups[2] == 's') {
                    wrapper = '\'';
                }
                else {
                    wrapper = '"';
                }
            }
            if (mode === 1) {
                replace = args[count++] || valueOnEmpty;
            }
            else if (mode === 2) {
                replace = data[placeholder] || valueOnEmpty;
            }
            return wrapper + replace + wrapper;
        });
    },

    /**
     * 页面滚动到指定位置
     * @param target<int/object> 指定的位置
     */
    scrollTo: function(target){
        var top = 0;
        if (typeof target == 'object') {
            top = target.offset().top;
        } else {
            top = target;
        }
        $('html,body').animate({
            scrollTop: top - 60
        }, 400);
    },

    //阻止事件冒泡函数
    stopBubble: function (e) {
        var evt = e || window.event;

        if (evt.stopPropagation) {
            evt.stopPropagation();
        }

        evt.cancelBubble = true;
    },

    //阻止默认事件
    preventDefault: function (e) {
        var evt = e || window.event;

        if (evt.preventDefault) {
            evt.preventDefault();
        } else {
            evt.returnValue = false;
        }

        return false;
    }
};

var sidebar = function(){
    jQuery('.page-sidebar').on('click', 'ul.page-sidebar-menu li > a', function(e){
        if ($(this).next().hasClass('sub-menu') == false) {
            return;
        }

        var parent = jQuery(this).parent().parent();
        parent.children('li.open').children('.sub-menu').slideUp(300);
        parent.children('li.open').removeClass('open ');

        var sub = jQuery(this).next();
        if (!sub.is(":hidden")) {
            jQuery(this).parent().removeClass("open");
            jQuery(this).parent().parent().removeClass("open");
            sub.slideUp(300, function () {});
        } else {
            jQuery(this).parent().addClass("open");
            jQuery(this).parent().parent().addClass("open");
            sub.slideDown(300, function () {});
        }
        e.preventDefault();
    });

    //是否为首页
    var parentLiOjb = jQuery('.page-sidebar ul.page-sidebar-menu>li');
    if (parentLiOjb && parentLiOjb.length) {
        var len = parentLiOjb.length;
        var isHome = true;
        for(var i = 0; i < len; i++) {
            if (jQuery(parentLiOjb[i]).hasClass('active')) {
                isHome = false;
            }
        }
        isHome && jQuery('.page-sidebar ul.page-sidebar-menu>li').eq(0).addClass('active');
    }
};

//行政区域选择
var region = {
    boxOjb: null,
    dataCache: {
        provinces: null,
        citys: null,
        towns: null
    },
    /*
     * 初始化
     * @param container <string/Object> 行政区域表单容器
     */
    init: function(container, provinceId, cityId, districtId){
        var self = this;
        if ((typeof container).toLowerCase() == 'string') {
            self.boxOjb = $(container);
        } else {
            self.boxOjb = container;
        }
        self.getRegionData(function(){
            self.makeRegionHtml(1, 1, provinceId || 0);
            self.makeRegionHtml(2, provinceId || 2, cityId || 0);
            self.makeRegionHtml(3, cityId || 52, districtId || 0);
            self.bind();
        });
    },

    getRegionData: function(callback){
        var self = this;
        if(self.dataCache.provinces) {
            if (typeof callback == 'function') {
                callback();
            }
            return false;
        }

        $.ajax({
            type: 'post',
            url: '/region/getAll',
            dataType: 'json',
            success: function(resp){
                if (!resp) {
                    return layer.msg('网络异常,请稍后再试~');
                }

                if (resp.provinces) self.dataCache.provinces = resp.provinces;
                if (resp.citys) self.dataCache.citys = resp.citys;
                if (resp.towns) self.dataCache.towns = resp.towns;

                if (typeof callback == 'function') {
                    callback();
                }
            }
        })
    },

    bind: function(){
        var self = this, parent_id = 0;
        //省份选择事件
        $(self.boxOjb).find('select.s_province').on('change', function(){
            parent_id = $(this).val();
            self.makeRegionHtml(2, parent_id);
        });
        //城市选择事件
        $(self.boxOjb).find('select.s_city').on('change', function(){
            parent_id = $(this).val();
            self.makeRegionHtml(3, parent_id);
        });
    },

    makeRegionHtml: function(level, parentId, selectId){

        var optionHtml = [], self = this, _data = null, selectName = '', d_parent_id = 0;
        switch (level) {
            case 1:
                selectName = 's_province';
                _data = self.dataCache.provinces;
                break;
            case 2:
                selectName = 's_city';
                _data = self.dataCache.citys;
                break;
            case 3:
                selectName = 's_county';
                _data = self.dataCache.towns;
                break;
        }

        if (_data) {
            var item = null, children = null;
            for (var i in _data) {

                item = _data[i];
                if (item && item.parent_id == parentId) {
                    children = item.children;
                    optionHtml.push('<option value="0">请选择</option>');

                    for (var j in children) {
                        if (!d_parent_id) {
                            d_parent_id = children[j].region_id;
                        }
                        optionHtml.push('<option value="' + children[j].region_id + '">' + children[j].region_name + '</option>');
                    }
                    break;
                }
            }
        }

        self.boxOjb.find('select.' + selectName + '').html(optionHtml.join(''));

        if (level == 2) {
            self.makeRegionHtml(3, d_parent_id);
        }

        if (selectId) self.boxOjb.find('select.' + selectName + '').val(selectId);
    }
};

/* 公共js执行入口 */
+(function ($) {
    if ($ == undefined) {//依赖未加载
        alert('jQuery未加载');
        return;
    }
    $.lie = $.lie || {version: "v1.0.0"};
    //把对象调整到中心位置
    $.fn.setmiddle = function () {
        var dl = $(document).scrollLeft(),
                dt = $(document).scrollTop(),
                ww = $(window).width(),
                wh = $(window).height(),
                ow = $(this).width(),
                oh = $(this).height(),
                left = (ww - ow) / 2 + dl,
                top = (oh < 4 * wh / 7 ? wh * 0.382 - oh / 2 : (wh - oh) / 2) + dt;

        $(this).css({left: Math.max(left, dl) + 'px', top: Math.max(top, dt) + 'px'});
        return this;
    };
    //启用兼容placeholder 的赋值
    $.fn.setval=function(val){
        var obj=$(this);
        if(undefined==val&&null==val&&val==''){
            return;
        }
        $(this).prev('.label-prompt').hide();
         if(obj.prop('tagName')=='TEXTAREA'){
            $(this).text(val);
         }else if(obj.prop('tagName')=='INPUT' ){
            $(this).prev('.label-prompt').hide();
            $(this).val(val);
        }
    };

    //设置元素高度,高度为当前位置到屏幕底部位置
    $.fn.setFullHeight = function () {
        var eh = jQuery(window).height() - jQuery(this).offset().top - 20;  //.main-frame .content-customize 设置了padding 20 所以减去20

        jQuery(this).css("height", eh);
    };
    //提示信息 可自动消失  也可用于loading
     //提示信息 可自动消失  也可用于loading
    $.tip = function (options) {
        var settings = {
            content: '', //提示内容
            icon: 'success', //提示级别  success  error  alert, loading暂无图标
            time: 2000, //默认3秒消失
            close: false,
            zindex: 2999,
            event: function () {
            }   //关闭后调用
        };
        if (options) {
            $.extend(settings, options);
        }
        if (settings.close) {
            $(".tipbox").hide();
            return;
        }
        if (!$('.tipbox')[0]) {
            $('body').append('<div class="tipbox" style="display:none"><div class="tip-l"><i class="icon-tip"></i></div><div class="tip-c"></div><div class="tip-r"></div></div>');
            $('.tipbox').css('z-index', parseInt(settings.zindex));
        }
        $('.tipbox').attr('class', 'tipbox tip-' + settings.icon);
        $('.tipbox .tip-c').html(settings.content);
        $('.tipbox').css('z-index', parseInt($('.tipbox').css('z-index')) + 1).setmiddle().show();

        if (settings.time > 0) {
            setTimeout(function () {
               $(".tipbox").fadeOut();
                settings.event();
            }, settings.time);
        }
    };

    //以下调用 类似  $.lie.dialog(...)  或 jQuery.lie.dialog(...)
    $.extend($.lie, {
        //初始化就需要调用的
        init:function(){
            //控件美化
            this.controls();

            $(document).ready(function(){
                //还有兼容需调整,暂时关闭
                $.lie.placeholder();
            });

            $.lie.changeColor($('.changeColor'));
            $.lie.changeFont($('.changeFont'));
            $.lie.droplist($('.droplist'));
        },

        //兼容的获取可视区宽高
        screen:function(){
            var _width = window.innerWidth;
            var _height = window.innerHeight;
            if(typeof _width != 'number'){
                _width=$(window).width();
                _height=$(window).height();
            }
            return {width:_width,height:_height};
        },

        //公用的ajax取数据  post 方式
        //params  支持键值对象{a:1,b:1} 或 a=1&b=1形式
        //callback 回调函数
        //type:返回数据格式,默认不传即 json
        //isloading 是否显示loading 条,默认false
        post:function(uri,params,callback,type,isloading){
            var dtype=type||'json';
            isloading=isloading||false;
            //默认配置
            var settings={
                url:uri||'?',
                type:'POST',
                cache:false,//不缓存
                data:params||{},
                dataType:dtype,
                beforeSend:function (XMLHttpRequest){
                    //这里可以启动 loading
                    isloading&&$.lie.waitloading(true);
                },
                complete:function(XMLHttpRequest, textStatus){
                    //这里结束  loading
                    isloading&&$.lie.waitloading(false);
                },
                success:function(data, textStatus, jqXHR){
                    if(dtype=='json'){
                        if(data.errcode==255){
                            $.tip({content:data.errmsg,'icon':'error',event:function(){
                                location.href='login.php';
                            }});
                        }
                    }
                    if(typeof callback=='function'){
                        callback(data);
                    }
                },
                error:function(XMLHttpRequest, textStatus, errorThrown){

                }
            };
            $.ajax(settings);
        },

        //参数及返回均与 post 一样
        get:function(uri,params,callback,type,isloading,isasync){
            var dtype=type||'json';
            isloading=isloading||false;
            //默认配置
            var settings={
                url:uri||'?',
                type:'GET',
                cache:false,//不缓存
                data:params||{},
                dataType:dtype,
                async: (typeof isasync == 'undefined' ? true : isasync),
                beforeSend:function (XMLHttpRequest){
                    //这里可以启动 loading
                    isloading&&$.lie.waitloading(true);
                },
                complete:function(XMLHttpRequest, textStatus){
                    //这里结束  loading
                    isloading&&$.lie.waitloading(false);
                },
                success:function(data, textStatus, jqXHR){
                    if(dtype=='json'){
                        if(data.errcode==255){
                            $.tip({content:data.errmsg,'icon':'error',event:function(){
                                location.href=$.lie.U('Admin/Index/index');
                            }});
                        }
                    }

                    if(typeof callback=='function'){
                        callback(data);
                    }
                },
                error:function(XMLHttpRequest, textStatus, errorThrown){

                }
            };
            $.ajax(settings);
        },

        /*
        * 公用加载图标
        * 参数说明:
        * show:是否显示加载图标,true:显示 - false:消失
        * divid:定位div元素id,默认为body
        * */
        waitloading:function(show,divid){
            var o= jQuery('body');
            var pst = null;
            if(typeof divid =="string" && divid!="" ) {
                var p = $("#"+divid).offset();
                var p_h = $("#" + divid).height();
                var p_w = $("#" + divid).width();
                var t = p.top + (p_h<186?0:(p_h/3 - 62));
                var l = p.left + (p_w<124?0:(p_w/2 - 62));
                pst = 'top: ' + t + 'px;left:' + l + 'px;';

            }else{
                var t=o.height()/2-62;
                var l=o.width()/2-62;
                pst='top: '+t+'px;left:'+l +'px;';
            }
            $(".ktms_loading").remove();
            var html = "<div style='position:absolute;"+pst+"Z-index: 1999;'><img src=\"/img/loading.gif\" class=\"img-circle\"></div>";
            if (show) {
                o.append('<div class="ktms_loading" style="position:absolute;"></div>');
                o.find(".ktms_loading").append('<div class="wait_loading" style="position:relative;"></div>');
                jQuery(".ktms_loading .wait_loading").append(html);
            }
        },
        dialog: function (options) {//弹出框
            //默认的配置
            var setting = {
                id: 'dialog', //标识, 不建议覆盖, 这样一个页面就只会有一个弹框存在
                title: '系统提示', //弹窗标题
                pannel:'',   //弹框内显示的内容 非滚动区域 content 是 pannel的子集 与 content 互斥
                content: '', //弹框内显示的内容 滚动区域内容 与 pannel 互斥
                footer:'',  //底部内容
                style: '', //弹窗class样式支持,只针对model 本身
                css: {}, //覆盖样式支持,只针对model 本身
                layer: '<div id="dialog" class="modal"  role="dialog" aria-hidden="true"></div>',
                button_layer: {//弹出框按扭组
                    close: '<button class="btn" data-dismiss="modal" aria-hidden="true">close</button>',
                    ok: '<button class="btn btn-primary" >ok</button>'
                },
                button: ['close'], //默认显示启用的按扭
                button_title: {//按钮显示的名称
                    close: '关闭',
                    ok: '提交'
                },
                button_event: {
                    close: function (e) {
                        return true;
                    }, //关闭事件支持
                    ok: function () {
                    }   //提交事件支持
                },

                url: '', //弹框需要加载的链接 优先于content
                close: function (e) {
                    return true;
                }, //弹框关闭
                loaded: function () {
                }, //加载数据完执行
                time: 0, //打开后险多久自动关闭
                backdrop: 'static',  //true 为添加蒙版背景, static为点击弹框区域外不关闭
                autohide:false,     //点击其它地方是否自动关闭, 如果为true 请记得在 点击的按钮上添加   e.stopPropagation();阻止冒泡
                loading:false       //是否显示加载中  只针对传 url的

            };
            setting = $.extend({}, setting, options);
            var isExistButton = ((typeof setting.button == 'object' && setting.button != null && setting.button.length > 0) ? true : false);

            if (!$.fn.hasOwnProperty('modal')) {
                alert('缺少组件!');
                return;
            }

            //初始化,这里改变ID
            var dg = $('#' + setting.id);
            if (!dg[0]) {
                dg=$(setting.layer).attr('id', setting.id).appendTo('body');
            }else{
                dg.detach() .appendTo('body') ;
            }
            dg.removeAttr('style');
            dg.attr('class','modal hide');
            dg.html('<div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button><h4></h4></div><div class="modal-panel"> <div class="modal-content"></div> </div> <div class="modal-footer"></div>');

            //弹框应用大框架
            if (setting.style != '') {
                dg.addClass(setting.style);
            }
            //内容重置
            dg.find('.modal-content').html('');
            dg.find('.modal-footer').html('');


            //扩展调用
            $.extend(dg,{
                //显示事件
                open:function(){

                    this.show();
                    this.backdrop('show');

                    if(typeof setting.loaded=='function'){
                        setting.loaded();
                    }
                },
                //关闭窗口, 这里只是隐藏
                close:function(){
                    //关闭之前  调用自定义close
                    if(( typeof setting.close=='function'&& false===setting.close(this))
                        ||(setting.button_event.hasOwnProperty('close')&&typeof setting.button_event.close=='function'&&false===setting.button_event.close(this))){
                        return;
                    }
                    this.backdrop();
                    this.hide();
                },
                //外部直接调用remove方法只清除了窗口本身,未关联遮罩层操作
                //销毁窗口, 关联了遮罩层的
                destroy:function(){
                    this.backdrop();
                    this.remove();
                },
                //处理背景遮罩
                backdrop:function(opt){

                    if(setting.backdrop.toString()=='false'){
                        //this.css({'z-index':1039});
                        return;
                    }

                    if(opt=='show'){
                        //标示当前弹窗关联的遮罩
                        this.attr('data-backdrop','modal-backdrop');
                        //添加遮罩
                        if(!$('.modal-backdrop')[0]){
                            $('<div class="modal-backdrop  in"></div>').insertBefore( this );
                        }
                    }else{
                        if($('.modal[data-backdrop]').not(':hidden').length==1){
                            $('.modal-backdrop').remove();
                        }
                    }
                },
                modal:function(opt){
                    if(typeof opt!='string'){
                        alert('因为BS原生modal两次调用有堆栈溢出问题,已弃用,本方法现在只支持参数值现只有 show 与 hide');
                        return;
                    }
                    if(opt=='show'){
                        this.open();
                    }else if(opt=='hide'){
                        this.close();
                    }
                },
                //自适应可视区,在这之前应该填充除了标题以外的所有内容
                autoresize:function(){
                    var obj=this;

                     obj.open();

                        //可视区
                    var screen_h= $.lie.screen().height  ,screen_w= $.lie.screen().width,

                        //框内三块高度
                        dg_header=obj.find('.modal-header'), dg_panel=obj.find('.modal-panel'), dg_body=obj.find('.modal-content'),dg_footer=obj.find('.modal-footer'),

                        //最小高宽
                        min_w= parseInt(obj.css('min-width'))||0,
                        min_h=parseInt(obj.css('min-height'))||0,
                        //实际内容的高度
                        dg_body_h=dg_body.prop('scrollHeight'),
                        dg_body_w=dg_body.prop('scrollWidth'),

                        //实际弹窗的高宽
                        dg_h= 0,
                        //未指定宽度时 以内容宽度为准
                        dg_w= parseInt(setting.css.width)||(dg_body_w),

                        //居顶高度
                        dg_off_top=0,
                        //居左高度
                        dg_off_left=0,

                        dg_margin_left= parseInt(obj.css('margin-left')),
                        dg_title=dg_header.find('h4');

                    //实际的弹窗高度

                    if( parseInt(setting.css.height)>0){
                        dg_h= parseInt(setting.css.height);
                    }else{
                        dg_h=dg_header.outerHeight(true) +dg_footer.outerHeight(true);
                        dg_h+=dg_body_h;
                        //同组元素
                        dg_body.siblings().each(function(){
                            dg_h+=$(this).outerHeight(true);
                        });
                    }

                    //高宽重置到可视区范围内
                    dg_w= dg_w>screen_w?screen_w:dg_w;
                    dg_h= dg_h>screen_h?screen_h:dg_h;


                    //最小高宽限制
                     dg_w= dg_w<min_w?min_w:dg_w;
                     dg_h= dg_h<min_h?min_h:dg_h;


                    //窗口位置置入可视区中间
                    if(setting.css.left){
                        dg_off_left=parseInt( setting.css.left);
                    }else{
                        dg_off_left= (screen_w- dg_w)/2;
                    }
                    if(setting.css.top){
                        dg_off_top=parseInt( setting.css.top);
                    }else{
                        dg_off_top= (screen_h- dg_h)/2;
                    }
                    //重算偏移
                    if(dg_w+dg_off_left>screen_w){
                        //重新定义左偏移
                        dg_off_left=(screen_w-dg_w)/2;
                    }
                    //顶偏移后超出可视区纠正
                    if(dg_h+dg_off_top>screen_h){
                        //这里特殊处理//高度小于160的时候移位置,>300的时候收起高度
                        dg_off_top=  (screen_h-dg_h)/2;
                    }

                    //子项定宽
                    dg_panel.width( dg_w );
                    dg_body.width( dg_w );

                    //弹框标题限宽
                    dg_title.width(dg_w-
                                    parseInt(dg_header.css('padding-left'))-parseInt(dg_header.css('padding-right'))
                                    -dg_header.find('.close').outerWidth(true)- parseInt(dg_title.css('padding-left'))- parseInt(dg_title.css('padding-right')) -30 );
                    dg_title.text(setting.title);


                    //子项定高
                    dg_panel.height(dg_h-dg_header.outerHeight(true)-dg_footer.outerHeight(true));

                     if(dg_body_w>dg_w){
                         dg_body.css({'overflow-x':'auto'});
                     }
                     if(dg_body_h> dg_panel.height()){
                         dg_body.css({'overflow-y':'auto'});
                     }

                    obj.resizebody();

                    obj.css({
                        margin:'0px',//这里一定给清了
                        width:dg_w,
                        height:dg_h,
                        left:dg_off_left,
                        top:dg_off_top
                    });
                },
                //重置modal-body高度
                resizebody:function(){
                    var dg_panel= this.find('.modal-panel');
                    var dg_body= this.find('.modal-content');
                    var dg_body_h= dg_panel.height();
                    //var dg_h= this.find('.modal-header h4');
                    dg_body.siblings().each(function(){
                        dg_body_h-=$(this).outerHeight(true);
                    });
                    dg_body.css({height:dg_body_h,maxHeight:dg_body_h});
                },
                //外部可调用设置 modal-panel
                setpanel:function(content){
                    this.find('.modal-panel').html(content);
                    this.resizebody();
                },
                //外部可调用设置 modal-body内容
                setcontent:function(content){
                    this.find('.modal-content').html(content);
                },
                //外部可调用设置 modal-footer内容
                setfooter:function(content){
                    this.find('.modal-footer').html(content);
                },
                //外部可调用设置 modal-header 中的 h4内容
                settitle:function(title){
                    this.find('.modal-header h4').text(title);
                }
            });



            //底部按钮事件
            if (isExistButton) {
                //setting.button 决定要显示的按钮
                for (var i = 0; i < setting.button.length; i++) {
                    if (setting.button_layer.hasOwnProperty(setting.button[i])) {
                        var btn = $(setting.button_layer[setting.button[i]]);

                        if (setting.button_title.hasOwnProperty(setting.button[i])) {
                            btn.text(setting.button_title[setting.button[i]]);
                        }
                        btn.attr('data-tag', setting.button[i]).appendTo('#' + setting.id + ' .modal-footer');
                        //事件绑定
                        if (setting.button_event[setting.button[i]]) {
                            btn.unbind('click').click(setting.button_event[ setting.button[i]]);
                        }
                    }
                }
            }
            else {
                if(typeof setting.footer=='string'&&setting.footer!='') {
                    dg.setfooter( setting.footer ) ;
                }else{
                    dg.find('.modal-footer').remove();
                }
            }


             //优先地址加载
            if (setting.url != null && setting.url != '') {
                $.lie.get(setting.url,{},function (html) {
                    try {
                        json = JSON.parse(html);
                        if(json.errcode==1){
                            layer.msg(json.errmsg);
                            dg.close();
                        }
                    } catch(e) {
                        dg.setcontent(html);
                        dg.autoresize();
                    }
                },'html',setting.isloading);
                //dg_opt.remote默认只加载了一次,这是因为第二次调用的时候 modal未重新load
                //dg_opt.remote=setting.url;
            } else if (setting.content != ''||setting.pannel != '') {
                if(setting.pannel != ''){
                    dg.setpanel(setting.pannel );
                }
                if(setting.content!=''){
                    dg.setcontent(setting.content);
                }
                dg.autoresize();
            }

            //阻止关闭
            /*dg.find('[data-dismiss=modal]').unbind('click').click(function (e) {
                //其它按钮
                var button_tag = $(this).attr('data-tag');
                if (button_tag && setting.button_event.hasOwnProperty(button_tag)) {
                    if (setting.button_event[button_tag](e)) {
                        return true;
                    }
                }
                return false;
            });
            */
            //关闭事件
            dg.find('[data-dismiss=modal]').unbind('click').click(function(){
                dg.close();
            });

            if(setting.autohide){
                //这里 注意  #main_frame必须是全可视区
                //弃用body是因为事件冲突了
                $('#main_frame').click(function(){
                    dg.close();
                });
                $('.modal-backdrop').click(function(){
                    dg.close();
                });
            }
            //返回给外部调用
            return dg;
        },
        alert: function (msghtml, _setting) {
            var setting = {
                "width": "400px",
                "height": "auto",
                "_title": "系统提示",
                "_btn": "确定",
                "_callback": function () {
                    return true;
                }
            };
            for (var key in _setting) {
                if (_setting.hasOwnProperty(key)) {
                    setting[key] = _setting[key];
                }
            }
            jQuery.lie.dialog({
                title: setting['_title'], //弹窗标题
                button: ['close'], //默认显示启用的按扭
                css:{width:setting['width'],height:setting['height']},
                button_title: {//按钮显示的名称
                    close: '确定'
                },
                button_event: {
                    close: function() {setting['_callback'].call(null,null);return true}
                },
                content: "<div style=\"padding:10px 15px;\">"+msghtml+"</div>"      //弹框内显示的内容
            });
        },
        confirm: function (msghtml, _setting) {
            var setting = {
                "width": "400px",
                "height": "auto",
                "_title": "系统提示",
                "_btnOn": "确定",
                "_btnOff": "取消",
                "_callback_on": function () {
                    return true;
                },
                "_callback_off": function () {
                    return true;
                }
            };
            for (var key in _setting) {
                if (_setting.hasOwnProperty(key)) {
                    setting[key] = _setting[key];
                }
            }
           var dg= jQuery.lie.dialog({
                title: setting['_title'], //弹窗标题
                button: ['close','ok'], //默认显示启用的按扭
                css:{width:setting['width'],height:setting['height']},
                button_title: {//按钮显示的名称
                    ok: setting['_btnOn'],
                    close: setting['_btnOff']
                },
                button_layer: {//弹出框按扭组
                    ok: '<button class="btn btn-primary"  aria-hidden="true">'+setting['_btnOn']+'</button>',
                    close: '<button class="btn btn-primary" data-dismiss="modal" aria-hidden="true">'+setting['_btnOff']+'</button>'
                },
                button_event: {
                    ok: function() {
                    setting['_callback_on'].call(null,null);
                    dg.close();
                    return true},
                    close: function() {setting['_callback_off'].call(null,null);return true}
                },
                content: "<div style=\"padding:10px 15px;\">"+msghtml+"</div>"      //弹框内显示的内容
            });
        },

        //生成url地址
        U: function(str){
            var url = sysConfig.siteUrl;
            if (str) {
                var _url = str.split('/');

                //URL模式
                url += '/Admin';
                url += '/' + _url.join('/');
            }
            return url;
        },

        placeholder:function(){
            var input_tips='<label for="text-input" class="label-prompt" style="display: block;">请输入内容</label>';
            $('input[placeholder]').each(function(){
                var obj=$(this),
                tips=$(input_tips);
                tips.width(obj.width());

                var text= obj.val()||obj.text();
                if(text&&text!=''){

                }else{
                    tips.text(obj.attr('placeholder'));
                    obj.before( tips );
                    obj.removeAttr('placeholder');
                }

                obj.focus(function(){
                    $(this).prev('.label-prompt').hide();

                    setTimeout(function(){
                        //obj.trigger('focus');
                    },0);

                }).focusout(function(){
                    if($(this).val()==''){
                        $(this).prev('.label-prompt').show();
                    }
                });
                tips.click(function(){
                    $(this).hide();
                    $(this).next(':text').focus();
                });
            });

            $(window).resize(function(){
                $('.label-prompt').each(function(){
                    var obj=$(this);
                    obj.width( obj.next(':text').width());
                });
            });
        },

        changeColor:function(){
            $(function() {
                $('<input />', {id:'changeColor',name:$('.changeColor').attr('name'),type:'hidden',value:''}).appendTo($('.changeColor'));
                //输入事件
                $('#insColor').bind('input propertychange',function(e){
                    e.stopPropagation();
                    var item=$(this);
                    //设置选项值
                    $('#changeColor').val(item.attr('data-val')||'');
                });
            });
        },
        changeFont:function(){
            $(function() {
                $('<input />', {id:'changeFont',name:$('.changeFont').attr('name'),type:'hidden',value:''}).appendTo($('.changeFont'));
                //输入事件
                $('#insFont').bind('input propertychange',function(e){
                    e.stopPropagation();
                    var item=$(this);
                    //设置选项值
                    $('#changeFont').val(item.attr('data-val')||'');
                });
            });
        },

        //下拉框
        droplist:function(obj,callback){
            if (!obj[0]) {
                return ;
            }
            //支持批量绑定
            obj.each(function(){
                var dp=$(this);
                var s_list= dp.find('.dropdown-menu');
                var h_input=dp.find(':hidden[name="' +  (dp.attr('name')||'droplist')  +  '"]');
                var label=dp.find('span.dp-text');
                var icon= dp.find('span.right');
                var defval= dp.attr('data-default')||'';

                if(!label[0]){
                    //创建显示区
                    $('<span class="dp-text"></span>').appendTo(dp);
                    label=dp.find('span.dp-text');
                }

                if(!icon[0]){
                    //创建图标区
                    $('<span class="right"><i class="nicon-chevron-down"></i></span>').appendTo(dp);
                    icon=dp.find('span.right');
                }
                if(!h_input[0]){
                    //创建隐藏域
                    $('<input type="hidden"  name="'+(dp.attr('name')||'droplist') +'" value=""/>').appendTo(dp);
                    h_input=dp.find(':hidden[name="' +  (dp.attr('name')||'droplist')  +  '"]');
                }

                //扩展调用
                $.extend(dp,{
                    //设置选中的项
                    select:function(val){
                        var value= val||'';
                        var chk_item= $(this).find('.dropdown-menu li[data-val="'+val+'"]');

                        chk_item.siblings().removeClass('active');
                        chk_item.addClass('active');
                        h_input.val(value);
                        label.text(chk_item.text());
                    }
                });

                //选框事件
                dp.unbind('click').click(function(e){
                    //e.stopPropagation();
                    //$('.dropdown-menu').hide();
                    $(this).find('.nicon-chevron-down').toggleClass('active');
                    $(this).find('.dropdown-menu').fadeToggle('fast','linear');
                });

                //选项事件
                // $(".dp-color li").addClass("hide");
                s_list.on('click','li',function(e){
                    e.stopPropagation();
                    var item=$(this);
                    //设置选项值
                    h_input.val(item.attr('data-val')||'');
                    label.text(item.text());
                    //设置选项对应颜色
                    // var n = item.index();
                    // $(".dp-color li").addClass("hide");
                    // $(".dp-color li").eq(n).removeClass("hide");
                    //设置选中状态
                    item.siblings().removeClass('active');
                    item.addClass('active');
                    //切换显示
                    item.parents('.dropdown-menu').fadeToggle('fast','linear');
                    item.parents('.droplist').find('.nicon-chevron-down').toggleClass('active');
                    //回调
                   if(typeof callback=='function'){
                     callback(item,dp); //增加返回当前的下框dp
                   }
                });
                //设置默认选项
                dp.select(defval);
            });   

            $(document).click(function(e){
                var target=$(e.target);
                if(target.hasClass('.droplist')|| target.parents('.droplist')[0]){
                       target=target.hasClass('.droplist')?target:target.parents('.droplist');
                }
                obj.each(function(){
                    var dp=$(this);
                    if(target.is(dp)){
                        //当前项如果隐藏
                        if(dp.find('.dropdown-menu').is(':hidden')){

                        }
                    }else{
                        dp.find('.dropdown-menu').hide();
                        dp.find('.nicon-chevron-down').removeClass('active');
                    }
                });
            });
            return obj;
        },

        //公用简单控件美货
        controls:function(){
            //单选框切换
            $(document).on('change','.icon-input-radio :radio',function(){
                var obj=$(this);
                var lastcheck= obj.prop('checked');
                if(lastcheck){
                    $(':radio[name="'+obj.prop('name')+'"]').parents('.icon-input-radio').removeClass('active');
                    obj.parents('.icon-input-radio').addClass('active');
                }
            });
            //蓝色单选框切换
            $(document).on('change','.icon-input-radio-blue :radio',function(){
                var obj=$(this);
                var lastcheck= obj.prop('checked');
                if(lastcheck){
                    $(':radio[name="'+obj.prop('name')+'"]').parents('.icon-input-radio-blue').removeClass('active');
                    obj.parents('.icon-input-radio-blue').addClass('active');
                }
            });
            //复选框切换
            $(document).on('change','.icon-input-checkbox :checkbox',function(){
                var obj=$(this);
                if (obj.is(':checked')) {
                    obj.parents('.icon-input-checkbox').addClass('active');
                }else{
                    obj.parents('.icon-input-checkbox').removeClass('active');
                }
            });
        },

        //表单验证
        validator:function( form ,options){
            if(!form[0]){
                //未指定容器,不处理验证
                return;
            }
            var settings={
                submit:function(fm){
                    //提交验证
                },
                //验证规则
                valids:{}
            };
            //合并用户配置
            settings=$.extend({},settings,options);

            //支持验证的控件
            //目前支持 有name的 input textarea 控件
            var controls=':text[name],:password[name],textarea[name]';

            //扩展方法
            $.extend(form,{
                //获取指定控件的验证规则
                getruls:function(input){
                    var name=input.prop('name'),
                        valid=input.prop('valid')||{}, //控件上的验证
                        optvalid=settings.valids[name]||{};   //自定义的验证
                    var rule=$.extend({},valid,optvalid);
                    return rule;
                },
                //解决重名name引起的问题
                geterrorname:function(input){
                    //控件名
                    var input_name=input.prop('name');
                    //同名控件排序
                    var index=  input.index('[name="'+input_name+'"]');
                    return input_name.replace(/[\[\]]+/,'')+index.toString()+'error';
                },
                //创建提示框
                //input 验证的输入框
                //opt 对应input的验证规则
                //flag 创建后是否直接验证
                createvalid:function(input,opt,flag){
                    var id= this.geterrorname(input) ;
                    var rules=opt.rules||[];
                    //消息提示显示位置
                    var _left=0,_top=0;
                    //提示消息
                    var msg=$('<ul></ul>');
                    var msg_count=0;
                    if($('#'+id)[0]){
                        return;
                    }
                    //必填项,无分组
                    if(opt.require||false){
                        $('<li><i class="icon-warning-small"></i>必填项</li>').appendTo( msg );
                        msg_count++;
                    }
                    //规则提示, 引入分组
                    for(var i=0;i<rules.length;i++){

                        $('<li '+  (rules[i].hasOwnProperty('group')?('chk-group="'+rules[i].group+'"'):'')  +'><i class="icon-warning-small"></i>'+ rules[i].msg +'</li>').appendTo( msg );
                        msg_count++;
                    }
                    //如果是组合框,则取组合框外部位置
                    var div_input= input.parents('div.input-append,div.input-prepend,div.input-comb');
                    if(div_input[0]){
                         _top=  div_input.offset().top-   msg_count*20/2 + div_input.outerHeight(true)/2;
                        _left= div_input.offset().left+div_input.outerWidth(true);
                    }else{
                        _top= input.offset().top- msg_count*20/2+ input.outerHeight(true)/2;
                        _left=input.offset().left+ input.outerWidth(true);
                    }
                    //显示错误信息
                    var fchk= $.lie.pop({
                        id:id,
                        content:msg.prop('outerHTML'),
                        top:_top,
                        left:_left,
                        type:'form-chk right J_form_tips'
                    });
                    fchk.attr('data-type','validator');

                    //兼容一下折叠面板
                    if(input.parents('.accordion-group')[0]){
                        if(!input.parents('.accordion-group').find('.accordion-body').hasClass('in')){
                            input.parents('.accordion-group').find('.accordion-toggle').trigger('click');
                        }
                    }


                    if(flag){
                        this.valid( input,opt );
                    }
                },
                //异步验证
                //url 验证地址
                //id 错误容器id
                //index 错误项
                remote:function(url,params,id,index){//return true;
                    var obj=this;
                    var flag = false;
                    $.lie.get(url,params ,function(res){
                        if(res.errcode==0){
                            obj.showerror(id,index, true,res.errmsg );
                        }else{
                            obj.showerror(id,index, false,res.errmsg );
                        }
                        flag = res.errcode==0 ? true: false;
                    },null,'',false,false);
                    return flag;
                },
                //字符数
                bytelength:function(str){
                    return str.replace(/[^\x00-\xff]/g,"00").length;
                },
                //极值验证,最长
                extrememax:function(input,rules){
                    var val=input.val();
                    var flag=true;
                    $(rules).each(function(){
                        var rule=$(this)[0];
                        if(rule.hasOwnProperty('max')&& !isNaN( val )){
                            //暂时只做最长验证
                            //flag = val*1<=rule.max;
                        }else if(rule.hasOwnProperty('maxlen')){
                            flag = val.length<= rule.maxlen;
                            if(!flag){
                                val= val.substr(0,rule.maxlen);
                                input.val(val);
                            }
                        }
                        return flag;
                    });
                    return flag;
                },
                //对指定控件进行验证
                valid:function(input,opt){
                    var obj=this;
                    var rules=opt.rules||[];
                    var name=input.prop('name');
                    var value= $.trim(input.val())||'';
                    if(input.prop('tagName').toLowerCase()=='textarea'){
                        //value=input.text()||'';
                    }

                    var errorname=obj.geterrorname(input) ;
                    //是否必填
                    var ismust=opt.require||false;
                    //是否验证通过,只要有一个不通过,则为false
                    var ischk=true;
                    var isitemchk=true;
                    var remote_index=-1;
                    //分组的
                    var group_chk={};

                    //必填验证
                    if(ismust){
                        ischk=value!='';
                        obj.showerror(errorname,0,value!='');
                    }

                    //执行值验证
                    var check_rule=function(isnotnull,rule,val){
                        //非空, 或value不为空时
                        if(isnotnull||val!=''){
                            //关联主输入框验证
                            if(rule.hasOwnProperty('master')){

                                if(val!=  obj.find('[name="'+ rule.master +'"]') .val()   ){
                                    return false;
                                }
                            }

                            //min  max 验证   值大小验证
                            if(rule.hasOwnProperty('min')||rule.hasOwnProperty('max')){
                                 if(isNaN(val)){
                                    return false;
                                 }

                                 if( rule.hasOwnProperty('min')&&val<rule.min){
                                     return false;
                                 }
                                 if( rule.hasOwnProperty('max')&&val>rule.max){
                                     return false;
                                 }
                            }

                            //minlen   maxlen 验证
                            if(rule.hasOwnProperty('minlen')||rule.hasOwnProperty('maxlen')){
                                 if( rule.hasOwnProperty('minlen')&& obj.bytelength(val)<rule.minlen){
                                     return false;
                                 }
                                 if( rule.hasOwnProperty('maxlen')&&obj.bytelength(val)>rule.maxlen){
                                     return false;
                                 }
                            }
                            //正则验证
                            if(rule.hasOwnProperty('regex')){
                                var reg=new RegExp(rule.regex);
                                return reg.test(val);
                            }
                        }
                        return true;
                    };

                    //验证结果
                    var chk_result={};



                    //其它验证
                    for(var i=0;i<rules.length;i++){
                        var rule=rules[i]||{};
                        if(!rule.hasOwnProperty('regex')&&!rule.hasOwnProperty('remote')
                           &&!rule.hasOwnProperty('min')&&!rule.hasOwnProperty('max')
                           &&!rule.hasOwnProperty('minlen')&&!rule.hasOwnProperty('maxlen')
                           &&!rule.hasOwnProperty('master')
                            ){
                            //不在验证范围
                            continue;
                        }
                        //异步验证
                        if(rule.hasOwnProperty('remote')){
                            remote_index=i;
                            continue;
                        }
                        //无组验证
                        if(!rule.hasOwnProperty('group')){
                            isitemchk= check_rule(ismust,rule,value );
                            //输出错误
                            obj.showerror(errorname,(ismust?(i+1):i),isitemchk);
                        }else{//有组验证
                            //组内排在前面的已验证通过
                            if(group_chk.hasOwnProperty( rule.group )){
                                if(!group_chk[ rule.group]){
                                    //
                                    group_chk[ rule.group]=  check_rule(ismust,rule,value );
                                }
                            }else{
                                //添加分组验证
                                group_chk[ rule.group]=  check_rule(ismust,rule,value );
                            }
                            obj.showerror(errorname,(ismust?(i+1):i),group_chk[ rule.group]);
                        }
                        //
                        ischk= ischk?isitemchk:ischk;
                    }
                    //合并有分组的
                    for(var g in group_chk ){
                        if(!group_chk[g]){
                          ischk=false;
                          break;
                        }
                    }

                    //remote 验证
                    if(ischk&&value!=''&&remote_index>=0){
                        //必须是所有验证都通过后才去验证
                        var params={};
                        var rule= rules[remote_index];
                        params[name]=value;
                        ischk = obj.remote(rule.remote,params,errorname, (ismust?(remote_index+1):remote_index) );
                    }
                    return ischk;
                },
                //批量执行验证
                validates:function(){
                    var obj=this;
                    var flag=true;
                    obj.find(controls).each(function(){
                        var opt= obj.getruls($(this));
                        //验证不通过
                         flag= obj.valid($(this),opt);
                         //
                         if(!flag){
                             form.createvalid($(this),opt,true);
                            //$(this).trigger('focus');
                         }
                         return flag;//为false 时 each中断
                    });
                    return flag;
                },
                //指定显示错误
                showerror:function(id,index,flag,msg){
                    var error= $('#'+id);
                    var erroritem=null;
                    var errorli=null;
                    if(!error[0]){
                        //创建
                        return;
                    }
                    erroritem=error.find('li:eq('+index.toString()+') .icon-warning-small');
                    if(!erroritem[0]){
                        //没有那项
                        return;
                    }
                    errorli=erroritem.parents('li:eq(0)');//第一层父级li

                    //分组
                    var group= errorli.attr('chk-group')||'';
                    //先移除状态
                    erroritem.removeClass('active');
                    if(!flag){
                        erroritem.addClass('active')
                    }else{
                        //验证通过
                        if(group!=''){
                            //清除分组的
                            errorli.siblings('[chk-group='+group+']').find('.icon-warning-small').removeClass('active');
                        }
                    }
                    if(undefined!=msg&&null!=msg&&''!=msg){
                        error.find('li:eq('+index.toString()+')').html( erroritem.prop('outerHTML')+msg );
                    }
                },
                //清除验证成功的项
                clearsuccess:function(id){
                    var error= $('#'+id);
                    if(error.find('li.active')[0]){
                        //当有验证未通过
                        return;
                    }else{
                        //当验证全通过
                        error.remove();
                    }
                },
                //清除所有提示
                clear:function(){

                }
            });

            //以下事件使用 on 绑定,支持表单内异步添加输入框
            //获得焦点时
            form.on('focus',controls,function(){
                var input=$(this);   //自定义的验证
                var opt=  form.getruls(input);

                if(opt.hasOwnProperty('isfocus')&& opt.isfocus==false){
                    return;
                }
                form.createvalid(input,opt,true);
            });
            //输入时
            form.on('keyup keypress',controls,function(){
                var input=$(this);          //自定义的验证
                var opt= form.getruls(input);   //当前规则

                //输入限定
                if(!form.extrememax(input,opt.rules)){
                    return false;
                }
                //验证
                form.valid(input,opt);
            });

            //离开时,验证全对才消除
            form.on('blur',controls,function(){
                var input=$(this);   //自定义的验证
                var id=form.geterrorname(input);
                form.clearsuccess( id);
            });

            //处理事件冒泡冲突
            $(document).bind('click',function(e){
                 var target=$(e.target);
                 var errorid="";
                //点击tips本身
                if(target.parents('.J_form_tips')[0]){
                    //关闭非自已的提示
                    $('.J_form_tips').not('#'+target.parents('.J_form_tips').prop('id') ).remove();
                }
                //点击tips关联的控件
                else if(target.is(controls)){
                    errorid=  form.geterrorname( target );
                    $('.J_form_tips').not('#'+ errorid ).remove();
                }
                //点击其它区域
                else{
                    //非功能性的提交按钮
                    //.J_form_submit 这个是非form的提交按钮
                    //.J_button_submit  这个是提供form里面非submit按钮提交
                    //.btn-submit 这个是兼容之前的表单提交
                    //:submit   这个是兼容submit按钮提交
                    if(!target.is('.J_form_submit,.J_button_submit,.btn-submit,:submit')){
                        $('.J_form_tips').remove();
                    }
                }
            });

            //提交事件
            if(form.is('form')){
                //支持表单提交
                form.unbind('submit').submit(function(e){
                    // e.preventDefault();
                    //批量验证
                    var flag=true;
                    if(form.validates()){
                        if(typeof settings.submit=='function'){
                            var ret= settings.submit(form);
                            if(false===ret){
                                //阻止窗口提交
                                flag=false;
                            }
                        }
                    }else{
                        //验证失败
                        flag=false;
                    }
                    return flag;
                });
            }else{
            //支持非 form容器验证
               form.find('.J_form_submit').unbind('click').click(function(){
                   //批量验证
                    var flag=true;
                    if(form.validates()){
                        if(typeof settings.submit=='function'){
                            var ret= settings.submit(form);
                            if(false===ret){
                                //阻止窗口提交
                                flag=false;
                            }
                        }
                    }else{
                        //验证失败
                        flag=false;
                    }
                    //return false;
                    return flag;
               });
            }

            return form;
        },

        //显示一个气泡,目前应用场景为表单验证弹出提示项
        pop:function(options){
            var settings={
                id:'J_popover_chk',
                title:'',
                content:'',
                top:0,
                left:0,
                pannel:'',//容器
                type:'form-chk right',
                autohide:false
            };

            settings=$.extend({},settings,options);
            //应用bs工具提示
            var _p_html='<div class="popover '+(settings.type||'form-chk right')  +'" style="display:none"><div class="arrow"></div><div class="popover-content"></div></div>';
            //标示唯一
            var obj=$(_p_html).attr('id',settings.id||'J_popover_chk');
            if(!$('#'+(settings.id||'J_popover_chk'))[0] ){
                if(settings.pannel!=''&&settings.pannel!=null){
                    obj.appendTo(settings.pannel);
                }else{
                    obj.appendTo('body');
                }
            }else{
                obj=$('#'+(settings.id||'J_popover_chk'));
            }
            obj.css({position:'absolute',top:settings.top,left:settings.left});
            //加入内容
            if(settings.content==''||settings.content==null||$(settings.content).text()==''){
                obj.remove();
            }else{
                obj.find('.popover-content').html(settings.content);
                obj.show();
            }

            if(settings.autohide ){
                $(document).click(function(){
                    obj.remove();
                });
            }
            return obj;
        },

        //保存数据
        execute_ajax: function(data, url){
            $.ajax({
                type: 'post',
                data: data,
                dataType: 'json',
                url: url,
                success: function(resp){
                    if (resp.errcode == 0){
                        if (resp.jumpUrl) {
                            window.location.href = resp.jumpUrl;
                        } else {
                            window.location.reload();
                        }
                        return ;
                    }

                    $.lie.dialog({
                        id: 'dialog',
                        button: [''],
                        content: '<p style="text-align:center;" class="error">'+(resp.errmsg||'操作失败~')+'</p>'
                    });
                    return false;
                }
            });
        }
    });

    //初始化调用
    $.lie.init();
})(jQuery);