function JsGrid(objName, divName) {
	this.config = {linkNum:0, leftNum:0, isDisplayPage:true, isDisplayCheck:true, isDisplaySum:true, isDisplayTitle:true, isDisplayHead:true, title:"\u67e5\u8be2\u7ed3\u679c", batchName:"\u5168\u90e8\u9009\u4e2d"};
	this.pagination = {rsSum:0, pageSum:1, pageno:1, rows:2};
	this.obj = objName;
	this.service = "";
	this.linkNum=[];
	this.linkService=[];
	this.style = [];
	this.columns = [];
	this.images = [];
	this.order = [];
	this.orderby = null;
	this.desc = true;
	this.ajaxImg = "img/load.gif";    //载入图片
	this.functions = [];
	this.divName = divName;	             //显示的div的id
	this.dataList = null;				 //数据集
	this.msg = null;					 //显示的信息
}
JsGrid.prototype.addLink = function (linkNum, linkService) {
	this.linkNum[linkNum] = linkNum;
	this.linkService[linkNum] = linkService;
};
JsGrid.prototype.addColumn = function (title, img, func) {
	this.columns[this.columns.length] = title;
	this.images[this.images.length] = img;
	this.functions[this.functions.length] = func;
};
JsGrid.prototype.toPrevious = function () {
	if(this.pagination.pageno > 1)
	{
		this.pagination.pageno = this.pagination.pageno - 1;
	}
	else
	{
		return;
	}
	//pageInit();
	eval(this.service + "()");
};
JsGrid.prototype.toNext = function () {
	if(this.pagination.pageno < this.pagination.pageSum)
	{
		this.pagination.pageno = this.pagination.pageno + 1;
	}
	else
	{
		return;
	}
	
	//pageInit();
	eval(this.service + "()");
};
JsGrid.prototype.toFirst = function () {
	this.pagination.pageno = 1;
	//pageInit();
	eval(this.service + "()");
};
JsGrid.prototype.toLast = function () {
	this.pagination.pageno = this.pagination.pageSum;
	//pageInit();
	eval(this.service + "()");
};

