admin
2020-07-13 85475c02ae604b37c40b3e3411b73424b8cbc99d
分APP编辑
3个文件已修改
6803 ■■■■■ 已修改文件
home.html 816 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
js/doui.min.js 4549 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
window/mobileAdmin/js/doui.min.js 1438 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
home.html
@@ -1,341 +1,404 @@
<!doctype html>
<html class="x-admin-sm">
    <head>
        <meta charset="UTF-8">
        <title>板栗快省</title>
        <meta name="renderer" content="webkit|ie-comp|ie-stand">
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <meta name="viewport" content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi" />
        <meta http-equiv="Cache-Control" content="no-siteapp" />
        <link rel="stylesheet" type="text/css" href="css/doui.min.css" />
        <link rel="stylesheet" href="./css/font.css">
        <link rel="stylesheet" href="./css/xadmin.css">
        <link rel="stylesheet" href="./css/theme3049.min.css">
        <!-- <link rel="stylesheet" href="./css/theme5.css"> -->
        <script type="text/javascript" src="./js/xadmin.js"></script>
        <!-- 让IE8/9支持媒体查询,从而兼容栅格 -->
        <!--[if lt IE 9]>
          <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
          <script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
        <![endif]-->
        <script>
            // 是否开启刷新记忆tab功能
            // var is_remember = false;
        </script>
        <style>
            .layui-tab-title li{
                margin-right: 1px;
                background: #D0D0D0;
                border-top-left-radius: 10px;
                border-top-right-radius: 10px;
                color: #959595;
            }
            .layui-tab-title{
                padding-left: 2px;
            }
            .layui-tab-title .layui-this:after{
                content: none;
            }
            .layui-tab-title .layui-this{
                border-width: 0;
                border-color: transparent;
                color: #E5005C;
            }
        </style>
    </head>
    <body>
        <!-- 顶部开始 -->
        <div class="container">
            <div class="logo">
                <a href="./login.html">板栗快省后台管理</a></div>
            <div class="left_open">
                <a><i title="展开左侧栏" class="iconfont">&#xe699;</i></a>
            </div>
            <ul class="layui-nav left fast-add" lay-filter="">
                <li class="layui-nav-item">
                    <a href="javascript:;">+新增</a>
                    <dl class="layui-nav-child">
                        <!-- 二级菜单 -->
                        <dd>
                            <a onclick="xadmin.open('最大化','http://www.baidu.com','','',true)">
                                <i class="iconfont">&#xe6a2;</i>弹出最大化</a></dd>
                        <dd>
                            <a onclick="xadmin.open('弹出自动宽高','http://www.baidu.com')">
                                <i class="iconfont">&#xe6a8;</i>弹出自动宽高</a></dd>
                        <dd>
                            <a onclick="xadmin.open('弹出指定宽高','http://www.baidu.com',500,300)">
                                <i class="iconfont">&#xe6a8;</i>弹出指定宽高</a></dd>
                        <dd>
                            <a onclick="xadmin.add_tab('在tab打开','member-list.html')">
                                <i class="iconfont">&#xe6b8;</i>在tab打开</a></dd>
                        <dd>
                            <a onclick="xadmin.add_tab('在tab打开刷新','member-del.html',true)">
                                <i class="iconfont">&#xe6b8;</i>在tab打开刷新</a></dd>
                    </dl>
                </li>
            </ul>
            <ul class="layui-nav right" lay-filter="">
                <li class="layui-nav-item">
                    <a href="javascript:;">admin</a>
                    <dl class="layui-nav-child">
                        <!-- 二级菜单 -->
                        <dd>
                            <a onclick="xadmin.open('个人信息','http://www.baidu.com')">个人信息</a></dd>
                        <dd>
                            <a id ="changeUser">切换帐号</a></dd>
                        <dd>
                            <a id = "loginExit">退出</a></dd>
                    </dl>
                </li>
                <li class="layui-nav-item to-index">
                    <a href="javascript:void()" id="clearCaches">清除缓存</a></li>
            </ul>
        </div>
        <!-- 顶部结束 -->
        <!-- 中部开始 -->
        <!-- 左侧菜单开始 -->
        <div class="left-nav" id="allwai" style="background: transparent;padding-top: 0;">
            <div style="background:rgba(80, 161, 237, 0.73) !important ;height: 35px;"></div>
            <div id="side-nav" style="padding-top: 10px;">
                <ul id="nav" style="display: none;">
                    <li v-for="(item,index) in menuList">
                        <a href="javascript:;">
                            <i class="iconfont left-nav-li" v-bind:lay-tips="item.value" v-html="item.icon">{{item.icon}}</i>
                            <cite>{{item.value}}</cite>
                            <i class="iconfont nav_right">&#xe697;</i></a>
                        <ul class="sub-menu">
                            <li v-for="child in item.child">
                                <a v-on:click="navClick(child)" target="">
                                    <i class="iconfont">&#xe6a7;</i>
                                    <cite>{{child.value}}</cite></a>
                            </li>
                        </ul>
                    </li>
                </ul>
            </div>
        </div>
        <!-- <div class="x-slide_left"></div> -->
        <!-- 左侧菜单结束 -->
        <!-- 右侧主体开始 -->
        <div class="page-content">
            <div class="layui-tab" lay-filter="xbs_tab">
                <ul class="layui-tab-title" style="margin-top: -10px;margin-left: -1px; border-bottom-style:none;background: rgba(80, 161, 237,  0.73) !important;">
                </ul>
                <div class="layui-tab-content" style="background: #FFFFFF;margin-top: -1px;">
                </div>
                <div id="tab_show"></div>
            </div>
        </div>
        <!-- 右侧主体结束 -->
        <!-- 中部结束 -->
        <script src="./lib/layui/layui.all.js" charset="utf-8"></script>
        <script src="js/doui.min.js" type="text/javascript" charset="utf-8"></script>
        <script type="text/javascript">
            doui.importLoad({
                importArray: [
                    "fontAdmin/iconfont.css",
                    "font/iconfont.css",
                    "css/admin-all.css",
                    "js/jquery.min.js",
                    "js/vue.min.js",
                    "js/requestHost.js",
                ]
            });
        </script>
        <script>
            var vm = null;
            doui.onReady({
                success: function() {
                    vm = new Vue({
                        el: "#allwai",
                        // 数据
                        watch: {
                            menuList: function() {
                                setTimeout(function() {
                                    $("#nav").css("display", "block");
                                    init();
                                    // for (var i = 0; i < $("#nav").find("li").length; i++) {
                                    //     var icon = $("#nav").find("li").eq(i).find("i").eq(0);
                                    //     icon.removeClass("iconfont");
                                    //     icon.addClass("iconfont");
                                    // }
                                }, 300);
                            }
                        },
                        data: {
                            // ---------------------------------------------------- 顶部数据
                            // 系统版本
                            sys: {
                                value: "返利券后台",
                                level: "2.2.4",
                                winH: doui.winH, // 页面高度
                            },
                            menuList: [],
                            // ---------------------------------------------------- 登录用户信息
                            user: {
                                login: false, // 登录状态
                                name: '未登录',
                                showTan: false, // 是否显示下拉弹框
                                // 名字处点击
                                click: function() {
                                    // 1. 当前未登录,返回登录页
                                    if (vm.user.login == false) {
                                        vm.user.init();
                                        doui.pageToUrl({
                                            type: "blank",
                                            url: "login.html",
                                        });
                                    }
                                    // 2. 当前已经登录,显示下拉弹框
                                    else {
                                        vm.user.showTan = !vm.user.showTan;
                                    }
                                },
                                // 弹框选项点击
                                listClick: function(typeC) {
                                    // 点击了退出登录
                                    if (typeC == "off") {
                                        vm.user.init(); // 初始化登录用户
                                        // 返回登录页
                                        doui.pageToUrl({
                                            type: "replace",
                                            url: "login.html",
                                        });
                                    }
                                },
                                // 初始化
                                init: function() {
                                    vm.user.name = "未登录";
                                    vm.user.showTan = false;
                                    vm.user.login = false;
                                },
                            },
                            // ---------------------------------------------------- 菜单数据
                            menu: {
                                // 请求列表
                                request: function() {
                                    doui.request({
                                        type: "get",
                                        url: "menu.json",
                                        data: {},
<!doctype html>
<html class="x-admin-sm">
    <head>
        <meta charset="UTF-8">
        <title>板栗快省</title>
        <meta name="renderer" content="webkit|ie-comp|ie-stand">
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <meta name="viewport" content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi" />
        <meta http-equiv="Cache-Control" content="no-siteapp" />
        <link rel="stylesheet" type="text/css" href="css/doui.min.css" />
        <link rel="stylesheet" href="./css/font.css">
        <link rel="stylesheet" href="./css/xadmin.css">
        <link rel="stylesheet" href="./css/theme3049.min.css">
        <!-- <link rel="stylesheet" href="./css/theme5.css"> -->
        <script type="text/javascript" src="./js/xadmin.js"></script>
        <!-- 让IE8/9支持媒体查询,从而兼容栅格 -->
        <!--[if lt IE 9]>
          <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
          <script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
        <![endif]-->
        <script>
            // 是否开启刷新记忆tab功能
            // var is_remember = false;
        </script>
        <style>
            .layui-tab-title li{
                margin-right: 1px;
                background: #D0D0D0;
                border-top-left-radius: 10px;
                border-top-right-radius: 10px;
                color: #959595;
            }
            .layui-tab-title{
                padding-left: 2px;
            }
            .layui-tab-title .layui-this:after{
                content: none;
            }
            .layui-tab-title .layui-this{
                border-width: 0;
                border-color: transparent;
                color: #E5005C;
            }
        </style>
    </head>
    <body>
        <!-- 顶部开始 -->
        <div class="container">
            <div class="logo">
                <a href="./login.html">板栗快省后台管理</a></div>
            <div class="left_open">
                <a><i title="展开左侧栏" class="iconfont">&#xe699;</i></a>
            </div>
            <ul class="layui-nav left fast-add" lay-filter="topmenu">
                <li class="layui-nav-item">
                    <a href="javascript:;">+新增</a>
                    <dl class="layui-nav-child">
                        <!-- 二级菜单 -->
                        <dd>
                            <a onclick="xadmin.open('最大化','http://www.baidu.com','','',true)">
                                <i class="iconfont">&#xe6a2;</i>弹出最大化</a></dd>
                        <dd>
                            <a onclick="xadmin.open('弹出自动宽高','http://www.baidu.com')">
                                <i class="iconfont">&#xe6a8;</i>弹出自动宽高</a></dd>
                        <dd>
                            <a onclick="xadmin.open('弹出指定宽高','http://www.baidu.com',500,300)">
                                <i class="iconfont">&#xe6a8;</i>弹出指定宽高</a></dd>
                        <dd>
                            <a onclick="xadmin.add_tab('在tab打开','member-list.html')">
                                <i class="iconfont">&#xe6b8;</i>在tab打开</a></dd>
                        <dd>
                            <a onclick="xadmin.add_tab('在tab打开刷新','member-del.html',true)">
                                <i class="iconfont">&#xe6b8;</i>在tab打开刷新</a></dd>
                    </dl>
                </li>
            </ul>
            <ul class="layui-nav right" lay-filter="">
                <li class="layui-nav-item" id="system">
                    <form>
                        <a v-if="system!=null" href="javascript:;"></a>
                        <dl class="layui-nav-child">
                            <!-- 二级菜单 -->
                        </dl>
                    </form>
                </li>
                <li class="layui-nav-item">
                    <a href="javascript:;">admin</a>
                    <dl class="layui-nav-child">
                        <!-- 二级菜单 -->
                        <dd>
                            <a onclick="xadmin.open('个人信息','http://www.baidu.com')">个人信息</a></dd>
                        <dd>
                            <a id="changeUser">切换帐号</a></dd>
                        <dd>
                            <a id="loginExit">退出</a></dd>
                    </dl>
                </li>
                <li class="layui-nav-item to-index">
                    <a href="javascript:void()" id="clearCaches">清除缓存</a></li>
            </ul>
        </div>
        <!-- 顶部结束 -->
        <!-- 中部开始 -->
        <!-- 左侧菜单开始 -->
        <div class="left-nav" id="allwai" style="background: transparent;padding-top: 0;">
            <div style="background:rgba(80, 161, 237, 0.73) !important ;height: 35px;"></div>
            <div id="side-nav" style="padding-top: 10px;">
                <ul id="nav" style="display: none;">
                    <li v-for="(item,index) in menuList">
                        <a href="javascript:;">
                            <i class="iconfont left-nav-li" v-bind:lay-tips="item.value" v-html="item.icon">{{item.icon}}</i>
                            <cite>{{item.value}}</cite>
                            <i class="iconfont nav_right">&#xe697;</i></a>
                        <ul class="sub-menu">
                            <li v-for="child in item.child">
                                <a v-on:click="navClick(child)" target="">
                                    <i class="iconfont">&#xe6a7;</i>
                                    <cite>{{child.value}}</cite></a>
                            </li>
                        </ul>
                    </li>
                </ul>
            </div>
        </div>
        <!-- <div class="x-slide_left"></div> -->
        <!-- 左侧菜单结束 -->
        <!-- 右侧主体开始 -->
        <div class="page-content">
            <div class="layui-tab" lay-filter="xbs_tab">
                <ul class="layui-tab-title" style="margin-top: -10px;margin-left: -1px; border-bottom-style:none;background: rgba(80, 161, 237,  0.73) !important;">
                </ul>
                <div class="layui-tab-content" style="background: #FFFFFF;margin-top: -1px;">
                </div>
                <div id="tab_show"></div>
            </div>
        </div>
        <!-- 右侧主体结束 -->
        <!-- 中部结束 -->
        <script src="./lib/layui/layui.all.js" charset="utf-8"></script>
        <script src="js/doui.min.js" type="text/javascript" charset="utf-8"></script>
        <script type="text/javascript">
            doui.importLoad({
                importArray: [
                    "fontAdmin/iconfont.css",
                    "font/iconfont.css",
                    "css/admin-all.css",
                    "js/jquery.min.js",
                    "js/vue.min.js",
                    "js/requestHost.js",
                ]
            });
        </script>
        <script>
            var vm = null;
            function selectSystem(key,name) {
                doui.localStorageSet({
                    key: 'system',
                    data: key
                });
                $("#system").find("a").eq(0).text(name);
                window.location.reload();
            }
            doui.onReady({
                success: function() {
                    var form = null;
                    layui.use('form', function(e) {
                        form = layui.form;
                    });
                    function getSystem() {
                        var myurl = gethttp() + "/admin/new/api/v1/config/getSystem";
                        doui.request({
                            type: "jsonp",
                            url: myurl,
                            success: function(res) {
                                if (res.code == 0) {
                                    $("#system").find("dl").eq(0).empty();
                                    var system = "";
                                    doui.localStorageGet({
                                        key: "system",
                                        success: function(res) {
                                            vm.menuList = res;
                                        }
                                    });
                                }
                            },
                            // ---------------------------------------------------- 浏览导航卡数据
                            viewhis: {
                                index_his: 0, // 当前选择的浏览导航下标
                                // 浏览导航列表
                                list: [{
                                    value: "首页",
                                    href: "right.html"
                                }, ],
                                // 导航点击
                                click_nav: function(indexC) {
                                    vm.viewhis.index_his = indexC;
                                },
                                // 刷新点击
                                click_ref: function(itemC, indexC) {
                                    vm.viewhis.index_his = indexC;
                                    var myurl = itemC.href;
                                    itemC.href = "";
                                    setTimeout(function() {
                                        itemC.href = myurl;
                                    }, 100);
                                },
                                // 关闭点击
                                click_close: function(indexC) {
                                    vm.viewhis.list.splice(indexC, 1); // 从浏览历史中删去该条
                                    if (vm.viewhis.index_his > (vm.viewhis.list.length - 1)) {
                                        vm.viewhis.index_his = vm.viewhis.list.length - 1;
                                    } // 删除后,如果 当前浏览下标大于了数组最大值
                                }
                            },
                        },
                        methods: {
                            navClick: function(node) {
                                document.getElementsByTagName("title")[0].innerText = node.value;
                                if (node.child.length == 0) {
                                    var array = new Array();
                                    array.push({
                                        title: node.value,
                                        url: node.href
                                    });
                                    xadmin.add_tabs(array);
                                } else {
                                    var array = new Array();
                                    for (var i = 0; i < node.child.length; i++) {
                                        array.push({
                                            title: node.child[i].value,
                                            url: node.child[i].href
                                        });
                                    }
                                    xadmin.add_tabs(array);
                                }
                            }
                        }
                    });
                    // 从cookie中获取登录信息
                    doui.localStorageGet({
                        key: "inputInfo",
                        success: function(res) {
                            vm.user.login = true;
                            vm.user.id = res.id;
                            vm.user.name = res.nickName;
                        }
                                            system = res;
                                        }
                                    });
                                    var selectedSystem;
                                    for (var i = 0; i < res.data.length; i++) {
                                        var html = "";
                                        html += ("<dd><a onclick=\"selectSystem('" + res.data[i].key + "','" + res.data[i].name + "')\">");
                                        html += (res.data[i].name);
                                        html += ("</a></dd>");
                                        $("#system").find("dl").eq(0).append(html);
                                        if (res.data[i].key == system) {
                                            $("#system").find("a").eq(0).text(res.data[i].name);
                                            selectedSystem=res.data[i];
                                        }
                                    }
                                    if(selectSystem==null){
                                        selectSystem(res.data[0].key,res.data[0].name);
                                    }
                                }
                            }
                        });
                    }
                    getSystem();
                    vm = new Vue({
                        el: "#allwai",
                        // 数据
                        watch: {
                            menuList: function() {
                                setTimeout(function() {
                                    $("#nav").css("display", "block");
                                    init();
                                    // for (var i = 0; i < $("#nav").find("li").length; i++) {
                                    //     var icon = $("#nav").find("li").eq(i).find("i").eq(0);
                                    //     icon.removeClass("iconfont");
                                    //     icon.addClass("iconfont");
                                    // }
                                }, 300);
                            }
                        },
                        data: {
                            // ---------------------------------------------------- 顶部数据
                            // 系统版本
                            sys: {
                                value: "返利券后台",
                                level: "2.2.4",
                                winH: doui.winH, // 页面高度
                            },
                            menuList: [],
                            // ---------------------------------------------------- 登录用户信息
                            user: {
                                login: false, // 登录状态
                                name: '未登录',
                                showTan: false, // 是否显示下拉弹框
                                // 名字处点击
                                click: function() {
                                    // 1. 当前未登录,返回登录页
                                    if (vm.user.login == false) {
                                        vm.user.init();
                                        doui.pageToUrl({
                                            type: "blank",
                                            url: "login.html",
                                        });
                                    }
                                    // 2. 当前已经登录,显示下拉弹框
                                    else {
                                        vm.user.showTan = !vm.user.showTan;
                                    }
                                },
                                // 弹框选项点击
                                listClick: function(typeC) {
                                    // 点击了退出登录
                                    if (typeC == "off") {
                                        vm.user.init(); // 初始化登录用户
                                        // 返回登录页
                                        doui.pageToUrl({
                                            type: "replace",
                                            url: "login.html",
                                        });
                                    }
                                },
                                // 初始化
                                init: function() {
                                    vm.user.name = "未登录";
                                    vm.user.showTan = false;
                                    vm.user.login = false;
                                },
                            },
                            // ---------------------------------------------------- 菜单数据
                            menu: {
                                // 请求列表
                                request: function() {
                                    doui.request({
                                        type: "get",
                                        url: "menu.json",
                                        data: {},
                                        success: function(res) {
                                            vm.menuList = res;
                                        }
                                    });
                                }
                            },
                            // ---------------------------------------------------- 浏览导航卡数据
                            viewhis: {
                                index_his: 0, // 当前选择的浏览导航下标
                                // 浏览导航列表
                                list: [{
                                    value: "首页",
                                    href: "right.html"
                                }, ],
                                // 导航点击
                                click_nav: function(indexC) {
                                    vm.viewhis.index_his = indexC;
                                },
                                // 刷新点击
                                click_ref: function(itemC, indexC) {
                                    vm.viewhis.index_his = indexC;
                                    var myurl = itemC.href;
                                    itemC.href = "";
                                    setTimeout(function() {
                                        itemC.href = myurl;
                                    }, 100);
                                },
                                // 关闭点击
                                click_close: function(indexC) {
                                    vm.viewhis.list.splice(indexC, 1); // 从浏览历史中删去该条
                                    if (vm.viewhis.index_his > (vm.viewhis.list.length - 1)) {
                                        vm.viewhis.index_his = vm.viewhis.list.length - 1;
                                    } // 删除后,如果 当前浏览下标大于了数组最大值
                                }
                            },
                        },
                        methods: {
                            navClick: function(node) {
                                document.getElementsByTagName("title")[0].innerText = node.value;
                                if (node.child.length == 0) {
                                    var array = new Array();
                                    array.push({
                                        title: node.value,
                                        url: node.href
                                    });
                                    xadmin.add_tabs(array);
                                } else {
                                    var array = new Array();
                                    for (var i = 0; i < node.child.length; i++) {
                                        array.push({
                                            title: node.child[i].value,
                                            url: node.child[i].href
                                        });
                                    }
                                    xadmin.add_tabs(array);
                                }
                            },
                        }
                    });
                    // 从cookie中获取登录信息
                    doui.localStorageGet({
                        key: "inputInfo",
                        success: function(res) {
                            vm.user.login = true;
                            vm.user.id = res.id;
                            vm.user.name = res.nickName;
                        }
                    });
                    vm.menu.request();
                    //清除缓存事件
                    $("#clearCaches").click(function() {
                        var myurl = gethttp() + "/admin/new/api/v1/config/clearCaches";
                        var index = layer.load(0, {
                            shade: false
                        });
                        doui.request({
                            type: "jsonp",
                            url: myurl,
                            success: function(res) {
                                layer.close(index);
                                layer.msg("清除缓存成功");
                            }
                        });
                    //清除缓存事件
                    $("#clearCaches").click(function() {
                        var myurl = gethttp() + "/admin/new/api/v1/config/clearCaches";
                        var index = layer.load(0, {
                            shade: false
                        });
                        doui.request({
                            type: "jsonp",
                            url: myurl,
                            success: function(res) {
                                layer.close(index);
                                layer.msg("清除缓存成功");
                            }
                        });
                    });
                    //  退出登录事件
                    $("#loginExit").click(function() {
                        var myurl = gethttp() + "/admin/new/api/login/loginExitJP";
@@ -343,14 +406,14 @@
                            type: "jsonp",
                            url: myurl,
                            success: function(res) {
                                 vm.user.init();
                                 doui.pageToUrl({
                                     type: "replace",
                                     url: "login.html",
                                 });
                                vm.user.init();
                                doui.pageToUrl({
                                    type: "replace",
                                    url: "login.html",
                                });
                            }
                        });
                    });
                    });
                    //  切换账号事件
@@ -360,8 +423,8 @@
                            type: "jsonp",
                            url: myurl,
                            success: function(res) {
                                 vm.user.init();
                                 loginOpen();
                                vm.user.init();
                                loginOpen();
                            }
                        });
                    });
@@ -374,50 +437,49 @@
                                title: false,
                                shadeClose: true,
                                shade: 0.3,
                                id: 'LAY_layuipro',//设定一个id,防止重复弹出
                                id: 'LAY_layuipro', //设定一个id,防止重复弹出
                                area: ['420px', '432px'],
                                content: ['./login_simpl.html?type=2', 'no'],
                            });
                        });
                    }
                }
            });
                }
            });
        </script>
        <script>
            function login() {
                    layui.use('layer', function() {
                            layer.open({
                                    type: 2,
                                    title: false,
                                    shadeClose: true,
                                    shade: 0.3,
                                    id: 'LAY_layuipro', //设定一个id,防止重复弹出
                                    area: ['420px', '432px'],
                                    content: ['./login_simpl.html?type=2', 'no'],
                            });
                layui.use('layer', function() {
                    layer.open({
                        type: 2,
                        title: false,
                        shadeClose: true,
                        shade: 0.3,
                        id: 'LAY_layuipro', //设定一个id,防止重复弹出
                        area: ['420px', '432px'],
                        content: ['./login_simpl.html?type=2', 'no'],
                    });
                });
            }
        </script>
    </body>
    <script>
        function login() {
            layui.use('layer', function() {
                layer.open({
                    type: 2,
                    title: false,
                    shadeClose: true,
                    shade: 0.3,
                    id: 'LAY_layuipro', //设定一个id,防止重复弹出
                    area: ['420px', '432px'],
                    content: ['./login_simpl.html?type=2', 'no'],
                });
            });
        }
    </script>
        </script>
    </body>
    <script>
        function login() {
            layui.use('layer', function() {
                layer.open({
                    type: 2,
                    title: false,
                    shadeClose: true,
                    shade: 0.3,
                    id: 'LAY_layuipro', //设定一个id,防止重复弹出
                    area: ['420px', '432px'],
                    content: ['./login_simpl.html?type=2', 'no'],
                });
            });
        }
    </script>
</html>
js/doui.min.js
Diff too large
window/mobileAdmin/js/doui.min.js
@@ -1,3 +1,1439 @@
//v1.7.7 2019/01/14 21:51
!function(e,t,n){"undefined"!=typeof module&&module.exports?module.exports=n():"function"==typeof define&&define.amd?define(n):t.Fingerprint=n()}(0,this,function(){"use strict";var e=function(e){var t,n;t=Array.prototype.forEach,n=Array.prototype.map,this.each=function(e,n,r){if(null!==e)if(t&&e.forEach===t)e.forEach(n,r);else if(e.length===+e.length){for(var i=0,o=e.length;i<o;i++)if(n.call(r,e[i],i,e)==={})return}else for(var a in e)if(e.hasOwnProperty(a)&&n.call(r,e[a],a,e)==={})return},this.map=function(e,t,r){var i=[];return null==e?i:n&&e.map===n?e.map(t,r):(this.each(e,function(e,n,o){i[i.length]=t.call(r,e,n,o)}),i)},"object"==typeof e?(this.hasher=e.hasher,this.screen_resolution=e.screen_resolution,this.screen_orientation=e.screen_orientation,this.canvas=e.canvas,this.ie_activex=e.ie_activex):"function"==typeof e&&(this.hasher=e)};return e.prototype={get:function(){var e=[];if(e.push(navigator.userAgent),e.push(navigator.language),e.push(screen.colorDepth),this.screen_resolution){var t=this.getScreenResolution();void 0!==t&&e.push(t.join("x"))}return e.push((new Date).getTimezoneOffset()),e.push(this.hasSessionStorage()),e.push(this.hasLocalStorage()),e.push(this.hasIndexDb()),document.body?e.push(typeof document.body.addBehavior):e.push("undefined"),e.push(typeof window.openDatabase),e.push(navigator.cpuClass),e.push(navigator.platform),e.push(navigator.doNotTrack),e.push(this.getPluginsString()),this.canvas&&this.isCanvasSupported()&&e.push(this.getCanvasFingerprint()),this.hasher?this.hasher(e.join("###"),31):this.murmurhash3_32_gc(e.join("###"),31)},murmurhash3_32_gc:function(e,t){var n,r,i,o,a,s,d,c;for(n=3&e.length,r=e.length-n,i=t,a=3432918353,s=461845907,c=0;c<r;)d=255&e.charCodeAt(c)|(255&e.charCodeAt(++c))<<8|(255&e.charCodeAt(++c))<<16|(255&e.charCodeAt(++c))<<24,++c,i=27492+(65535&(o=5*(65535&(i=(i^=d=(65535&(d=(d=(65535&d)*a+(((d>>>16)*a&65535)<<16)&4294967295)<<15|d>>>17))*s+(((d>>>16)*s&65535)<<16)&4294967295)<<13|i>>>19))+((5*(i>>>16)&65535)<<16)&4294967295))+((58964+(o>>>16)&65535)<<16);switch(d=0,n){case 3:d^=(255&e.charCodeAt(c+2))<<16;case 2:d^=(255&e.charCodeAt(c+1))<<8;case 1:i^=d=(65535&(d=(d=(65535&(d^=255&e.charCodeAt(c)))*a+(((d>>>16)*a&65535)<<16)&4294967295)<<15|d>>>17))*s+(((d>>>16)*s&65535)<<16)&4294967295}return i^=e.length,i=2246822507*(65535&(i^=i>>>16))+((2246822507*(i>>>16)&65535)<<16)&4294967295,i=3266489909*(65535&(i^=i>>>13))+((3266489909*(i>>>16)&65535)<<16)&4294967295,(i^=i>>>16)>>>0},hasLocalStorage:function(){try{return!!window.localStorage}catch(e){return!0}},hasSessionStorage:function(){try{return!!window.sessionStorage}catch(e){return!0}},hasIndexDb:function(){try{return!!window.indexedDB}catch(e){return!0}},isCanvasSupported:function(){var e=document.createElement("canvas");return!(!e.getContext||!e.getContext("2d"))},isIE:function(){return"Microsoft Internet Explorer"===navigator.appName||!("Netscape"!==navigator.appName||!/Trident/.test(navigator.userAgent))},getPluginsString:function(){return this.isIE()&&this.ie_activex?this.getIEPluginsString():this.getRegularPluginsString()},getRegularPluginsString:function(){return this.map(navigator.plugins,function(e){var t=this.map(e,function(e){return[e.type,e.suffixes].join("~")}).join(",");return[e.name,e.description,t].join("::")},this).join(";")},getIEPluginsString:function(){return window.ActiveXObject?this.map(["ShockwaveFlash.ShockwaveFlash","AcroPDF.PDF","PDF.PdfCtrl","QuickTime.QuickTime","rmocx.RealPlayer G2 Control","rmocx.RealPlayer G2 Control.1","RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)","RealVideo.RealVideo(tm) ActiveX Control (32-bit)","RealPlayer","SWCtl.SWCtl","WMPlayer.OCX","AgControl.AgControl","Skype.Detection"],function(e){try{return new ActiveXObject(e),e}catch(e){return null}}).join(";"):""},getScreenResolution:function(){return this.screen_orientation?screen.height>screen.width?[screen.height,screen.width]:[screen.width,screen.height]:[screen.height,screen.width]},getCanvasFingerprint:function(){var e=document.createElement("canvas"),t=e.getContext("2d"),n="http://valve.github.io";return t.textBaseline="top",t.font="14px 'Arial'",t.textBaseline="alphabetic",t.fillStyle="#f60",t.fillRect(125,1,62,20),t.fillStyle="#069",t.fillText(n,2,15),t.fillStyle="rgba(102, 204, 0, 0.7)",t.fillText(n,4,17),e.toDataURL()}},e}),doui={importReady:!0,douiCss:null,sizeReady:!1,winW:0,winH:0,winWrem:0,winHrem:0,threadTimeout:null,threadInterval:null,AjaxList:[],windowReady:function(e){null==e&&(e=function(){}),document.addEventListener?document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,!1),e()},!1):document.attachEvent&&document.attachEvent("onreadystatechange",function(){"complete"==document.readyState&&(document.detachEvent("onreadystatechange",arguments.callee),e())})},onReady:function(e){null!=doui.threadInterval&&clearInterval(doui.threadInterval),doui.threadInterval=setInterval(function(){console.log("interval: doui的onReady监控"),1==doui.importReady&&1==doui.sizeReady&&(clearInterval(doui.threadInterval),e())},200)},importSet:function(e){if(null==e||e.length<=0)doui.importReady=!0;else{doui.importReady=!1;for(var t=document.getElementsByTagName("head")[0],n=new RegExp(".css$"),r=new RegExp(".js$"),i=0,o=0;o<e.length;o++)if(n.test(e[o])){var a=document.createElement("link");a.type="text/css",a.rel="stylesheet",a.href=e[o],t.appendChild(a),a.onerror=function(){alert("引入失败:"+a.href),doui.importReady=!1,a.onerror=null},a.onload=a.onreadystatechange=function(){++i>=e.length&&(doui.importReady=!0)}}else if(r.test(e[o])){var s=document.createElement("script");s.type="text/javascript",s.src=e[o],t.appendChild(s),s.onerror=function(){alert("引入失败:"+s.src),doui.importReady=!1,s.onerror=null},s.onload=s.onreadystatechange=function(){++i>=e.length&&(doui.importReady=!0)}}}},sizeSet:function(){try{var e=window.innerWidth,t=window.innerHeight;doui.winW=e,doui.winH=t}catch(e){return doui.sizeReady=!1,alert("屏幕可用大小获取失败"),!1}var n=parseFloat(750*doui.winH/doui.winW),r=100*parseFloat(doui.winW/750);if(doui.winWrem=7.5,doui.winHrem=n/100,null==doui.douiCss){for(var i=null,o=document.styleSheets,a=new RegExp("doui"),s=0;s<o.length;s++)if(a.test(o[s].href)){i=o[s];break}if(!(null!=i&&i.cssRules&&i.cssRules.length>0))return alert("请本地载入doui.css"),doui.sizeReady=!1,!1;doui.douiCss=i}for(s=0;s<doui.douiCss.cssRules.length;s++)if("html"==doui.douiCss.cssRules[s].selectorText)doui.douiCss.cssRules[s].style.fontSize=r+"px";else if("body"==doui.douiCss.cssRules[s].selectorText)doui.douiCss.cssRules[s].style.width=doui.winW+"px",doui.douiCss.cssRules[s].style.height=doui.winH+"px";else if(".winSizeBox"==doui.douiCss.cssRules[s].selectorText)doui.douiCss.cssRules[s].style.width=doui.winW+"px",doui.douiCss.cssRules[s].style.height=doui.winH+"px";else if(".heightenBox"==doui.douiCss.cssRules[s].selectorText)doui.douiCss.cssRules[s].style.width=doui.winW+"px",doui.douiCss.cssRules[s].style.minHeight=doui.winH+"px";else if(".main"==doui.douiCss.cssRules[s].selectorText){doui.douiCss.cssRules[s].style.minHeight=doui.winH+"px";break}doui.sizeReady=!0},showToast:function(e){(null==e||e.length<=0)&&(e="亲,我很迷茫啊……");var t=document.getElementById("zdo_toast");t&&t.parentNode.removeChild(t),null!=doui.threadTimeout&&clearTimeout(doui.threadTimeout);var n="font26",r="3.7rem",i="1.5rem",o="1.9rem",a="0.33rem",s="0.33rem";doui.winW>=doui.winH&&(n="font6",r=doui.winH/4+"px",i=doui.winH/6+"px",o=(doui.winW-doui.winH/4)/2+"px",a=doui.winH/40+"px",s=doui.winH/40+"px");var d="";d+='<div id="zdo_toast" class="fboxRow Xcenter Ycenter" style="width:'+r+"; height:auto; bottom:"+i+"; left:"+o+';">',d+='<div class="'+n+' font-white font-ell2" style="max-width:80%; margin-top:'+a+"; margin-bottom:"+s+'; line-height:1.5; text-align:center;">',d+="<span>"+e+"</span>",d+="</div>",d+="</div>";var c=document.createElement("div");c.innerHTML=d;var l=c.childNodes[0];document.getElementsByTagName("body")[0].appendChild(l),doui.threadTimeout=setTimeout(function(){var e=document.getElementById("zdo_toast");e&&e.parentNode.removeChild(e)},2500)},showLoading:function(e){if((null==e||e.length<=0)&&(e=""),document.getElementById("zdo_loading"))document.getElementById("zdo_loadcont").innerHTML=e;else{var t=doui.winH/2+"px",n="1.8rem",r="2.85rem",i="font26",o="1.2rem",a="1.06rem",s="0.07rem";doui.winW>=doui.winH&&(t=doui.winH/2+"px",n=doui.winH/8+"px",r=(doui.winW-doui.winH/8)/2+"px",i="font6",o=doui.winH/9+"px",a=doui.winH/9-12+"px",s="6px");var d="";d+='<div id="zdo_loading" class="fboxCol Xstart Ycenter" style="width:'+n+"; height:auto; top:"+t+"; left:"+r+';">',d+='<div class="zdo_loadBg" style="width:'+o+"; height:"+o+';">',d+='<div class="zdo_loadLeft" style="width:'+a+"; height:"+a+"; border-width:"+s+';"></div>',d+='<div class="zdo_loadRight" style="width:'+a+"; height:"+a+"; border-width:"+s+';"></div>',d+="</div>",d+='<div class="'+i+' font-white font-ell2" style="width:'+n+'; margin-top:10px; line-height:1.5; text-align:center;">',d+='<span id="zdo_loadcont" style="text-shadow:0 0 5px black;">'+e+"</span>",d+="</div>",d+="</div>";var c=document.createElement("div");c.innerHTML=d;var l=c.childNodes[0];document.getElementsByTagName("body")[0].appendChild(l)}},hideLoading:function(){var e=document.getElementById("zdo_loading");e&&e.parentNode.removeChild(e)},showModal:function(e,t){(null==e||e.length<=0)&&(e="亲,我很迷茫啊……"),null==t&&(t=function(){});var n=document.getElementById("zdo_modal");n&&n.parentNode.removeChild(n);var r="4.3rem",i="font26",o="0.4rem",a="0.4rem",s="font27",d="0.8rem";doui.winW>=doui.winH&&(r=doui.winH/4+"px",i="font6",o=doui.winH/40+"px",a=doui.winH/40+"px",s="font6",d=doui.winH/22+"px");var c="";c+='<div id="zdo_modal" class="fboxRow Xcenter Ycenter" style="height:'+doui.winH+'px;">',c+='<div id="zdo_modalnei" class="fboxCol Xcenter Ycenter" style="width:'+r+"; height:auto; max-height:"+doui.winH+'px;">',c+='<div class="'+i+' font-black" style="max-width:80%; margin-top:'+o+"; margin-bottom:"+a+'; line-height:1.5; text-align:center;">',c+="<span>"+e+"</span>",c+="</div>",c+='<div class="fboxRow" style="width:100%; height:'+d+'; border-top:1px solid #CCC">',c+='<div class="flex1 fboxRow Xcenter Ycenter zdo_modaldan click-color">',c+='<div class="'+s+' font-black do-default">取消</div>',c+="</div>",c+='<div style="width:1px; height:100%; background-color:#CCC;"></div>',c+='<div class="flex1 fboxRow Xcenter Ycenter zdo_modaldan click-color">',c+='<div class="'+s+' font-green do-default">确认</div>',c+="</div>",c+="</div>",c+="</div>",c+="</div>";var l=document.createElement("div");l.innerHTML=c;var u=l.childNodes[0];document.getElementsByTagName("body")[0].appendChild(u),document.getElementsByClassName("zdo_modaldan")[0].onclick=function(){var e=document.getElementById("zdo_modal");e&&e.parentNode.removeChild(e),t(!1)},document.getElementsByClassName("zdo_modaldan")[1].onclick=function(){var e=document.getElementById("zdo_modal");e&&e.parentNode.removeChild(e),t(!0)}},showScrollLoading:function(e,t,n){if(null==e&&(e=""),null==t&&(t=function(){}),null==n&&(n=!1),document.getElementsByClassName("do-scrollLoading").length<=0)doui.showToast("未放入载入框组件");else{var r="";if(r+='<div class="fboxRow Xcenter Ycenter">',r+='<div style="width:24px; height:24px; position:relative;">',r+='<div class="zdo_scrollloadxian"></div>',r+='<div class="zdo_scrollloadxian"></div>',r+='<div class="zdo_scrollloadxian"></div>',r+='<div class="zdo_scrollloadxian"></div>',r+='<div class="zdo_scrollloadxian"></div>',r+='<div class="zdo_scrollloadxian"></div>',r+='<div class="zdo_scrollloadxian"></div>',r+='<div class="zdo_scrollloadxian"></div>',r+="</div>",e.length>0&&(r+='<div style="margin-left:0.2rem;" class="font25 font-gray">',r+="<span>"+e+"</span>",r+="</div>"),r+="</div>",document.getElementsByClassName("do-scrollLoading")[0].childNodes.length<=0)document.getElementsByClassName("do-scrollLoading")[0].innerHTML=r,t();else if(1==n){var i=document.getElementsByClassName("do-scrollLoading")[0].childNodes[0];i&&i.parentNode.removeChild(i),document.getElementsByClassName("do-scrollLoading")[0].innerHTML=r,t()}}},hideScrollLoading:function(e){var t=document.getElementsByClassName("do-scrollLoading")[0].childNodes[0];if(t&&t.parentNode.removeChild(t),e&&e.length>0){var n="";n+='<div class="fboxRow Xcenter Ystart font-ell1 font-gray">',n+="<span>"+e+"</span>",n+="</div>",document.getElementsByClassName("do-scrollLoading").length<=0?doui.showToast("未放入载入框组件"):document.getElementsByClassName("do-scrollLoading")[0].innerHTML=n}},scrollTo:function(e,t,n){if(null==t&&(t=0),null==n&&(n=!0),"html"==e||"body"==e||e==window)if(1==n){var r=null;cancelAnimationFrame(r),r=requestAnimationFrame(function e(){var n=document.body.scrollTop||document.documentElement.scrollTop,i=Math.ceil(n/10);n>2e3?(scrollTo(0,2e3),r=requestAnimationFrame(e)):n>t?(scrollTo(0,n-i),r=requestAnimationFrame(e)):(scrollTo(0,t),cancelAnimationFrame(r))})}else scrollTo(0,t);else{var i=null;if(-1!=e.indexOf("#")){var o=e.slice(e.indexOf("#")+1);i=document.getElementById(o)}else-1!=e.indexOf(".")&&(o=e.slice(e.indexOf(".")+1),i=document.getElementsByClassName(o)[0]);1==n?(r=null,cancelAnimationFrame(r),r=requestAnimationFrame(function e(){var n=i.scrollTop,o=Math.ceil(n/10);n>2e3?(i.scrollTop=2e3,r=requestAnimationFrame(e)):n>t?(i.scrollTop=n-o,r=requestAnimationFrame(e)):(i.scrollTop=t,cancelAnimationFrame(r))})):i.scrollTop=t}},scrolling:function(e,t){null==t&&(t=function(){});var n={scrollTop:0,overBottom:!1},r=null;if(-1!=e.indexOf("#")){var i=e.slice(e.indexOf("#")+1);r=document.getElementById(i)}else-1!=e.indexOf(".")&&(i=e.slice(e.indexOf(".")+1),r=document.getElementsByClassName(i)[0]);"html"==e||"body"==e||e==window?document.body.onscroll=document.documentElement.onscroll=function(){var e=document.documentElement.clientHeight,r=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight),i=0;document.documentElement&&document.documentElement.scrollTop?i=document.documentElement.scrollTop:document.body&&(i=document.body.scrollTop),n.scrollTop=i,n.overBottom=i>0&&e+i>=r,t(n)}:r.onscroll=function(){var e=r.clientHeight,i=r.scrollHeight,o=r.scrollTop;n.scrollTop=o,n.overBottom=o>0&&e+o>=i,t(n)}},systemInfoGet:function(){var e={fingerprint:"",platform:"PC",version:"0",browserName:"",browserVersion:"0",inWX:!1,cookieEnabled:!0,windowWidth:0,windowHeight:0,windowWidthRem:0,windowHeightRem:0},t=navigator.userAgent,n=navigator.userAgent.toLowerCase();if(t.indexOf("Android")>-1||t.indexOf("Linux")>-1)e.platform="Android";else if(t.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/))e.platform="IOS";else for(var r=["Android","iPhone","SymbianOS","Windows Phone","iPad","iPod"],i=0;i<r.length;i++)if(t.indexOf(r[i])>0){e.platform="PC";break}try{"Android"==e.platform?e.version=n.match(/android ([\d.]+)/)[1]:"IOS"==e.platform?e.version=n.match(/version\/([\d.]+)/)[1]:"PC"==e.platform&&(e.version=navigator.platform)}catch(e){}t.indexOf("OPR")>-1||t.indexOf("Opera")>-1?e.browserName="Opera":t.indexOf("Firefox")>-1?e.browserName="FireFox":t.indexOf("Chrome")>-1?e.browserName="Chrome":t.indexOf("Safari")>-1?e.browserName="Safari":(n.indexOf("msie")>-1||t.indexOf("rv")>-1)&&(e.browserName="IE");try{"Opera"==e.browserName?e.browserVersion=n.match(/opera.([\d.]+)/)[1]:"FireFox"==e.browserName?e.browserVersion=n.match(/firefox\/([\d.]+)/)[1]:"Chrome"==e.browserName?e.browserVersion=n.match(/chrome\/([\d.]+)/)[1]:"Safari"==e.browserName?e.browserVersion=n.match(/safari\/([\d.]+)/)[1]:"IE"==e.browserName&&(e.browserVersion=n.match(/msie ([\d.]+)/)[1])}catch(e){}"micromessenger"==n.match(/MicroMessenger/i)?e.inWX=!0:e.inWX=!1,e.cookieEnabled=navigator.cookieEnabled,e.windowWidth=doui.winW,e.windowHeight=doui.winH,e.windowWidthRem=doui.winWrem,e.windowHeightRem=doui.winHrem;var o=(new Fingerprint).get();return e.fingerprint=o,e},urlParamGet:function(){var e=window.location.search,t=new Object;if(-1!=e.indexOf("?"))for(var n=e.slice(e.indexOf("?")+1).split("&"),r=0;r<n.length;r++){var i=n[r].indexOf("="),o=n[r].substring(0,i),a=decodeURI(n[r].slice(i+1));t[o]=a}return t},cookieSet:function(e,t,n){var r="";"string"==typeof t?r=t:"object"==typeof t&&(r=JSON.stringify(t));var i=new Date;i.setTime(i.getTime()+Math.ceil(36e5*parseFloat(n)));var o="expires="+i.toGMTString();document.cookie=e+"="+r+"; "+o+"; path=/"},cookieGet:function(e){var t=null;e||(e="",t={});for(var n=document.cookie.split(";"),r=0;r<n.length;r++){var i=n[r].trim(),o=i.indexOf("="),a=i.substring(0,o),s=i.slice(o+1);if(doui.isJsonString(s)&&(s=JSON.parse(s)),e.length<=0)t[a]=s;else if(a==e){t=s;break}}return t},cookieDel:function(e){document.cookie=e+"= ; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/"},localStorageSet:function(e,t){if("string"==typeof t)localStorage.setItem(e,t);else if("object"==typeof t){var n=JSON.stringify(t);localStorage.setItem(e,n)}},localStorageGet:function(e){var t=null,n=localStorage.getItem(e);return n&&(t=doui.isJsonString(n)?JSON.parse(n):n),t},localStorageDel:function(e){localStorage.removeItem(e)},sessionStorageSet:function(e,t){if("string"==typeof t)sessionStorage.setItem(e,t);else if("object"==typeof t){var n=JSON.stringify(t);sessionStorage.setItem(e,n)}},sessionStorageGet:function(e){var t=null,n=sessionStorage.getItem(e);return n&&(t=doui.isJsonString(n)?JSON.parse(n):n),t},sessionStorageDel:function(e){sessionStorage.removeItem(e)},pageToUrl:function(e){window.location.href=e},pageReplaceUrl:function(e){window.location.replace(e)},pageOpenUrl:function(e){window.open(e)},timestampForDate:function(e){e=parseFloat(e);var t=new Date(e),n=t.getFullYear(),r=t.getMonth()+1;r<10&&(r="0"+r);var i=t.getDate();i<10&&(i="0"+i);var o=t.getHours();o<10&&(o="0"+o);var a=t.getMinutes();return a<10&&(a="0"+a),n+"/"+r+"/"+i+" "+o+":"+a},strRandomGet:function(e){for(var t="",n="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",r=0;r<e;r++){var i=Math.round(Math.random()*(n.length-1));t+=n.charAt(i)}return t},strJsonHtmlGet:function(e){var t="",n="";try{"string"==typeof e?(t=JSON.parse(e),t=JSON.stringify(t,null,4)):t=JSON.stringify(e,null,4),n=t.replace(/\n/g,"<br>").replace(/\s/g,"&nbsp;")}catch(e){doui.showToast("strJsonHtmlGet: 不是Json格式")}return n},Base64:function(e,t){var n="初始str",r={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(e){var t,n,i,o,a,s,d,c="",l=0;for(e=r._utf8_encode(e);l<e.length;)o=(t=e.charCodeAt(l++))>>2,a=(3&t)<<4|(n=e.charCodeAt(l++))>>4,s=(15&n)<<2|(i=e.charCodeAt(l++))>>6,d=63&i,isNaN(n)?s=d=64:isNaN(i)&&(d=64),c=c+this._keyStr.charAt(o)+this._keyStr.charAt(a)+this._keyStr.charAt(s)+this._keyStr.charAt(d);return c},decode:function(e){var t,n,i,o,a,s,d="",c=0;for(e=e.replace(/[^A-Za-z0-9+/=]/g,"");c<e.length;)t=this._keyStr.indexOf(e.charAt(c++))<<2|(o=this._keyStr.indexOf(e.charAt(c++)))>>4,n=(15&o)<<4|(a=this._keyStr.indexOf(e.charAt(c++)))>>2,i=(3&a)<<6|(s=this._keyStr.indexOf(e.charAt(c++))),d+=String.fromCharCode(t),64!=a&&(d+=String.fromCharCode(n)),64!=s&&(d+=String.fromCharCode(i));return d=r._utf8_decode(d)},_utf8_encode:function(e){e=e.replace(/rn/g,"n");for(var t="",n=0;n<e.length;n++){var r=e.charCodeAt(n);r<128?t+=String.fromCharCode(r):r>127&&r<2048?(t+=String.fromCharCode(r>>6|192),t+=String.fromCharCode(63&r|128)):(t+=String.fromCharCode(r>>12|224),t+=String.fromCharCode(r>>6&63|128),t+=String.fromCharCode(63&r|128))}return t},_utf8_decode:function(e){for(var t,n,r="",i=0,o=0;i<e.length;)(t=e.charCodeAt(i))<128?(r+=String.fromCharCode(t),i++):t>191&&t<224?(n=e.charCodeAt(i+1),r+=String.fromCharCode((31&t)<<6|63&n),i+=2):(n=e.charCodeAt(i+1),o=e.charCodeAt(i+2),r+=String.fromCharCode((15&t)<<12|(63&n)<<6|63&o),i+=3);return r}};return"en"==e?n=r.encode(t):"de"==e&&(n=r.decode(t)),n},Aes:function(e,t,n,r){var i,o,a,s,d,c,l,u,h,f,p,m,g=g||(i=Math,o=Object.create||function(){function e(){}return function(t){var n;return e.prototype=t,n=new e,e.prototype=null,n}}(),s=(a={}).lib={},d=s.Base={extend:function(e){var t=o(this);return e&&t.mixIn(e),t.hasOwnProperty("init")&&this.init!==t.init||(t.init=function(){t.$super.init.apply(this,arguments)}),t.init.prototype=t,t.$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},c=s.WordArray=d.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:4*e.length},toString:function(e){return(e||u).stringify(this)},concat:function(e){var t=this.words,n=e.words,r=this.sigBytes,i=e.sigBytes;if(this.clamp(),r%4)for(var o=0;o<i;o++){var a=n[o>>>2]>>>24-o%4*8&255;t[r+o>>>2]|=a<<24-(r+o)%4*8}else for(o=0;o<i;o+=4)t[r+o>>>2]=n[o>>>2];return this.sigBytes+=i,this},clamp:function(){var e=this.words,t=this.sigBytes;e[t>>>2]&=4294967295<<32-t%4*8,e.length=i.ceil(t/4)},clone:function(){var e=d.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t,n=[],r=function(e){e=e;var t=987654321,n=4294967295;return function(){var r=((t=36969*(65535&t)+(t>>16)&n)<<16)+(e=18e3*(65535&e)+(e>>16)&n)&n;return r/=4294967296,(r+=.5)*(i.random()>.5?1:-1)}},o=0;o<e;o+=4){var a=r(4294967296*(t||i.random()));t=987654071*a(),n.push(4294967296*a()|0)}return new c.init(n,e)}}),l=a.enc={},u=l.Hex={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],i=0;i<n;i++){var o=t[i>>>2]>>>24-i%4*8&255;r.push((o>>>4).toString(16)),r.push((15&o).toString(16))}return r.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r+=2)n[r>>>3]|=parseInt(e.substr(r,2),16)<<24-r%8*4;return new c.init(n,t/2)}},h=l.Latin1={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],i=0;i<n;i++){var o=t[i>>>2]>>>24-i%4*8&255;r.push(String.fromCharCode(o))}return r.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r++)n[r>>>2]|=(255&e.charCodeAt(r))<<24-r%4*8;return new c.init(n,t)}},f=l.Utf8={stringify:function(e){try{return decodeURIComponent(escape(h.stringify(e)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(e){return h.parse(unescape(encodeURIComponent(e)))}},p=s.BufferedBlockAlgorithm=d.extend({reset:function(){this._data=new c.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=f.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(e){var t=this._data,n=t.words,r=t.sigBytes,o=this.blockSize,a=r/(4*o),s=(a=e?i.ceil(a):i.max((0|a)-this._minBufferSize,0))*o,d=i.min(4*s,r);if(s){for(var l=0;l<s;l+=o)this._doProcessBlock(n,l);var u=n.splice(0,s);t.sigBytes-=d}return new c.init(u,d)},clone:function(){var e=d.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0}),s.Hasher=p.extend({cfg:d.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){p.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(e){return function(t,n){return new e.init(n).finalize(t)}},_createHmacHelper:function(e){return function(t,n){return new m.HMAC.init(e,n).finalize(t)}}}),m=a.algo={},a);!function(){var e=g,t=e.lib,n=t.Base,r=t.WordArray,i=e.algo,o=i.MD5,a=i.EvpKDF=n.extend({cfg:n.extend({keySize:4,hasher:o,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var n=this.cfg,i=n.hasher.create(),o=r.create(),a=o.words,s=n.keySize,d=n.iterations;a.length<s;){c&&i.update(c);var c=i.update(e).finalize(t);i.reset();for(var l=1;l<d;l++)c=i.finalize(c),i.reset();o.concat(c)}return o.sigBytes=4*s,o}});e.EvpKDF=function(e,t,n){return a.create(n).compute(e,t)}}(),function(){var e=g,t=e.lib.WordArray;e.enc.Base64={stringify:function(e){var t=e.words,n=e.sigBytes,r=this._map;e.clamp();for(var i=[],o=0;o<n;o+=3)for(var a=(t[o>>>2]>>>24-o%4*8&255)<<16|(t[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|t[o+2>>>2]>>>24-(o+2)%4*8&255,s=0;s<4&&o+.75*s<n;s++)i.push(r.charAt(a>>>6*(3-s)&63));var d=r.charAt(64);if(d)for(;i.length%4;)i.push(d);return i.join("")},parse:function(e){var n=e.length,r=this._map,i=this._reverseMap;if(!i){i=this._reverseMap=[];for(var o=0;o<r.length;o++)i[r.charCodeAt(o)]=o}var a=r.charAt(64);if(a){var s=e.indexOf(a);-1!==s&&(n=s)}return function(e,n,r){for(var i=[],o=0,a=0;a<n;a++)if(a%4){var s=r[e.charCodeAt(a-1)]<<a%4*2,d=r[e.charCodeAt(a)]>>>6-a%4*2;i[o>>>2]|=(s|d)<<24-o%4*8,o++}return t.create(i,o)}(e,n,i)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}(),g.lib.Cipher||function(e){var t=g,n=t.lib,r=n.Base,i=n.WordArray,o=n.BufferedBlockAlgorithm,a=t.enc,s=(a.Utf8,a.Base64),d=t.algo.EvpKDF,c=n.Cipher=o.extend({cfg:r.extend(),createEncryptor:function(e,t){return this.create(this._ENC_XFORM_MODE,e,t)},createDecryptor:function(e,t){return this.create(this._DEC_XFORM_MODE,e,t)},init:function(e,t,n){this.cfg=this.cfg.extend(n),this._xformMode=e,this._key=t,this.reset()},reset:function(){o.reset.call(this),this._doReset()},process:function(e){return this._append(e),this._process()},finalize:function(e){return e&&this._append(e),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function e(e){return"string"==typeof e?w:v}return function(t){return{encrypt:function(n,r,i){return e(r).encrypt(t,n,r,i)},decrypt:function(n,r,i){return e(r).decrypt(t,n,r,i)}}}}()}),l=(n.StreamCipher=c.extend({_doFinalize:function(){return this._process(!0)},blockSize:1}),t.mode={}),u=n.BlockCipherMode=r.extend({createEncryptor:function(e,t){return this.Encryptor.create(e,t)},createDecryptor:function(e,t){return this.Decryptor.create(e,t)},init:function(e,t){this._cipher=e,this._iv=t}}),h=l.CBC=function(){var t=u.extend();function n(t,n,r){var i=this._iv;if(i){var o=i;this._iv=e}else o=this._prevBlock;for(var a=0;a<r;a++)t[n+a]^=o[a]}return t.Encryptor=t.extend({processBlock:function(e,t){var r=this._cipher,i=r.blockSize;n.call(this,e,t,i),r.encryptBlock(e,t),this._prevBlock=e.slice(t,t+i)}}),t.Decryptor=t.extend({processBlock:function(e,t){var r=this._cipher,i=r.blockSize,o=e.slice(t,t+i);r.decryptBlock(e,t),n.call(this,e,t,i),this._prevBlock=o}}),t}(),f=(t.pad={}).Pkcs7={pad:function(e,t){for(var n=4*t,r=n-e.sigBytes%n,o=r<<24|r<<16|r<<8|r,a=[],s=0;s<r;s+=4)a.push(o);var d=i.create(a,r);e.concat(d)},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},p=(n.BlockCipher=c.extend({cfg:c.cfg.extend({mode:h,padding:f}),reset:function(){c.reset.call(this);var e=this.cfg,t=e.iv,n=e.mode;if(this._xformMode==this._ENC_XFORM_MODE)var r=n.createEncryptor;else r=n.createDecryptor,this._minBufferSize=1;this._mode&&this._mode.__creator==r?this._mode.init(this,t&&t.words):(this._mode=r.call(n,this,t&&t.words),this._mode.__creator=r)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){e.pad(this._data,this.blockSize);var t=this._process(!0)}else t=this._process(!0),e.unpad(t);return t},blockSize:4}),n.CipherParams=r.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}})),m=(t.format={}).OpenSSL={stringify:function(e){var t=e.ciphertext,n=e.salt;if(n)var r=i.create([1398893684,1701076831]).concat(n).concat(t);else r=t;return r.toString(s)},parse:function(e){var t=s.parse(e),n=t.words;if(1398893684==n[0]&&1701076831==n[1]){var r=i.create(n.slice(2,4));n.splice(0,4),t.sigBytes-=16}return p.create({ciphertext:t,salt:r})}},v=n.SerializableCipher=r.extend({cfg:r.extend({format:m}),encrypt:function(e,t,n,r){r=this.cfg.extend(r);var i=e.createEncryptor(n,r),o=i.finalize(t),a=i.cfg;return p.create({ciphertext:o,key:n,iv:a.iv,algorithm:e,mode:a.mode,padding:a.padding,blockSize:e.blockSize,formatter:r.format})},decrypt:function(e,t,n,r){return r=this.cfg.extend(r),t=this._parse(t,r.format),e.createDecryptor(n,r).finalize(t.ciphertext)},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}}),y=(t.kdf={}).OpenSSL={execute:function(e,t,n,r){r||(r=i.random(8));var o=d.create({keySize:t+n}).compute(e,r),a=i.create(o.words.slice(t),4*n);return o.sigBytes=4*t,p.create({key:o,iv:a,salt:r})}},w=n.PasswordBasedCipher=v.extend({cfg:v.cfg.extend({kdf:y}),encrypt:function(e,t,n,r){var i=(r=this.cfg.extend(r)).kdf.execute(n,e.keySize,e.ivSize);r.iv=i.iv;var o=v.encrypt.call(this,e,t,i.key,r);return o.mixIn(i),o},decrypt:function(e,t,n,r){r=this.cfg.extend(r),t=this._parse(t,r.format);var i=r.kdf.execute(n,e.keySize,e.ivSize,t.salt);return r.iv=i.iv,v.decrypt.call(this,e,t,i.key,r)}})}(),function(){var e=g,t=e.lib.Base,n=e.enc.Utf8;e.algo.HMAC=t.extend({init:function(e,t){e=this._hasher=new e.init,"string"==typeof t&&(t=n.parse(t));var r=e.blockSize,i=4*r;t.sigBytes>i&&(t=e.finalize(t)),t.clamp();for(var o=this._oKey=t.clone(),a=this._iKey=t.clone(),s=o.words,d=a.words,c=0;c<r;c++)s[c]^=1549556828,d[c]^=909522486;o.sigBytes=a.sigBytes=i,this.reset()},reset:function(){var e=this._hasher;e.reset(),e.update(this._iKey)},update:function(e){return this._hasher.update(e),this},finalize:function(e){var t=this._hasher,n=t.finalize(e);return t.reset(),t.finalize(this._oKey.clone().concat(n))}})}(),g.mode.ECB=function(){var e=g.lib.BlockCipherMode.extend();return e.Encryptor=e.extend({processBlock:function(e,t){this._cipher.encryptBlock(e,t)}}),e.Decryptor=e.extend({processBlock:function(e,t){this._cipher.decryptBlock(e,t)}}),e}(),g.pad.Iso10126={pad:function(e,t){var n=4*t,r=n-e.sigBytes%n;e.concat(g.lib.WordArray.random(r-1)).concat(g.lib.WordArray.create([r<<24],1))},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},function(){var e=g,t=e.lib.BlockCipher,n=e.algo,r=[],i=[],o=[],a=[],s=[],d=[],c=[],l=[],u=[],h=[];!function(){for(var e=[],t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;var n=0,f=0;for(t=0;t<256;t++){var p=f^f<<1^f<<2^f<<3^f<<4;p=p>>>8^255&p^99,r[n]=p,i[p]=n;var m=e[n],g=e[m],v=e[g],y=257*e[p]^16843008*p;o[n]=y<<24|y>>>8,a[n]=y<<16|y>>>16,s[n]=y<<8|y>>>24,d[n]=y,y=16843009*v^65537*g^257*m^16843008*n,c[p]=y<<24|y>>>8,l[p]=y<<16|y>>>16,u[p]=y<<8|y>>>24,h[p]=y,n?(n=m^e[e[e[v^m]]],f^=e[e[f]]):n=f=1}}();var f=[0,1,2,4,8,16,32,64,128,27,54],p=n.AES=t.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var e=this._keyPriorReset=this._key,t=e.words,n=e.sigBytes/4,i=4*((this._nRounds=n+6)+1),o=this._keySchedule=[],a=0;a<i;a++)if(a<n)o[a]=t[a];else{var s=o[a-1];a%n?n>6&&a%n==4&&(s=r[s>>>24]<<24|r[s>>>16&255]<<16|r[s>>>8&255]<<8|r[255&s]):(s=r[(s=s<<8|s>>>24)>>>24]<<24|r[s>>>16&255]<<16|r[s>>>8&255]<<8|r[255&s],s^=f[a/n|0]<<24),o[a]=o[a-n]^s}for(var d=this._invKeySchedule=[],p=0;p<i;p++)a=i-p,s=p%4?o[a]:o[a-4],d[p]=p<4||a<=4?s:c[r[s>>>24]]^l[r[s>>>16&255]]^u[r[s>>>8&255]]^h[r[255&s]]}},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,o,a,s,d,r)},decryptBlock:function(e,t){var n=e[t+1];e[t+1]=e[t+3],e[t+3]=n,this._doCryptBlock(e,t,this._invKeySchedule,c,l,u,h,i),n=e[t+1],e[t+1]=e[t+3],e[t+3]=n},_doCryptBlock:function(e,t,n,r,i,o,a,s){for(var d=this._nRounds,c=e[t]^n[0],l=e[t+1]^n[1],u=e[t+2]^n[2],h=e[t+3]^n[3],f=4,p=1;p<d;p++){var m=r[c>>>24]^i[l>>>16&255]^o[u>>>8&255]^a[255&h]^n[f++],g=r[l>>>24]^i[u>>>16&255]^o[h>>>8&255]^a[255&c]^n[f++],v=r[u>>>24]^i[h>>>16&255]^o[c>>>8&255]^a[255&l]^n[f++],y=r[h>>>24]^i[c>>>16&255]^o[l>>>8&255]^a[255&u]^n[f++];c=m,l=g,u=v,h=y}m=(s[c>>>24]<<24|s[l>>>16&255]<<16|s[u>>>8&255]<<8|s[255&h])^n[f++],g=(s[l>>>24]<<24|s[u>>>16&255]<<16|s[h>>>8&255]<<8|s[255&c])^n[f++],v=(s[u>>>24]<<24|s[h>>>16&255]<<16|s[c>>>8&255]<<8|s[255&l])^n[f++],y=(s[h>>>24]<<24|s[c>>>16&255]<<16|s[l>>>8&255]<<8|s[255&u])^n[f++],e[t]=m,e[t+1]=g,e[t+2]=v,e[t+3]=y},keySize:8});e.AES=t._createHelper(p)}(),function(){var e=g,t=e.lib.WordArray,n=e.enc;function r(e){return e<<8&4278255360|e>>>8&16711935}n.Utf16=n.Utf16BE={stringify:function(e){for(var t=e.words,n=e.sigBytes,r=[],i=0;i<n;i+=2){var o=t[i>>>2]>>>16-i%4*8&65535;r.push(String.fromCharCode(o))}return r.join("")},parse:function(e){for(var n=e.length,r=[],i=0;i<n;i++)r[i>>>1]|=e.charCodeAt(i)<<16-i%2*16;return t.create(r,2*n)}},n.Utf16LE={stringify:function(e){for(var t=e.words,n=e.sigBytes,i=[],o=0;o<n;o+=2){var a=r(t[o>>>2]>>>16-o%4*8&65535);i.push(String.fromCharCode(a))}return i.join("")},parse:function(e){for(var n=e.length,i=[],o=0;o<n;o++)i[o>>>1]|=r(e.charCodeAt(o)<<16-o%2*16);return t.create(i,2*n)}}}(),null==n&&(n="warningiscaution");var v=g.enc.Utf8.parse(n),y={mode:g.mode.ECB,padding:g.pad.Pkcs7};if(null!=r&&r.length>0&&(y={iv:g.enc.Utf8.parse(r),mode:g.mode.CBC,padding:g.pad.Pkcs7}),"en"==e){var w=g.enc.Utf8.parse(t);return g.AES.encrypt(w,v,y).toString()}if("de"==e){var x=g.AES.decrypt(t,v,y);return g.enc.Utf8.stringify(x).toString()}},strMD5Get:function(e){function t(e,t){return e<<t|e>>>32-t}function n(e,t){var n,r,i,o,a;return i=2147483648&e,o=2147483648&t,a=(1073741823&e)+(1073741823&t),(n=1073741824&e)&(r=1073741824&t)?2147483648^a^i^o:n|r?1073741824&a?3221225472^a^i^o:1073741824^a^i^o:a^i^o}function r(e,r,i,o,a,s,d){var c;return n(t(e=n(e,n(n((c=r)&i|~c&o,a),d)),s),r)}function i(e,r,i,o,a,s,d){var c;return n(t(e=n(e,n(n(r&(c=o)|i&~c,a),d)),s),r)}function o(e,r,i,o,a,s,d){return n(t(e=n(e,n(n(r^i^o,a),d)),s),r)}function a(e,r,i,o,a,s,d){return n(t(e=n(e,n(n(i^(r|~o),a),d)),s),r)}function s(e){var t,n="",r="";for(t=0;t<=3;t++)n+=(r="0"+(e>>>8*t&255).toString(16)).substr(r.length-2,2);return n}return function(e){var t,d,c,l,u,h,f,p,m,g=Array();for(g=function(e){for(var t,n=e.length,r=n+8,i=16*((r-r%64)/64+1),o=Array(i-1),a=0,s=0;s<n;)a=s%4*8,o[t=(s-s%4)/4]=o[t]|e.charCodeAt(s)<<a,s++;return a=s%4*8,o[t=(s-s%4)/4]=o[t]|128<<a,o[i-2]=n<<3,o[i-1]=n>>>29,o}(e=function(e){for(var t="",n=0;n<e.length;n++){var r=e.charCodeAt(n);r<128?t+=String.fromCharCode(r):r>127&&r<2048?(t+=String.fromCharCode(r>>6|192),t+=String.fromCharCode(63&r|128)):(t+=String.fromCharCode(r>>12|224),t+=String.fromCharCode(r>>6&63|128),t+=String.fromCharCode(63&r|128))}return t}(e)),h=1732584193,f=4023233417,p=2562383102,m=271733878,t=0;t<g.length;t+=16)d=h,c=f,l=p,u=m,f=a(f=a(f=a(f=a(f=o(f=o(f=o(f=o(f=i(f=i(f=i(f=i(f=r(f=r(f=r(f=r(f,p=r(p,m=r(m,h=r(h,f,p,m,g[t+0],7,3614090360),f,p,g[t+1],12,3905402710),h,f,g[t+2],17,606105819),m,h,g[t+3],22,3250441966),p=r(p,m=r(m,h=r(h,f,p,m,g[t+4],7,4118548399),f,p,g[t+5],12,1200080426),h,f,g[t+6],17,2821735955),m,h,g[t+7],22,4249261313),p=r(p,m=r(m,h=r(h,f,p,m,g[t+8],7,1770035416),f,p,g[t+9],12,2336552879),h,f,g[t+10],17,4294925233),m,h,g[t+11],22,2304563134),p=r(p,m=r(m,h=r(h,f,p,m,g[t+12],7,1804603682),f,p,g[t+13],12,4254626195),h,f,g[t+14],17,2792965006),m,h,g[t+15],22,1236535329),p=i(p,m=i(m,h=i(h,f,p,m,g[t+1],5,4129170786),f,p,g[t+6],9,3225465664),h,f,g[t+11],14,643717713),m,h,g[t+0],20,3921069994),p=i(p,m=i(m,h=i(h,f,p,m,g[t+5],5,3593408605),f,p,g[t+10],9,38016083),h,f,g[t+15],14,3634488961),m,h,g[t+4],20,3889429448),p=i(p,m=i(m,h=i(h,f,p,m,g[t+9],5,568446438),f,p,g[t+14],9,3275163606),h,f,g[t+3],14,4107603335),m,h,g[t+8],20,1163531501),p=i(p,m=i(m,h=i(h,f,p,m,g[t+13],5,2850285829),f,p,g[t+2],9,4243563512),h,f,g[t+7],14,1735328473),m,h,g[t+12],20,2368359562),p=o(p,m=o(m,h=o(h,f,p,m,g[t+5],4,4294588738),f,p,g[t+8],11,2272392833),h,f,g[t+11],16,1839030562),m,h,g[t+14],23,4259657740),p=o(p,m=o(m,h=o(h,f,p,m,g[t+1],4,2763975236),f,p,g[t+4],11,1272893353),h,f,g[t+7],16,4139469664),m,h,g[t+10],23,3200236656),p=o(p,m=o(m,h=o(h,f,p,m,g[t+13],4,681279174),f,p,g[t+0],11,3936430074),h,f,g[t+3],16,3572445317),m,h,g[t+6],23,76029189),p=o(p,m=o(m,h=o(h,f,p,m,g[t+9],4,3654602809),f,p,g[t+12],11,3873151461),h,f,g[t+15],16,530742520),m,h,g[t+2],23,3299628645),p=a(p,m=a(m,h=a(h,f,p,m,g[t+0],6,4096336452),f,p,g[t+7],10,1126891415),h,f,g[t+14],15,2878612391),m,h,g[t+5],21,4237533241),p=a(p,m=a(m,h=a(h,f,p,m,g[t+12],6,1700485571),f,p,g[t+3],10,2399980690),h,f,g[t+10],15,4293915773),m,h,g[t+1],21,2240044497),p=a(p,m=a(m,h=a(h,f,p,m,g[t+8],6,1873313359),f,p,g[t+15],10,4264355552),h,f,g[t+6],15,2734768916),m,h,g[t+13],21,1309151649),p=a(p,m=a(m,h=a(h,f,p,m,g[t+4],6,4149444226),f,p,g[t+11],10,3174756917),h,f,g[t+2],15,718787259),m,h,g[t+9],21,3951481745),h=n(h,d),f=n(f,c),p=n(p,l),m=n(m,u);return(s(h)+s(f)+s(p)+s(m)).toUpperCase()}(e)},AjaxData:function(e,t){null==e&&(e={}),null==t&&(t="thisWarning");var n=e;n.timestamp=(new Date).getTime();var r=new Array;for(var i in n)"object"==typeof n[i]&&(n[i]=JSON.stringify(n[i])),r.push(n[i]);r.sort();var o=r.join("###")+"###"+t,a=doui.strMD5Get(o);return n.sign=a,n},AjaxRepeat:function(e,t){var n={url:"",over:!1};n.url=t;var r=!1;if("add"==e){for(var i=null,o=0;o<doui.AjaxList.length;o++)if(n.url==doui.AjaxList[o].url){i=o;break}null==i?(doui.AjaxList.push(n),r=!0):1==doui.AjaxList[i].over?(doui.AjaxList[i].over=!1,r=!0):r=!1}else if("over"==e)for(o=0;o<doui.AjaxList.length;o++)if(t==doui.AjaxList[o].url){doui.AjaxList[o].over=!0,r=!0;break}return r},AjaxPost:function(e,t,n,r){null==r&&(r=!1);var i={code:0,data:{},msg:"请求成功"};if(1==r||doui.AjaxRepeat("add",e)){var o=e,a=t,s=null;(s=window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP")).open("POST",o,!0),s.setRequestHeader("Content-type","application/json"),s.withCredentials=!0;var d=setTimeout(function(){s.abort(),doui.AjaxRepeat("over",o),i.code=404,i.msg="请求超时",n(i)},3e5);s.onreadystatechange=function(){if(4==s.readyState&&200==s.status){null!=d&&clearTimeout(d),doui.AjaxRepeat("over",o);var e=null;s.responseText?e=s.responseText:s.responseXML&&(e=s.responseXML),doui.isJsonString(e)?i=JSON.parse(e):(i.code=200,i.data=e,i.msg="返回数据不是json格式"),n(i)}else 4==s.readyState&&(null!=d&&clearTimeout(d),doui.AjaxRepeat("over",o),i.code=404,i.data=s.responseText,i.msg="无法链接,请检查网络",n(i))},s.send(JSON.stringify(a))}},AjaxGet:function(e,t,n,r){null==r&&(r=!1);var i={code:0,data:{},msg:"请求成功"};if(1==r||doui.AjaxRepeat("add",e)){var o=e,a=t,s=null;s=window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP");var d=o+"?";for(var c in a)d+=c+"="+a[c]+"&";d=d.substring(0,d.length-1),s.open("GET",d,!0),s.withCredentials=!0;var l=setTimeout(function(){s.abort(),doui.AjaxRepeat("over",o),i.code=404,i.msg="请求超时",n(i)},3e5);s.onreadystatechange=function(){if(4==s.readyState&&200==s.status){null!=l&&clearTimeout(l),doui.AjaxRepeat("over",o);var e=null;s.responseText?e=s.responseText:s.responseXML&&(e=s.responseXML),doui.isJsonString(e)?i=JSON.parse(e):(i.code=200,i.data=e,i.msg="返回数据不是json格式"),n(i)}else 4==s.readyState&&(null!=l&&clearTimeout(l),doui.AjaxRepeat("over",o),i.code=404,i.data=s.responseText,i.msg="无法链接,请检查网络",n(i))},s.send()}},AjaxJsonp:function(e,t,n,r){null==r&&(r=!1);var i={code:0,data:{},msg:"请求成功"};if(1==r||doui.AjaxRepeat("add",e)){var o=e,a=t,s="douiJsonp_"+doui.strRandomGet(8);a.callback=s;var d=o+"?";for(var c in a)d+=c+"="+a[c]+"&";d=d.substring(0,d.length-1),d=encodeURI(d);var l=document.createElement("script");l.type="text/javascript",l.src=d,document.getElementsByTagName("head")[0].appendChild(l);var u=setTimeout(function(){l&&l.parentNode.removeChild(l),doui.AjaxRepeat("over",o),i.code=404,i.msg="请求超时",n(i)},3e5);l.onerror=function(){l&&l.parentNode.removeChild(l),null!=u&&clearTimeout(u),doui.AjaxRepeat("over",o),i.code=404,i.msg="无法链接,请检查网络",n(i)},window[s]=function(e){var t=e;l&&l.parentNode.removeChild(l),null!=u&&clearTimeout(u),doui.AjaxRepeat("over",o),"object"==typeof t?i=t:"string"==typeof t&&doui.isJsonString(t)?i=JSON.parse(t):(i.code=200,i.data=t,i.msg="返回数据不是json格式"),n(i)}}},AjaxUpload:function(e,t,n,r){var i={code:0,data:{},msg:"请求成功"},o=e,a=new FormData;for(var s in t)a.append(s,t[s]);var d=null;if(d=window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP"),r){var c={total:0,loaded:0,percentage:0};d.upload.onprogress=function(e){e.lengthComputable&&(c.total=e.total,c.loaded=e.loaded,c.percentage=Math.round(1e3*parseFloat(e.loaded/e.total))/10,r(c))}}d.open("POST",o,!0),d.withCredentials=!0,d.onreadystatechange=function(){if(4==d.readyState&&200==d.status){var e=null;d.responseText?e=d.responseText:d.responseXML&&(e=d.responseXML),doui.isJsonString(e)?i=JSON.parse(e):(i.code=200,i.data=e,i.msg="返回数据不是json格式"),n(i)}else 4==d.readyState&&(i.code=404,i.data=d.responseText,i.msg="无法链接,请检查网络",n(i))},d.send(a)},isJsonString:function(e){try{if("object"==typeof JSON.parse(e))return!0}catch(e){}return!1}},doui.windowReady(function(){doui.sizeSet()}),window.onresize=function(){doui.sizeSet()};
! function(e, t, n) {
    "undefined" != typeof module && module.exports ? module.exports = n() : "function" == typeof define && define.amd ?
        define(n) : t.Fingerprint = n()
}(0, this, function() {
    "use strict";
    var e = function(e) {
        var t, n;
        t = Array.prototype.forEach, n = Array.prototype.map, this.each = function(e, n, r) {
            if (null !== e)
                if (t && e.forEach === t) e.forEach(n, r);
                else if (e.length === +e.length) {
                for (var i = 0, o = e.length; i < o; i++)
                    if (n.call(r, e[i], i, e) === {}) return
            } else
                for (var a in e)
                    if (e.hasOwnProperty(a) && n.call(r, e[a], a, e) === {}) return
        }, this.map = function(e, t, r) {
            var i = [];
            return null == e ? i : n && e.map === n ? e.map(t, r) : (this.each(e, function(e, n, o) {
                i[i.length] = t.call(r, e, n, o)
            }), i)
        }, "object" == typeof e ? (this.hasher = e.hasher, this.screen_resolution = e.screen_resolution, this.screen_orientation =
            e.screen_orientation, this.canvas = e.canvas, this.ie_activex = e.ie_activex) : "function" == typeof e && (this.hasher =
            e)
    };
    return e.prototype = {
        get: function() {
            var e = [];
            if (e.push(navigator.userAgent), e.push(navigator.language), e.push(screen.colorDepth), this.screen_resolution) {
                var t = this.getScreenResolution();
                void 0 !== t && e.push(t.join("x"))
            }
            return e.push((new Date).getTimezoneOffset()), e.push(this.hasSessionStorage()), e.push(this.hasLocalStorage()),
                e.push(this.hasIndexDb()), document.body ? e.push(typeof document.body.addBehavior) : e.push("undefined"), e.push(
                    typeof window.openDatabase), e.push(navigator.cpuClass), e.push(navigator.platform), e.push(navigator.doNotTrack),
                e.push(this.getPluginsString()), this.canvas && this.isCanvasSupported() && e.push(this.getCanvasFingerprint()),
                this.hasher ? this.hasher(e.join("###"), 31) : this.murmurhash3_32_gc(e.join("###"), 31)
        },
        murmurhash3_32_gc: function(e, t) {
            var n, r, i, o, a, s, d, c;
            for (n = 3 & e.length, r = e.length - n, i = t, a = 3432918353, s = 461845907, c = 0; c < r;) d = 255 & e.charCodeAt(
                    c) | (255 & e.charCodeAt(++c)) << 8 | (255 & e.charCodeAt(++c)) << 16 | (255 & e.charCodeAt(++c)) << 24, ++c, i =
                27492 + (65535 & (o = 5 * (65535 & (i = (i ^= d = (65535 & (d = (d = (65535 & d) * a + (((d >>> 16) * a & 65535) <<
                        16) & 4294967295) << 15 | d >>> 17)) * s + (((d >>> 16) * s & 65535) << 16) & 4294967295) << 13 | i >>> 19)) +
                    ((5 * (i >>> 16) & 65535) << 16) & 4294967295)) + ((58964 + (o >>> 16) & 65535) << 16);
            switch (d = 0, n) {
                case 3:
                    d ^= (255 & e.charCodeAt(c + 2)) << 16;
                case 2:
                    d ^= (255 & e.charCodeAt(c + 1)) << 8;
                case 1:
                    i ^= d = (65535 & (d = (d = (65535 & (d ^= 255 & e.charCodeAt(c))) * a + (((d >>> 16) * a & 65535) << 16) &
                        4294967295) << 15 | d >>> 17)) * s + (((d >>> 16) * s & 65535) << 16) & 4294967295
            }
            return i ^= e.length, i = 2246822507 * (65535 & (i ^= i >>> 16)) + ((2246822507 * (i >>> 16) & 65535) << 16) &
                4294967295, i = 3266489909 * (65535 & (i ^= i >>> 13)) + ((3266489909 * (i >>> 16) & 65535) << 16) & 4294967295,
                (i ^= i >>> 16) >>> 0
        },
        hasLocalStorage: function() {
            try {
                return !!window.localStorage
            } catch (e) {
                return !0
            }
        },
        hasSessionStorage: function() {
            try {
                return !!window.sessionStorage
            } catch (e) {
                return !0
            }
        },
        hasIndexDb: function() {
            try {
                return !!window.indexedDB
            } catch (e) {
                return !0
            }
        },
        isCanvasSupported: function() {
            var e = document.createElement("canvas");
            return !(!e.getContext || !e.getContext("2d"))
        },
        isIE: function() {
            return "Microsoft Internet Explorer" === navigator.appName || !("Netscape" !== navigator.appName || !/Trident/.test(
                navigator.userAgent))
        },
        getPluginsString: function() {
            return this.isIE() && this.ie_activex ? this.getIEPluginsString() : this.getRegularPluginsString()
        },
        getRegularPluginsString: function() {
            return this.map(navigator.plugins, function(e) {
                var t = this.map(e, function(e) {
                    return [e.type, e.suffixes].join("~")
                }).join(",");
                return [e.name, e.description, t].join("::")
            }, this).join(";")
        },
        getIEPluginsString: function() {
            return window.ActiveXObject ? this.map(["ShockwaveFlash.ShockwaveFlash", "AcroPDF.PDF", "PDF.PdfCtrl",
                "QuickTime.QuickTime", "rmocx.RealPlayer G2 Control", "rmocx.RealPlayer G2 Control.1",
                "RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)", "RealVideo.RealVideo(tm) ActiveX Control (32-bit)",
                "RealPlayer", "SWCtl.SWCtl", "WMPlayer.OCX", "AgControl.AgControl", "Skype.Detection"
            ], function(e) {
                try {
                    return new ActiveXObject(e), e
                } catch (e) {
                    return null
                }
            }).join(";") : ""
        },
        getScreenResolution: function() {
            return this.screen_orientation ? screen.height > screen.width ? [screen.height, screen.width] : [screen.width,
                screen.height
            ] : [screen.height, screen.width]
        },
        getCanvasFingerprint: function() {
            var e = document.createElement("canvas"),
                t = e.getContext("2d"),
                n = "http://valve.github.io";
            return t.textBaseline = "top", t.font = "14px 'Arial'", t.textBaseline = "alphabetic", t.fillStyle = "#f60", t.fillRect(
                125, 1, 62, 20), t.fillStyle = "#069", t.fillText(n, 2, 15), t.fillStyle = "rgba(102, 204, 0, 0.7)", t.fillText(
                n, 4, 17), e.toDataURL()
        }
    }, e
}), doui = {
    importReady: !0,
    douiCss: null,
    sizeReady: !1,
    winW: 0,
    winH: 0,
    winWrem: 0,
    winHrem: 0,
    threadTimeout: null,
    threadInterval: null,
    AjaxList: [],
    windowReady: function(e) {
        null == e && (e = function() {}), document.addEventListener ? document.addEventListener("DOMContentLoaded",
            function() {
                document.removeEventListener("DOMContentLoaded", arguments.callee, !1), e()
            }, !1) : document.attachEvent && document.attachEvent("onreadystatechange", function() {
            "complete" == document.readyState && (document.detachEvent("onreadystatechange", arguments.callee), e())
        })
    },
    onReady: function(e) {
        null != doui.threadInterval && clearInterval(doui.threadInterval), doui.threadInterval = setInterval(function() {
            console.log("interval: doui的onReady监控"), 1 == doui.importReady && 1 == doui.sizeReady && (clearInterval(doui.threadInterval),
                e())
        }, 200)
    },
    importSet: function(e) {
        if (null == e || e.length <= 0) doui.importReady = !0;
        else {
            doui.importReady = !1;
            for (var t = document.getElementsByTagName("head")[0], n = new RegExp(".css$"), r = new RegExp(".js$"), i = 0, o =
                    0; o < e.length; o++)
                if (n.test(e[o])) {
                    var a = document.createElement("link");
                    a.type = "text/css", a.rel = "stylesheet", a.href = e[o], t.appendChild(a), a.onerror = function() {
                        alert("引入失败:" + a.href), doui.importReady = !1, a.onerror = null
                    }, a.onload = a.onreadystatechange = function() {
                        ++i >= e.length && (doui.importReady = !0)
                    }
                } else if (r.test(e[o])) {
                var s = document.createElement("script");
                s.type = "text/javascript", s.src = e[o], t.appendChild(s), s.onerror = function() {
                    alert("引入失败:" + s.src), doui.importReady = !1, s.onerror = null
                }, s.onload = s.onreadystatechange = function() {
                    ++i >= e.length && (doui.importReady = !0)
                }
            }
        }
    },
    sizeSet: function() {
        try {
            var e = window.innerWidth,
                t = window.innerHeight;
            doui.winW = e, doui.winH = t
        } catch (e) {
            return doui.sizeReady = !1, alert("屏幕可用大小获取失败"), !1
        }
        var n = parseFloat(750 * doui.winH / doui.winW),
            r = 100 * parseFloat(doui.winW / 750);
        if (doui.winWrem = 7.5, doui.winHrem = n / 100, null == doui.douiCss) {
            for (var i = null, o = document.styleSheets, a = new RegExp("doui"), s = 0; s < o.length; s++)
                if (a.test(o[s].href)) {
                    i = o[s];
                    break
                } if (!(null != i && i.cssRules && i.cssRules.length > 0)) return alert("请本地载入doui.css"), doui.sizeReady = !1, !1;
            doui.douiCss = i
        }
        for (s = 0; s < doui.douiCss.cssRules.length; s++)
            if ("html" == doui.douiCss.cssRules[s].selectorText) doui.douiCss.cssRules[s].style.fontSize = r + "px";
            else if ("body" == doui.douiCss.cssRules[s].selectorText) doui.douiCss.cssRules[s].style.width = doui.winW + "px",
            doui.douiCss.cssRules[s].style.height = doui.winH + "px";
        else if (".winSizeBox" == doui.douiCss.cssRules[s].selectorText) doui.douiCss.cssRules[s].style.width = doui.winW +
            "px", doui.douiCss.cssRules[s].style.height = doui.winH + "px";
        else if (".heightenBox" == doui.douiCss.cssRules[s].selectorText) doui.douiCss.cssRules[s].style.width = doui.winW +
            "px", doui.douiCss.cssRules[s].style.minHeight = doui.winH + "px";
        else if (".main" == doui.douiCss.cssRules[s].selectorText) {
            doui.douiCss.cssRules[s].style.minHeight = doui.winH + "px";
            break
        }
        doui.sizeReady = !0
    },
    showToast: function(e) {
        (null == e || e.length <= 0) && (e = "亲,我很迷茫啊……");
        var t = document.getElementById("zdo_toast");
        t && t.parentNode.removeChild(t), null != doui.threadTimeout && clearTimeout(doui.threadTimeout);
        var n = "font26",
            r = "3.7rem",
            i = "1.5rem",
            o = "1.9rem",
            a = "0.33rem",
            s = "0.33rem";
        doui.winW >= doui.winH && (n = "font6", r = doui.winH / 4 + "px", i = doui.winH / 6 + "px", o = (doui.winW - doui.winH /
            4) / 2 + "px", a = doui.winH / 40 + "px", s = doui.winH / 40 + "px");
        var d = "";
        d += '<div id="zdo_toast" class="fboxRow Xcenter Ycenter" style="width:' + r + "; height:auto; bottom:" + i +
            "; left:" + o + ';">', d += '<div class="' + n + ' font-white font-ell2" style="max-width:80%; margin-top:' + a +
            "; margin-bottom:" + s + '; line-height:1.5; text-align:center;">', d += "<span>" + e + "</span>", d += "</div>",
            d += "</div>";
        var c = document.createElement("div");
        c.innerHTML = d;
        var l = c.childNodes[0];
        document.getElementsByTagName("body")[0].appendChild(l), doui.threadTimeout = setTimeout(function() {
            var e = document.getElementById("zdo_toast");
            e && e.parentNode.removeChild(e)
        }, 2500)
    },
    showLoading: function(e) {
        if ((null == e || e.length <= 0) && (e = ""), document.getElementById("zdo_loading")) document.getElementById(
            "zdo_loadcont").innerHTML = e;
        else {
            var t = doui.winH / 2 + "px",
                n = "1.8rem",
                r = "2.85rem",
                i = "font26",
                o = "1.2rem",
                a = "1.06rem",
                s = "0.07rem";
            doui.winW >= doui.winH && (t = doui.winH / 2 + "px", n = doui.winH / 8 + "px", r = (doui.winW - doui.winH / 8) / 2 +
                "px", i = "font6", o = doui.winH / 9 + "px", a = doui.winH / 9 - 12 + "px", s = "6px");
            var d = "";
            d += '<div id="zdo_loading" class="fboxCol Xstart Ycenter" style="width:' + n + "; height:auto; top:" + t +
                "; left:" + r + ';">', d += '<div class="zdo_loadBg" style="width:' + o + "; height:" + o + ';">', d +=
                '<div class="zdo_loadLeft" style="width:' + a + "; height:" + a + "; border-width:" + s + ';"></div>', d +=
                '<div class="zdo_loadRight" style="width:' + a + "; height:" + a + "; border-width:" + s + ';"></div>', d +=
                "</div>", d += '<div class="' + i + ' font-white font-ell2" style="width:' + n +
                '; margin-top:10px; line-height:1.5; text-align:center;">', d +=
                '<span id="zdo_loadcont" style="text-shadow:0 0 5px black;">' + e + "</span>", d += "</div>", d += "</div>";
            var c = document.createElement("div");
            c.innerHTML = d;
            var l = c.childNodes[0];
            document.getElementsByTagName("body")[0].appendChild(l)
        }
    },
    hideLoading: function() {
        var e = document.getElementById("zdo_loading");
        e && e.parentNode.removeChild(e)
    },
    showModal: function(e, t) {
        (null == e || e.length <= 0) && (e = "亲,我很迷茫啊……"), null == t && (t = function() {});
        var n = document.getElementById("zdo_modal");
        n && n.parentNode.removeChild(n);
        var r = "4.3rem",
            i = "font26",
            o = "0.4rem",
            a = "0.4rem",
            s = "font27",
            d = "0.8rem";
        doui.winW >= doui.winH && (r = doui.winH / 4 + "px", i = "font6", o = doui.winH / 40 + "px", a = doui.winH / 40 +
            "px", s = "font6", d = doui.winH / 22 + "px");
        var c = "";
        c += '<div id="zdo_modal" class="fboxRow Xcenter Ycenter" style="height:' + doui.winH + 'px;">', c +=
            '<div id="zdo_modalnei" class="fboxCol Xcenter Ycenter" style="width:' + r + "; height:auto; max-height:" + doui.winH +
            'px;">', c += '<div class="' + i + ' font-black" style="max-width:80%; margin-top:' + o + "; margin-bottom:" + a +
            '; line-height:1.5; text-align:center;">', c += "<span>" + e + "</span>", c += "</div>", c +=
            '<div class="fboxRow" style="width:100%; height:' + d + '; border-top:1px solid #CCC">', c +=
            '<div class="flex1 fboxRow Xcenter Ycenter zdo_modaldan click-color">', c += '<div class="' + s +
            ' font-black do-default">取消</div>', c += "</div>", c +=
            '<div style="width:1px; height:100%; background-color:#CCC;"></div>', c +=
            '<div class="flex1 fboxRow Xcenter Ycenter zdo_modaldan click-color">', c += '<div class="' + s +
            ' font-green do-default">确认</div>', c += "</div>", c += "</div>", c += "</div>", c += "</div>";
        var l = document.createElement("div");
        l.innerHTML = c;
        var u = l.childNodes[0];
        document.getElementsByTagName("body")[0].appendChild(u), document.getElementsByClassName("zdo_modaldan")[0].onclick =
            function() {
                var e = document.getElementById("zdo_modal");
                e && e.parentNode.removeChild(e), t(!1)
            }, document.getElementsByClassName("zdo_modaldan")[1].onclick = function() {
                var e = document.getElementById("zdo_modal");
                e && e.parentNode.removeChild(e), t(!0)
            }
    },
    showScrollLoading: function(e, t, n) {
        if (null == e && (e = ""), null == t && (t = function() {}), null == n && (n = !1), document.getElementsByClassName(
                "do-scrollLoading").length <= 0) doui.showToast("未放入载入框组件");
        else {
            var r = "";
            if (r += '<div class="fboxRow Xcenter Ycenter">', r += '<div style="width:24px; height:24px; position:relative;">',
                r += '<div class="zdo_scrollloadxian"></div>', r += '<div class="zdo_scrollloadxian"></div>', r +=
                '<div class="zdo_scrollloadxian"></div>', r += '<div class="zdo_scrollloadxian"></div>', r +=
                '<div class="zdo_scrollloadxian"></div>', r += '<div class="zdo_scrollloadxian"></div>', r +=
                '<div class="zdo_scrollloadxian"></div>', r += '<div class="zdo_scrollloadxian"></div>', r += "</div>", e.length >
                0 && (r += '<div style="margin-left:0.2rem;" class="font25 font-gray">', r += "<span>" + e + "</span>", r +=
                    "</div>"), r += "</div>", document.getElementsByClassName("do-scrollLoading")[0].childNodes.length <= 0) document
                .getElementsByClassName("do-scrollLoading")[0].innerHTML = r, t();
            else if (1 == n) {
                var i = document.getElementsByClassName("do-scrollLoading")[0].childNodes[0];
                i && i.parentNode.removeChild(i), document.getElementsByClassName("do-scrollLoading")[0].innerHTML = r, t()
            }
        }
    },
    hideScrollLoading: function(e) {
        var t = document.getElementsByClassName("do-scrollLoading")[0].childNodes[0];
        if (t && t.parentNode.removeChild(t), e && e.length > 0) {
            var n = "";
            n += '<div class="fboxRow Xcenter Ystart font-ell1 font-gray">', n += "<span>" + e + "</span>", n += "</div>",
                document.getElementsByClassName("do-scrollLoading").length <= 0 ? doui.showToast("未放入载入框组件") : document.getElementsByClassName(
                    "do-scrollLoading")[0].innerHTML = n
        }
    },
    scrollTo: function(e, t, n) {
        if (null == t && (t = 0), null == n && (n = !0), "html" == e || "body" == e || e == window)
            if (1 == n) {
                var r = null;
                cancelAnimationFrame(r), r = requestAnimationFrame(function e() {
                    var n = document.body.scrollTop || document.documentElement.scrollTop,
                        i = Math.ceil(n / 10);
                    n > 2e3 ? (scrollTo(0, 2e3), r = requestAnimationFrame(e)) : n > t ? (scrollTo(0, n - i), r =
                        requestAnimationFrame(e)) : (scrollTo(0, t), cancelAnimationFrame(r))
                })
            } else scrollTo(0, t);
        else {
            var i = null;
            if (-1 != e.indexOf("#")) {
                var o = e.slice(e.indexOf("#") + 1);
                i = document.getElementById(o)
            } else -1 != e.indexOf(".") && (o = e.slice(e.indexOf(".") + 1), i = document.getElementsByClassName(o)[0]);
            1 == n ? (r = null, cancelAnimationFrame(r), r = requestAnimationFrame(function e() {
                var n = i.scrollTop,
                    o = Math.ceil(n / 10);
                n > 2e3 ? (i.scrollTop = 2e3, r = requestAnimationFrame(e)) : n > t ? (i.scrollTop = n - o, r =
                    requestAnimationFrame(e)) : (i.scrollTop = t, cancelAnimationFrame(r))
            })) : i.scrollTop = t
        }
    },
    scrolling: function(e, t) {
        null == t && (t = function() {});
        var n = {
                scrollTop: 0,
                overBottom: !1
            },
            r = null;
        if (-1 != e.indexOf("#")) {
            var i = e.slice(e.indexOf("#") + 1);
            r = document.getElementById(i)
        } else -1 != e.indexOf(".") && (i = e.slice(e.indexOf(".") + 1), r = document.getElementsByClassName(i)[0]);
        "html" == e || "body" == e || e == window ? document.body.onscroll = document.documentElement.onscroll = function() {
            var e = document.documentElement.clientHeight,
                r = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight),
                i = 0;
            document.documentElement && document.documentElement.scrollTop ? i = document.documentElement.scrollTop :
                document.body && (i = document.body.scrollTop), n.scrollTop = i, n.overBottom = i > 0 && e + i >= r, t(n)
        } : r.onscroll = function() {
            var e = r.clientHeight,
                i = r.scrollHeight,
                o = r.scrollTop;
            n.scrollTop = o, n.overBottom = o > 0 && e + o >= i, t(n)
        }
    },
    systemInfoGet: function() {
        var e = {
                fingerprint: "",
                platform: "PC",
                version: "0",
                browserName: "",
                browserVersion: "0",
                inWX: !1,
                cookieEnabled: !0,
                windowWidth: 0,
                windowHeight: 0,
                windowWidthRem: 0,
                windowHeightRem: 0
            },
            t = navigator.userAgent,
            n = navigator.userAgent.toLowerCase();
        if (t.indexOf("Android") > -1 || t.indexOf("Linux") > -1) e.platform = "Android";
        else if (t.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)) e.platform = "IOS";
        else
            for (var r = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"], i = 0; i < r.length; i++)
                if (t.indexOf(r[i]) > 0) {
                    e.platform = "PC";
                    break
                } try {
            "Android" == e.platform ? e.version = n.match(/android ([\d.]+)/)[1] : "IOS" == e.platform ? e.version = n.match(
                /version\/([\d.]+)/)[1] : "PC" == e.platform && (e.version = navigator.platform)
        } catch (e) {}
        t.indexOf("OPR") > -1 || t.indexOf("Opera") > -1 ? e.browserName = "Opera" : t.indexOf("Firefox") > -1 ? e.browserName =
            "FireFox" : t.indexOf("Chrome") > -1 ? e.browserName = "Chrome" : t.indexOf("Safari") > -1 ? e.browserName =
            "Safari" : (n.indexOf("msie") > -1 || t.indexOf("rv") > -1) && (e.browserName = "IE");
        try {
            "Opera" == e.browserName ? e.browserVersion = n.match(/opera.([\d.]+)/)[1] : "FireFox" == e.browserName ? e.browserVersion =
                n.match(/firefox\/([\d.]+)/)[1] : "Chrome" == e.browserName ? e.browserVersion = n.match(/chrome\/([\d.]+)/)[1] :
                "Safari" == e.browserName ? e.browserVersion = n.match(/safari\/([\d.]+)/)[1] : "IE" == e.browserName && (e.browserVersion =
                    n.match(/msie ([\d.]+)/)[1])
        } catch (e) {}
        "micromessenger" == n.match(/MicroMessenger/i) ? e.inWX = !0 : e.inWX = !1, e.cookieEnabled = navigator.cookieEnabled,
            e.windowWidth = doui.winW, e.windowHeight = doui.winH, e.windowWidthRem = doui.winWrem, e.windowHeightRem = doui.winHrem;
        var o = (new Fingerprint).get();
        return e.fingerprint = o, e
    },
    urlParamGet: function() {
        var e = window.location.search,
            t = new Object;
        if (-1 != e.indexOf("?"))
            for (var n = e.slice(e.indexOf("?") + 1).split("&"), r = 0; r < n.length; r++) {
                var i = n[r].indexOf("="),
                    o = n[r].substring(0, i),
                    a = decodeURI(n[r].slice(i + 1));
                t[o] = a
            }
        return t
    },
    cookieSet: function(e, t, n) {
        var r = "";
        "string" == typeof t ? r = t : "object" == typeof t && (r = JSON.stringify(t));
        var i = new Date;
        i.setTime(i.getTime() + Math.ceil(36e5 * parseFloat(n)));
        var o = "expires=" + i.toGMTString();
        document.cookie = e + "=" + r + "; " + o + "; path=/"
    },
    cookieGet: function(e) {
        var t = null;
        e || (e = "", t = {});
        for (var n = document.cookie.split(";"), r = 0; r < n.length; r++) {
            var i = n[r].trim(),
                o = i.indexOf("="),
                a = i.substring(0, o),
                s = i.slice(o + 1);
            if (doui.isJsonString(s) && (s = JSON.parse(s)), e.length <= 0) t[a] = s;
            else if (a == e) {
                t = s;
                break
            }
        }
        return t
    },
    cookieDel: function(e) {
        document.cookie = e + "= ; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/"
    },
    localStorageSet: function(e, t) {
        if ("string" == typeof t) localStorage.setItem(e, t);
        else if ("object" == typeof t) {
            var n = JSON.stringify(t);
            localStorage.setItem(e, n)
        }
    },
    localStorageGet: function(e) {
        var t = null,
            n = localStorage.getItem(e);
        return n && (t = doui.isJsonString(n) ? JSON.parse(n) : n), t
    },
    localStorageDel: function(e) {
        localStorage.removeItem(e)
    },
    sessionStorageSet: function(e, t) {
        if ("string" == typeof t) sessionStorage.setItem(e, t);
        else if ("object" == typeof t) {
            var n = JSON.stringify(t);
            sessionStorage.setItem(e, n)
        }
    },
    sessionStorageGet: function(e) {
        var t = null,
            n = sessionStorage.getItem(e);
        return n && (t = doui.isJsonString(n) ? JSON.parse(n) : n), t
    },
    sessionStorageDel: function(e) {
        sessionStorage.removeItem(e)
    },
    pageToUrl: function(e) {
        window.location.href = e
    },
    pageReplaceUrl: function(e) {
        window.location.replace(e)
    },
    pageOpenUrl: function(e) {
        window.open(e)
    },
    timestampForDate: function(e) {
        e = parseFloat(e);
        var t = new Date(e),
            n = t.getFullYear(),
            r = t.getMonth() + 1;
        r < 10 && (r = "0" + r);
        var i = t.getDate();
        i < 10 && (i = "0" + i);
        var o = t.getHours();
        o < 10 && (o = "0" + o);
        var a = t.getMinutes();
        return a < 10 && (a = "0" + a), n + "/" + r + "/" + i + " " + o + ":" + a
    },
    strRandomGet: function(e) {
        for (var t = "", n = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", r = 0; r < e; r++) {
            var i = Math.round(Math.random() * (n.length - 1));
            t += n.charAt(i)
        }
        return t
    },
    strJsonHtmlGet: function(e) {
        var t = "",
            n = "";
        try {
            "string" == typeof e ? (t = JSON.parse(e), t = JSON.stringify(t, null, 4)) : t = JSON.stringify(e, null, 4), n = t
                .replace(/\n/g, "<br>").replace(/\s/g, "&nbsp;")
        } catch (e) {
            doui.showToast("strJsonHtmlGet: 不是Json格式")
        }
        return n
    },
    Base64: function(e, t) {
        var n = "初始str",
            r = {
                _keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
                encode: function(e) {
                    var t, n, i, o, a, s, d, c = "",
                        l = 0;
                    for (e = r._utf8_encode(e); l < e.length;) o = (t = e.charCodeAt(l++)) >> 2, a = (3 & t) << 4 | (n = e.charCodeAt(
                            l++)) >> 4, s = (15 & n) << 2 | (i = e.charCodeAt(l++)) >> 6, d = 63 & i, isNaN(n) ? s = d = 64 : isNaN(i) &&
                        (d = 64), c = c + this._keyStr.charAt(o) + this._keyStr.charAt(a) + this._keyStr.charAt(s) + this._keyStr.charAt(
                            d);
                    return c
                },
                decode: function(e) {
                    var t, n, i, o, a, s, d = "",
                        c = 0;
                    for (e = e.replace(/[^A-Za-z0-9+/=]/g, ""); c < e.length;) t = this._keyStr.indexOf(e.charAt(c++)) << 2 | (o =
                            this._keyStr.indexOf(e.charAt(c++))) >> 4, n = (15 & o) << 4 | (a = this._keyStr.indexOf(e.charAt(c++))) >> 2,
                        i = (3 & a) << 6 | (s = this._keyStr.indexOf(e.charAt(c++))), d += String.fromCharCode(t), 64 != a && (d +=
                            String.fromCharCode(n)), 64 != s && (d += String.fromCharCode(i));
                    return d = r._utf8_decode(d)
                },
                _utf8_encode: function(e) {
                    e = e.replace(/rn/g, "n");
                    for (var t = "", n = 0; n < e.length; n++) {
                        var r = e.charCodeAt(n);
                        r < 128 ? t += String.fromCharCode(r) : r > 127 && r < 2048 ? (t += String.fromCharCode(r >> 6 | 192), t +=
                            String.fromCharCode(63 & r | 128)) : (t += String.fromCharCode(r >> 12 | 224), t += String.fromCharCode(r >>
                            6 & 63 | 128), t += String.fromCharCode(63 & r | 128))
                    }
                    return t
                },
                _utf8_decode: function(e) {
                    for (var t, n, r = "", i = 0, o = 0; i < e.length;)(t = e.charCodeAt(i)) < 128 ? (r += String.fromCharCode(t),
                        i++) : t > 191 && t < 224 ? (n = e.charCodeAt(i + 1), r += String.fromCharCode((31 & t) << 6 | 63 & n), i +=
                        2) : (n = e.charCodeAt(i + 1), o = e.charCodeAt(i + 2), r += String.fromCharCode((15 & t) << 12 | (63 & n) <<
                        6 | 63 & o), i += 3);
                    return r
                }
            };
        return "en" == e ? n = r.encode(t) : "de" == e && (n = r.decode(t)), n
    },
    Aes: function(e, t, n, r) {
        var i, o, a, s, d, c, l, u, h, f, p, m, g = g || (i = Math, o = Object.create || function() {
            function e() {}
            return function(t) {
                var n;
                return e.prototype = t, n = new e, e.prototype = null, n
            }
        }(), s = (a = {}).lib = {}, d = s.Base = {
            extend: function(e) {
                var t = o(this);
                return e && t.mixIn(e), t.hasOwnProperty("init") && this.init !== t.init || (t.init = function() {
                    t.$super.init.apply(this, arguments)
                }), t.init.prototype = t, t.$super = this, t
            },
            create: function() {
                var e = this.extend();
                return e.init.apply(e, arguments), e
            },
            init: function() {},
            mixIn: function(e) {
                for (var t in e) e.hasOwnProperty(t) && (this[t] = e[t]);
                e.hasOwnProperty("toString") && (this.toString = e.toString)
            },
            clone: function() {
                return this.init.prototype.extend(this)
            }
        }, c = s.WordArray = d.extend({
            init: function(e, t) {
                e = this.words = e || [], this.sigBytes = null != t ? t : 4 * e.length
            },
            toString: function(e) {
                return (e || u).stringify(this)
            },
            concat: function(e) {
                var t = this.words,
                    n = e.words,
                    r = this.sigBytes,
                    i = e.sigBytes;
                if (this.clamp(), r % 4)
                    for (var o = 0; o < i; o++) {
                        var a = n[o >>> 2] >>> 24 - o % 4 * 8 & 255;
                        t[r + o >>> 2] |= a << 24 - (r + o) % 4 * 8
                    } else
                        for (o = 0; o < i; o += 4) t[r + o >>> 2] = n[o >>> 2];
                return this.sigBytes += i, this
            },
            clamp: function() {
                var e = this.words,
                    t = this.sigBytes;
                e[t >>> 2] &= 4294967295 << 32 - t % 4 * 8, e.length = i.ceil(t / 4)
            },
            clone: function() {
                var e = d.clone.call(this);
                return e.words = this.words.slice(0), e
            },
            random: function(e) {
                for (var t, n = [], r = function(e) {
                        e = e;
                        var t = 987654321,
                            n = 4294967295;
                        return function() {
                            var r = ((t = 36969 * (65535 & t) + (t >> 16) & n) << 16) + (e = 18e3 * (65535 & e) + (e >> 16) & n) & n;
                            return r /= 4294967296, (r += .5) * (i.random() > .5 ? 1 : -1)
                        }
                    }, o = 0; o < e; o += 4) {
                    var a = r(4294967296 * (t || i.random()));
                    t = 987654071 * a(), n.push(4294967296 * a() | 0)
                }
                return new c.init(n, e)
            }
        }), l = a.enc = {}, u = l.Hex = {
            stringify: function(e) {
                for (var t = e.words, n = e.sigBytes, r = [], i = 0; i < n; i++) {
                    var o = t[i >>> 2] >>> 24 - i % 4 * 8 & 255;
                    r.push((o >>> 4).toString(16)), r.push((15 & o).toString(16))
                }
                return r.join("")
            },
            parse: function(e) {
                for (var t = e.length, n = [], r = 0; r < t; r += 2) n[r >>> 3] |= parseInt(e.substr(r, 2), 16) << 24 - r % 8 *
                    4;
                return new c.init(n, t / 2)
            }
        }, h = l.Latin1 = {
            stringify: function(e) {
                for (var t = e.words, n = e.sigBytes, r = [], i = 0; i < n; i++) {
                    var o = t[i >>> 2] >>> 24 - i % 4 * 8 & 255;
                    r.push(String.fromCharCode(o))
                }
                return r.join("")
            },
            parse: function(e) {
                for (var t = e.length, n = [], r = 0; r < t; r++) n[r >>> 2] |= (255 & e.charCodeAt(r)) << 24 - r % 4 * 8;
                return new c.init(n, t)
            }
        }, f = l.Utf8 = {
            stringify: function(e) {
                try {
                    return decodeURIComponent(escape(h.stringify(e)))
                } catch (e) {
                    throw new Error("Malformed UTF-8 data")
                }
            },
            parse: function(e) {
                return h.parse(unescape(encodeURIComponent(e)))
            }
        }, p = s.BufferedBlockAlgorithm = d.extend({
            reset: function() {
                this._data = new c.init, this._nDataBytes = 0
            },
            _append: function(e) {
                "string" == typeof e && (e = f.parse(e)), this._data.concat(e), this._nDataBytes += e.sigBytes
            },
            _process: function(e) {
                var t = this._data,
                    n = t.words,
                    r = t.sigBytes,
                    o = this.blockSize,
                    a = r / (4 * o),
                    s = (a = e ? i.ceil(a) : i.max((0 | a) - this._minBufferSize, 0)) * o,
                    d = i.min(4 * s, r);
                if (s) {
                    for (var l = 0; l < s; l += o) this._doProcessBlock(n, l);
                    var u = n.splice(0, s);
                    t.sigBytes -= d
                }
                return new c.init(u, d)
            },
            clone: function() {
                var e = d.clone.call(this);
                return e._data = this._data.clone(), e
            },
            _minBufferSize: 0
        }), s.Hasher = p.extend({
            cfg: d.extend(),
            init: function(e) {
                this.cfg = this.cfg.extend(e), this.reset()
            },
            reset: function() {
                p.reset.call(this), this._doReset()
            },
            update: function(e) {
                return this._append(e), this._process(), this
            },
            finalize: function(e) {
                return e && this._append(e), this._doFinalize()
            },
            blockSize: 16,
            _createHelper: function(e) {
                return function(t, n) {
                    return new e.init(n).finalize(t)
                }
            },
            _createHmacHelper: function(e) {
                return function(t, n) {
                    return new m.HMAC.init(e, n).finalize(t)
                }
            }
        }), m = a.algo = {}, a);
        ! function() {
            var e = g,
                t = e.lib,
                n = t.Base,
                r = t.WordArray,
                i = e.algo,
                o = i.MD5,
                a = i.EvpKDF = n.extend({
                    cfg: n.extend({
                        keySize: 4,
                        hasher: o,
                        iterations: 1
                    }),
                    init: function(e) {
                        this.cfg = this.cfg.extend(e)
                    },
                    compute: function(e, t) {
                        for (var n = this.cfg, i = n.hasher.create(), o = r.create(), a = o.words, s = n.keySize, d = n.iterations; a
                            .length < s;) {
                            c && i.update(c);
                            var c = i.update(e).finalize(t);
                            i.reset();
                            for (var l = 1; l < d; l++) c = i.finalize(c), i.reset();
                            o.concat(c)
                        }
                        return o.sigBytes = 4 * s, o
                    }
                });
            e.EvpKDF = function(e, t, n) {
                return a.create(n).compute(e, t)
            }
        }(),
        function() {
            var e = g,
                t = e.lib.WordArray;
            e.enc.Base64 = {
                stringify: function(e) {
                    var t = e.words,
                        n = e.sigBytes,
                        r = this._map;
                    e.clamp();
                    for (var i = [], o = 0; o < n; o += 3)
                        for (var a = (t[o >>> 2] >>> 24 - o % 4 * 8 & 255) << 16 | (t[o + 1 >>> 2] >>> 24 - (o + 1) % 4 * 8 & 255) <<
                                8 | t[o + 2 >>> 2] >>> 24 - (o + 2) % 4 * 8 & 255, s = 0; s < 4 && o + .75 * s < n; s++) i.push(r.charAt(a >>>
                            6 * (3 - s) & 63));
                    var d = r.charAt(64);
                    if (d)
                        for (; i.length % 4;) i.push(d);
                    return i.join("")
                },
                parse: function(e) {
                    var n = e.length,
                        r = this._map,
                        i = this._reverseMap;
                    if (!i) {
                        i = this._reverseMap = [];
                        for (var o = 0; o < r.length; o++) i[r.charCodeAt(o)] = o
                    }
                    var a = r.charAt(64);
                    if (a) {
                        var s = e.indexOf(a); - 1 !== s && (n = s)
                    }
                    return function(e, n, r) {
                        for (var i = [], o = 0, a = 0; a < n; a++)
                            if (a % 4) {
                                var s = r[e.charCodeAt(a - 1)] << a % 4 * 2,
                                    d = r[e.charCodeAt(a)] >>> 6 - a % 4 * 2;
                                i[o >>> 2] |= (s | d) << 24 - o % 4 * 8, o++
                            } return t.create(i, o)
                    }(e, n, i)
                },
                _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
            }
        }(), g.lib.Cipher || function(e) {
                var t = g,
                    n = t.lib,
                    r = n.Base,
                    i = n.WordArray,
                    o = n.BufferedBlockAlgorithm,
                    a = t.enc,
                    s = (a.Utf8, a.Base64),
                    d = t.algo.EvpKDF,
                    c = n.Cipher = o.extend({
                        cfg: r.extend(),
                        createEncryptor: function(e, t) {
                            return this.create(this._ENC_XFORM_MODE, e, t)
                        },
                        createDecryptor: function(e, t) {
                            return this.create(this._DEC_XFORM_MODE, e, t)
                        },
                        init: function(e, t, n) {
                            this.cfg = this.cfg.extend(n), this._xformMode = e, this._key = t, this.reset()
                        },
                        reset: function() {
                            o.reset.call(this), this._doReset()
                        },
                        process: function(e) {
                            return this._append(e), this._process()
                        },
                        finalize: function(e) {
                            return e && this._append(e), this._doFinalize()
                        },
                        keySize: 4,
                        ivSize: 4,
                        _ENC_XFORM_MODE: 1,
                        _DEC_XFORM_MODE: 2,
                        _createHelper: function() {
                            function e(e) {
                                return "string" == typeof e ? w : v
                            }
                            return function(t) {
                                return {
                                    encrypt: function(n, r, i) {
                                        return e(r).encrypt(t, n, r, i)
                                    },
                                    decrypt: function(n, r, i) {
                                        return e(r).decrypt(t, n, r, i)
                                    }
                                }
                            }
                        }()
                    }),
                    l = (n.StreamCipher = c.extend({
                        _doFinalize: function() {
                            return this._process(!0)
                        },
                        blockSize: 1
                    }), t.mode = {}),
                    u = n.BlockCipherMode = r.extend({
                        createEncryptor: function(e, t) {
                            return this.Encryptor.create(e, t)
                        },
                        createDecryptor: function(e, t) {
                            return this.Decryptor.create(e, t)
                        },
                        init: function(e, t) {
                            this._cipher = e, this._iv = t
                        }
                    }),
                    h = l.CBC = function() {
                        var t = u.extend();
                        function n(t, n, r) {
                            var i = this._iv;
                            if (i) {
                                var o = i;
                                this._iv = e
                            } else o = this._prevBlock;
                            for (var a = 0; a < r; a++) t[n + a] ^= o[a]
                        }
                        return t.Encryptor = t.extend({
                            processBlock: function(e, t) {
                                var r = this._cipher,
                                    i = r.blockSize;
                                n.call(this, e, t, i), r.encryptBlock(e, t), this._prevBlock = e.slice(t, t + i)
                            }
                        }), t.Decryptor = t.extend({
                            processBlock: function(e, t) {
                                var r = this._cipher,
                                    i = r.blockSize,
                                    o = e.slice(t, t + i);
                                r.decryptBlock(e, t), n.call(this, e, t, i), this._prevBlock = o
                            }
                        }), t
                    }(),
                    f = (t.pad = {}).Pkcs7 = {
                        pad: function(e, t) {
                            for (var n = 4 * t, r = n - e.sigBytes % n, o = r << 24 | r << 16 | r << 8 | r, a = [], s = 0; s < r; s += 4)
                                a.push(o);
                            var d = i.create(a, r);
                            e.concat(d)
                        },
                        unpad: function(e) {
                            var t = 255 & e.words[e.sigBytes - 1 >>> 2];
                            e.sigBytes -= t
                        }
                    },
                    p = (n.BlockCipher = c.extend({
                        cfg: c.cfg.extend({
                            mode: h,
                            padding: f
                        }),
                        reset: function() {
                            c.reset.call(this);
                            var e = this.cfg,
                                t = e.iv,
                                n = e.mode;
                            if (this._xformMode == this._ENC_XFORM_MODE) var r = n.createEncryptor;
                            else r = n.createDecryptor, this._minBufferSize = 1;
                            this._mode && this._mode.__creator == r ? this._mode.init(this, t && t.words) : (this._mode = r.call(n,
                                this, t && t.words), this._mode.__creator = r)
                        },
                        _doProcessBlock: function(e, t) {
                            this._mode.processBlock(e, t)
                        },
                        _doFinalize: function() {
                            var e = this.cfg.padding;
                            if (this._xformMode == this._ENC_XFORM_MODE) {
                                e.pad(this._data, this.blockSize);
                                var t = this._process(!0)
                            } else t = this._process(!0), e.unpad(t);
                            return t
                        },
                        blockSize: 4
                    }), n.CipherParams = r.extend({
                        init: function(e) {
                            this.mixIn(e)
                        },
                        toString: function(e) {
                            return (e || this.formatter).stringify(this)
                        }
                    })),
                    m = (t.format = {}).OpenSSL = {
                        stringify: function(e) {
                            var t = e.ciphertext,
                                n = e.salt;
                            if (n) var r = i.create([1398893684, 1701076831]).concat(n).concat(t);
                            else r = t;
                            return r.toString(s)
                        },
                        parse: function(e) {
                            var t = s.parse(e),
                                n = t.words;
                            if (1398893684 == n[0] && 1701076831 == n[1]) {
                                var r = i.create(n.slice(2, 4));
                                n.splice(0, 4), t.sigBytes -= 16
                            }
                            return p.create({
                                ciphertext: t,
                                salt: r
                            })
                        }
                    },
                    v = n.SerializableCipher = r.extend({
                        cfg: r.extend({
                            format: m
                        }),
                        encrypt: function(e, t, n, r) {
                            r = this.cfg.extend(r);
                            var i = e.createEncryptor(n, r),
                                o = i.finalize(t),
                                a = i.cfg;
                            return p.create({
                                ciphertext: o,
                                key: n,
                                iv: a.iv,
                                algorithm: e,
                                mode: a.mode,
                                padding: a.padding,
                                blockSize: e.blockSize,
                                formatter: r.format
                            })
                        },
                        decrypt: function(e, t, n, r) {
                            return r = this.cfg.extend(r), t = this._parse(t, r.format), e.createDecryptor(n, r).finalize(t.ciphertext)
                        },
                        _parse: function(e, t) {
                            return "string" == typeof e ? t.parse(e, this) : e
                        }
                    }),
                    y = (t.kdf = {}).OpenSSL = {
                        execute: function(e, t, n, r) {
                            r || (r = i.random(8));
                            var o = d.create({
                                    keySize: t + n
                                }).compute(e, r),
                                a = i.create(o.words.slice(t), 4 * n);
                            return o.sigBytes = 4 * t, p.create({
                                key: o,
                                iv: a,
                                salt: r
                            })
                        }
                    },
                    w = n.PasswordBasedCipher = v.extend({
                        cfg: v.cfg.extend({
                            kdf: y
                        }),
                        encrypt: function(e, t, n, r) {
                            var i = (r = this.cfg.extend(r)).kdf.execute(n, e.keySize, e.ivSize);
                            r.iv = i.iv;
                            var o = v.encrypt.call(this, e, t, i.key, r);
                            return o.mixIn(i), o
                        },
                        decrypt: function(e, t, n, r) {
                            r = this.cfg.extend(r), t = this._parse(t, r.format);
                            var i = r.kdf.execute(n, e.keySize, e.ivSize, t.salt);
                            return r.iv = i.iv, v.decrypt.call(this, e, t, i.key, r)
                        }
                    })
            }(),
            function() {
                var e = g,
                    t = e.lib.Base,
                    n = e.enc.Utf8;
                e.algo.HMAC = t.extend({
                    init: function(e, t) {
                        e = this._hasher = new e.init, "string" == typeof t && (t = n.parse(t));
                        var r = e.blockSize,
                            i = 4 * r;
                        t.sigBytes > i && (t = e.finalize(t)), t.clamp();
                        for (var o = this._oKey = t.clone(), a = this._iKey = t.clone(), s = o.words, d = a.words, c = 0; c < r; c++)
                            s[c] ^= 1549556828, d[c] ^= 909522486;
                        o.sigBytes = a.sigBytes = i, this.reset()
                    },
                    reset: function() {
                        var e = this._hasher;
                        e.reset(), e.update(this._iKey)
                    },
                    update: function(e) {
                        return this._hasher.update(e), this
                    },
                    finalize: function(e) {
                        var t = this._hasher,
                            n = t.finalize(e);
                        return t.reset(), t.finalize(this._oKey.clone().concat(n))
                    }
                })
            }(), g.mode.ECB = function() {
                var e = g.lib.BlockCipherMode.extend();
                return e.Encryptor = e.extend({
                    processBlock: function(e, t) {
                        this._cipher.encryptBlock(e, t)
                    }
                }), e.Decryptor = e.extend({
                    processBlock: function(e, t) {
                        this._cipher.decryptBlock(e, t)
                    }
                }), e
            }(), g.pad.Iso10126 = {
                pad: function(e, t) {
                    var n = 4 * t,
                        r = n - e.sigBytes % n;
                    e.concat(g.lib.WordArray.random(r - 1)).concat(g.lib.WordArray.create([r << 24], 1))
                },
                unpad: function(e) {
                    var t = 255 & e.words[e.sigBytes - 1 >>> 2];
                    e.sigBytes -= t
                }
            },
            function() {
                var e = g,
                    t = e.lib.BlockCipher,
                    n = e.algo,
                    r = [],
                    i = [],
                    o = [],
                    a = [],
                    s = [],
                    d = [],
                    c = [],
                    l = [],
                    u = [],
                    h = [];
                ! function() {
                    for (var e = [], t = 0; t < 256; t++) e[t] = t < 128 ? t << 1 : t << 1 ^ 283;
                    var n = 0,
                        f = 0;
                    for (t = 0; t < 256; t++) {
                        var p = f ^ f << 1 ^ f << 2 ^ f << 3 ^ f << 4;
                        p = p >>> 8 ^ 255 & p ^ 99, r[n] = p, i[p] = n;
                        var m = e[n],
                            g = e[m],
                            v = e[g],
                            y = 257 * e[p] ^ 16843008 * p;
                        o[n] = y << 24 | y >>> 8, a[n] = y << 16 | y >>> 16, s[n] = y << 8 | y >>> 24, d[n] = y, y = 16843009 * v ^
                            65537 * g ^ 257 * m ^ 16843008 * n, c[p] = y << 24 | y >>> 8, l[p] = y << 16 | y >>> 16, u[p] = y << 8 | y >>>
                            24, h[p] = y, n ? (n = m ^ e[e[e[v ^ m]]], f ^= e[e[f]]) : n = f = 1
                    }
                }();
                var f = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54],
                    p = n.AES = t.extend({
                        _doReset: function() {
                            if (!this._nRounds || this._keyPriorReset !== this._key) {
                                for (var e = this._keyPriorReset = this._key, t = e.words, n = e.sigBytes / 4, i = 4 * ((this._nRounds = n +
                                        6) + 1), o = this._keySchedule = [], a = 0; a < i; a++)
                                    if (a < n) o[a] = t[a];
                                    else {
                                        var s = o[a - 1];
                                        a % n ? n > 6 && a % n == 4 && (s = r[s >>> 24] << 24 | r[s >>> 16 & 255] << 16 | r[s >>> 8 & 255] << 8 |
                                            r[255 & s]) : (s = r[(s = s << 8 | s >>> 24) >>> 24] << 24 | r[s >>> 16 & 255] << 16 | r[s >>> 8 & 255] <<
                                            8 | r[255 & s], s ^= f[a / n | 0] << 24), o[a] = o[a - n] ^ s
                                    } for (var d = this._invKeySchedule = [], p = 0; p < i; p++) a = i - p, s = p % 4 ? o[a] : o[a - 4], d[p] =
                                    p < 4 || a <= 4 ? s : c[r[s >>> 24]] ^ l[r[s >>> 16 & 255]] ^ u[r[s >>> 8 & 255]] ^ h[r[255 & s]]
                            }
                        },
                        encryptBlock: function(e, t) {
                            this._doCryptBlock(e, t, this._keySchedule, o, a, s, d, r)
                        },
                        decryptBlock: function(e, t) {
                            var n = e[t + 1];
                            e[t + 1] = e[t + 3], e[t + 3] = n, this._doCryptBlock(e, t, this._invKeySchedule, c, l, u, h, i), n = e[t +
                                1], e[t + 1] = e[t + 3], e[t + 3] = n
                        },
                        _doCryptBlock: function(e, t, n, r, i, o, a, s) {
                            for (var d = this._nRounds, c = e[t] ^ n[0], l = e[t + 1] ^ n[1], u = e[t + 2] ^ n[2], h = e[t + 3] ^ n[3],
                                    f = 4, p = 1; p < d; p++) {
                                var m = r[c >>> 24] ^ i[l >>> 16 & 255] ^ o[u >>> 8 & 255] ^ a[255 & h] ^ n[f++],
                                    g = r[l >>> 24] ^ i[u >>> 16 & 255] ^ o[h >>> 8 & 255] ^ a[255 & c] ^ n[f++],
                                    v = r[u >>> 24] ^ i[h >>> 16 & 255] ^ o[c >>> 8 & 255] ^ a[255 & l] ^ n[f++],
                                    y = r[h >>> 24] ^ i[c >>> 16 & 255] ^ o[l >>> 8 & 255] ^ a[255 & u] ^ n[f++];
                                c = m, l = g, u = v, h = y
                            }
                            m = (s[c >>> 24] << 24 | s[l >>> 16 & 255] << 16 | s[u >>> 8 & 255] << 8 | s[255 & h]) ^ n[f++], g = (s[l >>>
                                24] << 24 | s[u >>> 16 & 255] << 16 | s[h >>> 8 & 255] << 8 | s[255 & c]) ^ n[f++], v = (s[u >>> 24] << 24 |
                                s[h >>> 16 & 255] << 16 | s[c >>> 8 & 255] << 8 | s[255 & l]) ^ n[f++], y = (s[h >>> 24] << 24 | s[c >>>
                                16 & 255] << 16 | s[l >>> 8 & 255] << 8 | s[255 & u]) ^ n[f++], e[t] = m, e[t + 1] = g, e[t + 2] = v, e[t +
                                3] = y
                        },
                        keySize: 8
                    });
                e.AES = t._createHelper(p)
            }(),
            function() {
                var e = g,
                    t = e.lib.WordArray,
                    n = e.enc;
                function r(e) {
                    return e << 8 & 4278255360 | e >>> 8 & 16711935
                }
                n.Utf16 = n.Utf16BE = {
                    stringify: function(e) {
                        for (var t = e.words, n = e.sigBytes, r = [], i = 0; i < n; i += 2) {
                            var o = t[i >>> 2] >>> 16 - i % 4 * 8 & 65535;
                            r.push(String.fromCharCode(o))
                        }
                        return r.join("")
                    },
                    parse: function(e) {
                        for (var n = e.length, r = [], i = 0; i < n; i++) r[i >>> 1] |= e.charCodeAt(i) << 16 - i % 2 * 16;
                        return t.create(r, 2 * n)
                    }
                }, n.Utf16LE = {
                    stringify: function(e) {
                        for (var t = e.words, n = e.sigBytes, i = [], o = 0; o < n; o += 2) {
                            var a = r(t[o >>> 2] >>> 16 - o % 4 * 8 & 65535);
                            i.push(String.fromCharCode(a))
                        }
                        return i.join("")
                    },
                    parse: function(e) {
                        for (var n = e.length, i = [], o = 0; o < n; o++) i[o >>> 1] |= r(e.charCodeAt(o) << 16 - o % 2 * 16);
                        return t.create(i, 2 * n)
                    }
                }
            }(), null == n && (n = "warningiscaution");
        var v = g.enc.Utf8.parse(n),
            y = {
                mode: g.mode.ECB,
                padding: g.pad.Pkcs7
            };
        if (null != r && r.length > 0 && (y = {
                iv: g.enc.Utf8.parse(r),
                mode: g.mode.CBC,
                padding: g.pad.Pkcs7
            }), "en" == e) {
            var w = g.enc.Utf8.parse(t);
            return g.AES.encrypt(w, v, y).toString()
        }
        if ("de" == e) {
            var x = g.AES.decrypt(t, v, y);
            return g.enc.Utf8.stringify(x).toString()
        }
    },
    strMD5Get: function(e) {
        function t(e, t) {
            return e << t | e >>> 32 - t
        }
        function n(e, t) {
            var n, r, i, o, a;
            return i = 2147483648 & e, o = 2147483648 & t, a = (1073741823 & e) + (1073741823 & t), (n = 1073741824 & e) & (r =
                    1073741824 & t) ? 2147483648 ^ a ^ i ^ o : n | r ? 1073741824 & a ? 3221225472 ^ a ^ i ^ o : 1073741824 ^ a ^ i ^
                o : a ^ i ^ o
        }
        function r(e, r, i, o, a, s, d) {
            var c;
            return n(t(e = n(e, n(n((c = r) & i | ~c & o, a), d)), s), r)
        }
        function i(e, r, i, o, a, s, d) {
            var c;
            return n(t(e = n(e, n(n(r & (c = o) | i & ~c, a), d)), s), r)
        }
        function o(e, r, i, o, a, s, d) {
            return n(t(e = n(e, n(n(r ^ i ^ o, a), d)), s), r)
        }
        function a(e, r, i, o, a, s, d) {
            return n(t(e = n(e, n(n(i ^ (r | ~o), a), d)), s), r)
        }
        function s(e) {
            var t, n = "",
                r = "";
            for (t = 0; t <= 3; t++) n += (r = "0" + (e >>> 8 * t & 255).toString(16)).substr(r.length - 2, 2);
            return n
        }
        return function(e) {
            var t, d, c, l, u, h, f, p, m, g = Array();
            for (g = function(e) {
                    for (var t, n = e.length, r = n + 8, i = 16 * ((r - r % 64) / 64 + 1), o = Array(i - 1), a = 0, s = 0; s < n;) a =
                        s % 4 * 8, o[t = (s - s % 4) / 4] = o[t] | e.charCodeAt(s) << a, s++;
                    return a = s % 4 * 8, o[t = (s - s % 4) / 4] = o[t] | 128 << a, o[i - 2] = n << 3, o[i - 1] = n >>> 29, o
                }(e = function(e) {
                    for (var t = "", n = 0; n < e.length; n++) {
                        var r = e.charCodeAt(n);
                        r < 128 ? t += String.fromCharCode(r) : r > 127 && r < 2048 ? (t += String.fromCharCode(r >> 6 | 192), t +=
                            String.fromCharCode(63 & r | 128)) : (t += String.fromCharCode(r >> 12 | 224), t += String.fromCharCode(r >>
                            6 & 63 | 128), t += String.fromCharCode(63 & r | 128))
                    }
                    return t
                }(e)), h = 1732584193, f = 4023233417, p = 2562383102, m = 271733878, t = 0; t < g.length; t += 16) d = h, c = f,
                l = p, u = m, f = a(f = a(f = a(f = a(f = o(f = o(f = o(f = o(f = i(f = i(f = i(f = i(f = r(f = r(f = r(f = r(f,
                                            p = r(p, m = r(m, h = r(h, f, p, m, g[t + 0], 7, 3614090360), f, p, g[t + 1], 12, 3905402710), h,
                                                f, g[t + 2], 17, 606105819), m, h, g[t + 3], 22, 3250441966), p = r(p, m = r(m, h = r(h, f, p,
                                            m, g[t + 4], 7, 4118548399), f, p, g[t + 5], 12, 1200080426), h, f, g[t + 6], 17, 2821735955), m,
                                        h, g[t + 7], 22, 4249261313), p = r(p, m = r(m, h = r(h, f, p, m, g[t + 8], 7, 1770035416), f, p,
                                        g[t + 9], 12, 2336552879), h, f, g[t + 10], 17, 4294925233), m, h, g[t + 11], 22, 2304563134), p =
                                    r(p, m = r(m, h = r(h, f, p, m, g[t + 12], 7, 1804603682), f, p, g[t + 13], 12, 4254626195), h, f,
                                        g[t + 14], 17, 2792965006), m, h, g[t + 15], 22, 1236535329), p = i(p, m = i(m, h = i(h, f, p, m,
                                    g[t + 1], 5, 4129170786), f, p, g[t + 6], 9, 3225465664), h, f, g[t + 11], 14, 643717713), m, h, g[
                                    t + 0], 20, 3921069994), p = i(p, m = i(m, h = i(h, f, p, m, g[t + 5], 5, 3593408605), f, p, g[t +
                                    10], 9, 38016083), h, f, g[t + 15], 14, 3634488961), m, h, g[t + 4], 20, 3889429448), p = i(p, m = i(
                                        m, h = i(h, f, p, m, g[t + 9], 5, 568446438), f, p, g[t + 14], 9, 3275163606), h, f, g[t + 3], 14,
                                    4107603335), m, h, g[t + 8], 20, 1163531501), p = i(p, m = i(m, h = i(h, f, p, m, g[t + 13], 5,
                                    2850285829), f, p, g[t + 2], 9, 4243563512), h, f, g[t + 7], 14, 1735328473), m, h, g[t + 12], 20,
                                2368359562), p = o(p, m = o(m, h = o(h, f, p, m, g[t + 5], 4, 4294588738), f, p, g[t + 8], 11,
                                2272392833), h, f, g[t + 11], 16, 1839030562), m, h, g[t + 14], 23, 4259657740), p = o(p, m = o(m, h = o(
                                h, f, p, m, g[t + 1], 4, 2763975236), f, p, g[t + 4], 11, 1272893353), h, f, g[t + 7], 16, 4139469664),
                            m, h, g[t + 10], 23, 3200236656), p = o(p, m = o(m, h = o(h, f, p, m, g[t + 13], 4, 681279174), f, p, g[t +
                            0], 11, 3936430074), h, f, g[t + 3], 16, 3572445317), m, h, g[t + 6], 23, 76029189), p = o(p, m = o(m, h =
                            o(h, f, p, m, g[t + 9], 4, 3654602809), f, p, g[t + 12], 11, 3873151461), h, f, g[t + 15], 16, 530742520),
                        m, h, g[t + 2], 23, 3299628645), p = a(p, m = a(m, h = a(h, f, p, m, g[t + 0], 6, 4096336452), f, p, g[t +
                        7], 10, 1126891415), h, f, g[t + 14], 15, 2878612391), m, h, g[t + 5], 21, 4237533241), p = a(p, m = a(m, h =
                        a(h, f, p, m, g[t + 12], 6, 1700485571), f, p, g[t + 3], 10, 2399980690), h, f, g[t + 10], 15, 4293915773),
                    m, h, g[t + 1], 21, 2240044497), p = a(p, m = a(m, h = a(h, f, p, m, g[t + 8], 6, 1873313359), f, p, g[t + 15],
                    10, 4264355552), h, f, g[t + 6], 15, 2734768916), m, h, g[t + 13], 21, 1309151649), p = a(p, m = a(m, h = a(h,
                    f, p, m, g[t + 4], 6, 4149444226), f, p, g[t + 11], 10, 3174756917), h, f, g[t + 2], 15, 718787259), m, h, g[t +
                    9], 21, 3951481745), h = n(h, d), f = n(f, c), p = n(p, l), m = n(m, u);
            return (s(h) + s(f) + s(p) + s(m)).toUpperCase()
        }(e)
    },
    AjaxData: function(e, t) {
        null == e && (e = {}), null == t && (t = "thisWarning");
        var n = e;
        n.timestamp = (new Date).getTime();
        var r = new Array;
        for (var i in n) "object" == typeof n[i] && (n[i] = JSON.stringify(n[i])), r.push(n[i]);
        r.sort();
        var o = r.join("###") + "###" + t,
            a = doui.strMD5Get(o);
        return n.sign = a, n
    },
    AjaxRepeat: function(e, t) {
        var n = {
            url: "",
            over: !1
        };
        n.url = t;
        var r = !1;
        if ("add" == e) {
            for (var i = null, o = 0; o < doui.AjaxList.length; o++)
                if (n.url == doui.AjaxList[o].url) {
                    i = o;
                    break
                } null == i ? (doui.AjaxList.push(n), r = !0) : 1 == doui.AjaxList[i].over ? (doui.AjaxList[i].over = !1, r = !0) :
                r = !1
        } else if ("over" == e)
            for (o = 0; o < doui.AjaxList.length; o++)
                if (t == doui.AjaxList[o].url) {
                    doui.AjaxList[o].over = !0, r = !0;
                    break
                } return r
    },
    AjaxPost: function(e, t, n, r) {
        null == r && (r = !1);
        var i = {
            code: 0,
            data: {},
            msg: "请求成功"
        };
        if (1 == r || doui.AjaxRepeat("add", e)) {
            var o = e,
                a = t,
                s = null;
            (s = window.XMLHttpRequest ? new XMLHttpRequest : new ActiveXObject("Microsoft.XMLHTTP")).open("POST", o, !0), s.setRequestHeader(
                "Content-type", "application/json"), s.withCredentials = !0;
            var d = setTimeout(function() {
                s.abort(), doui.AjaxRepeat("over", o), i.code = 404, i.msg = "请求超时", n(i)
            }, 3e5);
            s.onreadystatechange = function() {
                if (4 == s.readyState && 200 == s.status) {
                    null != d && clearTimeout(d), doui.AjaxRepeat("over", o);
                    var e = null;
                    s.responseText ? e = s.responseText : s.responseXML && (e = s.responseXML), doui.isJsonString(e) ? i = JSON.parse(
                        e) : (i.code = 200, i.data = e, i.msg = "返回数据不是json格式"), n(i)
                } else 4 == s.readyState && (null != d && clearTimeout(d), doui.AjaxRepeat("over", o), i.code = 404, i.data = s.responseText,
                    i.msg = "无法链接,请检查网络", n(i))
            }, s.send(JSON.stringify(a))
        }
    },
    AjaxGet: function(e, t, n, r) {
        null == r && (r = !1);
        var i = {
            code: 0,
            data: {},
            msg: "请求成功"
        };
        if (1 == r || doui.AjaxRepeat("add", e)) {
            var o = e,
                a = t,
                s = null;
            s = window.XMLHttpRequest ? new XMLHttpRequest : new ActiveXObject("Microsoft.XMLHTTP");
            var d = o + "?";
            for (var c in a) d += c + "=" + a[c] + "&";
            d = d.substring(0, d.length - 1), s.open("GET", d, !0), s.withCredentials = !0;
            var l = setTimeout(function() {
                s.abort(), doui.AjaxRepeat("over", o), i.code = 404, i.msg = "请求超时", n(i)
            }, 3e5);
            s.onreadystatechange = function() {
                if (4 == s.readyState && 200 == s.status) {
                    null != l && clearTimeout(l), doui.AjaxRepeat("over", o);
                    var e = null;
                    s.responseText ? e = s.responseText : s.responseXML && (e = s.responseXML), doui.isJsonString(e) ? i = JSON.parse(
                        e) : (i.code = 200, i.data = e, i.msg = "返回数据不是json格式"), n(i)
                } else 4 == s.readyState && (null != l && clearTimeout(l), doui.AjaxRepeat("over", o), i.code = 404, i.data = s.responseText,
                    i.msg = "无法链接,请检查网络", n(i))
            }, s.send()
        }
    },
    AjaxJsonp: function(e, t, n, r) {
        var system = doui.localStorageGet("system");
        if (system != null)
            t.system = system;
        null == r && (r = !1);
        var i = {
            code: 0,
            data: {},
            msg: "请求成功"
        };
        if (1 == r || doui.AjaxRepeat("add", e)) {
            var o = e,
                a = t,
                s = "douiJsonp_" + doui.strRandomGet(8);
            a.callback = s;
            var d = o + "?";
            for (var c in a) d += c + "=" + a[c] + "&";
            d = d.substring(0, d.length - 1), d = encodeURI(d);
            var l = document.createElement("script");
            l.type = "text/javascript", l.src = d, document.getElementsByTagName("head")[0].appendChild(l);
            var u = setTimeout(function() {
                l && l.parentNode.removeChild(l), doui.AjaxRepeat("over", o), i.code = 404, i.msg = "请求超时", n(i)
            }, 3e5);
            l.onerror = function() {
                l && l.parentNode.removeChild(l), null != u && clearTimeout(u), doui.AjaxRepeat("over", o), i.code = 404, i.msg =
                    "无法链接,请检查网络", n(i)
            }, window[s] = function(e) {
                var t = e;
                l && l.parentNode.removeChild(l), null != u && clearTimeout(u), doui.AjaxRepeat("over", o), "object" == typeof t ?
                    i = t : "string" == typeof t && doui.isJsonString(t) ? i = JSON.parse(t) : (i.code = 200, i.data = t, i.msg =
                        "返回数据不是json格式"), n(i)
            }
        }
    },
    AjaxUpload: function(e, t, n, r) {
        var system = doui.localStorageGet("system");
        if (system != null)
            t.system = system;
        var i = {
                code: 0,
                data: {},
                msg: "请求成功"
            },
            o = e,
            a = new FormData;
        for (var s in t) a.append(s, t[s]);
        var d = null;
        if (d = window.XMLHttpRequest ? new XMLHttpRequest : new ActiveXObject("Microsoft.XMLHTTP"), r) {
            var c = {
                total: 0,
                loaded: 0,
                percentage: 0
            };
            d.upload.onprogress = function(e) {
                e.lengthComputable && (c.total = e.total, c.loaded = e.loaded, c.percentage = Math.round(1e3 * parseFloat(e.loaded /
                    e.total)) / 10, r(c))
            }
        }
        d.open("POST", o, !0), d.withCredentials = !0, d.onreadystatechange = function() {
            if (4 == d.readyState && 200 == d.status) {
                var e = null;
                d.responseText ? e = d.responseText : d.responseXML && (e = d.responseXML), doui.isJsonString(e) ? i = JSON.parse(
                    e) : (i.code = 200, i.data = e, i.msg = "返回数据不是json格式"), n(i)
            } else 4 == d.readyState && (i.code = 404, i.data = d.responseText, i.msg = "无法链接,请检查网络", n(i))
        }, d.send(a)
    },
    isJsonString: function(e) {
        try {
            if ("object" == typeof JSON.parse(e)) return !0
        } catch (e) {}
        return !1
    }
}, doui.windowReady(function() {
    doui.sizeSet()
}), window.onresize = function() {
    doui.sizeSet()
};