/*
Table Resizing code
Author : Prakash Joseph
*/
var undoResizeFlag=false;
var lastUpdateWidth="";
var lastUpdateHeight="";
var lastUpdateWH="";
var sResizableElement = "TD";    
var iResizeThreshold = 8;
var iEdgeThreshold = 1;
var iSizeThreshold = 20;
var sVBarID = "VBar";
var tblBkupStr="";
var tblLastUpdateStr="";

var startingTime="";
var rowUpdateObj=null;

//For Row
var rowResizableElement = "TR";    
var sHBarID = "HBar";
//For Column
var oResizeTarget = null;
var iStartX = null;
var iEndX = null;
var iSizeX = null;
//For Row
var iStartY = null;
var iEndY = null;
var iSizeY = null;

//Inline Display
var movingBar="";
var leastRowHead;

function TableResize_CreateVBar()
{
    var objItem = document.getElementById(sVBarID);
    if (!objItem) 
    {        
        objItem = document.createElement("SPAN");
        objItem.id = sVBarID;
        objItem.style.position = "absolute";
        objItem.style.top = "0px";
        objItem.style.left = "0px";
        objItem.style.height = "0px";
        objItem.style.width = "2px";
        objItem.style.background = "silver";
        objItem.style.borderLeft = "1px solid black";
        objItem.style.display = "none"; 
        document.body.appendChild(objItem);
    }
}
function TableResize_CreateHBar()
{
    var objItem = document.getElementById(sHBarID);
    if (!objItem) 
    {        
        objItem = document.createElement("SPAN");
        objItem.id = sHBarID;
        objItem.style.position = "absolute";
        objItem.style.top = "0px";
        objItem.style.left = "0px";
        objItem.style.height = "0px";
        objItem.style.width = "2px";
        objItem.style.borderBottom = "1px solid black";
        objItem.style.display = "none"; 
        document.body.appendChild(objItem);
    }
}
window.attachEvent("onload", TableResize_CreateVBar);
window.attachEvent("onload", TableResize_CreateHBar);
/*
Returns a valid resizable element, even if it contains another element 
which was actually clicked otherwise it returns the top body element.
*/
function TableResize_GetOwnerHeader(objReference) 
{
    var oElement = objReference;

    while (oElement != null && oElement.tagName != null && oElement.tagName != "BODY") 
    {
        if (oElement.tagName.toUpperCase() == sResizableElement || oElement.tagName.toUpperCase() == rowResizableElement) 
        {
            return oElement;
        }

        oElement = oElement.parentElement;
    }

    // The TD / TR wasn't found
    return null;
}

/*
Find cell at column iCellIndex in the first row of the table 
needed because you can only resize a column from the first row.
by using this, we can resize from any cell in the table if we want to.
*/
function TableResize_GetFirstColumnCell(objTable, oTargetCell) 
{
	var iCellIndex=oTargetCell.cellIndex
	var rowObj=getRowObj(objTable,oTargetCell);
    var oHeaderCell = rowObj.cells(iCellIndex);
    return oHeaderCell;
}

/*
Clean up - clears out the tracking information if we're not resizing.
*/
function TableResize_CleanUp() 
{
    var oVBar = document.getElementById(sVBarID);
    var oHBar = document.getElementById(sHBarID);

    if (oVBar && oHBar)
    {
        oVBar.runtimeStyle.display = "none";
        oHBar.runtimeStyle.display = "none";
    }
    iEndX = null;
    iSizeX = null;
    iStartX = null;

    iEndY = null;
    iSizeY = null;
    iStartY = null;
	
    oResizeTarget = null;
    oAdjacentCell = null;

    return true;
}

