senza entrare nei dettagli del tuo codice, io faccio una cosa del genere
seguendo la regola che IE vuole l' embed, tutti gli altri l' object
codice:
var path='percorso/file.swf';
if(!document.all || window.opera){
	var obj=createElement('object')
	obj.setAttribute('data',path);
	var par1=createElement('param');
	par1.setAttribute('name','movie');
	par1.setAttribute('value',path);
	obj.appendChild(par1);
} else {
	var obj=createElement('embed');
	obj.setAttribute('src',path);
}
// comuni ad entrambi
obj.setAttribute('type','application/x-shockwave-flash')
obj.setAttribute('width','640');
obj.setAttribute('height','480');

// appendo dove serve
riferimentoContenitore.appendChild(obj);
ciao