var str_logtypeval = ["1", "2", "3", "4", "6", "7", "8", "9"];
var total = 0,
    list = [];
var eroinfozh = {
    "0": "所有系统操作",
    "1": "系统更新",
    "2": "PTZ控制",
    "3": "非法关机",
    "4": "正常关机",
    "5": "启动",
    "6": "重启",
    "7": "清除报警",
    "8": "本地回放",
    "9": "本地备份",
    "10": "远程备份和回放",
    "100": "所有配置操作",
    "101": "记录时间表设置",
    "102": "正常设置",
    "103": "编码设置",
    "104": "网络设置",
    "105": "服务器设置",
    "106": "移动侦测设置",
    "107": "PTZ解码设置",
    "108": "恢复默认设置",
    "109": "设置显示设备参数",
    "110": "显示模式设置",
    "111": "图像色彩设置",
    "112": "自动维护设置",
    "113": "报警输出设置",
    "114": "报警输入设置",
    "115": "自定义设置",
    "116": "导入PTZ协议",
    "117": "导出PTZ协议",
    "118": "导入参数设置",
    "119": "导出参数设置",
    "120": "不正常参数设置",
    "122": "IP冲突",
    "123": "解码模式参数配置",
    "124": "轮巡参数配置",
    "125": "人形侦测设置",
    "126": "越界侦测",
    "127": "电子围栏设置",
    "128": "PIR设置",
    "129": "人脸识别设置",
    "200": "所有记录设置",
    "201": "开始手动记录",
    "202": "开始自动记录",
    "203": "停止",
    "300": "用户管理所有子项",
    "301": "添加用户",
    "302": "删除用户",
    "303": "修改用户",
    "304": "用户登陆",
    "305": "用户退出",
    "400": "所有报警事件",
    "401": "移动侦测报警开始",
    "402": "移动侦测报警结束",
    "403": "报警输入开始",
    "404": "人脸检测开始",
    "405": "人脸检测结束",
    "406": "设备连接成功",
    "407": "设备连接失败",
    "408": "尺寸不对",
    "409": "越界侦测报警开始",
    "410": "越界侦测报警结束",
    "411": "电子围栏报警开始",
    "412": " 电子围栏报警结束",
    "413": "人形侦测报警开始",
    "414": "人形侦测报警停止",
    "415": "PIR侦测报警开始",
    "416": "PIR侦测报警结束",
    "417": "人脸侦测报警开始",
    "418": "人脸侦测报警停止",
    "500": "所有异常事件",
    "501": "IP配置",
    "502": "硬盘已满",
    "503": "硬盘错误",
    "504": "非法访问",
    "505": "信号异常",
    "506": "信号恢复",
    "507": "网络断开",
    "600": "所有存储管理",
    "601": "格式化分区",
    "602": "创建分区",
    "603": "删除分区",
    "604": "卸载硬盘",
    "605": "硬盘组管理",
    "700": "网络事件所有",
    "701": "网络连接成功",
    "702": "网络连接失败",
    "703": "网络已断开",
    "704": "网络恢复",
    "705": "网络主动断开",
    "800": "智能门禁事件所有",
    "801": "人脸比对开门",
    "802": "密码开门",
    "803": "刷卡开门",
    "804": "按键开门（无）",
    "805": "远程开门",
};
var eroinfozhNvr = { //$.i18n.prop('i18n-miancodestream')
    "0": $.i18n.prop('i18n-rz-0'),
    "1": $.i18n.prop('i18n-rz-1'),
    "2": $.i18n.prop('i18n-rz-2'),
    "3": $.i18n.prop('i18n-rz-3'),
    "4": $.i18n.prop('i18n-rz-4'),
    "5": $.i18n.prop('i18n-rz-5'),
    "6": $.i18n.prop('i18n-rz-6'),
    "7": $.i18n.prop('i18n-rz-7'),
    "100": $.i18n.prop('i18n-rz-100'),
    "101": $.i18n.prop('i18n-rz-101'),
    "102": $.i18n.prop('i18n-rz-102'),
    "103": $.i18n.prop('i18n-rz-103'),
    "104": $.i18n.prop('i18n-rz-104'),
    "105": $.i18n.prop('i18n-rz-105'),
    "106": $.i18n.prop('i18n-rz-106'),
    "107": $.i18n.prop('i18n-rz-107'),
    "108": $.i18n.prop('i18n-rz-108'),
    "109": $.i18n.prop('i18n-rz-109'),
    "110": $.i18n.prop('i18n-rz-110'),
    "111": $.i18n.prop('i18n-rz-111'),
    "112": $.i18n.prop('i18n-rz-112'),
    "113": $.i18n.prop('i18n-rz-113'),
    "114": $.i18n.prop('i18n-rz-114'),
    "115": $.i18n.prop('i18n-rz-115'),
    "116": $.i18n.prop('i18n-rz-116'),
    "117": $.i18n.prop('i18n-rz-117'),
    "118": $.i18n.prop('i18n-rz-118'),
    "119": $.i18n.prop('i18n-rz-119'),
    "120": $.i18n.prop('i18n-rz-120'),
    "123": $.i18n.prop('i18n-rz-123'),
    "124": $.i18n.prop('i18n-rz-124'),
    "125": $.i18n.prop('i18n-rz-125'),
    "126": $.i18n.prop('i18n-rz-126'),
    "127": $.i18n.prop('i18n-rz-127'),
    "128": $.i18n.prop('i18n-rz-128'),
    "129": $.i18n.prop('i18n-rz-129'),
    "130": $.i18n.prop('i18n-rz-130'),
    "200": $.i18n.prop('i18n-rz-200'),
    "201": $.i18n.prop('i18n-rz-201'),
    "202": $.i18n.prop('i18n-rz-202'),
    "203": $.i18n.prop('i18n-rz-203'),
    "301": $.i18n.prop('i18n-rz-301'),
    "302": $.i18n.prop('i18n-rz-302'),
    "303": $.i18n.prop('i18n-rz-303'),
    "304": $.i18n.prop('i18n-rz-304'),
    "305": $.i18n.prop('i18n-rz-305'),
    "400": $.i18n.prop('i18n-rz-400'),
    "401": $.i18n.prop('i18n-rz-401'),
    "402": $.i18n.prop('i18n-rz-402'),
    "403": $.i18n.prop('i18n-rz-403'),
    "411": $.i18n.prop('i18n-rz-411'),
    "412": $.i18n.prop('i18n-rz-412'),
    "415": $.i18n.prop('i18n-rz-415'),
    "416": $.i18n.prop('i18n-rz-416'),
    "500": $.i18n.prop('i18n-rz-500'),
    "501": $.i18n.prop('i18n-rz-501'),
    "502": $.i18n.prop('i18n-rz-502'),
    "503": $.i18n.prop('i18n-rz-503'),
    "504": $.i18n.prop('i18n-rz-504'),
    "505": $.i18n.prop('i18n-rz-505'),
    "506": $.i18n.prop('i18n-rz-506'),
    "507": $.i18n.prop('i18n-rz-507'),
    "600": $.i18n.prop('i18n-rz-600'),
    "601": $.i18n.prop('i18n-rz-601'),
    "602": $.i18n.prop('i18n-rz-602'),
    "603": $.i18n.prop('i18n-rz-603'),
    "604": $.i18n.prop('i18n-rz-604'),
    "605": $.i18n.prop('i18n-rz-605'),
    "701": $.i18n.prop('i18n-rz-701'),
    "702": $.i18n.prop('i18n-rz-702'),
    "703": $.i18n.prop('i18n-rz-703'),
    "704": $.i18n.prop('i18n-rz-704'),
    "705": $.i18n.prop('i18n-rz-705'),
};
var _table = null;
var aoColumns = [{
    "mData": "id",
    // "sWidth":"32%"//设置列宽
}, {
    "mData": "event",

}, {
    "mData": "time",
}];
$(document).ready(function() {
    config.lastnav = "log";
    //$("#logTable").css("height", "500px");
    $("#logTable").css("overflow-y", "scroll"); //添加垂直滚轮功能
    initLog();
    $("#logSearch").click(function() { //客户端分页
        list = searchLog();
        $("#logTable").dataTable().fnClearTable();
        if (list.length > 0) {
            $("#logTable").dataTable().fnAddData(list, true)
        }
    });


    // 点击导出
    $('#pensengerOut').click(function() {
        if (list.length == 0) { //此时无导出数据
            $.optionBootoast($.i18n.prop('i18n-Nodata-available-forexport'), "danger")
        } else {
            var str = '序号,事件,时间\n';
            //增加\t为了不让表格显示科学计数法或者其他格式
            for (var i = 0; i < list.length; i++) {
                str += i + '\t,' + list[i].event + '\t,' + list[i].time;
                str += '\n';
            };
            if (window.navigator.msSaveOrOpenBlob) {
                // IE 浏览器  \n.使用后会发现列可以分开，但是不换行。 看上去不认识 使用decodeURIComponent 进行编码
                var blob = new window.Blob([decodeURIComponent(encodeURI('\uFEFF' + str))], { //这里需要添加字节序不然会乱码
                    type: "text/csv;charset=utf-8;"
                });
                //Internet Explorer 10 的 msSaveBlob 和 msSaveOrOpenBlob 方法允许用户在客户端上保存文件,名字随便起
                navigator.msSaveBlob(blob, "PFS_" + "日志详情" + ".csv");
            } else {
                //非IE浏览器直接使用a标签download下载
                var uri = 'data:text/csv;charset=utf-8,\ufeff' + encodeURIComponent(str);
                //通过创建a标签实现
                var link = document.createElement("a");
                link.href = uri;
                //对下载的文件命名
                link.download = "PFS_" + "日志详情" + ".csv";
                document.body.appendChild(link);
                link.click();
                document.body.removeChild(link);
            }
        }
    });


});