/*
Main Functions
*/
function showCursor(obj)
{
	obj=event.srcElement;

	if(obj && obj.nodeName=="TD" && obj.id!="" && eventChange)
	{
		var x=window.event.offsetX;
		var y=window.event.offsetY;
		var x1=window.event.clientX;
		var y1=window.event.clientY;

		var movingObj=document.getElementById("movingtxt");
		obj.style.cursor="";
		var oVBar;
		if(x>=obj.offsetWidth-2 && x<=obj.offsetWidth)
		{
			obj.style.cursor="e-resize";
		}
		else if(y>=obj.offsetHeight-2  && y<=obj.offsetHeight)
		{
			obj.style.cursor="n-resize";
		}
	}
	else
	{
		if(obj)
		{
			obj.style.cursor="";
		}
	}
	if(obj)
	{
		oVBar=document.getElementById(movingBar);
		if(oVBar)
		{
			if(movingBar=="VBar")
			{
				oVBar.runtimeStyle.left = window.event.clientX + document.body.scrollLeft;
				oVBar.runtimeStyle.top = formatTblTop;
				oVBar.runtimeStyle.height = document.getElementById("reportMainTable").clientHeight;
			}
			else if(movingBar=="HBar")
			{
				if(document.getElementById("reportMainTable").clientWidth > window.screen.width)
					oVBar.runtimeStyle.left = "0px";
				else
					oVBar.runtimeStyle.left = "13px";
				oVBar.runtimeStyle.top = (window.event.clientY-20)+ document.body.scrollTop;
				oVBar.runtimeStyle.height="0px";
				oVBar.runtimeStyle.width = document.getElementById("reportMainTable").clientWidth;
			}
		}
	}
}

function TableResize_OnMouseMove(objTable) 
{
    var objTH = TableResize_GetOwnerHeader(event.srcElement);
    if (!objTH)
        return;
	var oVBar
    if (event.offsetX >= (objTH.offsetWidth - iEdgeThreshold))
	   oVBar = document.getElementById(sVBarID);
	else if (event.offsetY >= (objTH.offsetHeight - iEdgeThreshold))
	   oVBar = document.getElementById(sHBarID);
    if (!oVBar)
        return;
	else
	   movingBar="";
	
    var oAdjacentCell = objTH.nextSibling;
    if(objTH && oVBar.id=="VBar")
	{
	   oAdjacentCell=objTH;
	   movingBar="VBar";
	}
	var rowObj=getRowObj(objTable,objTH)
	if(rowObj && oVBar.id=="HBar")
	{
		oAdjacentCell=rowObj;
		movingBar="HBar";
	}

    return true;
}

/*
MouseDown event. 
This fills the globals with tracking information, and displays the 
vertical bar. This is only done if you are allowed to start resizing.
*/
function TableResize_OnMouseDown(objTable) 
{
    // Record start point and show vertical bar resize indicator
    var oTargetCell = event.srcElement;
    if (!oTargetCell)
        return;
    var oVBar;
	if(oTargetCell.style.cursor == "e-resize")
		oVBar=document.getElementById(sVBarID);
	else if(oTargetCell.style.cursor == "n-resize")
		oVBar=document.getElementById(sHBarID);
    if (!oVBar)
        return;

	var oHeaderCell=null;
	if (oTargetCell.parentElement.tagName.toUpperCase() == sResizableElement)
    {
		if(oTargetCell.style.cursor == "e-resize")
	        oTargetCell = oTargetCell.parentElement;
		else if(oTargetCell.style.cursor == "n-resize")
		{
			var oRowObj = getRowObj(objTable,oTargetCell);	
			if(oRowObj)
				oTargetCell = oRowObj.parentElement;
		}
    }
	oHeaderCell = TableResize_GetFirstColumnCell(objTable, oTargetCell);
	if(oTargetCell.style.cursor == "n-resize")
	{
		var oRowObj = getRowObj(objTable,oTargetCell);	
		if(oRowObj)
			oHeaderCell = oRowObj;
	}

    if (oHeaderCell!=null && oTargetCell.style.cursor == "n-resize" || (oTargetCell.style.cursor == "e-resize" && oHeaderCell.tagName.toUpperCase() == sResizableElement )) 
    {        
		if(oTargetCell.style.cursor == "n-resize")
			iStartY = event.screenY;
		else
	        iStartX = event.screenX;
        oResizeTarget = oHeaderCell;
        objTable.setAttribute("Resizing", "true");
        objTable.setCapture();
		
		//Inline style display
		if(movingBar=="VBar")
		{
			oVBar.runtimeStyle.display = "inline";
			oVBar.runtimeStyle.left = window.event.clientX + document.body.scrollLeft;
			oVBar.runtimeStyle.top = formatTblTop;
			oVBar.runtimeStyle.height = objTable.clientHeight;
			oVBar.runtimeStyle.width = "1px";
		}
		else if(movingBar=="HBar")
		{
			oVBar.runtimeStyle.display = "inline";
			if(document.getElementById("reportMainTable").clientWidth > window.screen.width)
				oVBar.runtimeStyle.left = "0px";
			else
				oVBar.runtimeStyle.left = "13px";
			oVBar.runtimeStyle.top = (window.event.clientY-20)+ document.body.scrollTop;
			oVBar.runtimeStyle.width = objTable.clientWidth;
			oVBar.runtimeStyle.height = "1px";
		}
    } 

    return true;
}

