function getRecordByCell(cell){
	return getRowByCell(cell).record;
}

function getTableRowByRecord(table, record){
	if (record){
		if (table._activeRow && table._activeRow.record==record) return table._activeRow;

		var row=table.rows[table.activeRowIndex+1];
		if (row && row.record==record) return row;

		var row=table.rows[table.activeRowIndex-1];
		if (row && row.record==record) return row;
	}

	for(var i=0; i<table.tBodies[0].rows.length; i++){
		var row=table.tBodies[0].rows[i];
		if (row.record==record) return row;
	}
}

function refreshTableRowData(row){
	for(var i=0; i<row.cells.length; i++){
		refreshElementValue(row.cells[i]);
	}
}

function getTableRowStyle(row){
	var table=getTableByRow(row);
	if (row.rowIndex % 2)
		return "row_odd";
	else
		return "row_even";
}

function refreshTableRowStyle(row){
	var table=getTableByRow(row);
	if (row==table.activeRow && !isTrue(table.hideSelection)){
		if (table.focused && !isTrue(table.isDropDownTable))
			row.className="row_active";
		else
			row.className="row_selected";
	}
	else{
		row.className=getTableRowStyle(row);
	}
}

function refreshTableRowIndicate(row){
	var table=getTableByRow(row);
	if (!isTrue(table.showIndicate)) return;

	var cell=row.firstChild;
	if (table.activeRow==row){
		var record=row.record;
		if (record && (record.dataset.state=="insert" || record.dataset.state=="modify"))
			cell.innerHTML="<label style=\"font-family: Webdings; font-size: 7pt; color: red\"><</label>";
		else
			cell.innerHTML="<label style=\"font-family: Webdings; font-size: 7pt\">4</label>";
		cell.className="";
	}
	else{
		cell.innerHTML="";
		cell.className="indicate";
	}
}

function resetDataTableStyle(table, startIndex){
	var row;
	var maxIndex=checkTableCellIndex(table, 9999, 9999);
	for(var i=startIndex; i<=maxIndex[0]; i++){
		row=table.rows[i];
		refreshTableRowStyle(row);
	}
}

