/********************************
 * 这是一个操作简单表格（没有合并单元格的。）的JavaScript类（该对象只针对IE）
 * 使用方法：
 * 1、用new SimpleTable(tblID)初始化一个IE表格对象
 *	2、可以调用相应的方法进行操作。
 * 具体方法的使用看代码注释。
 *******************************/
 
 
function SimpleTable(tblObj,tblColCount){
	if(tblObj==undefined || tblObj==null){
		throw "在SimpleTable方法中tblObj参数不能为空。";
	}
	
 	this.objTable=tblObj;		//页面的表格对象
 	this.getRowCount=getTableRowCount;					//表格的行数
 	this.colCount=tblColCount;								//表格的列数
 	this.insertRow=insertTableRow;						//插入一行
 	this.appendRow=appendTableRow;						//追加一行
 	this.deleteRow=deleteTableRow;						//删除一行
 	this.addRowData=addTableRowData;						//给新增行添加数据
 	this.curRow;												//表格的当前行（也就是当前进行操作的行。）
 	this.setCellValue=setTblCellValue;					//设置表格单元格的值
}

//得到表格的行数
function getTableRowCount(){
	if(this.objTable==null){
		throw "没有初始化表格对象！";
	}
	return this.objTable.rows.length;
}

//得到表格的列数
function getTableColCount(){
	if(this.objTable==null){
		throw "没有初始化表格对象！";
	}
	
	alert(this.objTable.columns);
	return this.objTable.cols.length;
}

/**
 * 向表格指定索引的行前插入一行
 * @param rowIndex:选中的行的索引值，它是整型数据
 * @param rowDatas:行的数据，这是一个数组类型的对象
 * @return 如果rowDatas为null，则增加一个空行的数据，返回新加的空表格行对象。
 *			否则返回该行的单元格数组对象。如果指定的行的索引值大于表格的行数，
 *			则在表格的最后追加。
 */
function insertTableRow(rowIndex,rowDatas){
	if(this.objTable==null){
		throw "没有初始化表格对象！";
	}
	
	//插入一行
	this.curRow=this.objTable.insertRow(rowIndex);
	if(rowDatas==null)	return this.curRow;
	
	//增加数据
	return this.addRowData(rowDatas);
}

/**
 * 向表格中追加一行
 * @param rowDatas:行的数据，这是一个数组类型的对象
 * @return 如果rowDatas为null，则在表格的最后追加一个空行,返回新加的空表格行对象。
 *				否则返回该行的单元格数组对象。
 */
function appendTableRow(rowDatas){
	if(this.objTable==null){
		throw "没有初始化表格对象！";
	}
	
	//追加一行
	this.curRow=this.objTable.insertRow(-1);
	if(rowDatas==null)	return this.curRow;
	//增加数据
	return this.addRowData(rowDatas);
}

/**
 * 删除表格指定索引的行
 * @param rowIndex:选中的行的索引值，它是整型数据
 * @return 如果rowIndex值超出了表格行的索引的范围，则返回为null，
 *				否则返回被删除的行的单元格数组。
 */
function deleteTableRow(rowIndex){
	if(this.objTable==null){
		throw "没有初始化表格对象！";
	}
	if(rowIndex==null || rowIndex<0 || rowIndex>this.getRowCount()){
		throw "表格中不存在行索引值为："+rowIndex+"的行。";
	}
	
	this.objTable.deleteRow(rowIndex);
}

/**
 * 给表格的一行增加数据
 * @param rowDatas:表格行中的数据，是一个数组对象。
 * @param tableRow:表格的行。
 */
function addTableRowData(rowDatas,tableRow){
	if(rowDatas==null)	return;
	
	var myTblRow=this.curRow;
	if(tableRow!=null){
		myTblRow=tableRow;
	}
	if(myTblRow==null){
		throw "没有初始化表格对象！";
	}
	var tblCells=new Array();
	var tblColCount=this.colCount;
	if(tblColCount==null){
		tblColCount=rowDatas.length;
	}
	for(var i=0; i<tblColCount; i++){
		tblCells[i]=myTblRow.insertCell(i);
		tblCells[i].runtimeStyle.backgroundColor = "#f5e9ec";
		var cellHtml="&nbsp;";
		if(rowDatas.length>i && rowDatas[i]!=null && rowDatas[i]!=""){
			cellHtml=rowDatas[i];
		}
		tblCells[i].innerHTML=cellHtml;
	}
	
	return tblCells;
}

/**
 * 设置表格的单元格的值
 * @param cellX 单元格的行号
 * @param cellY 单元格的列号
 */
function setTblCellValue(cellY,cellX,cellValue){
	this.objTable.rows[cellY].cells[cellX].innerHTML=cellValue;
}
