function ncLayoutFixBodyHeight(){
	// find first parent table of pseudo table and ensure it's the same height as it's containing cell 
	var oPseudoTd = document.getElementById('pseudobody'); 
	var oTable1 = ncLayoutGetAncestorTable(oPseudoTd);
	if(oTable1){
		var oTable2 = ncLayoutGetAncestorTable(oTable1);
		if(oTable2){
			var oTd = oTable2.parentNode;
			var oTr = oTd.parentNode;
			
			if(oTd.offsetHeight > oTable2.offsetHeight){
				var lAdjustment = oTd.offsetHeight - oTable2.offsetHeight;
				var lPseudoHeight = oPseudoTd.offsetHeight;
				lPseudoReqHeight = lPseudoHeight + lAdjustment;
				oPseudoTd.style.height = lPseudoReqHeight + 'px';
				var lDiffCheck = oPseudoTd.offsetHeight - lPseudoReqHeight;
				if(lDiffCheck > 0){
					oPseudoTd.style.height = (lPseudoReqHeight - lDiffCheck) + 'px';
				}
			}	
		}
	}
}
function ncLayoutGetAncestorTable(p_oEl){
	var oEl = p_oEl.parentNode;
	while(oEl.tagName.toLowerCase() != 'table' && oEl.tagName.toLowerCase() != 'body'){
		oEl = oEl.parentNode;
	}
	if(oEl.tagName.toLowerCase() == 'table'){
		return oEl;
	}
}