function initDataTable(table, resetColumns){
	
	function setElementAttribute(element, attr, value){
		if (getValidStr(element.getAttribute(attr))=="") element.setAttribute(attr, value);
	}
	
	table.refreshData=datatable_refreshData;
	table.isRecordSelected=datatable_isRecordSelected;
	table.selectRecord=datatable_selectRecord;
	table.unselectRecord=datatable_unselectRecord;
	table.clearSelectedRecords=datatable_clearSelectedRecords;
	
	table.activeRow=null;
	table.activeRowIndex=null;
	table._activeCellIndex=null;
	table.activeCellIndex=null;
	table._activeCell=null;
	table._activeCellIndex=null;
	
	if (isTrue(table.isDropDownTable)) table.onclick=_dropdown_onclick;

	var dataset=getElementDataset(table);
	
	if (resetColumns && dataset){
		var arrayField, arrayLabel=new Array();
		var fields=table.fields.toLowerCase();
		if (fields){
			arrayField=fields.split(";");
			for(var i=0; i<arrayField.length; i++){
				index=arrayField[i].indexOf("=");
				if (index>=0){
					arrayLabel[i]=arrayField[i].substr(index+1);
					arrayField[i]=arrayField[i].substr(0, index);
				}
			}
		}
		else{
			arrayField=new Array();
			for(var i=0; i<dataset.fields.fieldCount; i++){
				arrayField[i]=dataset.fields[i].name.toLowerCase();
			}
		}

		for (var i=table.children.length-1; i>=0; i--) table.children[i].removeNode(true);
			table.appendChild(document.createElement("<tbody></tbody>"));

		var row, cell;
		if (isTrue(table.showHeader)){
			row=table.createTHead().insertRow();
			for(var i=0; i<arrayField.length; i++){
				cell=row.insertCell();
				cell.name=arrayField[i];
				cell.dataField=arrayField[i];
				if (arrayLabel[i]) cell.label=arrayLabel[i];
				
			}
		}

		row=table.tBodies[0].insertRow();
		for(var i=0; i<arrayField.length; i++){
			cell=row.insertCell();
			cell.name=arrayField[i];
			cell.dataField=arrayField[i];
		}

		if (isTrue(table.showFooter)){
			row=table.createTFoot().insertRow();
			for(var i=0; i<arrayField.length; i++){
				cell=row.insertCell();
				cell.name=arrayField[i];
				cell.dataField=arrayField[i];
				if (arrayLabel[i]) cell.label=arrayLabel[i];
			}
		}
		delete arrayField;
	}

	var tHeadRow, tBodyRow, tFootRow;
	if (table.tHead && table.tHead.rows[0]) tHeadRow=table.tHead.rows[0];
	if (table.tFoot && table.tFoot.rows[0]) tFootRow=table.tFoot.rows[0];
	tBodyRow=table.tBodies[0].rows[0];

	if (tHeadRow) tHeadRow.style.backgroundImage = "url("+_extra_library+"image/table_header.gif)";
	if (tFootRow) tFootRow.style.backgroundImage = "url("+_extra_library+"image/table_header.gif)";

	if (isTrue(table.showIndicate)){
		table.minCellIndex=1;
		if (!tBodyRow.firstChild || (tBodyRow.firstChild && !tBodyRow.firstChild.isIndicate)){
			cell=tBodyRow.insertCell(0);
			cell.width="9px";
			cell.align="center";
			cell.isIndicate=true;
			cell.className="indicate";
			
			if (tHeadRow){
				cell=tHeadRow.insertCell(0);
				cell.align="center";
			}

			if (tFootRow)
			{
				cell=tFootRow.insertCell(0);
				cell.align="center";
			}
		}
	}
	else{
		table.minCellIndex=0;
	}
	
	var cellRight = 0 ;
	
	for(var i=table.minCellIndex; i<tBodyRow.children.length; i++){
		var cell=tBodyRow.children[i];
		var name=cell.name;
		
		var dataField=cell.dataField;
		if (!dataField) dataField=name.toLowerCase();
		cell.dataField=dataField;

		var field=null;
		if (dataset) field=dataset.getField(dataField);

		cell.id=table.id+"_"+dataField;
		cell.extra="tablecell";

		cell.ondblclick=_table_cell_onDblclick;
		
		if (isTrue(table.getAttribute("isDropDownTable"))) cell.noWrap=true;

		if (name=="select"){
			cell.align="center";
			cell.vAlign="center";
			cell.innerHTML="<input type=checkbox onclick=\"return _table_checkbox_onclick();\" style=\"height:16\">";
			cell.readOnly=true;
		}
		else{
			if (field){
				setElementAttribute(cell, "readOnly", field.readOnly);
				setElementAttribute(cell, "dataType", field.dataType);
				setElementAttribute(cell, "align", field.align);
				setElementAttribute(cell, "vAlign", field.vAlign);
			}
			else{
				setElementAttribute(cell, "readOnly", true);
			}
		}

		if (getValidStr(cell.getAttribute("editorType"))==""){
			switch (cell.getAttribute("dataType")){
				case "date":{
					cell.editorType="date";
					break;
				}
				case "longtext":{
					cell.editorType="textarea";
					break;
				}
				case "bool":{
					if (!cell.dropDown)	{
						cell.editorType="checkbox";
					}					
					break;
				}
			}
		}
		
		fireUserEvent(getElementEventName(table, "onInitCell"), [table, cell, field]);
		initElement(cell);
		
		//处理表格拖动20050828---ljj////////////////////////////////
		var cellWidth = cell.width*1 ;
		if (cellWidth == '0')
		{
			cellWidth = 150 ;
		}
		cellRight = cellRight + cellWidth ;
		////////////////////////////////////////////////////////////
		
		if (tHeadRow){
			var cell=tHeadRow.children[i];
			cell.id=table.id+"_header_"+dataField;
			cell.name=name;
			cell.dataField=dataField;
			cell.extra="columnheader";
			
			//处理表格拖动20050828---ljj////////////////////////////////
			if (cellWidth) 
			{
				cell.width = cellWidth ;
			}
			
			if (isTrue(table.showIndicate))
			{
				cell.right = cellRight + 13 ;
			}
			else
			{
				cell.right = cellRight*1 ;
			}
			/////////////////////////////////////////////////////////////////////////
			
			if (compareText(name, "select")){
				if (!cell.getAttribute("label") || cell.getAttribute("label")=="select") {
					cell.label="<font face=Marlett size=2>a</font>";
				}
				cell.ondblclick=_table_select_onHeaderDblClick;
				cell.align="center";
			}
			else{
				if (!cell.getAttribute("label")) cell.label=cell.name;
				if (field){
					cell.dataset=dataset;				
				}
				cell.align="center";
				
			}
			initElement(cell);
		}

		if (tFootRow){
			var cell=tFootRow.children[i];
			cell.id=table.id+"_footer_"+dataField;
			cell.name=name;
			cell.dataField=dataField;
			cell.extra="columnfooter";

			if (compareText(name, "select")){
				if (!cell.getAttribute("label")) cell.label="<font face=Marlett size=2>a</font>";
			}
			else{ 
				if (!cell.getAttribute("label")) cell.label=cell.name;
				if (field){
					cell.dataset=dataset;
				}
			}
			initElement(cell);
		}
	}
	
	//处理表格拖动20050828---ljj////////////////////////////////
	table.style.tableLayout = 'fixed' ;
	
	if (isTrue(table.showIndicate))
	{
		var cell=tHeadRow.children[0];
		cell.width = "13px" ;
		table.width = cellRight*1 + 16 ;
	} 
	else 
	{
		table.width = cellRight*1 ;
	}
	////////////////////////////////////////////////////////////
	
	
	tBodyRow.extra="tablerow";
	table.repeatRow=tBodyRow.cloneNode(true);
	
	table.selectedRecords=new pArray();
	if (getInt(table.getAttribute("maxRow"))==0) table.maxRow=99999;
	
	//处理固定表头/////////////////////////////////////////////
	var fix_header_table = document.getElementById(table.id+"_fix_data_table");
	if (fix_header_table) {
		initCellWidth(table.id);
	}
	///////////////////////////////////////////////////////////
}

