//格式化日期
function Format(){
    this.jsjava_class="jsjava.text.Format";
}
function DateFormat(){
    this.jsjava_class="jsjava.text.DateFormat";
}
DateFormat.prototype=new Format();
DateFormat.prototype.constructor=DateFormat;
DateFormat.zh_cn_month2=["01","02","03","04","05","06","07","08","09","10","11","12"];
DateFormat.zh_cn_month3=["\u4e00\u6708","\u4e8c\u6708","\u4e09\u6708","\u56db\u6708","\u4e94\u6708","\u516d\u6708","\u4e03\u6708","\u516b\u6708","\u4e5d\u6708","\u5341\u6708","\u5341\u4e00\u6708","\u5341\u4e8c\u6708",];
DateFormat.zh_cn_month4=["\u4e00\u6708","\u4e8c\u6708","\u4e09\u6708","\u56db\u6708","\u4e94\u6708","\u516d\u6708","\u4e03\u6708","\u516b\u6708","\u4e5d\u6708","\u5341\u6708","\u5341\u4e00\u6708","\u5341\u4e8c\u6708",];
DateFormat.en_us_month4=["Janu","Febr","Marc","Apri","May","Juhn","July","Augu","Sept","Octo","Nove","Dece"];
DateFormat.en_us_month3=["Jan","Feb","Mar","Apr","May","Juh","Jul","Aug","Sep","Oct","Nov","Dec"];
DateFormat.en_us_month2=["01","02","03","04","05","06","07","08","09","10","11","12"];
DateFormat.zh_cn_week=["\u661f\u671f\u65e5","\u661f\u671f\u4e00","\u661f\u671f\u4e8c","\u661f\u671f\u4e09","\u661f\u671f\u56db","\u661f\u671f\u4e94","\u661f\u671f\u516d"];
DateFormat.zh_cn_am="\u4e0b\u5348";
DateFormat.zh_cn_pm="\u4e0a\u5348";
DateFormat.language=(navigator.userLanguage==undefined?navigator.language:navigator.userLanguage).replace("-","_").toLowerCase();

DateFormat.prototype.format=function(date){
    var year4=date.getFullYear();
    var year2=year4.toString().substring(2);
    var pattern=this.pattern;
    pattern=pattern.replace(/yyyy/,year4);
    pattern=pattern.replace(/yy/,year2);
    var month=date.getMonth();
    pattern=pattern.replace(/MMMM/,eval("DateFormat."+DateFormat.language+"_month4[month]"));
    pattern=pattern.replace(/MMM/,eval("DateFormat."+DateFormat.language+"_month3[month]"));
    pattern=pattern.replace(/MM/,eval("DateFormat."+DateFormat.language+"_month2[month]"));
    var dayOfMonth=date.getDate();
    var dayOfMonth2=dayOfMonth;
    var dayOfMonthLength=dayOfMonth.toString().length;
    if(dayOfMonthLength==1){
        dayOfMonth2="0"+dayOfMonth;
    }
    pattern=pattern.replace(/dd/,dayOfMonth2);
    pattern=pattern.replace(/d/,dayOfMonth);
    var hours=date.getHours();
    var hours2=hours;
    var hoursLength=hours.toString().length;
    if(hoursLength==1){
        hours2="0"+hours;
    }
    pattern=pattern.replace(/HH/,hours2);
    pattern=pattern.replace(/H/,hours);
    var minutes=date.getMinutes();
    var minutes2=minutes;
    var minutesLength=minutes.toString().length;
    if(minutesLength==1){
        minutes2="0"+minutes;
    }
    pattern=pattern.replace(/mm/,minutes2);
    pattern=pattern.replace(/m/,minutes);
    var seconds=date.getSeconds();
    var seconds2=seconds;
    var secondsLength=seconds.toString().length;
    if(secondsLength==1){
        seconds2="0"+seconds;
    }
    pattern=pattern.replace(/ss/,seconds2);
    pattern=pattern.replace(/s/,seconds);
    var milliSeconds=date.getMilliseconds();
    pattern=pattern.replace(/S+/,milliSeconds);
    var day=date.getDay();
// pattern=pattern.replace(/E+/,eval("DateFormat."+DateFormat.language+"_week[day]"));
    if(hours>12){
        pattern=pattern.replace(/a+/,eval("DateFormat."+DateFormat.language+"_am"));
    }else{
        pattern=pattern.replace(/a+/,eval("DateFormat."+DateFormat.language+"_pm"));
    }
    var kHours=hours;
    if(kHours==0){
        kHours=24;
    }
    var kHours2=kHours;
    var kHoursLength=kHours.toString().length;
    if(kHoursLength==1){
        kHours2="0"+kHours;
    }
    pattern=pattern.replace(/kk/,kHours2);
    pattern=pattern.replace(/k/,kHours);
    var KHours=hours;
    if(hours>11){
        KHours=hours-12;
    }
    var KHours2=KHours;
    var KHoursLength=KHours.toString().length;
    if(KHoursLength==1){
        KHours2="0"+KHours;
    }
    pattern=pattern.replace(/KK/,KHours2);
    pattern=pattern.replace(/K/,KHours);
    var hHours=KHours;
    if(hHours==0){
        hHours=12;
    }
    var hHours2=hHours;
    var hHoursLength=hHours.toString().length;
    if(KHoursLength==1){
        hHours2="0"+hHours;
    }
    pattern=pattern.replace(/hh/,hHours2);
    pattern=pattern.replace(/h/,hHours);
    return pattern;
};