JsGrid.prototype.init = function () {
	this.columns = [];
	this.images = [];
	this.functions = [];
};
JsGrid.prototype.checkedAll = function () {
	var chkId = "";
	for (var i in arguments[0]) {
		if (i == "srcElement") {
			chkId = arguments[0][i].id;
		}
	}
	if (chkId == "") {
		return;
	}
	var myCheckAll = document.getElementById(chkId);
	var x = document.getElementsByTagName("input");
	for (var n = 0; n < x.length; n++) {
		if (x[n].type == "checkbox" & x[n].id != "" & x[n].id.indexOf(chkId + "_") != -1) {
			x[n].checked = myCheckAll.checked;
		}
	}
};
JsGrid.prototype.callOrder = function (c) {
	
	var ob = this.order[c-1];
	if (ob == this.orderby)
	{
		this.desc = !this.desc;
	}
	this.orderby = this.order[c-1];	
	if (this.orderby != null && this.orderby != "" && this.orderby != 'undefined')
	{
		this.pagination.pageno = 1;
		eval(this.service + "()");
	}
};
JsGrid.prototype.wait = function () {
	//获取网页上的DIV以便定位
	var mybody = document.getElementById(this.divName);
	mybody.innerHTML = "";
	//创建整体表格
	var pageTable = document.createElement("table");
	pageTable.setAttribute("width", "100%");
	pageTable.setAttribute("border", 1);
	var pageTableBody = document.createElement("tbody"); 

	//创建一行显示标题
	if (this.config.isDisplayTitle) {
		var pageTableTitle = document.createElement("tr");
		var td = document.createElement("td");
		var c2 = document.createTextNode(this.config.isDisplayTitle);

		td.appendChild(c2);
		pageTableTitle.appendChild(td);
		pageTableBody.appendChild(pageTableTitle);
	}
	
	//创建一行显示数据
	var pageTableTr = document.createElement("tr");
	var dataTd = document.createElement("td");

	//****创建数据表格*********************************************
	var tdataTable = document.createElement("table");
	tdataTable.setAttribute("width", "100%");
	var tdataTableBody = document.createElement("tbody");
	var tdataTableRow = document.createElement("tr");
	var tdataTableTd = document.createElement("td");
	var dataTable = document.createElement("table");
	dataTable.setAttribute("width", "100%");
	var dataTableBody = document.createElement("tbody");
	var mycurrent_row = document.createElement("tr");
	var td = document.createElement("td");
	td.innerHTML = "正在加载...";//"<img src='" + this.ajaxImg + "'>";
	mycurrent_row.appendChild(td);
	dataTableBody.appendChild(mycurrent_row);
	dataTable.appendChild(dataTableBody); 
//*************************************************
	tdataTableTd.appendChild(dataTable);
	tdataTableRow.appendChild(tdataTableTd);
	tdataTableBody.appendChild(tdataTableRow);
	tdataTable.appendChild(tdataTableBody);
	dataTd.appendChild(tdataTable);
	pageTableTr.appendChild(dataTd);
	pageTableBody.appendChild(pageTableTr);	
	
//**创建页脚*******************************************
	var pageTableFooter = document.createElement("tr");
	var FooterTd = document.createElement("td");
	var FooterTable = document.createElement("table");
	FooterTable.setAttribute("width", "100%");
	var FooterTableBody = document.createElement("tbody");
	var FooterTableTr = document.createElement("tr");
	var FooterTableTd1 = document.createElement("td");
	FooterTableTd1.setAttribute("align", "left");
	if (this.config.isDisplayCheck) {
		var FootCheck = document.createElement("input");
		FootCheck.type = "checkbox";
		FootCheck.id = this.obj + "_chk";
		//FootCheck.name = this.obj + "_chk";
		FootCheck.attachEvent("onclick", this.checkedAll);
		var FootCheckText = document.createTextNode(this.config.batchName);
		FooterTableTd1.appendChild(FootCheck);
		FooterTableTd1.appendChild(FootCheckText);
	}
	var FooterTableTd2 = document.createElement("td");
	if (this.config.isDisplayPage) {
		FooterTableTd2.setAttribute("align", "right");
		FooterTableTd2.innerHTML = "<a href='javascript:" + this.obj + ".toPrevious()'>\u4e0a\u9875</a> ";
		FooterTableTd2.innerHTML += "<a href='javascript:" + this.obj + ".toNext()'>\u4e0b\u9875</a> ";
		FooterTableTd2.innerHTML += "<a href='javascript:" + this.obj + ".toFirst()'>\u9996\u9875</a> ";
		FooterTableTd2.innerHTML += "<a href='javascript:" + this.obj + ".toLast()'>\u5c3e\u9875</a> ";
		FooterTableTd2.innerHTML += "\u7b2c" + this.pagination.pageno + "/" + this.pagination.pageSum + "\u9875 \u5171" + this.pagination.rsSum + "条记录";
	}
	FooterTableTr.appendChild(FooterTableTd1);
	FooterTableTr.appendChild(FooterTableTd2);
	FooterTableBody.appendChild(FooterTableTr);
	FooterTable.appendChild(FooterTableBody);
	FooterTd.appendChild(FooterTable);
	pageTableFooter.appendChild(FooterTd);
	pageTableBody.appendChild(pageTableFooter);
	//****************************************************
	pageTable.appendChild(pageTableBody);
	mybody.appendChild(pageTable);
};
JsGrid.prototype.write = function () {
	//获取总页数	
	var pageCount = parseInt(this.pagination.rsSum / this.pagination.rows);
	var remain = this.pagination.rsSum % this.pagination.rows;

	if(remain != 0)
	{
		pageCount = pageCount + 1;
	}
	if(pageCount == 0)
	{
		pageCount = 1;
	}
	this.pagination.pageSum = pageCount;
	
	//获取网页上的DIV以便定位
	var mybody = document.getElementById(this.divName);
	mybody.innerHTML = "";
	//创建整体表格
	var pageTable = document.createElement("table");
	pageTable.setAttribute("width", "100%");
	pageTable.setAttribute("border", 1);
	var pageTableBody = document.createElement("tbody"); 
	
	//创建一行显示标题
	if (this.config.isDisplayTitle) {
		var pageTableTitle = document.createElement("tr");
		var td = document.createElement("td");
		var c2 = document.createTextNode(this.config.title);
		td.appendChild(c2);
		var msgSpan = null;

		if(this.msg != null && this.msg != "")
		{
			msgSpan = document.createElement("span");
			msgSpan.innerHTML = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color='red'>" + this.msg + "</font>";
			
			td.appendChild(msgSpan);
		}		

		pageTableTitle.appendChild(td);
		pageTableBody.appendChild(pageTableTitle);
	}
	
	//创建一行显示数据
	var pageTableTr = document.createElement("tr");
	var dataTd = document.createElement("td");

	//****创建数据表格*********************************************
	var tdataTable = document.createElement("table");
	tdataTable.setAttribute("width", "100%");
	var tdataTableBody = document.createElement("tbody");
	var tdataTableRow = document.createElement("tr");
	var tdataTableTd = document.createElement("td");
	var dataTable = document.createElement("table");
	dataTable.setAttribute("width", "100%");
	var dataTableBody = document.createElement("tbody");
	var rnum = 0;	
	//显示空结果
	if (this.dataList == null) {
		var mycurrent_row = document.createElement("tr");
		var td = document.createElement("td");
		var c1 = document.createTextNode("\u6ca1\u6709\u67e5\u8be2\u7ed3\u679c");
		td.appendChild(c1);
		mycurrent_row.appendChild(td);
		dataTableBody.appendChild(mycurrent_row);
	} else {
		//创建列表
		for (var ans in this.dataList) {
			var row = this.dataList[ans];
			var cnum = 0;
			var cid = "";
			var mycurrent_row = document.createElement("tr");
			if (rnum == 0) 
			{
				if (this.config.isDisplayHead) {
					//显示数据列
					for (var col in row) {
						if (rnum == 0) 
						{
							//处理id列	
							if (cnum != 0) 
							{
								var td = document.createElement("th");
								
								if(this.style[cnum] == undefined){
									this.style[cnum] = "center";
								}
								td.setAttribute("align", this.style[cnum]);
								td.setAttribute("id",this.obj + "_col_"+cnum);
								var cv = row[col];
								var ob = this.order[cnum-1];
								if (ob != null && ob != "" && ob != 'undefined')
								{
									td.innerHTML = "<a href=javascript:"+this.obj+".callOrder('"+cnum+"')>" + cv+ "</a>";
								}
								else
								{
									td.innerHTML = cv;									
								}
								td.click = "";
								mycurrent_row.appendChild(td);
							}
						} 
						else 
						{
							//处理id列	
							if (cnum == 0) {
								var cv = row[col];
								cid = cv;
							} 
							else 
							{
								//处理左对齐列
								var cv = row[col];
								var td = document.createElement("td");
								//处理显示checkbox
								if (cnum == 1 & this.config.isDisplayCheck) {
									if(this.style[cnum] == undefined){
									this.style[cnum] = "center";
								    }

									td.setAttribute("align", this.style[cnum]);
									var rowCheck = document.createElement("input");
									rowCheck.type = "checkbox";
									rowCheck.id = this.obj + "_chk_" + cid;
									td.appendChild(rowCheck);
								}
								td.innerHTML += cv;								
								mycurrent_row.appendChild(td);
							}
						}
						cnum++;
					}
					//显示操作列
					if (rnum == 0) {
						for (var col in this.columns) {
							var td = document.createElement("th");
							var c1 = document.createTextNode(this.columns[col]);
							td.appendChild(c1);
							mycurrent_row.appendChild(td);
						}
					} else {
						for (var col in this.images) {
							var td = document.createElement("td");
							td.setAttribute("align", "center");
							td.innerHTML = "<a style='cursor:hand' onclick=javascript:" + this.functions[col] + "('" + cid + "') >" + "<img src='" + this.images[col] + "' ></a>";
							mycurrent_row.appendChild(td);
						}
					}
					dataTableBody.appendChild(mycurrent_row);
				}
			}
			else 
			{
				//显示数据列
				for (var col in row) {
					if (rnum == 0) {
						//处理id列	
						if (cnum != 0) {
							//处理左对齐列
							var cv = row[col];
							var td = document.createElement("th");
							var c1 = document.createTextNode(cv);
							td.appendChild(c1);
							mycurrent_row.appendChild(td);
						}
					} else {
						//处理id列	
						if (cnum == 0) {
							var cv = row[col];
							cid = cv;
						} else {
							//处理左对齐列
							var cv = row[col];
							var td = document.createElement("td");
							
							if(this.style[cnum] == undefined){
									this.style[cnum] = "center";
							}
							td.setAttribute("align", this.style[cnum]);
							//处理显示checkbox
							if (cnum == 1 & this.config.isDisplayCheck) {								
								td.innerHTML = "<input type='checkbox' id='" + this.obj + "_chk_" + cid +"' name='" + this.obj + "_opt' value='" + cid + "' />";
							}
							//处理超链接列													
							if (this.linkNum[cnum]==cnum)
							{
								td.innerHTML += "<a href='#' style='cursor:hand' onclick=javascript:"+this.linkService[cnum]+"('"+cid+"')>"+cv+"</a>";
							}
							else
							{
								if(cv.length > 25)
								{
									td.title = cv;
									cv = cv.substring(0,25) + "...";
								}
								td.innerHTML += cv;
							}
							mycurrent_row.appendChild(td);
						}
					}
					cnum++;
				}
				//显示操作列
				if (rnum == 0) {
					for (var col in this.columns) {
						var td = document.createElement("th");
						var c1 = document.createTextNode(this.columns[col]);
						td.appendChild(c1);
						mycurrent_row.appendChild(td);
					}
				} else {
					for (var col in this.images) {
						var td = document.createElement("td");
						td.setAttribute("align", "center");
						td.innerHTML = "<a  style='cursor:hand' onclick=javascript:" + this.functions[col] + "('" + cid + "') >" + "<img src='" + this.images[col] + "' ></a>";
						mycurrent_row.appendChild(td);
					}
				}
				dataTableBody.appendChild(mycurrent_row);
			}
			rnum++;
		}
	}
	dataTable.appendChild(dataTableBody); 
//*************************************************
	tdataTableTd.appendChild(dataTable);
	tdataTableRow.appendChild(tdataTableTd);
	tdataTableBody.appendChild(tdataTableRow);
	tdataTable.appendChild(tdataTableBody);
	dataTd.appendChild(tdataTable);
	pageTableTr.appendChild(dataTd);
	pageTableBody.appendChild(pageTableTr);	
	
//**创建页脚*******************************************
	//计算分页值
	var pageTableFooter = document.createElement("tr");
	var FooterTd = document.createElement("td");
	var FooterTable = document.createElement("table");
	FooterTable.setAttribute("width", "100%");
	var FooterTableBody = document.createElement("tbody");
	var FooterTableTr = document.createElement("tr");
	var FooterTableTd1 = document.createElement("td");
	FooterTableTd1.setAttribute("align", "left");
	FooterTableTd1.innerHTML ="<a href='javascript:refresh("+this.obj+")'>刷新</a>&nbsp;&nbsp;" +  "<a href='javascript:gotocms("+this.obj+")'> 显示全部<a>";
	if (this.config.isDisplayCheck) {
		var FootCheck = document.createElement("input");
		FootCheck.type = "checkbox";
		FootCheck.id = this.obj + "_chk";
		//FootCheck.name = this.obj + "_chk";
		FootCheck.attachEvent("onclick", this.checkedAll);
		var FootCheckText = document.createTextNode(this.config.batchName);
		FooterTableTd1.appendChild(FootCheck);
		FooterTableTd1.appendChild(FootCheckText);
	}
	var FooterTableTd2 = document.createElement("td");
	if (this.config.isDisplayPage) {
		FooterTableTd2.setAttribute("align", "right");		
		if(this.pagination.pageno == 1 || this.pagination.pageSum <= 1)
		{
			FooterTableTd2.innerHTML = "\u4e0a\u9875 ";
		}
		else
		{
			FooterTableTd2.innerHTML = "<a href='javascript:" + this.obj + ".toPrevious()'>\u4e0a\u9875</a> ";
		}
		if(this.pagination.pageno == this.pagination.pageSum || this.pagination.pageSum <= 1)
		{
			FooterTableTd2.innerHTML += "\u4e0b\u9875 ";
		}
		else
		{
			FooterTableTd2.innerHTML += "<a href='javascript:" + this.obj + ".toNext()'>\u4e0b\u9875</a> ";
		}
		if(this.pagination.pageSum <= 1 || this.pagination.pageno == 1)
		{
			FooterTableTd2.innerHTML += "\u9996\u9875 ";			
		}
		else
		{
			FooterTableTd2.innerHTML += "<a href='javascript:" + this.obj + ".toFirst()'>\u9996\u9875</a> ";			
		}
		if(this.pagination.pageSum <= 1 || this.pagination.pageno == this.pagination.pageSum)
		{
			FooterTableTd2.innerHTML += "\u5c3e\u9875 ";
		}
		else
		{
			FooterTableTd2.innerHTML += "<a href='javascript:" + this.obj + ".toLast()'>\u5c3e\u9875</a> ";
		}
		FooterTableTd2.innerHTML+="第"+this.pagination.pageno+"/"+this.pagination.pageSum+"页 共"+this.pagination.rsSum+"条记录";	
	}
	FooterTableTr.appendChild(FooterTableTd1);
	FooterTableTr.appendChild(FooterTableTd2);
	FooterTableBody.appendChild(FooterTableTr);
	FooterTable.appendChild(FooterTableBody);
	FooterTd.appendChild(FooterTable);
	pageTableFooter.appendChild(FooterTd);
	pageTableBody.appendChild(pageTableFooter);
//****************************************************
	pageTable.appendChild(pageTableBody);
	mybody.appendChild(pageTable);
};


