var changeId = new Array();
changeId = [];
var changeCode = new Array();
changeCode = [];
var jsonStr;

//格式化日期
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 xcdChangeTable(){
	
	             jsonStr=document.getElementById('xcdChangeOrderPage').value;
	             var header = new Array();
	             
	              header[0] = ["<input type='checkbox' name='changeAll' id='changeAll' class='changeAll' onclick='javascript:changeCheckAll();'/>","changeCheckBox","2%",""];
		    	  header[1] = ["变更单编号","changeOrderCode","8%",""];
		    	  header[2] = ["变更单标题","changeOrderTitle","35%","35"];
		    	  header[3] = ["变更单描述","changeOrderComments","10%","10"];
		    	  header[4] = ["省份","provinceName","5%",""];
		    	  header[5] = ["事件发生时间","changeStartTime","20%",""];
		    	  header[6] = ["实际完成时间","changeEndTime","20%",""];
		    	 
		    	  window.paggingOne = new table_paggingOne({limit:10,tableId:'xcdChangeTable',header:header});
		    	  paggingOne.pagging(jsonStr);

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

table_paggingOne.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;
		// 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==5){
									if(tdContext=="&nbsp;"){
										tdContext = "&nbsp;";
									}else{
										tdContext = df.format(new Date(tdContext));
									}
									
								}else if(k==6){
									if(tdContext=="&nbsp;"){
										tdContext = "&nbsp;";
									}else{
										tdContext = df.format(new Date(tdContext));
									}
									
								}

							}
						} else {
							     
							tdContext="<input type='checkbox' name='changeBox"+i+"' class='changeBox' onclick='javascript:checkChangeChoose(this);'/>"+"<span style='display:none'>"+i+"</span>";
							     
							     for ( var t = 0; t < changeId.length; t++) {
										if (changeId[t] == this.getData(this.objectlist[i], "changeOrderId")){
											   tdContext="<input type='checkbox' name='changeBox"+i+"' class='changeBox' checked onclick='javascript:checkChangeChoose(this);'/>"+"<span style='display:none'>"+i+"</span>";
											   break;
										}
									}
						}
					} 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];
		}
	},

	operator : function(_start, _end) {
		$("#changeAll").attr("checked",false);
		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 currentPage1 = 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 = "20%";
		td3.align = "center";
		// td3.innerHTML = "Page <input id='table_pagging_page_input_id'
		// type='text' size='1' id='currentIndex' value='"+(currentPage1+1)+"'
		// >of&nbsp;"+totalPage;
		td3.innerHTML = "<div class='col-sm-5'><input type=\"text\" class=\"form-control\" id=\"goPageNo1\" value=\""
			+ (currentPage1 + 1)
			+ "\" size=\"3\" /></div><div class='col-sm-5' style='margin:0 -28px'><input type=\"button\" class=\"form-control\" value=\"跳转\" onclick=\"javascript:"
			+ objectName + ".jump2PageNum1()\" /></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'>" + (currentPage1 + 1)
				+ "</span>/" + totalPage;
	},

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

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

		}

	},

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

}
var changeRows= new Array();
function checkChangeChoose(clickObj){
	var clickFlag = true;
	//$("#changeAll").attr("checked",false);
	var obj = eval('(' + jsonStr + ')');
	if(clickObj.checked){
		$(".changeBox").each(function(){
			if($(this).attr("checked") == null||$(this).attr("checked") == false){	
				clickFlag = false;
			}
		});
		
		changeRows.push(parseInt(clickObj.nextSibling.innerHTML));
		changeId.push(parseInt(obj[parseInt(clickObj.nextSibling.innerHTML)].changeOrderId));
		changeCode.push(obj[parseInt(clickObj.nextSibling.innerHTML)].changeOrderCode);

	}else{
		
		$(".changeBox").each(function(){
			if($(this).attr("checked") == null||$(this).attr("checked") == false){	
				clickFlag = false;
			}
		});
		
		var index=-1;
		for (var i = 0; i < changeId.length; i++) {
			if (changeId[i] == parseInt(obj[parseInt(clickObj.nextSibling.innerHTML)].changeOrderId)) {
				index=i;
			}
			
		}
		
		if (index > -1) {
			changeId.splice(index, 1);
			changeRows.splice(index, 1);
			changeCode.splice(index, 1);
		}
	}
	$("#changeAll").attr("checked",clickFlag);
}
function changeCheckAll(){
	var obj = eval('(' + jsonStr + ')');
	if($("#changeAll").attr("checked")=="checked"){//全选
		$(".changeBox").each(function(){
			changeId.push(obj[($(this).attr("name")).substr(9)].changeOrderId);
			changeRows.push(($(this).attr("name")).substr(9));
			changeCode.push(obj[($(this).attr("name")).substr(9)].changeOrderCode);
	     	$(this).attr("checked","checked");
	   	});
		var uniqueArr = new Array();
		var uniqueRow = new Array();
		var uniqueCode = new Array();
		uniqueArr = [];
		uniqueRow = [];
		uniqueCode = [];
		$.each(changeId, function(i, el){
		    if($.inArray(el, uniqueArr) == -1) uniqueArr.push(el);
		});
		$.each(changeRows, function(i, el){
		    if($.inArray(el, uniqueRow) == -1) uniqueRow.push(el);
		});
		$.each(changeCode, function(i, el){
		    if($.inArray(el, uniqueCode) == -1) uniqueCode.push(el);
		});
		changeId=[];
		changeCode=[];
		changeRows=[];
		changeRows = uniqueRow;
		changeCode = uniqueCode;
		changeId=uniqueArr;
//		alert(ids.join(","));///////////////////////////////////////////////////////////////////////////////////////////
	}else{//全不选
		$(".changeBox").each(function(){
			var index=-1;
			for (var i = 0; i < changeId.length; i++) {
				if (changeId[i] == obj[($(this).attr("name")).substr(9)].changeOrderId) {
					index=i;
				}
				
			}
			
			if (index > -1) {
				changeId.splice(index, 1);
				changeCode.splice(index, 1);
				changeRows.splice(index, 1);
			}
			
	     	$(this).attr("checked",false);
	     	
	   	});
	}
	  
}

function getChangeProvinceNames(){
	var obj = eval('(' + jsonStr + ')');
	var provinceNames = new Array();
	for(var i=0;i<changeRows.length;i++){
		provinceNames.push(obj[changeRows[i]].provinceName);
	}
	return provinceNames;
}

function isChangeSameProv(){
	 var changeTrue = true;
	 var changeProvince = getChangeProvinceNames();
	for(var i=0;i<changeProvince.length;i++){
		for(var j=0;j<changeProvince.length;j++){
			if(i!=j){
				if(changeProvince[i]!=changeProvince[j]){
					changeTrue = false;
				}
			}
		}
	} 
	return changeTrue;
}