Exibindo e escondendo dinamicamente TR em uma tabela

Custei mas achei, eu tinha uma tabela com algumas TR escondidas via style, porém ao tirar eslas do “display:none” via javascript ficava desalinhado (todo o conteúdo da TR em uma única TD)

Fuçando muito, descobri o problema, o motor de renderização Trident (IE) utiliza  a propriedade block para exibir de forma generica, já os motores webkit (chrome, safari, etc) e gecko (firefox) utilizam “table-row”,

A função salvadora da pátria abaixo:

<script>
function toggle(id){
	if (document.getElementById && document.createTextNode)
	{
		var tr=document.getElementById(id);
		if (tr) {
			if (tr.style.display == 'none') {
				try {
					tr.style.display='table-row';
				} catch(e) {
					tr.style.display = 'block';
				}
			}
			else {
				tr.style.display = 'none';
			}
		}
	}
}
</script>

Atualização 21/03/2012:
Pra usar em uma TD, basta substituir table-row por table-cell