function resetDataTable(table){
	initDataTable(table, true);
	refreshTableData(table);
}



function refreshTableData(table, startRecord){
	var dataset=getElementDataset(table);
	if (!dataset) return;
	
	for(var i=table.tBodies[0].rows.length-1; i>0; i--){
			var tmpRow=table.tBodies[0].rows[i];
			deleteTableRow(tmpRow);					
	}	

	var _record=dataset.getFirstRecord();
	var count=0;
	var maxRow = dataset.pageSize;	
	while (_record ){
		if ( _record.pageIndex==dataset.pageIndex){
			insertTableRow(table, "end");
			row=table.tBodies[0].rows[count];
			refreshTableRowStyle(row);
			row.extra="tablerow";
			row.record=_record;	
					
			for (var j=0; j<row.cells.length; j++){
				cell=row.cells[j];				
				refreshElementValue(cell);
			}			
			count++;
		}		
		_record=_record.getNextRecord();
	}
	
	for(var i=table.tBodies[0].rows.length-1; i>=count; i--){
		var tmpRow=table.tBodies[0].rows[i];
		if (table.tBodies[0].rows.length!=1)
			deleteTableRow(tmpRow);
		else{
			tmpRow.record=null;
			for (var j=0; j<tmpRow.cells.length; j++){
				var cell=tmpRow.cells[j];
				if (cell.getAttribute("extra")=="tablecell") refreshElementValue(cell);
			}
		}

	}
	
	//处理固定表头/////////////////////////////////////////////
	var fix_header_table = document.getElementById(table.id+"_fix_data_table");
	if (fix_header_table) {
		change_Div_Width(table.id);
	}
	///////////////////////////////////////////////////////////
	
	var row=getTableRowByRecord(table, dataset.record);
	if (row){
		setActiveTableRow(row);
	}
	else{
		setActiveTableRow(table.tBodies[0].rows[0]);
	}
}