function initLog() {
    var log = $.i18n.prop("i18n-log-type").split(",")
    for (var i = 0; i < log.length; i++) {
        $("<option value='" + str_logtypeval[i] + "'>" + log[i] + "</option>").appendTo("#lgType");
    }
    $("#lgType").select2({
        width: 280,
        height: 40,
        minimumResultsForSearch: -1 // 隐藏搜索
    });
    $("#lgType").select2("val", str_logtypeval[log.length - 1]);

    var now = $.dateFormat(Date.now());
    now = now.split(" ")[0] + " 00:00:00"
    var end = now.split(" ")[0] + " 23:59:59"
    $("#logStartTime").val(now);
    $("#logEndTime").val(end);
    $("#logStartTime").datetimepicker({
        format: "yyyy-mm-dd hh:ii:ss",
        autoclose: true, // 选择日期后关闭
        language: 'zh-CN', //显示语言为中文
        pickerPosition:'top-right'
    }).on("click", function(e) {
        e.currentTarget.blur();
        $("#logStartTime").datetimepicker("setEndDate", $("#logEndTime").val())
    });
    $("#logEndTime").datetimepicker({
        format: "yyyy-mm-dd hh:ii:ss",
        autoclose: true, // 选择日期后关闭
        language: 'zh-CN', //显示语言为中文
        pickerPosition:'top-right'
    }).on("click", function() {
        e.currentTarget.blur();
        $("#logEndTime").datetimepicker("setStartDate", $("#logStartTime").val())
    });
    dataTableDraw();

}