function getRowObj(objTable,oTargetCell)
{
	if(objTable && oTargetCell && oTargetCell.name!=null)
	{
		/*
		var rowPos=oTargetCell.name.substring(0,oTargetCell.name.indexOf("C"));
		rowPos=rowPos.substring(rowPos.indexOf("w")+1);
		return objTable.rows(rowPos-1);
		*/
		return objTable.rows(oTargetCell.parentNode.rowIndex);

	}
	else
		return false;
}		
/*
MouseUp event. 
This finishes the resize.
*/
function reportTableRefresh(tableObject)
{
	var divObj=document.getElementById("tableRefresh");
	var divStr=divObj.innerHTML;
	divObj.innerHTML="";
	divObj.innerHTML=divStr;
}
function TableResize_OnMouseUp(objTable) 
{
    // Resize the column and its adjacent sibling if position and size are within threshold values

	if(iStartY != null && oResizeTarget != null)
	{
		var oAdjacentCell = null;
		var iAdjCellOldHeight = 0;
		var iResizeOldHeight = 0;
        iEndY = event.screenY;
        iSizeY = iEndY - iStartY;
        // Mark the table with the resize attribute for not resizing
		if(iSizeY!=0)
		{
	        objTable.setAttribute("Resizing", "false");
			try{
				var targetHeight=iSizeY+oResizeTarget.offsetHeight;
				updatingHeight(oResizeTarget,targetHeight,false);
			}
			catch(e){}
		}
	}
    else if (iStartX != null && oResizeTarget != null) 
    {
		//window.status="ON MOUSE UP : "+oResizeTarget.runtimeStyle.cursor
		var oAdjacentCell = null;
		var iAdjCellOldWidth = 0;
		var iResizeOldWidth = 0;
        iEndX = event.screenX;
        iSizeX = iEndX - iStartX;
        // Mark the table with the resize attribute for not resizing
		if(iSizeX !=0)
		{
	        objTable.setAttribute("Resizing", "false");
			if(iSizeX >= 0)
			{
				try
				{
					var targetWidth=oResizeTarget.offsetWidth+iSizeX;
					updatingWidth(oResizeTarget.cellIndex,oResizeTarget,targetWidth,false);
				}catch(e){}
			}
			else
			{
				try
				{
					var targetWidth=oResizeTarget.offsetWidth+iSizeX;
					updatingWidth(oResizeTarget.cellIndex,oResizeTarget,targetWidth,false);
				}catch(e){}
                oAdjacentCell = oResizeTarget.nextSibling;
				if(oAdjacentCell)
				{
					try
					{
						var targetId=oResizeTarget.id;
						var subStr=adjenctID.substring(0,adjenctID.indexOf("_"));
						if(subStr!="" && oAdjacentCell.id.indexOf(subStr)!=-1)
							oAdjacentCell.style.width=oAdjacentCell.offsetWidth+Math.abs(iSizeX);
	
					}catch(e){}
				}
			}
		}
    }

    // Clean up the VBar and release event capture.
    TableResize_CleanUp();
    objTable.releaseCapture();

    return true;
}


function lastUpdateOfWidthHeight(cacheTblFlg)
{
	var divObj=document.getElementById("tableRefresh");
	if(cacheTblFlg=="S")
	{
		tblBkupStr=divObj.innerHTML;		
		opener.tblBkupStr_parent=divObj.innerHTML;		
	}
	else
	{
		tblLastUpdateStr=divObj.innerHTML;		
		opener.tblLastUpdateStr_parent=divObj.innerHTML;		
	}
}

function findRowPosition(findRowObj)
{

	if(findRowObj)
	{
		if(findRowObj.cells[0].colSpan > 1)
		{
			var tblObj=document.getElementById("reportMainTable");
			if(tblObj)
			{
				var rindx=findRowObj.rowIndex;
				findRowPosition(tblObj.rows[rindx-1]);
			}
		}
		else
		{
			updatedRowIndx=findRowObj.rowIndex;
			return;
		}
	}
	else
	{
		updatedRowIndx=0;
		return;
	}
}
var updatedRowIndx=null;