function datatable_refreshData(startRecord){
	refreshTableData(this, startRecord);
}
	
function getTableFirstRecord(table){
	if (table.tBodies[0].rows.length>0)
		return table.tBodies[0].rows[0].record;
	else
		return null;
}

function getTableLastRecord(table){
	var rowLength=table.tBodies[0].rows.length;
	if (rowLength>0)
		return table.tBodies[0].rows[rowLength-1].record;
	else
		return null;
}

function checkTableCellIndex(table, rowIndex, cellIndex){
	var r_rowIndex=rowIndex;
	var r_cellIndex=cellIndex;
	var minRowIndex=(table.tHead)?table.tHead.rows.length:0;
	minRowIndex=(minRowIndex<0)?0:minRowIndex;
	var maxRowIndex=(table.tBodies[0])?(minRowIndex+table.tBodies[0].rows.length-1):-1;
	var minCellIndex=table.minCellIndex;
	var maxCellIndex=table.tBodies[0].rows[0].cells.length-1;

	if ((!r_cellIndex)||(r_cellIndex<minCellIndex)) r_cellIndex=minCellIndex
	else if (r_cellIndex>maxCellIndex) r_cellIndex=maxCellIndex;
	if ((!r_rowIndex)||(r_rowIndex<minRowIndex)) r_rowIndex=minRowIndex
	else if (r_rowIndex>maxRowIndex) r_rowIndex=maxRowIndex;

	return ([r_rowIndex, r_cellIndex]);
}

function setActiveTableRow(row){
	var table=getTableByRow(row);
	var oldrow=table.activeRow;

	table.activeRow=row;
	table.activeRowIndex=row.rowIndex;

	if (oldrow){
		refreshTableRowStyle(oldrow);
		refreshTableRowIndicate(oldrow);
	}
	refreshTableRowStyle(row);
	refreshTableRowIndicate(row);

	var cellIndex=table._activeCellIndex;
	if (!cellIndex) cellIndex=table.activeCellIndex;

	setActiveTableCell(row, cellIndex);
	table._activeCell=null;
	table._activeCellIndex=null;
}

function setActiveTableCell(row, cellIndex){
	var table=getTableByRow(row);
	var index=checkTableCellIndex(table, row.rowIndex, cellIndex);
	cell=row.cells[index[1]];
	var oldcell=table.activeCell;

	if (oldcell!=cell && table.focused){
		if (_activeEditor && _activeEditor.getAttribute("extra")=="dockeditor"){
			hideDockEditor(_activeEditor);
		}
	}

	var table_holder=table.parentElement;
	if (table_holder.scrollWidth>table_holder.offsetWidth || table_holder.scrollHeight>table_holder.offsetHeight){
		var pos=getAbsPosition(cell, table_holder);

		if (pos[0]<table_holder.scrollLeft)
			table_holder.scrollLeft=pos[0];
		else if ((pos[0]+cell.offsetWidth)>(table_holder.scrollLeft+table_holder.offsetWidth))
			table_holder.scrollLeft=pos[0]+cell.offsetWidth-table_holder.offsetWidth;

		if (pos[1]<table_holder.scrollTop)
			table_holder.scrollTop=pos[1];
		else if ((pos[1]+cell.offsetHeight)>(table_holder.scrollTop+table_holder.offsetHeight))
			table_holder.scrollTop=pos[1]+cell.offsetHeight-table_holder.offsetHeight;
	}

	if (table.focused){
		if (!isTrue(table.getAttribute("readOnly")) && isTrue(table.getAttribute("editable")) && cell.getAttribute("dataField")){
			_stored_element=cell;
			setTimeout("showDockEditor(_stored_element);", 0);
		}
	}

	table.activeCell=cell;
	table.activeCellIndex=cell.cellIndex;
	return true;
}

