You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
444 lines
13 KiB
444 lines
13 KiB
/* |
|
Copyright (c) 2004-2006, The Dojo Foundation |
|
All Rights Reserved. |
|
|
|
Licensed under the Academic Free License version 2.1 or above OR the |
|
modified BSD license. For more information on Dojo licensing, see: |
|
|
|
http://dojotoolkit.org/community/licensing.shtml |
|
*/ |
|
|
|
|
|
dojo.provide("dojo.flash"); |
|
dojo.require("dojo.string.*"); |
|
dojo.require("dojo.uri.*"); |
|
dojo.require("dojo.html.common"); |
|
dojo.flash=function(){ |
|
}; |
|
dojo.flash={flash6_version:null,flash8_version:null,ready:false,_visible:true,_loadedListeners:new Array(),_installingListeners:new Array(),setSwf:function(_1){ |
|
if(_1==null||dojo.lang.isUndefined(_1)){ |
|
return; |
|
} |
|
if(_1.flash6!=null&&!dojo.lang.isUndefined(_1.flash6)){ |
|
this.flash6_version=_1.flash6; |
|
} |
|
if(_1.flash8!=null&&!dojo.lang.isUndefined(_1.flash8)){ |
|
this.flash8_version=_1.flash8; |
|
} |
|
if(!dojo.lang.isUndefined(_1.visible)){ |
|
this._visible=_1.visible; |
|
} |
|
this._initialize(); |
|
},useFlash6:function(){ |
|
if(this.flash6_version==null){ |
|
return false; |
|
}else{ |
|
if(this.flash6_version!=null&&dojo.flash.info.commVersion==6){ |
|
return true; |
|
}else{ |
|
return false; |
|
} |
|
} |
|
},useFlash8:function(){ |
|
if(this.flash8_version==null){ |
|
return false; |
|
}else{ |
|
if(this.flash8_version!=null&&dojo.flash.info.commVersion==8){ |
|
return true; |
|
}else{ |
|
return false; |
|
} |
|
} |
|
},addLoadedListener:function(_2){ |
|
this._loadedListeners.push(_2); |
|
},addInstallingListener:function(_3){ |
|
this._installingListeners.push(_3); |
|
},loaded:function(){ |
|
dojo.flash.ready=true; |
|
if(dojo.flash._loadedListeners.length>0){ |
|
for(var i=0;i<dojo.flash._loadedListeners.length;i++){ |
|
dojo.flash._loadedListeners[i].call(null); |
|
} |
|
} |
|
},installing:function(){ |
|
if(dojo.flash._installingListeners.length>0){ |
|
for(var i=0;i<dojo.flash._installingListeners.length;i++){ |
|
dojo.flash._installingListeners[i].call(null); |
|
} |
|
} |
|
},_initialize:function(){ |
|
var _6=new dojo.flash.Install(); |
|
dojo.flash.installer=_6; |
|
if(_6.needed()==true){ |
|
_6.install(); |
|
}else{ |
|
dojo.flash.obj=new dojo.flash.Embed(this._visible); |
|
dojo.flash.obj.write(dojo.flash.info.commVersion); |
|
dojo.flash.comm=new dojo.flash.Communicator(); |
|
} |
|
}}; |
|
dojo.flash.Info=function(){ |
|
if(dojo.render.html.ie){ |
|
document.writeln("<script language=\"VBScript\" type=\"text/vbscript\">"); |
|
document.writeln("Function VBGetSwfVer(i)"); |
|
document.writeln(" on error resume next"); |
|
document.writeln(" Dim swControl, swVersion"); |
|
document.writeln(" swVersion = 0"); |
|
document.writeln(" set swControl = CreateObject(\"ShockwaveFlash.ShockwaveFlash.\" + CStr(i))"); |
|
document.writeln(" if (IsObject(swControl)) then"); |
|
document.writeln(" swVersion = swControl.GetVariable(\"$version\")"); |
|
document.writeln(" end if"); |
|
document.writeln(" VBGetSwfVer = swVersion"); |
|
document.writeln("End Function"); |
|
document.writeln("</script>"); |
|
} |
|
this._detectVersion(); |
|
this._detectCommunicationVersion(); |
|
}; |
|
dojo.flash.Info.prototype={version:-1,versionMajor:-1,versionMinor:-1,versionRevision:-1,capable:false,commVersion:6,installing:false,isVersionOrAbove:function(_7,_8,_9){ |
|
_9=parseFloat("."+_9); |
|
if(this.versionMajor>=_7&&this.versionMinor>=_8&&this.versionRevision>=_9){ |
|
return true; |
|
}else{ |
|
return false; |
|
} |
|
},_detectVersion:function(){ |
|
var _a; |
|
for(var _b=25;_b>0;_b--){ |
|
if(dojo.render.html.ie){ |
|
_a=VBGetSwfVer(_b); |
|
}else{ |
|
_a=this._JSFlashInfo(_b); |
|
} |
|
if(_a==-1){ |
|
this.capable=false; |
|
return; |
|
}else{ |
|
if(_a!=0){ |
|
var _c; |
|
if(dojo.render.html.ie){ |
|
var _d=_a.split(" "); |
|
var _e=_d[1]; |
|
_c=_e.split(","); |
|
}else{ |
|
_c=_a.split("."); |
|
} |
|
this.versionMajor=_c[0]; |
|
this.versionMinor=_c[1]; |
|
this.versionRevision=_c[2]; |
|
var _f=this.versionMajor+"."+this.versionRevision; |
|
this.version=parseFloat(_f); |
|
this.capable=true; |
|
break; |
|
} |
|
} |
|
} |
|
},_JSFlashInfo:function(_10){ |
|
if(navigator.plugins!=null&&navigator.plugins.length>0){ |
|
if(navigator.plugins["Shockwave Flash 2.0"]||navigator.plugins["Shockwave Flash"]){ |
|
var _11=navigator.plugins["Shockwave Flash 2.0"]?" 2.0":""; |
|
var _12=navigator.plugins["Shockwave Flash"+_11].description; |
|
var _13=_12.split(" "); |
|
var _14=_13[2].split("."); |
|
var _15=_14[0]; |
|
var _16=_14[1]; |
|
if(_13[3]!=""){ |
|
var _17=_13[3].split("r"); |
|
}else{ |
|
var _17=_13[4].split("r"); |
|
} |
|
var _18=_17[1]>0?_17[1]:0; |
|
var _19=_15+"."+_16+"."+_18; |
|
return _19; |
|
} |
|
} |
|
return -1; |
|
},_detectCommunicationVersion:function(){ |
|
if(this.capable==false){ |
|
this.commVersion=null; |
|
return; |
|
} |
|
if(typeof djConfig["forceFlashComm"]!="undefined"&&typeof djConfig["forceFlashComm"]!=null){ |
|
this.commVersion=djConfig["forceFlashComm"]; |
|
return; |
|
} |
|
if(dojo.render.html.safari==true||dojo.render.html.opera==true){ |
|
this.commVersion=8; |
|
}else{ |
|
this.commVersion=6; |
|
} |
|
}}; |
|
dojo.flash.Embed=function(_1a){ |
|
this._visible=_1a; |
|
}; |
|
dojo.flash.Embed.prototype={width:215,height:138,id:"flashObject",_visible:true,protocol:function(){ |
|
switch(window.location.protocol){ |
|
case "https:": |
|
return "https"; |
|
break; |
|
default: |
|
return "http"; |
|
break; |
|
} |
|
},write:function(_1b,_1c){ |
|
if(dojo.lang.isUndefined(_1c)){ |
|
_1c=false; |
|
} |
|
var _1d=new dojo.string.Builder(); |
|
_1d.append("width: "+this.width+"px; "); |
|
_1d.append("height: "+this.height+"px; "); |
|
if(this._visible==false){ |
|
_1d.append("position: absolute; "); |
|
_1d.append("z-index: 10000; "); |
|
_1d.append("top: -1000px; "); |
|
_1d.append("left: -1000px; "); |
|
} |
|
_1d=_1d.toString(); |
|
var _1e; |
|
var _1f; |
|
if(_1b==6){ |
|
_1f=dojo.flash.flash6_version; |
|
var _20=djConfig.baseRelativePath; |
|
_1f=_1f+"?baseRelativePath="+escape(_20); |
|
_1e="<embed id=\""+this.id+"\" src=\""+_1f+"\" "+" quality=\"high\" bgcolor=\"#ffffff\" "+" width=\""+this.width+"\" height=\""+this.height+"\" "+" name=\""+this.id+"\" "+" align=\"middle\" allowScriptAccess=\"sameDomain\" "+" type=\"application/x-shockwave-flash\" swLiveConnect=\"true\" "+" pluginspage=\""+this.protocol()+"://www.macromedia.com/go/getflashplayer\">"; |
|
}else{ |
|
_1f=dojo.flash.flash8_version; |
|
var _21=_1f; |
|
var _22=_1f; |
|
var _20=djConfig.baseRelativePath; |
|
if(_1c){ |
|
var _23=escape(window.location); |
|
document.title=document.title.slice(0,47)+" - Flash Player Installation"; |
|
var _24=escape(document.title); |
|
_21+="?MMredirectURL="+_23+"&MMplayerType=ActiveX"+"&MMdoctitle="+_24+"&baseRelativePath="+escape(_20); |
|
_22+="?MMredirectURL="+_23+"&MMplayerType=PlugIn"+"&baseRelativePath="+escape(_20); |
|
} |
|
if(_22.indexOf("?")==-1){ |
|
_22+="?baseRelativePath="+escape(_20)+"' "; |
|
} |
|
_1e="<object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" "+"codebase=\""+this.protocol()+"://fpdownload.macromedia.com/pub/shockwave/cabs/flash/"+"swflash.cab#version=8,0,0,0\" "+"width=\""+this.width+"\" "+"height=\""+this.height+"\" "+"id=\""+this.id+"\" "+"align=\"middle\"> "+"<param name=\"allowScriptAccess\" value=\"sameDomain\" /> "+"<param name=\"movie\" value=\""+_21+"\" /> "+"<param name=\"quality\" value=\"high\" /> "+"<param name=\"bgcolor\" value=\"#ffffff\" /> "+"<embed src=\""+_22+"' "+"quality=\"high\" "+"bgcolor=\"#ffffff\" "+"width=\""+this.width+"\" "+"height=\""+this.height+"\" "+"id=\""+this.id+"\" "+"name=\""+this.id+"\" "+"swLiveConnect=\"true\" "+"align=\"middle\" "+"allowScriptAccess=\"sameDomain\" "+"type=\"application/x-shockwave-flash\" "+"pluginspage=\""+this.protocol()+"://www.macromedia.com/go/getflashplayer\" />"+"</object>"; |
|
} |
|
_1e="<div id=\""+this.id+"Container\" style=\""+_1d+"\"> "+_1e+"</div>"; |
|
document.writeln(_1e); |
|
},get:function(){ |
|
return document.getElementById(this.id); |
|
},setVisible:function(_25){ |
|
var _26=dojo.byId(this.id+"Container"); |
|
if(_25==true){ |
|
_26.style.visibility="visible"; |
|
}else{ |
|
_26.style.position="absolute"; |
|
_26.style.x="-1000px"; |
|
_26.style.y="-1000px"; |
|
_26.style.visibility="hidden"; |
|
} |
|
},center:function(){ |
|
var _27=this.width; |
|
var _28=this.height; |
|
var _29=dojo.html.getScroll().offset; |
|
var _2a=dojo.html.getViewport(); |
|
var x=_29.x+(_2a.width-_27)/2; |
|
var y=_29.y+(_2a.height-_28)/2; |
|
var _2d=dojo.byId(this.id+"Container"); |
|
_2d.style.top=y+"px"; |
|
_2d.style.left=x+"px"; |
|
}}; |
|
dojo.flash.Communicator=function(){ |
|
if(dojo.flash.useFlash6()){ |
|
this._writeFlash6(); |
|
}else{ |
|
if(dojo.flash.useFlash8()){ |
|
this._writeFlash8(); |
|
} |
|
} |
|
}; |
|
dojo.flash.Communicator.prototype={_writeFlash6:function(){ |
|
var id=dojo.flash.obj.id; |
|
document.writeln("<script language=\"JavaScript\">"); |
|
document.writeln(" function "+id+"_DoFSCommand(command, args){ "); |
|
document.writeln(" dojo.flash.comm._handleFSCommand(command, args); "); |
|
document.writeln("}"); |
|
document.writeln("</script>"); |
|
if(dojo.render.html.ie){ |
|
document.writeln("<SCRIPT LANGUAGE=VBScript> "); |
|
document.writeln("on error resume next "); |
|
document.writeln("Sub "+id+"_FSCommand(ByVal command, ByVal args)"); |
|
document.writeln(" call "+id+"_DoFSCommand(command, args)"); |
|
document.writeln("end sub"); |
|
document.writeln("</SCRIPT> "); |
|
} |
|
},_writeFlash8:function(){ |
|
},_handleFSCommand:function(_2f,_30){ |
|
if(_2f!=null&&!dojo.lang.isUndefined(_2f)&&/^FSCommand:(.*)/.test(_2f)==true){ |
|
_2f=_2f.match(/^FSCommand:(.*)/)[1]; |
|
} |
|
if(_2f=="addCallback"){ |
|
this._fscommandAddCallback(_2f,_30); |
|
}else{ |
|
if(_2f=="call"){ |
|
this._fscommandCall(_2f,_30); |
|
}else{ |
|
if(_2f=="fscommandReady"){ |
|
this._fscommandReady(); |
|
} |
|
} |
|
} |
|
},_fscommandAddCallback:function(_31,_32){ |
|
var _33=_32; |
|
var _34=function(){ |
|
return dojo.flash.comm._call(_33,arguments); |
|
}; |
|
dojo.flash.comm[_33]=_34; |
|
dojo.flash.obj.get().SetVariable("_succeeded",true); |
|
},_fscommandCall:function(_35,_36){ |
|
var _37=dojo.flash.obj.get(); |
|
var _38=_36; |
|
var _39=parseInt(_37.GetVariable("_numArgs")); |
|
var _3a=new Array(); |
|
for(var i=0;i<_39;i++){ |
|
var _3c=_37.GetVariable("_"+i); |
|
_3a.push(_3c); |
|
} |
|
var _3d; |
|
if(_38.indexOf(".")==-1){ |
|
_3d=window[_38]; |
|
}else{ |
|
_3d=eval(_38); |
|
} |
|
var _3e=null; |
|
if(!dojo.lang.isUndefined(_3d)&&_3d!=null){ |
|
_3e=_3d.apply(null,_3a); |
|
} |
|
_37.SetVariable("_returnResult",_3e); |
|
},_fscommandReady:function(){ |
|
var _3f=dojo.flash.obj.get(); |
|
_3f.SetVariable("fscommandReady","true"); |
|
},_call:function(_40,_41){ |
|
var _42=dojo.flash.obj.get(); |
|
_42.SetVariable("_functionName",_40); |
|
_42.SetVariable("_numArgs",_41.length); |
|
for(var i=0;i<_41.length;i++){ |
|
var _44=_41[i]; |
|
_44=_44.replace(/\0/g,"\\0"); |
|
_42.SetVariable("_"+i,_44); |
|
} |
|
_42.TCallLabel("/_flashRunner","execute"); |
|
var _45=_42.GetVariable("_returnResult"); |
|
_45=_45.replace(/\\0/g,"\x00"); |
|
return _45; |
|
},_addExternalInterfaceCallback:function(_46){ |
|
var _47=function(){ |
|
var _48=new Array(arguments.length); |
|
for(var i=0;i<arguments.length;i++){ |
|
_48[i]=arguments[i]; |
|
} |
|
return dojo.flash.comm._execFlash(_46,_48); |
|
}; |
|
dojo.flash.comm[_46]=_47; |
|
},_encodeData:function(_4a){ |
|
var _4b=/\&([^;]*)\;/g; |
|
_4a=_4a.replace(_4b,"&$1;"); |
|
_4a=_4a.replace(/</g,"<"); |
|
_4a=_4a.replace(/>/g,">"); |
|
_4a=_4a.replace("\\","&custom_backslash;&custom_backslash;"); |
|
_4a=_4a.replace(/\n/g,"\\n"); |
|
_4a=_4a.replace(/\r/g,"\\r"); |
|
_4a=_4a.replace(/\f/g,"\\f"); |
|
_4a=_4a.replace(/\0/g,"\\0"); |
|
_4a=_4a.replace(/\'/g,"\\'"); |
|
_4a=_4a.replace(/\"/g,"\\\""); |
|
return _4a; |
|
},_decodeData:function(_4c){ |
|
if(_4c==null||typeof _4c=="undefined"){ |
|
return _4c; |
|
} |
|
_4c=_4c.replace(/\&custom_lt\;/g,"<"); |
|
_4c=_4c.replace(/\&custom_gt\;/g,">"); |
|
_4c=eval("\""+_4c+"\""); |
|
return _4c; |
|
},_chunkArgumentData:function(_4d,_4e){ |
|
var _4f=dojo.flash.obj.get(); |
|
var _50=Math.ceil(_4d.length/1024); |
|
for(var i=0;i<_50;i++){ |
|
var _52=i*1024; |
|
var _53=i*1024+1024; |
|
if(i==(_50-1)){ |
|
_53=i*1024+_4d.length; |
|
} |
|
var _54=_4d.substring(_52,_53); |
|
_54=this._encodeData(_54); |
|
_4f.CallFunction("<invoke name=\"chunkArgumentData\" "+"returntype=\"javascript\">"+"<arguments>"+"<string>"+_54+"</string>"+"<number>"+_4e+"</number>"+"</arguments>"+"</invoke>"); |
|
} |
|
},_chunkReturnData:function(){ |
|
var _55=dojo.flash.obj.get(); |
|
var _56=_55.getReturnLength(); |
|
var _57=new Array(); |
|
for(var i=0;i<_56;i++){ |
|
var _59=_55.CallFunction("<invoke name=\"chunkReturnData\" "+"returntype=\"javascript\">"+"<arguments>"+"<number>"+i+"</number>"+"</arguments>"+"</invoke>"); |
|
if(_59=="\"\""||_59=="''"){ |
|
_59=""; |
|
}else{ |
|
_59=_59.substring(1,_59.length-1); |
|
} |
|
_57.push(_59); |
|
} |
|
var _5a=_57.join(""); |
|
return _5a; |
|
},_execFlash:function(_5b,_5c){ |
|
var _5d=dojo.flash.obj.get(); |
|
_5d.startExec(); |
|
_5d.setNumberArguments(_5c.length); |
|
for(var i=0;i<_5c.length;i++){ |
|
this._chunkArgumentData(_5c[i],i); |
|
} |
|
_5d.exec(_5b); |
|
var _5f=this._chunkReturnData(); |
|
_5f=this._decodeData(_5f); |
|
_5d.endExec(); |
|
return _5f; |
|
}}; |
|
dojo.flash.Install=function(){ |
|
}; |
|
dojo.flash.Install.prototype={needed:function(){ |
|
if(dojo.flash.info.capable==false){ |
|
return true; |
|
} |
|
if(dojo.render.os.mac==true&&!dojo.flash.info.isVersionOrAbove(8,0,0)){ |
|
return true; |
|
} |
|
if(!dojo.flash.info.isVersionOrAbove(6,0,0)){ |
|
return true; |
|
} |
|
return false; |
|
},install:function(){ |
|
dojo.flash.info.installing=true; |
|
dojo.flash.installing(); |
|
if(dojo.flash.info.capable==false){ |
|
var _60=new dojo.flash.Embed(false); |
|
_60.write(8); |
|
}else{ |
|
if(dojo.flash.info.isVersionOrAbove(6,0,65)){ |
|
var _60=new dojo.flash.Embed(false); |
|
_60.write(8,true); |
|
_60.setVisible(true); |
|
_60.center(); |
|
}else{ |
|
alert("This content requires a more recent version of the Macromedia "+" Flash Player."); |
|
window.location.href=+dojo.flash.Embed.protocol()+"://www.macromedia.com/go/getflashplayer"; |
|
} |
|
} |
|
},_onInstallStatus:function(msg){ |
|
if(msg=="Download.Complete"){ |
|
dojo.flash._initialize(); |
|
}else{ |
|
if(msg=="Download.Cancelled"){ |
|
alert("This content requires a more recent version of the Macromedia "+" Flash Player."); |
|
window.location.href=dojo.flash.Embed.protocol()+"://www.macromedia.com/go/getflashplayer"; |
|
}else{ |
|
if(msg=="Download.Failed"){ |
|
alert("There was an error downloading the Flash Player update. "+"Please try again later, or visit macromedia.com to download "+"the latest version of the Flash plugin."); |
|
} |
|
} |
|
} |
|
}}; |
|
dojo.flash.info=new dojo.flash.Info();
|
|
|