It works for me.
First you should not need to a detection for document.getElementById or document.all.
getElementById is a DOM method and is supported in IE and in Firefox and pretty much any reasonably newer browser as far as I know.
Simply using this:
Code:
function change(html){
document.getElementById("description").innerHTML=html;
}
Should work in Firefox and IE without a problem.
I just loaded your page in both IE and in Firefox and both are working for me. You ARE getting some errors related to your CSS, apparently have a missing closing brace in your MMValidateForm function (or possibly one of the others but at a quick glance it looks like near the bottom there is no opening brace for the else statment but there IS a closing brace), and the titlechange function is not currently in the code so calls to it are causing javascript errors though those would not prevent it from working.
As a test I downloaded your page to try it locally.
I made it into a .htm as I do not have PHP support here at work.
I removed all of the javascript functions except for change() and I removed all of the object and embed tags since I did not have support for those.
The page tested fine locally in IE6 and in Firefox 1.5.0.3 both with and without your document.all and document.getElementById tests.
Again, getElmentById should already work cross-browser for you. You might be dealing with a cache issue where the non-working page is still displaying in your browser rather than the newly modified code.
If all else fails, simplify your code removing anything unnecessary during your tests then add them back in to see where it fails. It might be that the missing brace in a function is causing all of your javascript to fail on your end. You can narrow that down by removing the functions and seeing when it begins working again.
It's hard to think outside the box when I'm trapped in a cubicle.