function deleteTableRow(row) {
	var table=getTableByRow(row);
	with (table){
		if (table.activeRow==row){
			setAttribute("activeRow", null);
			setAttribute("activeCell", null);
		}
		var rowIndex=row.rowIndex;
		row.removeNode(true);
		if (!_document_loading) resetDataTableStyle(table, rowIndex);
	}
}

function insertTableRow(table, mode, row, empty) {
	if (!row) row=table.tBodies[0].rows[0];

	var newRow=table.repeatRow.cloneNode(!empty);
	switch (mode){
		case "begin":{
			table.tBodies[0].insertAdjacentElement("afterBegin", newRow);
			break;
		}
		case "before":{
			row.insertAdjacentElement("beforeBegin", newRow);
			break;
		}
		case "after":{
			row.insertAdjacentElement("afterEnd", newRow);
			break;
		}
		default:{
			table.tBodies[0].insertAdjacentElement("beforeEnd", newRow);
			break;
		}
	}
	
	for (var j=0; j<newRow.cells.length; j++){
		newRow.cells[j].ondblclick=_table_cell_onDblclick;		
	}			

	if (!_document_loading) resetDataTableStyle(table, newRow.rowIndex);
	return newRow;
}

function refreshTableRecord(row){
	refreshTableRowData(row);
}

function deleteTableRecord(row) {
	var table=getTableByRow(row);
	var editor=table.editor;
	if (editor) hideDockEditor(editor);

	if (table.tBodies[0].rows.length>1){
		var nextRow=table.tBodies[0].rows[row.rowIndex+1];
		deleteTableRow(row);
		if (nextRow) refreshTableRowData(nextRow);
	}
	else{
		row.record=null;
		for (var i=0; i<row.cells.length; i++){
			refreshElementValue(row.cells[i]);
		}
	}
}

function insertTableRecord(table, mode, row, record) {
	if (!row) row=table.tBodies[0].rows[0];

	var newRow;
	if (!row.getAttribute("record")){
		newRow=row;
	}
	else{
		newRow=insertTableRow(table, mode, row);
	}
	newRow.record=record;
	for (var i=0; i<newRow.cells.length; i++){
		refreshElementValue(newRow.cells[i]);
		
	}
	return newRow;
}

function _getCheckboxByRecord(table, record){
	var cells=document.body.all(table.id+"_select");
	if (cells){
		for (var i=0; i<cells.length; i++) {
			var row=getRowByCell(cells[i]);
			if (row.record==record){
				var checkbox=cells[i].firstChild;
				return checkbox;
			}
		}
	}
}

function isRecordSelected(table, record){
	if (_supportsDatasetMultiSelect){
		return record.getValue("select");
	}
	else {
		var result=false;
		var unit=table.selectedRecords.firstUnit;
			while (unit) {
			if (unit.data==record){
				result=true;
				break;
			}
			unit=unit.nextUnit;
		}
	}
	return result;
}

function datatable_isRecordSelected(record){
	return isRecordSelected(this, record);
}

function selectRecord(table, record){

	if (_supportsDatasetMultiSelect){
		if (record)	{
			record.setValue("select", true);
		}		
	}
	else {
		var selectedRecords=table.getAttribute("selectedRecords");
		pArray_ex_insert(selectedRecords, record);

		var checkbox=_getCheckboxByRecord(table, record);
		if (checkbox) checkbox.checked=true;
	}
}

function datatable_selectRecord(record){
	selectRecord(this, record);
}

function unselectRecord(table, record){
	//var selectedRecords=table.getAttribute("selectedRecords");
	//pArray_ex_delete(selectedRecords, record);
	if (_supportsDatasetMultiSelect){
		if (record)	{
			record.setValue("select", false);
		}
	}
	else {
		var selectedRecords=table.getAttribute("selectedRecords");
		pArray_ex_delete(selectedRecords, record);

		var checkbox=_getCheckboxByRecord(table, record);
		if (checkbox) checkbox.checked=false;
	}
}