function SimpleDateFormat(){
    this.jsjava_class="jsjava.text.SimpleDateFormat";
}

SimpleDateFormat.prototype=new DateFormat();
SimpleDateFormat.prototype.constructor=SimpleDateFormat;

SimpleDateFormat.prototype.applyPattern=function(pattern){
    this.pattern=pattern;
};

var df=new SimpleDateFormat();
df.applyPattern("yyyy-MM-dd HH:mm:ss");
//
var xcdId;
var xcdlen;
function xcdFindTable(){
    jsonData=document.getElementById('wadt').value;
    var header = new Array();

    header[0] = ["","<input type='radio' name='update'id='update' onclick='javascript:radioChoose(this);'/>","1%",""];
    header[1] = ["编号","innerWorkingOrderId","4%",""];
    header[2] = ["内部协查单标题","title","8%","15"];
    header[3] = ["省份","provinceName","4%",""];
    header[4] = ["发生时间","eventHappenTime","4%",""];
    header[5] = ["事件子来源","suborigin","4%",""];
    header[6] = ["工单状态","workingOrderStatus","7%",""];
    header[7] = ["关联告警","alarmListRelation","7%",""];
    header[8] = ["告警附件下载","fileAddress","7%",""];

    window.pagging = new table_pagging({limit:12,tableId:'xcdResultTable',header:header});
    // console.log(jsonData)
    pagging.pagging(jsonData);

}
var table_pagging = function() {
    this.init.apply(this, arguments);
}

