/**删除指定table的指定行
 * obj:要删除的行id
 * tableId:要操作的表格id 
 * */
function deleteRow(trId,tableId){
	var trObj = getElementById(trId);
	var objTable=getElementById(tableId);
	objTable.deleteRow(trObj.rowIndex);
}

/**上移一行
 * obj:要移动的行id
 * tableId:要操作的表格id
 * */
function upRow(trId,tableId){
	var trObj = getElementById(trId);
	var objTable=getElementById(tableId);
	var trObj2 = objTable.rows[trObj.rowIndex-1];
	//如果不是第一行，则与上一行交换顺序
	if(trObj2){
		swapNode(trObj,trObj2);
		return true;
	}else{
		return false;
	}
	
}

/**下移一行
 * obj:要移动的行id
 * tableId:要操作的表格id
 * */
function downRow(trId,tableId){
	var trObj = getElementById(trId);
	var objTable=getElementById(tableId);
	//通过链接对象获取表格行的引用
	var trObj2 = objTable.rows[trObj.rowIndex+1];
	if(trObj2){
		swapNode(trObj,trObj2);
		return true;
	}else{
		return false;
	}
	
}

/**置顶
 * obj:要移动的行id
 * tableId:要操作的表格id
 * */
function topRow(trId,tableId){
	var result = true;
	while(result){
		result = upRow(trId,tableId);
	}
}

/**置底
 * obj:要移动的行id
 * tableId:要操作的表格id
 * */
function bottomRow(trId,tableId){
	var result = true;
	while(result){
		result = downRow(trId,tableId);
	}
}

/**定义通用的函数交换两个结点的位置*/
function swapNode(node1,node2){
	//获取父结点
	var _parent=node1.parentNode;
	//获取两个结点的相对位置
	var _t1=node1.nextSibling;
	var _t2=node2.nextSibling;
	
	//将node2插入到原来node1的位置
	if(_t1)_parent.insertBefore(node2,_t1);
	else _parent.appendChild(node2);
	//将node1插入到原来node2的位置
	if(_t2)_parent.insertBefore(node1,_t2);
	else _parent.appendChild(node1);
}