function datatable_unselectRecord(record){
	unselectRecord(this, record);
}

function clearSelectedRecords(table){
	var selectedRecords=table.getAttribute("selectedRecords");
	pArray_clear(selectedRecords);

	var cells=document.body.all(table.id+"_select");
	if (cells){
		for (var i=0; i<cells.length; i++) {
			var row=getRowByCell(cells[i]);
			var checkbox=cells[i].firstChild;
			if (checkbox) checkbox.checked=false;
		}
	}
}

function datatable_clearSelectedRecords(){
	clearSelectedRecords(this);
}

function _table_cell_onDblclick(){
	var cell = this;
	var table=getTableByCell(cell);
	var dataset=getElementDataset(table);
	var cellFieldName = cell.name;
	var cellFieldValue = dataset.getString(cell.name) ;
	var eventName=table.id+"_"+"onCellDblclick";
	fireUserEvent(eventName, [cellFieldName, cellFieldValue, cell]);
}

function _table_head_onmouseover(){
	var cell=this;
	if (cell.getAttribute("allowClick") || cell.getAttribute("allowSort")){
		cell.style.backgroundImage = "url(none)";
	}
}

function _table_head_onmouseout(){
	var cell=this;
	if (cell.getAttribute("allowClick") || cell.getAttribute("allowSort")){
		cell.style.backgroundImage = "url("+_extra_library+"image/table_header.gif)";
	}
}

function _table_head_onclick(){
	
	//如果在控制表格可拖动的DIV上点击鼠标则不执行排序操作LJJ--20050906
	var srcEle_id = event.srcElement.id ;
	if( srcEle_id.indexOf('resizeDiv_',0) > -1 )
	{
		event.returnValue = false ;
		return ;
	}
	
	if (resize_object_mousedownx*1 > 0)
	{
		event.returnValue = false ;
		resize_object_mousedownx = 0 ;
		return ;
	}
	
	var cell=this;
	var table=getTableByCell(cell);
	
	
	//20050712处理固定表头ljj	
	if (table.getAttribute("type")=="header") {
		table = document.getElementById(table.getAttribute("bodytable"));
	}
	
	if (compareText(cell.getAttribute("name"), "select")) {
		_table_select_onHeaderClick(table, cell);
		return;
	}

	if (cell.getAttribute("allowClick")){
		var eventName=table.id+"_"+cell.name+"_"+"onHeaderClick";
		fireUserEvent(eventName, [table, cell]);
	}
	
	
	if (cell.getAttribute("allowSort")){
		var dataset=getElementDataset(table);
		if (dataset){
			var sortfield;
			if (!event.altKey){
				sortfield=cell.getAttribute("dataField");
				var ascend=true;
				if (compareText(dataset.sortFields.substr(0, sortfield.length), sortfield)){
					sortfield="-"+sortfield;
					ascend=false;
				}
				showStatusLabel(window, "<FONT face=Marlett><B>"+((ascend)?"5":"6")+"</B></FONT>", cell);
			}
			else{
				sortfield="";
				showStatusLabel(window, constCancelSort, cell);
			}

			_stored_element=dataset;
			
			setTimeout("_stored_element.sort(\""+sortfield+"\")", 100);
			setTimeout("hideStatusLabel(window)",  500);
			
		}
	}

	event.cancelBubble=true;
}


function _table_checkbox_onclick(){
	var row=getRowByCell(event.srcElement.parentElement);
	var record=row.getAttribute("record");
	if (!record) event.returnValue=false;

	if (event.srcElement.checked)
		selectRecord(getTableByRow(row), record);
	else
		unselectRecord(getTableByRow(row), record);
		
	var eventName=getTableByRow(row).id+"_"+"onSelectClick";
	fireUserEvent(eventName, [record]);
}