function getDataRowHead()
{
	var objTbl=document.getElementById("reportMainTable");
	var objRows=objTbl.getElementsByTagName("TR");
	var dataRowHead;
	var chkHead=false;
	for(r=0;r < objRows.length;r++)
	{
		if( (objRows[r].cells[0].id.charAt(0)=="D" && objRows[r].cells[0].colSpan=="1") || (objRows[r].cells[0].id.charAt(0)=="C" && objRows[r].cells[0].colSpan=="1") )
		{
			if(chkHead)
				return dataRowHead;
			chkHead=true;
			dataRowHead=objRows[r];
		}
		else
		{
			if(chkHead)
				return dataRowHead;
		}
	}
	return dataRowHead;
}

function getLeastRowHead()
{
	var objTbl=document.getElementById("reportMainTable");
	var objRows=objTbl.getElementsByTagName("TR");
	var dataRowHead;
	var chkHead=false;
	for(r=objRows.length-2 ;r >=0 ;r--)
	{
		if( objRows[r].cells[0].id.charAt(0)=="D" && objRows[r].cells[0].colSpan=="1")
		{
			if(chkHead)
				return dataRowHead;
			chkHead=true;
			dataRowHead=objRows[r];
		}
		else
		{
			if(chkHead)
				return dataRowHead;
		}
	}
	return chkHead;
}


function updatingCellsFormat(updateFlg)
{
	var objTbl=document.getElementById("reportMainTable");
	var objRows=objTbl.getElementsByTagName("TR");
	var rowPosition=0;
	var arrList = formatString.split("~");

	closeFormatPart();

	var dataRowHead=getLeastRowHead();
	if(dataRowHead && typeof(dataRowHead)!='undefined')
	{
		rowPosition=dataRowHead.rowIndex+1;
	if(objTbl)
	{
		findRowPosition(objTbl.rows[rowPosition-1]);
		rowPosition=updatedRowIndx;
	}
	
	if(updateFlg=="UNDO" || updateFlg=="WIDTH")
	{
		if(objRows[rowPosition])
		{
			var objCols=objRows[rowPosition].getElementsByTagName("TD");
			if(leastRowHead || typeof(leastRowHead)=='undefined')
				leastRowHead=getDataRowHead();
			for(cs=0;cs < objCols.length;cs++)
			{
				if(objCols[cs])
				{
					if(cs==0 && leastRowHead && typeof(leastRowHead)!='undefined')
					{
						selList=leastRowHead.cells[0].id+"#";
						updateChildCellsFormat(leastRowHead.cells[0],leastRowHead.cells[0].offsetWidth,selList,arrList);
					}
					selList=objCols[cs].id+"#";
					updateChildCellsFormat(objCols[cs],objCols[cs].offsetWidth,selList,arrList);
				}
			}
		}
	}

	if(updateFlg=="UNDO" || updateFlg=="HEIGHT")
	{
		if(rowUpdateObj!=null && updateFlg=="HEIGHT")
		{
			if(rowUpdateObj.cells[0].id != "")
			{
				if(leastRowHead || typeof(leastRowHead)=='undefined')
					leastRowHead=getDataRowHead();

				var colHeadRowObj=leastRowHead;
				if(colHeadRowObj && typeof(colHeadRowObj)!='undefined' && colHeadRowObj.rowIndex == rowUpdateObj.rowIndex)
				{
					var objCols=rowUpdateObj.getElementsByTagName("TD");
					for(rs=0;rs < objCols.length;rs++)
					{
						if(rowUpdateObj.cells[rs].id!="")
						{
							selList=rowUpdateObj.cells[rs].id+"#";
							updateChildCellsFormat(rowUpdateObj.cells[rs],rowUpdateObj.cells[rs].offsetWidth,selList,arrList);
						}
					}
				}
				else
				{
					selList=rowUpdateObj.cells[0].id+"#";
					updateChildCellsFormat(rowUpdateObj.cells[0],rowUpdateObj.cells[0].offsetWidth,selList,arrList);
				}
			}
		}
		else
		{
			for(rs=0;rs < objRows.length;rs++)
			{
				if(objRows[rs].cells[0].id!="")
				{
					selList=objRows[rs].cells[0].id+"#";
					updateChildCellsFormat(objRows[rs].cells[0],objRows[rs].cells[0].offsetWidth,selList,arrList);
				}
			}
		}
	}

	document.getElementById("reportUndoText").value = document.getElementById("reportFormatText").value;
	opener.document.getElementById("reportUndoText").value = document.getElementById("reportFormatText").value;

	if (formatString != null && formatString.substring(0,1)=='~') {
		formatString = formatString.substring(1,formatString.length)
	}
	document.getElementById("reportFormatText").value=formatString;
	
	if (window.opener.document.getElementById("reportFormatText")) {
		window.opener.document.getElementById("reportFormatText").value=formatString;
	}
	updatedRowIndx=null;
	}
}

