/***********************************************************************************/
/****   GRID控件前台JS类   ***********************************************************/
/****   主要功能：插入，删除，隐藏一行；加亮显示一行；键盘移动焦点；拖动单元格宽度等×××××××××××/
/*************************************************************************************/
//   类名：GRID
function GRID()
{
//私有变量
var divAll=null;		//外面的总的DIV
var divTou=null;		//表头的DIV
var divTi=null;			//表体的DIV
var divSum=null;		//合计的DIV
var divTiLeftCol=null;	//表体左侧固定列
var divTouLeftCol=null;	//表头左侧固定列
var divSumLeftCol=null;	//合计左侧固定列
var inputSort=null;	//标识排序类型的隐藏域
var inputSortName=null;	//标识排序列名的隐藏域
var inputPk=null;	//标识主键的隐藏域
var tabTou=null;		//表头的TABLE
var tabTi=null;			//表体的TABLE
var tabSum=null;		//合计的TABLE
var tableArray=new Array(); //表体的数据集合
var sortCol = 0;		//要排序的列
var currentLine=null;	//当前操作的行
var isMouDown=false;	//标识鼠标按下的状态
var isCanSort=true;	//标识鼠标按下是否要执行排序
var OldPlace=null;		//原来的位置
var nowPlace=null;		//新位置
var curTd=null;			//当前操作的TD,调整列宽
var curHr=null;			//当前GRID的竖线
var primaryKeyCol=-1;	//主键列
var deleteCol=-1;	//隐藏列
var indexCol=-1;	//序号列
var lastSortTd=null;//上次排序的列
var isSubmit=true;	//标识是否后台提交排序
var outCanSort=true;//是否能排序，带树列时不能
//树状列表
var paddingLeft=0;//缩进
var xmlroot=null;//XML对象
var OpenImg="open.gif";	//打开图片
var CloseImg="close.gif";//关闭图片
var sortType = "1";	//表示数字类型的排序规则,ASCII或数字大小,默认为ASCII
var orderType = "1";   //表示排序的顺序,默认为升序

//公共变量
this.name=null;			//GRID的名称


//方法
//初始化,参数列表为外面DIV的ID,序号列，主键列，隐藏列，单元格的单击事件，双击事件
this.init=init;
function init(odivid,Index,primaryKey,Delete,clickEvent,dblclickEvent)
{
	this.name=odivid;
divAll=document.all(odivid);

if(divAll!=null && divAll.tagName=="DIV")
	{
	divTou=divAll.children[0].children[0];
	divTi=divAll.children[1];
	divSum=divAll.children[2].children[0];
	divTiLeftCol=divAll.children[3];
	divTouLeftCol=divAll.children[0].children[1];
	divSumLeftCol=divAll.children[2].children[1];
	inputSort=divAll.children[4];
	inputSortName=divAll.children[5];
	inputPk=divAll.children[6];
	if(divTou!=null)
		tabTou=divTou.children[0];
	if(divTi!=null)
		tabTi=divTi.children[0];
	if(divSum!=null)
		tabSum=divSum.children[0];
	//为divSum定位
	divSum.parentElement.style.top=parseInt(divTi.offsetTop)+parseInt(divTi.clientHeight)-(parseInt(divSum.clientHeight))+1;

	//由于出现了滚动条,重新给宽度赋值

	if(divTi.clientHeight>21)  //不加入此判断，则会出错 NFZR 2007-3-9
		divTiLeftCol.style.height=divTi.clientHeight-21;

		divTou.style.width=divTi.clientWidth;
		divSum.style.width=divTi.clientWidth;
	//
//为页面添加一个竖线
	//this.addHr();
	//添加事件

	tabTi.attachEvent("onmousedown",this.doclick);
	tabTi.attachEvent("onkeydown",this.dokeydownTab);
	divTi.attachEvent("onscroll",this.doscroll);
	divTou.attachEvent("onmousedown",this.domousedown);
	divTou.attachEvent("onmouseup",this.domouseup);
	divTou.attachEvent("onmousemove",this.domousemove);
	divTou.attachEvent("onmouseout",this.domouseout);
	tabTou.attachEvent("onclick",this.doTabTouClick);
	divAll.attachEvent("onresize",this.doresize);
	if(clickEvent!="" && clickEvent!=null)
	tabTi.attachEvent("onclick",clickEvent);
	if(dblclickEvent!="" && dblclickEvent!=null)
	tabTi.attachEvent("ondblclick",dblclickEvent);
	//合计,后台计算合计
    //setSumValue();
//显示排序箭头

var sort=inputSort.value.toString();
var sortname=inputSortName.value.toString();
for(var i=1;i<tabTou.rows[0].cells.length-1;i++)
		{
		var obj=tabTou.rows[0].cells[i];
		obj=obj.children[0];
		if(obj.tagName=="SPAN")
				{
				var attname=obj.getAttribute("sortName");
				if(attname==sortname)
					{
					lastSortTd=obj;
					if(sort.toUpperCase()=="DESC")
						{
						obj.children[0].innerText="6";
						obj.children[0].style.display="inline";
						}
					else
						{
						obj.children[0].innerText="5";
						obj.children[0].style.display="inline";
						}
					}
				}
		}
	}
 divSum.style.display='none';  //屏蔽合计行 2007-3-9
 divSumLeftCol.style.display='none';  //屏蔽合计行 2007-3-9
}
//为页面添加一个竖线，调整列用
this.addHr=addHr;
function addHr()
	{
	var ohr=document.createElement("hr");
	ohr.width=1;
	ohr.size=20;
	ohr.color="black";
	ohr.style.position="absolute";
	ohr.style.display="none";
	document.body.appendChild(ohr);
	curHr=ohr;
	}
//加亮显示一行,参数为要加亮的行
this.lightLine=lightLine;
function lightLine(otr)
	{
		if(otr.rowIndex==0 )
		return;
	if(otr!=null && otr.tagName=="TR")
		{
		try
			{
			/*for(var i=0;i<otr.cells.length;i++)
				{
				var otd=otr.cells[i];
				otd.className="lightSkin";
				}
				*/
				otr.className="lightSkin";
			}
			catch(ex)
			{return;}
		}
	}

//还原加亮的行，参数为要恢复的行
this.delightLine=delightLine;
function delightLine(otr)
	{
	if(otr!=null && otr.tagName=="TR")
		{
		try
			{
			/*
			for(var i=0;i<otr.cells.length;i++)
				{
				var otd=otr.cells[i];
				//otd.className="";
				}
				*/
				otr.className="";
			}
			catch(ex)
			{return;}
		}
	}

//单击事件，选择当前行
this.doclick=doclick;
function doclick()
	{
	var obj=window.event.srcElement;
	if(obj==null) return ;
	var oTr=null;

	switch (obj.tagName)
	{
	case "TR":
		oTr=obj;
		break;
	case "TD":
		oTr=obj.parentElement;
		break;
	case "SPAN":
		oTr=obj.parentElement.parentElement;
		break;
	case "INPUT":
		oTr=obj.parentElement.parentElement;
		if(obj.type=="checkbox"  || obj.type=="radio" )
			doCheck(obj);
		break;
	case "SELECT":
		oTr=obj.parentElement.parentElement;
		break;
	default :
		return;
	}
	try
		{
	if(currentLine!=null)
		delightLine(currentLine);
	if(oTr!=null)
		lightLine(oTr);
	currentLine=oTr;
		}
		catch(ex)
		{
			//alert(ex.description);
		}
	}
//键盘事件，回车键换行，上下键上下移动
this.dokeydownTab=function()
	{
	var obj=window.event.srcElement;
	var otd=obj.parentElement;
	if(otd==null|| otd.tagName!="TD")
		return false;
	var otr=otd.parentElement;
	if(otr==null|| otr.tagName!="TR")
		return false;
	var tab=otr.parentElement.parentElement;
	if(tab==null||tab.tagName!="TABLE")
		return;
	if(obj==null) return;
	try
		{
//		if(window.event.keyCode=="13")
//			{
//				movetToRight(obj);
//				return;
//			if(IsLast(obj))
//				{
//				addRow();
//				var nobj=otr.nextSibling.children[0].children[0];
//				if(nobj!=null)
//					nobj.focus();
//				}
//			else
//				{
//				if(otd==otr.cells[otr.cells.length-1])
//					{
//						var nobj=otr.nextSibling.children[0].children[0];
//
//						//if(nobj!=null)
//						//nobj.focus();
//					}
//				else
//					{
//					var ntd=otd.nextSibling.children[0];
//					if(ntd!=null)
//						{
//						ntd.focus();
//						}
//					}
//				}
//			}
		if(window.event.keyCode==38 && tab==tabTi)
			moveFocus(obj,-1);
		if(window.event.keyCode==40 && tab==tabTi)
			moveFocus(obj,1);
		if(window.event.keyCode==37 && tab==tabTi)
			{
			event.returnValue=false;
			event.cancelBubble=true;
			}
			//movetToLeft(obj)
		if(window.event.keyCode==39 && tab==tabTi)
			{
			event.returnValue=false;
			event.cancelBubble=true;
			}
			//movetToRight(obj)

		}
		catch(ex)
		{}
	}

//内部方法，判断当前控件是否是最后第二行的最后一个
this.IsLast=IsLast;
function IsLast(obj)
	{
	if(obj==null) return;
	var otd=obj.parentElement;
	if(otd==null|| otd.tagName!="TD")
		return false;
	var otr=tabTi.rows[tabTi.rows.length-2];
	if(otr==null|| otr.tagName!="TR")
		return false;
	if(otr.cells[otr.cells.length-1]==otd)
		return true;
	else
		return false;
	}

//左右键移动焦点
this.moveFocusUd=moveFocusUd;
function moveFocusUd(obj,par)
	{
	if(obj==null) return;
	var otd=obj.parentElement;
	if(otd==null|| otd.tagName!="TD")
		return false;
	var otr=otd.parentElement;
	if(otr==null|| otr.tagName!="TR")
		return false;
	var trindex=otr.rowIndex;
	var tdindex=countOT(otd);
		try
			{
			if(tdindex+par >otr.cells.length-1 || tdindex+par<0)
				return;
			var ntd=otr.cells[tdindex+par];
			if(ntd.children[0]!=null)
				ntd.children[0].focus();
			//delightLine(currentLine);
			//lightLine(ntr);
			//currentLine=otr;
			}
			catch(ex)
			{alert("发生错误！"+ex.description);}
		}
// add by yao
this.movetToRight = movetToRight;
function movetToRight(obj){
	if(obj==null) return;
	var otd=obj.parentElement;
	if(otd==null|| otd.tagName!="TD")
		return false;
	var otr=otd.parentElement;
	if(otr==null|| otr.tagName!="TR")
		return false;
	var index = parseInt(otd.getAttribute("index"))+parseInt(1);
	var objNext = null;//otr.cells[i]
	var tdindex=countOT(otd);
	var trindex=otr.rowIndex;
	var i;
	for( i=tdindex;i<otr.cells.length;i++){
		var objTemp= otr.cells[i];
		if(objTemp.display!="none"&&objTemp.getAttribute("index")==index){
			objNext = otr.cells[i]
			break;
		}
	}
	//alert(otd==otr.cells[otr.cells.length-1]);
	if(otd==otr.cells[otr.cells.length-2]){
		if(trindex==tabTi.rows.length-1){
			//增加行
			addRow();
		}

		var nobj=findFTd(otr.nextSibling).children[0];
		if(nobj!=null)
		nobj.focus();
		return ;
	}

	objNext.children[0].focus();
	}
this.movetToLeft = movetToLeft;
function movetToLeft(obj){

	if(obj==null) return;
	var otd=obj.parentElement;
	if(otd==null|| otd.tagName!="TD")
		return false;
	var otr=otd.parentElement;
	if(otr==null|| otr.tagName!="TR")
		return false;
	var index = parseInt(otd.getAttribute("index"))-parseInt(1);
	var objNext = otr.cells[i]
	var tdindex=countOT(otd);
	var trindex=otr.rowIndex;
	var i;

	for( i=tdindex;i>=0;i--){
		var objTemp= otr.cells[i];
		if(parseInt(objTemp.getAttribute("index"))<=index){
			objNext = otr.cells[i]

			break;
		}
	}
	if(i<0){
		if(trindex==1){
			//在第一行不移动
			return
		}
		var nobjtr=otr.parentElement.rows[trindex-1]
		var nobj=nobjtr.children[nobjtr.cells.length-1].children[0];
		if(nobj!=null)
		nobj.focus();
		return ;
	}
	//alert(objNext.index)
	objNext.children[0].focus();
	//alert("")
	}
//上下键移动焦点
this.moveFocus=moveFocus;
function moveFocus(obj,par)
	{

	if(obj==null) return;
	var otd=obj.parentElement;
	if(otd==null|| otd.tagName!="TD")
		return false;
	var otr=otd.parentElement;
	if(otr==null|| otr.tagName!="TR")
		return false;
	var trindex=otr.rowIndex;
	//var tdindex=countOT(otd);
	var tdindex=otd.cellIndex;//countOT(otd);
		try
			{
			if(trindex+par >=tabTi.rows.length)
				return;
			var ntr=tabTi.rows[trindex+par];
			var ntd=ntr.cells[tdindex];
			if(trindex==1 && par==-1)
				{
				//alert(tabTi.rows[1].cells[tdindex].children[0].type);
				tabTi.rows[1].cells[tdindex].children[0].focus();
				tabTi.rows[1].cells[tdindex].children[0].checked=true;
				delightLine(currentLine);
				lightLine(tabTi.rows[1]);
				currentLine=tabTi.rows[1];
				return;
				}
			delightLine(currentLine);
			lightLine(ntr);
			currentLine=ntr;
			}
			catch(ex)
			{
				//alert("发生错误！"+ex.description);
				}
		}
//返回TD是当前行的第几个，从0开始，防止隐藏列的问题
this.countOT=countOT;
function countOT(otd)
	{
	if(otd==null || otd.tagName!="TD")
		return;
	for(var i=0;i<otd.parentElement.cells.length;i++)
		{
		var td=otd.parentElement.cells[i];
		if(td==otd)
			return i;
		}

	}
//返回TR的第 一个可获得焦点的td，从0开始，防止隐藏列的问题
this.findFTd=findFTd;
function findFTd(otr)
	{
	if(otr==null || otr.tagName!="TR")
		return;
	for(var i=0;i<otr.cells.length;i++)
		{
		var td=otr.cells[i];
		if(td==null)
			continue;
		if(td.style.display=="none")
			continue;
		else
			return td;
		}

	}
//为表体增加一行

this.addLine=addLine;
function addLine()
	{
	if(tabTi==null&&tabTi.tagName!="TABLE") return;
	var tr=tabTi.rows[0];

	//alert(tr.style.display)
	//tr.style.display = "block";
	if(tr!=null)
		{
		try
			{
			tabTi.rows[0].style.display="block";
			var ntr=tabTi.insertRow();
			for(var i=0;i<tabTi.rows[0].cells.length;i++)
				{
				var otd=ntr.insertCell();
				otd.innerHTML=tabTi.rows[0].cells[i].innerHTML;
				otd.width=tabTi.rows[0].cells[i].width;
				otd.index=tabTi.rows[0].cells[i].index;
				otd.style.display=tabTi.rows[0].cells[i].style.display;
				}
			if(currentLine!=null)
				delightLine(currentLine);
			//currentLine=ntr;
			currentLine=tabTi.rows[tabTi.rows.length-1];
			latd2=tabTi.rows[tabTi.rows.length-1];//倒算第二行
			lightLine(latd2);
			//tabTi.rows[0].setAttribute("IsHidden","1");
			//为左边固定列增加一行
			if(divTiLeftCol!=null && divTiLeftCol.children[0]!=null)
				{
				var tableft=divTiLeftCol.children[0];
				var row=tableft.insertRow();
				var otd=row.insertCell();
				var rowindex=row.rowIndex;
				otd.innerHTML="<span>"+(rowindex+1)+"</span>";
				}
			//重新计算divSum的top
			//divSum.style.top=parseInt(divTi.offsetTop)+parseInt(divTi.offsetHeight)-(parseInt(divTi.style.height)-divTi.clientHeight)-curTrHeight;
			}
			catch(ex)
			{
				alert("增加一行失败！"+ex.description);
				return;
			}
		}
	}
//为表体增加高度
this.addHeight=addHeight;
function addHeight()
	{
	if(tabTi==null&&tabTi.tagName!="TABLE") return;
	try
		{
		//divTi.style.height=parseInt(curDivHeight)+parseInt(curTrHeight)+"px";
		curDivHeight=parseInt(curDivHeight)+parseInt(curTrHeight);
		}
		catch(ex)
		{
			alert("增加高度失败！");
			return;
		}
	}
//为表体删除一行
this.delLine=function()
	{
		if(tabTi==null&&tabTi.tagName!="TABLE") return;
		try
			{
			if(currentLine!=null)
				{
				var oldTr=currentLine.rowIndex;
				var isdel=currentLine.removeNode(true);
				//var otr=this.findCurrentLine(oldTr);
					//var isdel=currentLine.removeNode(true);
				//var isdel=otr.removeNode(true);
				currentLine=null;
				//为左边固定列删除一行
				if(divTiLeftCol!=null && divTiLeftCol.children[0]!=null)
				{
				var tableft=divTiLeftCol.children[0];
				if(tableft.rows.length>0)
				tableft.rows[tableft.rows.length-1].removeNode(true);
				}
				divTou.style.width=divTi.clientWidth;
				divSum.style.width=divTi.clientWidth;
				}
			}
			catch(ex)
			{
				alert("删除一行失败2！"+ex.description);
				return;
			}
	}

//接口，添加行
this.addRow=addRow;
function addRow()
	{

	addLine();

	//由于出现了滚动条,重新给宽度赋值
	if(divTi.clientHeight>21)  //不加入此判断，则会出错 NFZR 2007-3-9
		divTiLeftCol.style.height=divTi.clientHeight-21;

		divTou.style.width=divTi.clientWidth;
		divSum.style.width=divTi.clientWidth;
	}
//删除行
this.delRow=delRow;
function delRow()
	{
	//比较deleteCol的值
	try
		{
	if(tabTi==null&&tabTi.tagName!="TABLE" ) return;
	if(tabTi.rows.length==1) return;

	if(currentLine==null)
		return;
	//
	    this.delLine();

		}catch(ex)
		{}
		//若表体不出现滚动条，则表头的宽度变大
		divTou.style.width=divTi.clientWidth;
		divSum.style.width=divTi.clientWidth;
		}

//左右滚动表格体，表格头移动
this.doscroll=doscroll;
function doscroll()
	{
	if(divTi==null) return;
	if(divTou==null) return;
	if(divSum==null) return;
	var disWid=divTi.scrollLeft;
	divTou.scrollLeft=disWid;
	divSum.scrollLeft=disWid;
	//左侧固定列
	//divTiLeftCol.style.left=divTi.scrollLeft;
	divTiLeftCol.scrollTop=divTi.scrollTop;
	//divTouLeftCol.style.left=divTi.scrollLeft;
	//divSumLeftCol.style.left=divTi.scrollLeft;
	}
//表格头鼠标按下事件
this.domousedown=domousedown;
function domousedown()
	{
	var obj=window.event.srcElement;
	var nextTd=null;
	if(obj==null || (obj.tagName!="SPAN" && obj.tagName!="TD"))
		return;
	if(obj.tagName=="SPAN")
		obj=obj.parentElement;
	nextTd=obj.previousSibling;//前一个TD
	while(nextTd.style.display=="none")
		{
		nextTd=nextTd.previousSibling;//前一个TD
		}
	//alert(window.event.x + document.body.scrollLeft+divTi.scrollLeft);
	//alert(divAll.offsetLeft);
	//alert(obj.offsetLeft);
	//alert(obj.offsetWidth);
	var absLeft=0;
	var odiv=divAll;
	while(odiv!=document.body)
		{
		absLeft+=odiv.offsetLeft;
		odiv=odiv.offsetParent;
		}
	//	alert(absLeft+"**");
	if(window.event.x + document.body.scrollLeft+divTi.scrollLeft >absLeft+obj.offsetLeft+obj.offsetWidth-13)
		{
		curTd=obj;
		isMouDown=true;
		isCanSort=false;
		OldPlace=window.event.x+window.document.body.scrollLeft+divTi.scrollLeft;
		//curHr.style.display="block";
		//curHr.style.left=OldPlace;
		//curHr.size=obj.offsetHeight;
		//curHr.style.top=divAll.offsetTop;
		}
	else if( window.event.x + document.body.scrollLeft+divTi.scrollLeft >absLeft+obj.offsetLeft && window.event.x + document.body.scrollLeft+divTi.scrollLeft < absLeft+obj.offsetLeft+13)
	{
		if(nextTd.cellIndex==0) return;
		curTd=nextTd;
		isMouDown=true;
		isCanSort=false;
		OldPlace=window.event.x+window.document.body.scrollLeft+divTi.scrollLeft;
		//curHr.style.display="block";
		//curHr.style.left=OldPlace;
		//curHr.size=obj.offsetHeight;
		//curHr.style.top=divAll.offsetTop;
		}
	else
			isCanSort=true;

	}

//表格头鼠标移动事件
this.domousemove=domousemove;
function domousemove()
	{
	//document.selection.empty();
	var obj=window.event.srcElement;
	if(obj==null || (obj.tagName!="SPAN" && obj.tagName!="TD"))
		return;
	if(obj.tagName=="SPAN")
		{
		//if(obj.innerText==="")
		//	{
		//	return;
		//	}
		obj=obj.parentElement;
		}
	var absLeft=0;
	var odiv=divAll;
	while(odiv!=document.body)
		{
		absLeft+=odiv.offsetLeft;
		odiv=odiv.offsetParent;
		}
		if(window.event.x + document.body.scrollLeft+divTi.scrollLeft >absLeft+obj.offsetLeft+obj.offsetWidth-13 ||( window.event.x + document.body.scrollLeft+divTi.scrollLeft >absLeft+obj.offsetLeft && window.event.x + document.body.scrollLeft+divTi.scrollLeft < absLeft+obj.offsetLeft+13 && obj.cellIndex!=1) || isMouDown)
		{
		try
			{
			divTou.style.cursor="col-resize";
			}catch(ex)
			{divTou.style.cursor="move";
			}
		}
	else
		{
		divTou.style.cursor="hand";
		}
	}
//表格头鼠标事件
this.domouseup=domouseup;
function domouseup()
	{
	if(isMouDown)
		{
		try{
		nowPlace=window.event.x+document.body.scrollLeft+divTi.scrollLeft;
		if(isNaN(OldPlace-nowPlace))
			{
			isMouDown=false;
			return;
			}
		curTd.width=curTd.width-(OldPlace-nowPlace);
		//tabTou.width=tabTou.width-(OldPlace-nowPlace);//
		isMouDown=false;
		var tdIndex=countOT(curTd);
		//改变表格体列宽
		//tabTi.width=tabTi.width-(OldPlace-nowPlace);
		for(var i=0;i<tabTi.rows.length;i++)
			{
			var otd=tabTi.rows[i].cells[tdIndex];
			if(otd!=null)
				{
				otd.width=otd.width-(OldPlace-nowPlace);
				}
			}
		//改变合计区列宽
		//tabSum.width=tabSum.width-(OldPlace-nowPlace);
		for(var i=0;i<tabSum.rows.length;i++)
			{
			var otd=tabSum.rows[i].cells[tdIndex];
			if(otd!=null)
				{
				otd.width=otd.width-(OldPlace-nowPlace);
				}
			}
		//curHr.style.display="none";
		divTiLeftCol.style.height=divTi.clientHeight-21;
		divTou.style.width=divTi.clientWidth;
		divSum.style.width=divTi.clientWidth;
		divSum.parentElement.style.top=parseInt(divTi.offsetTop)+parseInt(divTi.clientHeight)-(parseInt(divSum.clientHeight))+1;
		//
		}
		catch(ex)
			{
			isMouDown=false;
			//curHr.style.display="none";
			//alert(ex.description);
			alert("您拖动的区域无效!");
			}
		}
	}
//表格头鼠标离开事件
this.domouseout=domouseout;
function domouseout()
	{
		document.body.style.cursor="default";
		//isMouDown=false;
	}
//isSubmit的SET方法
this.setSubmit=setSubmit;
function setSubmit(val)
	{
	isSubmit=val;
	}
//表格头单击事件
this.doTabTouClick=doTabTouClick;
function doTabTouClick()
	{
	if(outCanSort!=true) return;
	var obj=window.event.srcElement;
	if(obj.tagName!="SPAN") return;
	if(obj.innerText=="") return;
	var objcansort=obj.getAttribute("CanSort");
	if(objcansort=="false") return;
	if(isSubmit)
		{
		if(!isCanSort) return;
		if(inputSort!=null && inputSortName!=null)
			{
			var sort=inputSort.value;
			var sortname=inputSortName.value;
			if(obj.tagName=="SPAN")
				{
				var attname=obj.getAttribute("sortName");
				if(attname==sortname)
					{
					if(sort.toUpperCase()=="DESC")
						{
						inputSort.value="ASC";
						obj.children[0].innerText=="6";
						obj.children[0].style.display="block";
						}
					else
						{
						inputSort.value="DESC";
						obj.children[0].innerText=="5";
						obj.children[0].style.display="block";
						}
					}
				else
					inputSortName.value=attname;
				}
				if(document.forms[0]!=null)
					document.forms[0].submit();
				}
		}
	else
		{
		if(!isCanSort) return;
		if(obj.tagName=="SPAN")
				{
				if(lastSortTd!=null)
					lastSortTd.children[0].style.display="none";

				if(obj.children[0].innerText=="6")
					{
					obj.children[0].innerText="5";
					obj.children[0].style.display="inline";
					orderType="0";
					}
				else
					{
					obj.children[0].innerText="6";
					obj.children[0].style.display="inline";
					orderType="1";
					}
				lastSortTd=obj;
				obj=obj.parentElement;
				}
		if(obj.tagName=="LABEL")
				{
				if(obj.innerText=="6")
					{
					obj.innerText="5";
					orderType="0";
					}
				else
					{
					obj.innerText="6";
					orderType="1";
					}
				obj=obj.parentElement.parentElement;
				}
		if(obj.tagName!="TD") return;
		var colindex=obj.cellIndex;
		if(tableArray[0]==null)
			makePlanar();
		sortArray(colindex-1);
		fillData();
		}
}


//调整页面大小
this.doresize=doresize;
function doresize()
	{
//调整页面大小带来的头，sum表格的宽度的变化
		divTou.style.width=divTi.clientWidth;
		divSum.style.width=divTi.clientWidth;
		divTiLeftCol.style.height=divTi.clientHeight-21;
		divSum.parentElement.style.top=parseInt(divTi.offsetTop)+parseInt(divTi.clientHeight)-(parseInt(divSum.clientHeight))+1;

}
//
//焦点到第row行，第col列
this.focus=focus;
function focus(row,col)
	{
	delightLine(currentLine);
	if(tabTi==null&&tabTi.tagName!="TABLE") return;
	var otr=tabTi.rows[row];
	if(otr==null) return;
	if(otr.style.display!="none" && otr.rowIndex!=0 &&  otr.rowIndex!=tabTi.rows.length)
		{
		lightLine(otr);
			currentLine=otr;
			try
			{
				var otd=otr.cells[col];
				if(otd!=null&&otd.children[0]!=null)
					otd.children[0].focus();
			}
			catch(ex)
			{alert("定位焦点失败！");}
		}
	}

//取得第row行，第col列值
this.getCellValue=getCellValue;
function getCellValue(row,col)
	{
	if(tabTi==null&&tabTi.tagName!="TABLE") return;
	var otr=tabTi.rows[row];
	if(otr==null) return;
	if(otr.style.display!="none")
		{
		try
			{
			var index=0;
			for(var i=1;i<otr.cells.length;i++)
				{
				var otd=otr.cells[i];
				//if(otd.style.display!="none")
				//	index++;
				if(i==col)
					{
					if(otd.children[0]!=null && otd.children[0].tagName=="INPUT")
						return otd.children[0].value;
					return otd.innerText;
					}
				}

			}
			catch(ex)
			{return null;}
		}

}

this.setCellValue=setCellValue;
function setCellValue(row,col,value)
	{
	if(tabTi==null&&tabTi.tagName!="TABLE") return;
	var otr=tabTi.rows[row];
	if(otr==null) return;
	if(otr.style.display!="none")
		{
		try
			{
			var index=0;
			for(var i=1;i<otr.cells.length;i++)
				{
				var otd=otr.cells[i];
				//if(otd.style.display!="none")
				//	index++;
				if(i==col)
					{
					if(otd.children[0]!=null && otd.children[0].tagName=="INPUT")
						otd.children[0].value=value;
					else otd.innerText=value;
					}
				}

			}
			catch(ex)
			{return null;}
		}
}

//取得第row行，第col列的TD
this.getCell=getCell;
function getCell(row,col)
	{
	if(tabTi==null&&tabTi.tagName!="TABLE") return;
	var otr=tabTi.rows[row];
	if(otr==null) return;
	if(otr.style.display!="none")
		{
		try
			{
			var index=0;
			for(var i=1;i<otr.cells.length;i++)
				{
				var otd=otr.cells[i];
				//if(otd.style.display!="none")
				//	index++;
				if(i==col)
					{
					return otd;
					}
				}

			}
			catch(ex)
			{return null;}
		}

	}

//返回TabTi的总行数
this.returnRowCount=returnRowCount;
function returnRowCount()
	{
	if(tabTi==null&&tabTi.tagName!="TABLE") return;
	return tabTi.rows.length-1;

	}
//返回某列的合计值
this.sum=sum;
function sum(col)
	{
	if(col=="") return;
	if(tabTi==null&&tabTi.tagName!="TABLE") return;
	var sum=0;
	for(var i=1;i<tabTi.rows.length;i++)
		{
		if(tabTi.rows[i].style.display=="none" )
			continue;
		var otd=tabTi.rows[i].cells[col];
		if(otd!=null && otd.children[0]!=null)
			{
			var val=parseFloat(otd.children[0].value);
			if(isNaN(val))
				val=0;
			sum+=val;
			}
		}
		return sum;
	}

 //设置合计区域单元格的值
 this.setSumValue=setSumValue;
 function setSumValue()
	{
		if(tabSum==null&&tabSum.tagName!="TABLE") return;
		if(tabTi==null&&tabTi.tagName!="TABLE") return;
		try
			{
			for(var i=1;i<tabTi.rows[0].cells.length;i++)
			{
				var sum=0;
				for(var j=1;j<tabTi.rows.length;j++)
				{
				var col=tabTi.rows[j].cells[i];
				if(col==null) continue;
				var val=col.innerText;
				if(isNaN(val)) continue;
				sum+=parseFloat(val);
				}
				if(sum!=0 && !isNaN(sum)) tabSum.rows[0].cells[i].innerHTML="<span>"+sum+"</span>";
			}
			}
			catch(ex)
			{alert("为合计区赋值失败！");}

	}


//获得合计区域单元格的值
	this.getSumFieldValue=getSumFieldValue;
	function getSumFieldValue(col)
	{
	if(tabSum==null&&tabSum.tagName!="TABLE") return;
	var otr=tabTi.rows[0];
	if(otr==null) return;
	if(otr.style.display!="none" && otr.rowIndex!=0 )
		{
		try
			{
				var otd=otr.cells[col];
				if(otd!=null)
				{
					return(otd.innerText);
				}

			}
			catch(ex)
			{return null;}
		}
	}


this.getCurrentLine = getCurrentLine;
function getCurrentLine(){
	if(currentLine==null) return null;
    return currentLine.rowIndex;
}
//点击checkbox时
this.doCheck=doCheck;
function doCheck(obj)
	{
	if(obj!=null && obj.type=="checkbox")
		{
		if(inputPk==null) return;
		var str=inputPk.value;
		if(obj.checked)
			{
			if(str.indexOf(obj.value)>-1)
				{
				restr=new RegExp(","+obj.value);
				str=str.replace(restr,"");
				}
			}
		else
			{
			str+=","+obj.value;
			}
		inputPk.value=str;
		}
		if(obj!=null &&  obj.type=="radio")
		{
		if(inputPk==null) return;
		inputPk.value=obj.value;
		}

	}
//得到选中的行的复选框的value,用","分割
this.getCheckLine = getCheckLine;
function getCheckLine()
	{
		if(tabTi==null&&tabTi.tagName!="TABLE") return "";
		try
			{
			var col=null;
			for(var i=0;i<tabTi.rows[1].cells.length;i++)
				{
				var otd=tabTi.rows[1].cells[i].children[0];
				if(otd!=null && (otd.type=="checkbox" || otd.type=="radio") )
					{
					col=i;
					break;
					}
				}
			if(col==null || isNaN(col)) return "";
			var str="";
			for(var j=1;j<tabTi.rows.length;j++)
				{
				if(tabTi.rows[j].cells[col].children[0].tagName=="INPUT")
					{
					if(tabTi.rows[j].cells[col].children[0].checked)
						str+=tabTi.rows[j].cells[col].children[0].value+",";
					}
				}

				return str.substring(0,str.length-1);
			}
			catch(ex)
			{	//alert(ex.description);
				return "";
			}
	}
//得到选中的行的复选框的value,用","分割
this.getCheckAll = getCheckAll;
function getCheckAll()
	{
		if(tabTi==null&&tabTi.tagName!="TABLE") return "";
		try
			{
			var col=null;
			for(var i=0;i<tabTi.rows[1].cells.length;i++)
				{
				var otd=tabTi.rows[1].cells[i].children[0];
				if(otd!=null && (otd.type=="checkbox"  || otd.type=="radio") )
					{
					col=i;
					break;
					}
				}
			if(col==null || isNaN(col)) return "";
			var str="";
			for(var j=1;j<tabTi.rows.length;j++)
				{
				if(tabTi.rows[j].cells[col].children[0].tagName=="INPUT")
					{
					if(tabTi.rows[j].cells[col].children[0].checked)
						{
						for(var k=1;k<tabTi.rows[j].cells.length;k++)
							{
							var ootd=tabTi.rows[j].cells[k];
							if(ootd.children[0]!=null)
								{
								var val="";
								if(ootd.children[0].tagName=="INPUT")
									val=ootd.children[0].value;
								else
									val=ootd.children[0].innerText;
								if(val==null)
									val="";
								str+=val+",";
								}
							}
							str+="|";
						}
					}
				}

				return str.substring(0,str.length-1);
			}
			catch(ex)
			{	//alert(ex.description);
				return "";
			}
	}

//生成一个二维数组,排序使用
this.makePlanar = makePlanar;
function makePlanar()
	{
	if(tabTi==null) return;
	if(tableArray==null) tableArray=new Array();
	for(var i=1;i<tabTi.rows.length;i++)
		{
		var rowArray=new Array();
		for(var j=0;j<tabTi.rows[0].cells.length;j++)
			{
			var otd=tabTi.rows[i].cells[j];
			var otxt="";
			if(otd.children[0]!=null && otd.children[0].tagName=="INPUT")
				otxt=otd.innerHTML;
			else
				otxt=otd.innerText;

			if (otxt.length==0)
                        {rowArray[j]="&nbsp;";}else
			{rowArray[j]=otxt;}
			}

		tableArray[i-1]=rowArray;
		}

}

//二维数组排序,index为1时升序,为0时降序
this.sortArray=sortArray;
function sortArray(col)
	{
	if(tableArray[0]==null) return;
	if(typeof(col)!="number") return;
	if(col>=tableArray[0].length) return;
	sortCol=col;
		tableArray.sort(sortFun);
		//alert(orderType);
	if(orderType=="1")
		tableArray.reverse();
	}

//向表格填充数据
this.fillData=fillData;
function fillData()
	{
	if(tableArray==null) return;
	for(var i=1;i<tabTi.rows.length;i++)
		{
		for(var j=0;j<tabTi.rows[0].cells.length;j++)
			{
			if(tableArray[i-1][j]!=null && tableArray[i-1][j]!="")
				if(tabTi.rows[i].cells[j].children[0]!=null && tabTi.rows[i].cells[j].children[0].tagName!="INPUT")
					tabTi.rows[i].cells[j].innerHTML="<SPAN>"+tableArray[i-1][j]+"</SPAN>"
				else
					tabTi.rows[i].cells[j].innerHTML=tableArray[i-1][j];
			}
		}

	}
//二维数组排序规则
this.sortFun=sortFun;
function sortFun(par1,par2)
{
if(typeof(par1)=="object" && typeof(par1)=="object")
	{
	par1=par1[sortCol+1];
	par2=par2[sortCol+1];
	}
if(sortType=="1")
	{//alert(par1+""+par2);
	if(!isNaN(par1) && !isNaN(par2))
		{
		if(parseFloat(par1)>parseFloat(par2)) return 1;
		else if(parseFloat(par1)<parseFloat(par2)) return -1;
		if(parseFloat(par1)==parseFloat(par2)) return 0;
		}
	if(typeof(par1)=="string" && typeof(par1)=="string")
		{
//货币列
		if(par1.substring(0,1)=="￥"&&par2.substring(0,1)=="￥")
			{
			if(parseFloat(par1.substring(1,par1.length))>parseFloat(par2.substring(1,par2.length))) return 1;
			else if(parseFloat(par1.substring(1,par1.length))<parseFloat(par2.substring(1,par2.length))) return -1;
			if(parseFloat(par1.substring(1,par1.length))==parseFloat(par2.substring(1,par2.length))) return 0;
			}
			par1=par1.toString();
			par2=par2.toString();
			if(par1>par2) return 1;
			if(par1<par2) return -1;
			if(par1==par2) return 0;
		}
	}
else
	{
	par1=par1.toString();
			par2=par2.toString();
			if(par1>par2) return 1;
			if(par1<par2) return -1;
			if(par1==par2) return 0;
	}
return 0;
}
//外部set方法isCanSort
this.setCanSort=setCanSort;
function setCanSort(val)
	{
	outCanSort=val;
	}
//外部set方法setTouText(col,val)
this.setTouText=setTouText;
function setTouText(col,val)
	{
	if(tabTou==null) return;
	var otd=tabTou.rows[0].cells[col];
	var ospan=otd.children[0];
	ospan.innerHTML=val+olabel.outerHTML;
	}
//外部set方法setTouAlign(col,val)
this.setTouAlign=setTouAlign;
function setTouAlign(col,val)
	{
	if(tabTou==null) return;
	var otd=tabTou.rows[0].cells[col];
	var ospan=otd.children[0];
	ospan.style.textAlign=val;
	}
//外部set方法setSumAlign(col,val)
this.setSumAlign=setSumAlign;
function setSumAlign(col,val)
	{
	if(tabSum==null) return;
	var otd=tabSum.rows[0].cells[col];
	var ospan=otd.children[0];
	ospan.style.textAlign=val;
	}

//外部set方法setSumValue(col,val)
this.setTiValue=setTiValue;
function setTiValue(row,col,val)
	{
	if(tabTi==null) return;
	var otd=tabTi.rows[row].cells[col];
	otd.innerHTML="<span>"+val+"</span>";
	}

//外部set方法setSumText(col,val),只改变"合计"
this.setSumText=setSumText;
function setSumText(val)
	{
	if(divSum==null) return;
	var divsumnext=divSum.nextSibling.children[0];
	if(divsumnext==null) return;
	divsumnext.children[0].rows[0].cells[0].innerText=val;

	}
//外部set方法setTabTiClick
this.setTabTiClick=setTabTiClick;
function setTabTiClick(evevtstr)
	{
	if(tabTi==null) return;
	if(evevtstr==null || evevtstr=="") return;
	tabTi.attachEvent("onclick",evevtstr);
	}

//树状列表
//初始化
this.TreeInit=TreeInit;
function TreeInit(xmlstr,openflag,closeflag)
	{
	if(xmlstr==null || xmlstr=="") return;
	OpenImg=openflag;
	CloseImg=closeflag;
	xmlroot=new ActiveXObject("MSXML.Domdocument");
	xmlroot.loadXML(xmlstr);
	xmlroot=xmlroot.documentElement;
	for(var i=0;i<xmlroot.childNodes.length;i++)
		{
		var onode=xmlroot.childNodes[i];
		paddingLeft=0;
		InitTreeNode(onode);
		}
	AddImgEvent();
	//处理由关闭展开引发的滚动条问题
		divTiLeftCol.style.height=divTi.clientHeight-21;
		divTou.style.width=divTi.clientWidth;
		divSum.style.width=divTi.clientWidth;
		divSum.parentElement.style.top=parseInt(divTi.offsetTop)+parseInt(divTi.clientHeight)-(parseInt(divSum.clientHeight))+1;
	}

//初始化HTML节点，隐藏，缩进
this.InitTreeNode=InitTreeNode;
function InitTreeNode(node)
	{
	if(node==null) return;
	paddingLeft+=15;
	for(var i=0;i<node.childNodes.length;i++)
		{
		var onode=node.childNodes[i];
		var onodeid=onode.getAttribute("NodeId");
		PaddingRow(onodeid);//缩进
		HidRow(onodeid);//隐藏
		if(onode.childNodes.length>0)
			InitTreeNode(onode);
		else
			{
			closeImg(onodeid);
			}
		}
		paddingLeft-=15;
	}
//给图片添加事件
this.AddImgEvent=AddImgEvent;
function AddImgEvent()
	{
	if(tabTi==null) return;
	for(var i=1;i<tabTi.rows.length;i++)
		{
		var otr=tabTi.rows[i];
		var otd=otr.cells[1];
		var odiv=otd.children[0];
		var oimg=odiv.children[0];
		if(oimg!=null && oimg.tagName=="IMG")
			oimg.attachEvent("onclick",doImgClick);
		}
	}
//重新排列左边固定列,隐藏最下面一个显示的行
this.HidLeft=HidLeft;
function HidLeft()
	{
	var tabLeft=divTiLeftCol.children[0];
	var Ltr=null;
	for(var j=tabLeft.rows.length-1;j>=0;j--)
				{
				var otr=tabLeft.rows[j];
				if(otr.style.display!="none")
					{
					Ltr=otr;
					break;
					}
				}
	if(Ltr!=null)
		Ltr.style.display="none";
	}
//重新排列左边固定列，显示最上面一个隐藏的行
this.ShowLeft=ShowLeft;
function ShowLeft()
	{
	var tabLeft=divTiLeftCol.children[0];
	var Ltr=null;
	for(var j=0;j<tabLeft.rows.length;j++)
				{
				var otr=tabLeft.rows[j];
				if(otr.style.display=="none")
					{
					Ltr=otr;
					break;
					}
				}
	if(Ltr!=null)
		Ltr.style.display="block";
	}

//根据id使列表隐藏
this.HidRow=HidRow;
function HidRow(id)
	{
	if(tabTi==null) return;
	for(var i=1;i<tabTi.rows.length;i++)
		{
		var otr=tabTi.rows[i];
		var otd=otr.cells[1];
		var odiv=otd.children[0];
		var oimg=odiv.children[0];
		if(oimg.nodeid==id)
			{
			if(otr.style.display!="none")
				{
					otr.style.display="none";
					HidLeft();
				}
			}
		}
	}
//根据id初始化没有下级的图片
this.closeImg=closeImg;
function closeImg(id)
	{
	if(tabTi==null) return;
	for(var i=1;i<tabTi.rows.length;i++)
		{
		var otr=tabTi.rows[i];
		var otd=otr.cells[1];
		var odiv=otd.children[0];
		var oimg=odiv.children[0];
		if(oimg.nodeid==id)
			{
			oimg.isLast="1";
			oimg.src=CloseImg;
			}
		}
	}


//根据id使列表显示
this.ShowRow=ShowRow;
function ShowRow(id)
	{
	if(tabTi==null) return;
	for(var i=1;i<tabTi.rows.length;i++)
		{
		var otr=tabTi.rows[i];
		var otd=otr.cells[1];
		var odiv=otd.children[0];
		var oimg=odiv.children[0];
		if(oimg.nodeid==id)
			{
			otr.style.display="block";
			if(odiv.offsetWidth > otd.offsetWidth+3)
				addWidth(1,odiv.offsetWidth);
			ShowLeft();
			ChangeImg2(oimg);
			}
		}
	}

//根据id使列表缩进
this.PaddingRow=PaddingRow;
function PaddingRow(id)
	{
	if(tabTi==null) return;
	for(var i=1;i<tabTi.rows.length;i++)
		{
		var otr=tabTi.rows[i];
		var otd=otr.cells[1];
		var odiv=otd.children[0];
		var oimg=odiv.children[0];
		if(oimg.nodeid==id)
			{
			var width1=odiv.offsetWidth;
			var width2=paddingLeft+oimg.offsetWidth;
			if(width1<width2)
				addWidth(1,width2);
			odiv.style.paddingLeft=paddingLeft;

			}
		}
	}
//根据缩进改变列宽
this.addWidth=addWidth;
function addWidth(col,wid)
	{
	//改变表头体列宽
	tabTou.rows[0].cells[col].width=wid+5;
	//改变合计区列宽
	tabSum.rows[0].cells[col].width=wid+5;
	//改变表格体列宽
		for(var i=0;i<tabTi.rows.length;i++)
			{
			var otd=tabTi.rows[i].cells[col];
			if(otd!=null)
				{
				otd.width=wid+5;
				}
			}
	}

//点击＋－图片
this.doImgClick=doImgClick;
function doImgClick()
	{
	var img=window.event.srcElement;
	if(img.tagName!="IMG") return;
	var nodeid=img.nodeid;
	if(img.open!="1")
		{
		OpenNode(null,nodeid);
		ChangeImg1(img);
		}
	else
		{
		CloseNode(null,nodeid);
		ChangeImg2(img);
		}
	//处理由关闭展开引发的滚动条问题
		divTiLeftCol.style.height=divTi.clientHeight-21;
		divTou.style.width=divTi.clientWidth;
		divSum.style.width=divTi.clientWidth;
		divSum.parentElement.style.top=parseInt(divTi.offsetTop)+parseInt(divTi.clientHeight)-(parseInt(divSum.clientHeight))+1;
//
	}
//改变为－图片
this.ChangeImg1=ChangeImg1;
function ChangeImg1(img)
	{
	if(img!=null && img.tagName=="IMG")
		{
		if(img.isLast=="1") return;
			img.src=CloseImg;
			img.open="1";
		}
	}
//改变为＋图片
this.ChangeImg2=ChangeImg2;
function ChangeImg2(img)
	{
	if(img!=null && img.tagName=="IMG")
		{
		if(img.isLast=="1") return;
		img.src=OpenImg;
		img.open="0";
		}
	}

//展开节点
this.OpenNode=OpenNode;
function OpenNode(xmlnode,nodeid)
	{
	if(xmlroot==null) return;
	if(xmlnode==null)
		xmlnode=xmlroot;
	for(var i=0;i<xmlnode.childNodes.length;i++)
		{
		var onode=xmlnode.childNodes[i];
		if(onode.getAttribute("NodeId")==nodeid)
			{
			ZhanKai(onode);
			return;
			}
		if(onode.hasChildNodes())
			{
			OpenNode(onode,nodeid);
			}

		}
	}
//关闭节点
this.CloseNode=CloseNode;
function CloseNode(xmlnode,nodeid)
	{
	if(xmlroot==null) return;
	if(xmlnode==null)
		xmlnode=xmlroot;
	for(var i=0;i<xmlnode.childNodes.length;i++)
		{
		var onode=xmlnode.childNodes[i];
		if(onode.getAttribute("NodeId")==nodeid)
			{
			GuanBi(onode);
			return;
			}
		if(onode.hasChildNodes())
			{
			CloseNode(onode,nodeid);
			}
		}
	}
//展开下一层节点
this.ZhanKai=ZhanKai;
function ZhanKai(onode)
	{
	for(var i=0;i<onode.childNodes.length;i++)
		{
		var oonode=onode.childNodes[i];
		var ooid=oonode.getAttribute("NodeId");
		ShowRow(ooid);
		}
	}
//关闭所有下级节点
this.GuanBi=GuanBi;
function GuanBi(onode)
	{
	for(var i=0;i<onode.childNodes.length;i++)
		{
		var oonode=onode.childNodes[i];
		var ooid=oonode.getAttribute("NodeId");
		HidRow(ooid);
		if(oonode.hasChildNodes())
			GuanBi(oonode);
		}
	}
// 根据ID串展开,参数用,号分开
this.OpenNodeById=OpenNodeById;
function OpenNodeById(ids)
	{
	if(ids==null || ids=="") return;
	var arrid=ids.split(",");
	var imgs=divAll.getElementsByTagName("img");
	for(var i=0;i<arrid.length;i++)
		{
		if(arrid[i]==null || arrid[i]=="") continue;
		for(var j=0;j<imgs.length;j++)
			{
			var oimg=imgs[j];
			if(oimg.nodeid==arrid[i])
				{
				oimg.click();
				}
			}
		}
	}


//将最后一行设置为当前行,为删除全部行作准备
//增加的方法
//NFZR 2007-4-20
this.setCurrentLine=setCurrentLine;
function setCurrentLine()
         {
	   if(tabTi.rows.length>1)
	    currentLine=tabTi.rows[tabTi.rows.length-1];
	   else
	    currentLine=null;
         }


//删除全部行
//增加的方法
//NFZR  2007-4-20
this.deleteAllRow=deleteAllRow;
function deleteAllRow()
        {
	   while(currentLine!=null)
	        {
		   this.delRow();
		   this.setCurrentLine();
                }
        }

//将指定的行置为当前行
//增加的方法
//NFZR 2007-4-20
this.setCurrentLineByRowNum=setCurrentLineByRowNum;
function setCurrentLineByRowNum(rowNum)
        {

	     if(rowNum>0 && rowNum<tabTi.rows.length)
	      {
		     currentLine=tabTi.rows[rowNum];
	      }
	    else
	         currentLine=null;
        }



//将选定的行上移一行
//增加的方法
//NFZR   2007-7-23
this.MoveRowUp=MoveRowUp;
function MoveRowUp()
{
	if(currentLine == null  )
	  {
		  alert("行未选中!");
		  return;
	  }

    if(currentLine.rowIndex == 1)
	{
	  alert("不能再向上移动!");
           return;
	}

	SwapRow(currentLine,tabTi.rows[currentLine.rowIndex-1]);
    delightLine(currentLine);
	currentLine=tabTi.rows[currentLine.rowIndex-1];
	lightLine(currentLine);

}


//将选定的行下移一行
//增加的方法
//NFZR   2007-7-23
this.MoveRowDown=MoveRowDown;
function MoveRowDown()
{
	if(currentLine == null  )
	  {
		  alert("行未选中!");
		  return;
	  }

    if(currentLine.rowIndex == tabTi.rows.length-1)
	{
                alert("不能再向下移动!");
		return;
	}

	SwapRow(currentLine,tabTi.rows[currentLine.rowIndex+1]);
	delightLine(currentLine);
	currentLine=tabTi.rows[currentLine.rowIndex+1];
	lightLine(currentLine);

}


//交换两行row1,row2的位置，
//增加的内部方法
//NFZR   2007-7-23
function SwapRow(row1,row2)
{
	var tempStr;

	for(var i=0;i<row1.cells.length;i++)
	{
		tempStr=row1.cells[i].innerHTML;
		row1.cells[i].innerHTML=row2.cells[i].innerHTML;
		row2.cells[i].innerHTML=tempStr;
	}

}



//最后的括号
}



