if(!dojo._hasResource["dojox.av._base.flash"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojox.av._base.flash"] = true; dojo.provide("dojox.av._base.flash"); (function(){ /******************************************************* dojox.av.flash Base functionality to insert a flash movie into a document on the fly. Support for Flash 6 is dropped in favor of Flash 8; multiple movies are supported. ******************************************************/ // TODO: solve the Eolas problem, the function that actually pushes // Flash movie into the doc must be loaded from an external script. // TODO: add Brad's ExpressInstall for automated installation. var fMarkup, fVersion, __def__={ expressInstall: false, width: 320, height: 240, style: null, redirect: null, params: [] }; var keyBase="dojox-av-flash-", keyCount=0; function prep(kwArgs){ kwArgs=dojo.mixin(dojo.clone(__def__), kwArgs || {}); if(!("path" in kwArgs)){ console.error("dojox.av._base.flash(ctor):: no path reference to a Flash movie was provided."); return null; } if(!("id" in kwArgs)){ kwArgs.id=(keyBase + keyCount++); } return kwArgs; } if(dojo.isIE){ // *** Internet Explorer branch ****************************************************************** fMarkup=function(kwArgs){ kwArgs=prep(kwArgs); if(!kwArgs){ return null; } var s='' + ''; for(var i=0, l=kwArgs.params.length; i'; } s += ''; return { id: kwArgs.id, markup: s }; }; fVersion=(function(){ var testVersion=10, testObj=null; while(!testObj && testVersion > 7){ try { testObj = new ActiveXObject("ShockwaveFlash.ShockwaveFlash." + testVersion--); } catch(e){ } } if(testObj){ var v = testObj.GetVariable("$version").split(" ")[1].split(","); return { major: (v[0]!=null)?parseInt(v[0]):0, minor: (v[1]!=null)?parseInt(v[1]):0, rev: (v[2]!=null)?parseInt(v[2]):0 }; } return { major: 0, minor: 0, rev: 0 }; })(); // attach some cleanup for IE, thanks to deconcept :) dojo.addOnUnload(function(){ var objs=dojo.query("object"); for(var i=objs.length-1; i>=0; i--){ objs[i].style.display="none"; for(var p in objs[i]){ if(p!="FlashVars" && dojo.isFunction(objs[i][p])){ objs[i][p]=function(){ }; } } } }); // TODO: ...and double check this fix; is IE really firing onbeforeunload with any kind of href="#" link? var beforeUnloadHandle = dojo.connect(dojo.global, "onbeforeunload", function(){ try{ if(__flash_unloadHandler){ __flash_unloadHandler=function(){ }; } if(__flash_savedUnloadHandler){ __flash_savedUnloadHandler=function(){ }; } } catch(e){ } dojo.disconnect(beforeUnloadHandle); }); } else { // *** Sane browsers branch ****************************************************************** fMarkup=function(kwArgs){ kwArgs=prep(kwArgs); if(!kwArgs){ return null; } var s = '= 8), version: fVersion, initialized: false, onInitialize: function(){ dojox.av.flash.initialized=true; }, __ie_markup__: function(kwArgs){ return fMarkup(kwArgs); } }; if(dojo.isIE){ // Ugh! if(dojo._initFired){ var e=document.createElement("script"); e.type="text/javascript"; e.src=dojo.moduleUrl("dojox", "av/_base/_ieFlash.js"); e.defer=true; document.getElementsByTagName("head")[0].appendChild(e); } else { // we can use document.write. What a kludge. document.write('' + ''); } } else { dojox.av.flash.place = function(node, kwArgs){ node=dojo.byId(node); var o = fMarkup(kwArgs); if(o){ node.innerHTML = o.markup; return document[o.id]; } return null; } if(dojo._initFired){ dojox.av.flash.onInitialize(); } else { dojo.addOnLoad(function(){ console.log("firing off dojox.av.flash.onInitialize() for sane browsers."); dojox.av.flash.onInitialize(); }); } } })(); }