function updateAllRowsFirstCell()
{
	var objTbl=document.getElementById("reportMainTable");
	var objRows=objTbl.getElementsByTagName("TR");
	var rowPosition=0;
	var dataRowHead=getDataRowHead();
	if(dataRowHead && typeof(dataRowHead)!='undefined')
		rowPosition=dataRowHead.rowIndex+1;
	else
		rowPosition="";

	if(objTbl && rowPosition!="")
	{
		findRowPosition(objTbl.rows[rowPosition-1]);
		rowPosition=updatedRowIndx;
		var nCellWidth="";
		var nCellWidth=objTbl.rows[rowPosition].cells[0].currentStyle.width;
		if(nCellWidth && nCellWidth!="" && nCellWidth!="auto")
		{
			for(rs=0;rs < objRows.length;rs++)
			{
				if(objRows[rs].cells[0].colSpan == 1 && objRows[rs].id.indexOf("LEGEND_ROW")==-1)
				{
					objRows[rs].cells[0].style.width=nCellWidth;
				}
				else
				{
					setStyleRules(".cls"+objRows[rs].cells[0].id,'auto');
					objRows[rs].cells[0].style.width='auto';
				}
			}
		}
	}
}

function setStyleRules(styleRule,tWidth)
{
	for(st=document.styleSheets("formatStyleSheet").rules.length-1;st>0;st--)							
	{
		if(document.styleSheets("formatStyleSheet").rules[st].selectorText==styleRule)
		{
			document.styleSheets("formatStyleSheet").rules[st].style.width=tWidth;
			break;
		}
	}
}

