function ncLayoutSetBodyHeight(){
	// find first parent table of pseudo table and ensure it's the same height as it's containing cell 
	var oPseudoHolder = document.getElementById('pseudobody'); 
	
	var oTable2;
	if(oPseudoHolder.tagName.toLowerCase() == 'td'){
		var oTable1 = ncLayoutGetAncestorTable(oPseudoHolder);
		if(oTable1){
			oTable2 = ncLayoutGetAncestorTable(oTable1);
		}
	}else{
		// div container
		oTable2 = ncLayoutGetAncestorTable(oPseudoHolder);
	}
	
	if(oTable2){
		var oTd = oTable2.parentNode;
		var oTr = oTd.parentNode;
		
		if(oTd.offsetHeight > oTable2.offsetHeight){
			var lAdjustment = oTd.offsetHeight - oTable2.offsetHeight;
			var lPseudoHeight = oPseudoHolder.offsetHeight;
			lPseudoReqHeight = lPseudoHeight + lAdjustment;
			oPseudoHolder.style.height = lPseudoReqHeight + 'px';
			var lDiffCheck = oPseudoHolder.offsetHeight - lPseudoReqHeight;
			if(lDiffCheck > 0){
				oPseudoHolder.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;
	}
}