table_pagging.prototype = {
    init : function(s) {
        // 从第几个数据开始获取,缺省状态下从0开始显示

        if (s.start) {
            this.start = parseInt(s.start);
        } else {
            this.start = 0;
        }

        // limit是指从start开始一共要用几条数据,缺省状态下显示10条
        if (s.limit) {
            this.limit = parseInt(s.limit);
        } else {
            this.limit = 10;
        }

        // cellStep表示每行要显示的行数.缺省状态下为1,一行一条记录.
        if (s.cellStep) {
            this.cellStep = parseInt(s.cellStep);
        } else {
            this.cellStep = 1;
        }

        // 要执行的表的名字
        if (s.tableId) {
            this.tableObj = document.getElementById(s.tableId);
        } else {
            alert("missing table id~");
        }

        // 头部的样式编码
        if (s.headTrClassName) {
            this.headTrClassName = s.headTrClassName;
        } else {
            this.headTrClassName = "";
        }

        if (s.trClassName) {
            this.trClassName = s.trClassName;
        } else {
            this.trClassName = "";
        }

        // 定义头部信息
        if (this.checkHeadersIsArray(s.header)) {
            this.header = s.header;
        } else {
            alert("header is wrong~");
        }

        // 初始化头部
        this.createTableHeader();

    },
    cloumnModel : function() {

    },
    pagging : function(objectJson) {

        this.objectlist = eval('(' + objectJson + ')');
        if (this.start + this.limit >= this.objectlist.length) {
            this.end = this.objectlist.length;
        } else {
            this.end = this.start + this.limit;
        }
        this.clearSearchTable();
        this.createTableBodyTd();
    },
    checkHeadersIsArray : function(header) {
        if (!(header instanceof Array)) {
            return false;
        }
        for ( var i = 0; i < header.length; i++) {
            if (!(header[i] instanceof Array) || header[i].length < 4) {
                return false;
            }
        }
        return true;
    },
    // 清空表格数据
    clearSearchTable : function() {
        for ( var i = this.tableObj.rows.length; i > 1; i--) {
            this.tableObj.deleteRow(i - 1);
        }
    },
    // 创建头部
    createTableHeader : function() {
        var tr = this.tableObj.insertRow(this.tableObj.rows.length);
        if (this.headTrClassName) {
            tr.className = this.headTrClassName;
        }
        var rowLength = this.header.length;
        for ( var i = 0; i < rowLength; i++) {
            var td = tr.insertCell(i);
            td.innerHTML = this.header[i][0];
            if (this.header[i][2]) {
                td.width = this.header[i][2];
            }
        }
    },

    // 创建table的数据区域
    createTableBodyTd : function() {
        this.clearSearchTable();
        if (this.start > this.objectlist.length) {
            return;
        }

        if (this.start > this.end) {
            return;
        }

        if (this.end > this.objectlist.length) {
            this.end = this.objectlist.length;
        }
        xcdlen=this.objectlist.length;
        var rowLength = this.header.length;
        // alert(rowLength);
        for ( var i = this.start; i < this.end; i++) {
            var tr = this.tableObj.insertRow(this.tableObj.rows.length);
            if (this.trClassName) {
                tr.className = this.trClassName;
            }
            for ( var j = 0; j < this.cellStep; j++) {

                for ( var k = 0; k < rowLength; k++) {
                    var td = tr.insertCell(rowLength * j + k);
                    var tdContext = "&nbsp;";
                    var tdTitle = "";
                    if (this.header[k][1]) {
                        var reg = /\%\{([\d\w.]+)\}\%/g;
                        if (k != 0) {

                            if (result = reg.exec(this.header[k][1])) {
                                // var result = reg.exec(this.header[k][1]);
                                var context = this.header[k][1];
                                while (reg.lastIndex != 0) {
                                    var value = this.getData(
                                        this.objectlist[i], result[1]);
                                    context = context.replace(
                                        /\%\{[\d\w.]+\}\%/, value);
                                    result = reg.exec(this.header[k][1]);
                                }
                                tdContext = context;

                            }else {
                                tdContext = this.getData(this.objectlist[i], this.header[k][1]);
                                if(tdContext==null){
                                    tdContext = "&nbsp;";
                                }

                                if(k==4){

                                    tdContext = this.formateDate(tdContext);
                                }



                                if(k==6){

                                    if(tdContext!=="&nbsp;"){
                                        switch (tdContext){
                                            case '1':
                                                tdContext ='未确认';
                                                break;
                                            case '2':
                                                tdContext ='关闭';
                                                break;
                                            case '3':
                                                tdContext ='已下发协查单';
                                                break;
                                        }
                                    }
                                }

                                if(k==7){
                                    var o="";
                                    tdContext.forEach(function (t,i) {
                                        if(i!==tdContext.length-1){
                                            o=o+ t.warningId+","
                                        }else{
                                            o=o+ t.warningId
                                        }

                                    });
                                    tdContext = "<a class='warningId' id='"+o+"' onclick='showWarningDetail(this)' style='cursor: pointer' >告警详情</a>"
                                }


                                if(k==8){
                                    if(tdContext ==null){
                                        tdContext = "&nbsp;"
                                    }else{
                                        tdContext = "<a class='downloadFile' id='"+tdContext+"' onclick='downloadFile(this)' style='cursor: pointer' >下载附件</a>"
                                    }
                                }

                            }
                        }
                        else {
                            tdContext=this.header[k][1]+"<span style='display:none'>"+i+"</span>";
                            //    tdContext=this.header[k][1];
                        }
                    } else {
                        tdContext = "&nbsp;";
                    }



                    if (!tdTitle) {
                        tdTitle = tdContext;
                    }

                    if (this.header[k][3] && !(tdContext == "&nbsp;")) {
                        td.title = tdTitle;
                        tdContext = tdContext + "";
                        if (tdContext.length > parseInt(this.header[k][3])) {
                            tdContext = tdContext.substring(0,
                                this.header[k][3])
                                + "..";
                        }
                    }
                    td.innerHTML = tdContext;


                    // alert(tdContext+"----i:"+i+",j:"+j+",k:"+k);
                }
                i = i + j;
                if (i >= this.start + this.limit) {
                    break;
                }
            }

            if (i >= this.start + this.limit) {
                break;
            }
        }
        this.createPageTr();
    },

    // 从json获取数据,其中key如果带有.这个符号,说明需要获取的数据是多维数组(也可以看成对象)
    getData : function(arrayObj, key) {
        if (key.indexOf(".") > 0) {
            var keys = key.split(".");
            var obj;
            for ( var c = 0; c < keys.length; c++) {
                if (c == keys.length - 1) {
                    return obj[keys[c]];
                }
                if (!arrayObj[keys[c]]) {
                    return "&nbsp;"
                } else {
                    obj = arrayObj[keys[c]]
                }
            }
        } else {
            return arrayObj[key];
        }
    },

    // 格式化Date数据
    formateDate : function(dateObj) {
        var date = new Date(dateObj);
        return date.getFullYear() + "-" + (date.getMonth()+1) + "-"+date.getDate()+ " "+
            date.getHours()+":"+(date.getMinutes()<10?"0"+date.getMinutes():date.getMinutes())+":"+
            (date.getSeconds()<10?"0"+date.getSeconds():date.getSeconds());

    },

    operator : function(_start, _end) {
        this.start = _start;
        this.end = _end;
        this.createTableBodyTd();
    },

    // 获取当前对象名
    getObjectName : function() {
        for ( var a in window) {
            if (window[a] == this) {
                return a;
            }
        }
    },

    // 创建尾部,上一页,下一页,当前页之类信息
    createPageTr : function() {
        var objectName = this.getObjectName();
        var tr = this.tableObj.insertRow(this.tableObj.rows.length);
        td = tr.insertCell(0);
        td.colSpan = this.header.length + '';
        var totalPage = Math.ceil(this.objectlist.length / this.limit);
        var currentPage = Math.ceil(this.start / this.limit);
        var tableName = objectName + "assrotCurrentIndexTable";
        td.innerHTML = "<table id='" + tableName + "' width='100%'></table>";

        var tableObj = document.getElementById(tableName);
        var tr = tableObj.insertRow(0);

        var td1 = tr.insertCell(0);
        td1.width = "15%";
        td1.align = "center";
        if (this.start >= this.limit) {
            td1.innerHTML = "<a href='javascript:" + objectName
                + ".operator(0," + this.limit + ")'>首页</a>";
        } else {
            td1.innerHTML = "<a>首页</a>";
        }

        var td2 = tr.insertCell(1);
        td2.width = "15%";
        td2.align = "center";
        if (this.start >= this.limit) {
            td2.innerHTML = "<a href='javascript:" + objectName + ".operator("
                + (this.start - this.limit) + "," + this.start
                + ")'>上一页</a>";
        } else {
            td2.innerHTML = "<a>上一页</a>";
        }

        var td3 = tr.insertCell(2);
        td3.width = "25%";
        td3.align = "center";
        // td3.innerHTML = "Page <input id='table_pagging_page_input_id'
        // type='text' size='1' id='currentIndex' value='"+(currentPage+1)+"'
        // >of&nbsp;"+totalPage;
        td3.innerHTML = "<div class='col-sm-4'><input class=\"form-control\" type=\"text\" id=\"goPageNo\" value=\""
            + (currentPage + 1)
            + "\" size=\"3\" /></div><div class='col-sm-5'><input class=\"form-control\" type=\"button\" value=\"跳转\" onclick=\"javascript:"
            + objectName + ".jump2PageNum()\" /></div>";
        var td4 = tr.insertCell(3);
        td4.width = "15%";
        td4.align = "center";
        if (this.end >= this.objectlist.length) {
            td4.innerHTML = "<a>下一页<a>";
        } else {
            if ((this.end + this.limit) > this.objectlist.length) {
                td4.innerHTML = "<a href='javascript:" + objectName
                    + ".operator(" + this.end + ","
                    + this.objectlist.length + ")'>下一页<a>";
            } else {
                td4.innerHTML = "<a href='javascript:" + objectName
                    + ".operator(" + this.end + ","
                    + (this.end + this.limit) + ")'>下一页<a>";
            }
        }

        var td5 = tr.insertCell(4);
        td5.width = "15%";
        td5.align = "center";
        if (this.end >= this.objectlist.length) {
            td5.innerHTML = "<a>末页</a>";
        } else {
            td5.innerHTML = "<a href='javascript:" + objectName + ".operator("
                + this.limit * (totalPage - 1) + ","
                + this.objectlist.length + ")'>末页</a>";
        }
        var td6 = tr.insertCell(5);
        td6.align = 'right';
        td6.width = "25%";
        // td6.innerHTML =
        // "显示第"+this.start+"到第"+this.end+"记录,共"+this.objectlist.length+"条记录";
        td6.innerHTML = "页数:<span style='color:blue'>" + (currentPage + 1)
            + "</span>/" + totalPage;
    },

    // 点击跳转,未开发
    jump2PageNum : function() {

        var re = /^[1-9]+[0-9]*]*$/;
        if (!re.test(document.getElementById('goPageNo').value)) {
            alert("请输入正整数");
        } else {
            if (parseInt(document.getElementById('goPageNo').value) > Math
                    .ceil(this.objectlist.length / this.limit)) {
                alert("你输入的数值过大!");
            } else {
                this
                    .operator(
                        this.limit
                        * (parseInt(document
                            .getElementById('goPageNo').value) - 1),
                        (this.limit
                            * (parseInt(document
                                .getElementById('goPageNo').value) - 1) + this.limit));
            }

        }

    },

    test : function() {
        alert(this.start);
        alert(this.step);
        alert(this.cellStep);
        alert(this.tablename);
    }

}
function showWarningDetail(e){
    console.log(e)
    var ids = e.id;
    ids = ids.split(",");
    batchOpenDialog(ids);
}


function checkChoose(clickObj){
    var obj = eval('(' + jsonStr + ')');
    if(clickObj.checked){
        ids.push(parseInt(obj[parseInt(clickObj.nextSibling.innerHTML)].changeOrderId));
    }else{
        var index=-1;
        for (var i = 0; i < ids.length; i++) {
            if (ids[i] == parseInt(obj[parseInt(clickObj.nextSibling.innerHTML)].changeOrderId)) {
                index=i;
            }

        }

        if (index > -1) {
            ids.splice(index, 1);}
    }
}
function radioChoose(clickObj){
    var obj = eval("(" + jsonData + ")");
    //alert(obj);
    if(clickObj.checked){
        //alert(clickObj);
        //alert(clickObj.nextSibling.innerHTML);
        $("#updateButton").attr("disabled", false);
        xcdId=parseInt(obj[parseInt(clickObj.nextSibling.innerHTML)].workingOrderId);

    }
}