function updatingWidth(cIndex,oResizeTarget,targetWidth,fromUndo)
{
	var curdate = new Date();
	var seconds_1 = curdate.getTime();
	lastUpdateOfWidthHeight("S");
	var objTbl=document.getElementById("reportMainTable");
	var objRows=objTbl.getElementsByTagName("TR");
	var fRowPos=oResizeTarget.parentNode.rowIndex;
	var rowCellsLength=objRows[fRowPos].cells.length;
	var condChk=false;
	if(cIndex > 0)
	{   /** Atsushi Update on 02/20/2009:
		 **	1:	Added "if block" to fix rezising problem from column header with child headers.
		 **	2:  Moved existing "for loop" to "else block" which will take care rezising from cells without colSpan
		**/
		if(oResizeTarget.getAttribute("className").toLowerCase()=="clscolumnheader" && oResizeTarget.getAttribute("colspan")>1){ //AS ref: oResizeTarget.getAttribute("colspan") or oResizeTarget.colSpan(case sensitive?)
			var originalWidth = ""; //current width of nested cells
			var widthArray = new Array(objRows.length-1);

			for(row=0; row<objRows.length;row++) //First get current width of all cells (not efficient though...)
			{
				widthArray[row] = new Array(objRows[row].cells.length-1);

				for(col=0;col<objRows[row].cells.length;col++){
					originalWidth = parseInt(objRows[row].cells[col].offsetWidth);
					widthArray[row][col] =  originalWidth;
					//alert(objRows[row].cells[col].id + " = " + widthArray[row][col]);
				}
			}

			var topColId = "";
			var topCol = null;
			var topColSpan = ""; //colSpan of top header
			var totalCells = ""; //total number of cells in a data row

			var startCellIndex = "";  //start index of bottom (data) cells to be reset
			var endCellIndex = "";    //end index of bottom (data) cells to be reset
			var ChangeInWidth = "";
			var widthToChange = "";  //width to be applied to the nested cells

			var currentColSpan = "";//colSpan of the current row
			var startIndex = "";	//start index of the cells to be resized
			var endIndex = "";		//end index of the cells to be resized

			if(oResizeTarget.id.indexOf("_") == -1){ //top header is selected ==> in most cases "fRowPos==0" ?
				topColId = oResizeTarget.id
			}
			else{ //nested header is selected
				topColId = oResizeTarget.id.substring(0,oResizeTarget.id.indexOf("_"));
			}

			topCol = document.getElementById(topColId);
			topColSpan = topCol.getAttribute("colspan");
			totalCells = (objRows[topCol.parentNode.rowIndex].cells.length -1) * topColSpan + 1;

			endCellIndex = cIndex * oResizeTarget.getAttribute("colspan");
			startCellIndex = endCellIndex - oResizeTarget.getAttribute("colspan") + 1;

			ChangeInWidth = targetWidth - oResizeTarget.offsetWidth;

			oResizeTarget.style.width=targetWidth;  //resize the width of the selected cell
			condChk=true;

			for(row=fRowPos+1; row<objRows.length;row++)  //now reset width of nested cells
			{
				//if (objRows[row].cells.length <= totalCells && objRows[row].cells.length >= objRows[topCol.parentNode.rowIndex].cells.length)
				if (objRows[row].cells.length <= totalCells && objRows[row].cells.length > 1)  //to avoid "clsSection"
				{
					currentColSpan = (totalCells-1)/(objRows[row].cells.length-1);

					widthToChange = parseInt(ChangeInWidth /(oResizeTarget.getAttribute("colspan")/currentColSpan));

					endIndex = endCellIndex / currentColSpan;
					startIndex = endIndex - ((endCellIndex - startCellIndex + 1) / currentColSpan) + 1;
					//alert("startIndex=" + startIndex + " endIndex" + endIndex);

					for(col=startIndex;col<=endIndex;col++){
						//alert(objRows[row].cells[col].id);
						originalWidth = widthArray[row][col];
						objRows[row].cells[col].style.width = originalWidth + widthToChange;
					}
				}
			}
		}
		else{
			for(rs=0;rs < objRows.length;rs++)
			{
				if(rowCellsLength==objRows[rs].cells.length && objRows[rs].cells[cIndex] && objRows[rs].id.indexOf("LEGEND_ROW")==-1)
				{
					objRows[rs].cells[cIndex].style.width=targetWidth;
					condChk=true;
				}
			}
		}
	}
	else if(cIndex==0 && oResizeTarget.colSpan == 1)
	{
		for(rs=0;rs < objRows.length;rs++)
		{
			if(objRows[rs].cells[0].colSpan == 1 && objRows[rs].id.indexOf("LEGEND_ROW")==-1)
			{
				objRows[rs].cells[0].style.width="";
				objRows[rs].cells[0].width="";
				objRows[rs].cells[0].style.width=targetWidth;
				objRows[rs].cells[0].width=targetWidth;
				condChk=true;
			}
			else
			{
				settingStyleRules(".cls"+objRows[rs].cells[0].id,'auto')
				objRows[rs].cells[0].style.width="auto";
			}
		}
	}
	if(!condChk)
	{
		oResizeTarget.style.width=targetWidth;
	}
	undoResizeFlag=true;
	opener.undoResizeFlag_parent=true;
	lastUpdateOfWidthHeight("E");
	updatingCellsFormat("WIDTH");
	curdate = new Date();
	seconds_2=curdate.getTime();
	//alert("Total time in Milli Seconds = "+(seconds_2-seconds_1)+" \n \n "+" In Seconds = "+((seconds_2-seconds_1)/1000));

}

function updatingHeight(oResizeTarget,targetHeight,fromUndo)
{
	var curdate = new Date();
	var seconds_1 = curdate.getTime();
	lastUpdateOfWidthHeight("S");
	rowUpdateObj=oResizeTarget;
	var objCols=oResizeTarget.getElementsByTagName("TD");
	for(rs=0;rs < objCols.length;rs++)
	{
		if(oResizeTarget.cells[rs])
			oResizeTarget.cells[rs].style.height=targetHeight;
	}
	undoResizeFlag=true;
	opener.undoResizeFlag_parent=true;
	lastUpdateOfWidthHeight("E");
	updatingCellsFormat("HEIGHT");
	curdate = new Date();
	seconds_2=curdate.getTime();
	rowUpdateObj=null;
	//alert("Total time in Milli Seconds = "+(seconds_2-seconds_1)+" \n \n "+" In Seconds = "+((seconds_2-seconds_1)/1000));
}