function _table_select_onHeaderClick(table, cell) {
	if (table.getAttribute("type")=="header") {
		table = document.getElementById(table.getAttribute("bodytable"));
	}
	
	var dataset=getElementDataset(table);
	if (!dataset) return;

	dataset.disableControls();
	try{
		dataset.moveFirst();
		while (!dataset.eof){
			if (isRecordSelected(table, dataset.record)) {
				unselectRecord(table, dataset.record);
			}
			else{
				selectRecord(table, dataset.record);
			}
			dataset.moveNext();
		}
		dataset.moveFirst();
	}
	finally{
		dataset.enableControls();
	}

	event.cancelBubble=true;
}

function _table_select_onHeaderDblClick() {
	var cell=this;
	var table=getTableByCell(cell);
	
	if (table.getAttribute("type")=="header") {
		table = document.getElementById(table.getAttribute("bodytable"));
	}
	
	var dataset=getElementDataset(table);
	if (!dataset) return;

	dataset.disableControls();
	try{
		dataset.moveFirst();
		while (!dataset.eof){
			selectRecord(table, dataset.record);
			dataset.moveNext();
		}
		dataset.moveFirst();
	}
	finally{
		dataset.enableControls();
	}
}

//同步固定表头表格和数据表格的滚动
function changePos(table_id){
  	document.getElementById(table_id+"_div_m_header").scrollLeft = document.getElementById(table_id+"_div_m_body").scrollLeft ;
}

//同步固定表头表格和数据表格的单元格宽度
function initCellWidth(table_id) {
	document.getElementById(table_id+"_head_table").setAttribute("width",document.getElementById(table_id).clientWidth)
	
	var row_body = document.getElementById(table_id).tHead.rows[0];
	var row_header = document.getElementById(table_id+"_head_table").rows[0];
	
	var div_clientWidth = document.getElementById(table_id+"_div_m_body").clientWidth ;
	document.getElementById(table_id+"_div_m_header").style.width = div_clientWidth ;
	
	document.getElementById(table_id+"_head_table").setAttribute("dataset",document.getElementById(table_id).getAttribute("dataset"));
	
	for(var index=0; index<row_body.cells.length; index++){
		var cell=row_body.cells[index] ;
		var cell_header = null ;
		if (row_header.cells.length==row_body.cells.length){
			cell_header= row_header.cells[index] ;
		} else {
			cell_header=row_header.insertCell();
		}
		cell_header.style.width = cell.clientWidth ;
		//cell_header.width = cell.width ;
		cell_header.setAttribute("allowSort",cell.getAttribute("allowSort"));
		cell_header.setAttribute("dataField",cell.getAttribute("dataField"));
		cell_header.onclick = cell.onclick;
		cell_header.ondblclick = cell.ondblclick ;
		cell_header.label = cell.label ;
		cell_header.name = cell.name ;
		cell_header.innerHTML = typeof(cell.label)=="undefined"?"":cell.label;
		cell_header.align = "center" ;
	
		//处理表格拖动20050828---ljj///////////////////////////////////////
        if (index > 0)
        {
	        var tempStr = '<div id="resizeDiv_header_' + table_id + '_' + cell.getAttribute("name") + '" class="resizeDivClass" '
	                    + ' onmousedown="MouseDownToResize_header(this,' + table_id + ');"'
	                    + ' onmousemove="MouseMoveToResize_header(this,' + table_id + ');"'
	                    + ' onmouseup="MouseUpToResize_header(this,' + table_id + ','+ index +');"></div>';    
	        
	        cell_header.innerHTML = '<nobr>' + cell_header.innerHTML + '</nobr>' + tempStr ;
	        var obj = eval("resizeDiv_header_" + table_id + '_' + cell.getAttribute("name")); 
	        obj.style.left = cell.right ;
	        
    	}
    	///////////////////////////////////////////////////////////////////
	}
	
}

function change_Div_Width(table_id){
	var div_clientWidth = document.getElementById(table_id+"_div_m_body").clientWidth ;
	document.getElementById(table_id+"_div_m_header").style.width = div_clientWidth ;
}