function searchLog() {
    list = [];
    var sTime = $("#logStartTime").val().split(" ").join("T")
    var eTime = $("#logEndTime").val().split(" ").join("T")
    var xmlUrl = config.baseUrl + "/System/Logging?majorType=" + $("#lgType").select2("val") + "&minorType=0&startTime=" + sTime + "&stopTime=" + eTime;
    $.ajax({
        url: xmlUrl,
        type: "get",
        async: false,
        timeout: 30000,
        dataType: "xml",
        beforeSend: function(xhr) {
            xhr.setRequestHeader("If-Modified-Since", "0");
        },
        success: function(xmlDoc, textStatus, xhr) {
            console.log('xmlDoc', xmlDoc);
            var size = $(xmlDoc).find('LogList').eq(0).find('Log').length;
            console.log('size', size);
            if (size == 0) {
                list = [];
            } else {
                total = size;
                for (var index = 0; index < size; index++) {
                    var itme = {};
                    itme.id = index + 1;
                    var netUser = $(xmlDoc).find('LogList').find('Log').eq(index).find('netUser').text();
                    var hostIPAddress = $(xmlDoc).find('LogList').find('Log').eq(index).find('hostIPAddress').text();
                    var minorType = $(xmlDoc).find('LogList').find('Log').eq(index).find('minorType').text();
                    var channel = $(xmlDoc).find('LogList').find('Log').eq(index).find('channel').text();
                    var IpConflictMac = $(xmlDoc).find('LogList').find('Log').eq(index).find('IpConflictMac').text();
                    if (config.deviceInfo.DeviceName == "IPC") {
                        itme.event = netUser + "-[" + hostIPAddress + "]" + eroinfozh[minorType];
                    } else {
                        if (minorType == 501) {
                            if (channel == 0) { //根据通道号（0表示NVR，其他表示IPC）来判断是NVR的IP冲突，还是IPC的IP冲突；
                                itme.event = netUser + "-[" + hostIPAddress + "]" + $.i18n.prop('i18n-log-add1')+ IpConflictMac;
                            } else {
                                itme.event = netUser + "-[" + hostIPAddress + "]" + $.i18n.prop('i18n-Channelname')+channel+$.i18n.prop('i18n-log-add2')+ IpConflictMac;
                            }
                        } else {
                            itme.event = netUser + "-[" + hostIPAddress + "]" + eroinfozhNvr[minorType];
                        }

                    }
                    var time = $(xmlDoc).find('LogList').find('Log').eq(index).find('time').text();
                    var y = time.substring(0, 4),
                        m = time.substring(4, 6),
                        d = time.substring(6, 8),
                        h = time.substring(8, 10),
                        ms = time.substring(10, 12),
                        s = time.substring(12, 14);
                    itme.time = y + "-" + m + "-" + d + " " + h + ":" + ms + ":" + s;
                    list.push(itme);
                }
                console.log('list', list);
            }

        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {}
    });
    return list;
}

function dataTableDraw() {
    _table = new table("logTable", {
        retrieve: true,
        aaData: list,
        aoColumns: aoColumns,
        bSort: false,
        bAutoWidth: false,
        bLengthChange: true, // 开关，是否显示每页大小的下拉框
        bLengthALL: true, // 开关，是否显示每页大小的下拉框
        bExcel: true, // 数据导出Excel 开关
        bCopy: false, // 数据导出Copy 开关
        bColvis: false, //数据导出print 开关
        fixedHeader: false, // 表头锁定
        pageSize: 10,
        bDestroy: false, //解决重新渲染问题
        aLengthMenu: [
            [10, 20, 50, 100],
            [10, 20, 50, 100]
        ],
    });
}
