//格式化日期
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"); 

function indexTable1() {
		    $.ajax({
			  type: "GET",
			  contentType : 'application/json',
		      url: '../CmszMonitorAnalysis/index/table1/'+Date.parse(new Date()),//取值的页面
		      dataType : 'text',
		      beforeSend: function(data) {},
		      success: function(data){
		    	  var header = new Array();
			      header[0] = ["告警ID","warningId","",""];
			      header[1] = ["告警标题","warningTitle","",""];
			      header[2] = ["省份","provinceName","",""];
			      header[3] = ["渠道","channelName","",""];
			      header[4] = ["指标","kpiName","",""];
			      header[5] = ["告警来源","warningSourceName","",""];
			      header[6] = ["开始时间","occurTime","",""];
			      header[7] = ["结束时间","closeTime","",""];
			      header[8] = ["告警状态","type","",""];
			      header[8] = ["关闭类型","status","",""];
		    		window.pagging = new table_pagging({limit:10,tableId:'indexTable1',header:header});
		    		pagging.pagging(data);
		      }});
		    
		    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;
		    		}
		    		
		    		var rowLength = this.header.length;
		    		
		    		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(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==6){
		    								if(tdContext=="&nbsp;"){
		    									tdContext = "&nbsp;";
		    								}else{
		    									tdContext = df.format(new Date(tdContext));
		    								}
		    								
		    							}else if(k==7){
		    								if(tdContext=="&nbsp;"){
		    									tdContext = "&nbsp;";
		    								}else{
		    									tdContext = df.format(new Date(tdContext));
		    								}
		    							}
		    							
		    							if(k==0){
			                                //add by guo xuan 2014-07-29  start
											tdContext="<a href=\"javascript:;\" onclick=\"openDialog('"+this.getData(this.objectlist[i],this.header[k][1])+"',"
								 			+ this.getData(this.objectlist[i],"warningSourceId")+","
								 			+ this.getData(this.objectlist[i],"dataSourceId")+","
								 			+ this.getData(this.objectlist[i],"channelId")+","
								 			+ this.getData(this.objectlist[i],"businessId")+","
								 			+ this.getData(this.objectlist[i],"kpiId")+","
								 			+ this.getData(this.objectlist[i],"configItemId")+","
								 			+ this.getData(this.objectlist[i],"provinceId")+",'"
								 			+ ((this.getData(this.objectlist[i],"warningTitle")!=null&&this.getData(this.objectlist[i],"warningTitle")!='')?this.getData(this.objectlist[i],"warningTitle"):"")+"','"
								 			+ ((this.getData(this.objectlist[i],"provinceName")!=null&&this.getData(this.objectlist[i],"provinceName")!='')?this.getData(this.objectlist[i],"provinceName"):"")+"','"
								 			+ ((this.getData(this.objectlist[i],"channelName")!=null&&this.getData(this.objectlist[i],"channelName")!='')?this.getData(this.objectlist[i],"channelName"):"")+"','"
								 			+ ((this.getData(this.objectlist[i],"businessName")!=null&&this.getData(this.objectlist[i],"businessName")!='')?this.getData(this.objectlist[i],"businessName"):"")+"','"
								 			+ ((this.getData(this.objectlist[i],"dataSourceName")!=null&&this.getData(this.objectlist[i],"dataSourceName")!='')?this.getData(this.objectlist[i],"dataSourceName"):"")+"','"
								 			+ ((this.getData(this.objectlist[i],"warningSourceName")!=null&&this.getData(this.objectlist[i],"warningSourceName")!='')?this.getData(this.objectlist[i],"warningSourceName"):"")+"','"
								 			+ ((this.getData(this.objectlist[i],"kpiCode").replace(/\"/g,"")!=null&&this.getData(this.objectlist[i],"kpiCode").replace(/\"/g,"")!='')?this.getData(this.objectlist[i],"kpiCode").replace(/\"/g,""):"")+"','" //去掉其中的双引号
								 			+ ((this.getData(this.objectlist[i],"kpiName").replace(/\"/g,"")!=null&&this.getData(this.objectlist[i],"kpiName").replace(/\"/g,"")!='')?this.getData(this.objectlist[i],"kpiName").replace(/\"/g,""):"")+"','"
								 			+ ((this.getData(this.objectlist[i],"ciCode")!=null&&this.getData(this.objectlist[i],"ciCode")!='')?this.getData(this.objectlist[i],"ciCode"):"")+"','"
								 			+ ((this.getData(this.objectlist[i],"ciName")!=null&&this.getData(this.objectlist[i],"ciName")!='')?this.getData(this.objectlist[i],"ciName"):"")+"','"
								 			+ ((this.getData(this.objectlist[i],"providerName")!=null&&this.getData(this.objectlist[i],"providerName")!='')?this.getData(this.objectlist[i],"providerName"):"")+"','"
								 			+ ((this.getData(this.objectlist[i],"importanceLevelName")!=null&&this.getData(this.objectlist[i],"importanceLevelName")!='')?this.getData(this.objectlist[i],"importanceLevelName"):"")+"','"
								 			+ ((this.getData(this.objectlist[i],"occurTime")!=null&&this.getData(this.objectlist[i],"occurTime")!='')?df.format(new Date(this.getData(this.objectlist[i],"occurTime"))):"")+"','"
								 			+ ((this.getData(this.objectlist[i],"closeTime")!=null&&this.getData(this.objectlist[i],"closeTime")!='')?df.format(new Date(this.getData(this.objectlist[i],"closeTime"))):"")+"','"
								 			+ ((this.getData(this.objectlist[i],"workingOrderCode")!=null&&this.getData(this.objectlist[i],"workingOrderCode")!='')?this.getData(this.objectlist[i],"workingOrderCode"):"")+"','"
								 			+ ((this.getData(this.objectlist[i],"relevantFailureId")!=null&&this.getData(this.objectlist[i],"relevantFailureId")!='')?this.getData(this.objectlist[i],"relevantFailureId"):"")+"','"
								 			+ ((this.getData(this.objectlist[i],"riskEarlyWarningTypeId")!=null&&this.getData(this.objectlist[i],"riskEarlyWarningTypeId")!='')?this.getData(this.objectlist[i],"riskEarlyWarningTypeId"):"")+"','"
								 			+ ((this.getData(this.objectlist[i],"dataModelName")!=null&&this.getData(this.objectlist[i],"dataModelName")!='')?this.getData(this.objectlist[i],"dataModelName"):"")+"','"
								 			+ ((this.getData(this.objectlist[i],"status")!=null&&this.getData(this.objectlist[i],"status")!='')?this.getData(this.objectlist[i],"status"):"")+"','"
								 			+ ((this.getData(this.objectlist[i],"type")!=null&&this.getData(this.objectlist[i],"type")!='')?this.getData(this.objectlist[i],"type"):"")+"'"
								 			+")\" alt='"+i+"'>"+this.getData(this.objectlist[i],this.header[k][1])+"</a>";
											//add by guo xuan 2014-07-29 end
											}
		    						}
		    					}else{
		    						tdContext = "&nbsp;";
		    					}
		    					
		    					if(tdContext instanceof Object){
		    						tdContext=this.formateDate(tdContext);
		    					}
		    					
		    					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;
		    				}
		    				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){
		    		if(dateObj.month){
		    			return parseInt(dateObj.month)+1+"-"+dateObj.date+" "+dateObj.hours+":"+dateObj.minutes+":"+dateObj.seconds;
		    		}else{
		    			return dateObj;
		    		}
		    	},
		    	
		    	
		    	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 = "10%";
		    		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 = "30%";
		    		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-5'><input type=\"text\" class=\"form-control\" id=\"goPageNo\" value=\""
		    				+ (currentPage + 1)
		    				+ "\" size=\"3\" /></div><div class='col-sm-5'><input type=\"button\" class=\"form-control\" 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 = "10%";
		    		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)
		    	}

		    }
    
}