Project

General

Profile

Statistics
| Revision:

root / trunk / web / dojo / dojox / flash / _base.js @ 12

History | View | Annotate | Download (8.43 KB)

1 9 andrej.cim
/*
2
        Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved.
3
        Available via Academic Free License >= 2.1 OR the modified BSD license.
4
        see: http://dojotoolkit.org/license for details
5
*/
6
7
8
if(!dojo._hasResource["dojox.flash._base"]){
9
dojo._hasResource["dojox.flash._base"]=true;
10
dojo.provide("dojox.flash._base");
11
dojo.experimental("dojox.flash");
12
dojo.require("dojo.window");
13
dojox.flash=function(){
14
};
15
dojox.flash={ready:false,url:null,_visible:true,_loadedListeners:[],_installingListeners:[],setSwf:function(_1,_2){
16
this.url=_1;
17
this._visible=true;
18
if(_2!==null&&_2!==undefined){
19
this._visible=_2;
20
}
21
this._initialize();
22
},addLoadedListener:function(_3){
23
this._loadedListeners.push(_3);
24
},addInstallingListener:function(_4){
25
this._installingListeners.push(_4);
26
},loaded:function(){
27
dojox.flash.ready=true;
28
if(dojox.flash._loadedListeners.length){
29
for(var i=0;i<dojox.flash._loadedListeners.length;i++){
30
dojox.flash._loadedListeners[i].call(null);
31
}
32
}
33
},installing:function(){
34
if(dojox.flash._installingListeners.length){
35
for(var i=0;i<dojox.flash._installingListeners.length;i++){
36
dojox.flash._installingListeners[i].call(null);
37
}
38
}
39
},_initialize:function(){
40
var _5=new dojox.flash.Install();
41
dojox.flash.installer=_5;
42
if(_5.needed()){
43
_5.install();
44
}else{
45
dojox.flash.obj=new dojox.flash.Embed(this._visible);
46
dojox.flash.obj.write();
47
dojox.flash.comm=new dojox.flash.Communicator();
48
}
49
}};
50
dojox.flash.Info=function(){
51
this._detectVersion();
52
};
53
dojox.flash.Info.prototype={version:-1,versionMajor:-1,versionMinor:-1,versionRevision:-1,capable:false,installing:false,isVersionOrAbove:function(_6,_7,_8){
54
_8=parseFloat("."+_8);
55
if(this.versionMajor>=_6&&this.versionMinor>=_7&&this.versionRevision>=_8){
56
return true;
57
}else{
58
return false;
59
}
60
},_detectVersion:function(){
61
var _9;
62
for(var _a=25;_a>0;_a--){
63
if(dojo.isIE){
64
var _b;
65
try{
66
if(_a>6){
67
_b=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+_a);
68
}else{
69
_b=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
70
}
71
if(typeof _b=="object"){
72
if(_a==6){
73
_b.AllowScriptAccess="always";
74
}
75
_9=_b.GetVariable("$version");
76
}
77
}
78
catch(e){
79
continue;
80
}
81
}else{
82
_9=this._JSFlashInfo(_a);
83
}
84
if(_9==-1){
85
this.capable=false;
86
return;
87
}else{
88
if(_9!=0){
89
var _c;
90
if(dojo.isIE){
91
var _d=_9.split(" ");
92
var _e=_d[1];
93
_c=_e.split(",");
94
}else{
95
_c=_9.split(".");
96
}
97
this.versionMajor=_c[0];
98
this.versionMinor=_c[1];
99
this.versionRevision=_c[2];
100
var _f=this.versionMajor+"."+this.versionRevision;
101
this.version=parseFloat(_f);
102
this.capable=true;
103
break;
104
}
105
}
106
}
107
},_JSFlashInfo:function(_10){
108
if(navigator.plugins!=null&&navigator.plugins.length>0){
109
if(navigator.plugins["Shockwave Flash 2.0"]||navigator.plugins["Shockwave Flash"]){
110
var _11=navigator.plugins["Shockwave Flash 2.0"]?" 2.0":"";
111
var _12=navigator.plugins["Shockwave Flash"+_11].description;
112
var _13=_12.split(" ");
113
var _14=_13[2].split(".");
114
var _15=_14[0];
115
var _16=_14[1];
116
var _17=(_13[3]||_13[4]).split("r");
117
var _18=_17[1]>0?_17[1]:0;
118
var _19=_15+"."+_16+"."+_18;
119
return _19;
120
}
121
}
122
return -1;
123
}};
124
dojox.flash.Embed=function(_1a){
125
this._visible=_1a;
126
};
127
dojox.flash.Embed.prototype={width:215,height:138,id:"flashObject",_visible:true,protocol:function(){
128
switch(window.location.protocol){
129
case "https:":
130
return "https";
131
break;
132
default:
133
return "http";
134
break;
135
}
136
},write:function(_1b){
137
var _1c;
138
var _1d=dojox.flash.url;
139
var _1e=_1d;
140
var _1f=_1d;
141
var _20=dojo.baseUrl;
142
var _21=document.location.protocol+"//"+document.location.host;
143
if(_1b){
144
var _22=escape(window.location);
145
document.title=document.title.slice(0,47)+" - Flash Player Installation";
146
var _23=escape(document.title);
147
_1e+="?MMredirectURL="+_22+"&MMplayerType=ActiveX"+"&MMdoctitle="+_23+"&baseUrl="+escape(_20)+"&xdomain="+escape(_21);
148
_1f+="?MMredirectURL="+_22+"&MMplayerType=PlugIn"+"&baseUrl="+escape(_20)+"&xdomain="+escape(_21);
149
}else{
150
_1e+="?cachebust="+new Date().getTime();
151
_1e+="&baseUrl="+escape(_20);
152
_1e+="&xdomain="+escape(_21);
153
}
154
if(_1f.indexOf("?")==-1){
155
_1f+="?baseUrl="+escape(_20);
156
}else{
157
_1f+="&baseUrl="+escape(_20);
158
}
159
_1f+="&xdomain="+escape(_21);
160
_1c="<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\"\n "+"width=\""+this.width+"\"\n "+"height=\""+this.height+"\"\n "+"id=\""+this.id+"\"\n "+"name=\""+this.id+"\"\n "+"align=\"middle\">\n "+"<param name=\"allowScriptAccess\" value=\"always\"></param>\n "+"<param name=\"movie\" value=\""+_1e+"\"></param>\n "+"<param name=\"quality\" value=\"high\"></param>\n "+"<param name=\"bgcolor\" value=\"#ffffff\"></param>\n "+"<embed src=\""+_1f+"\" "+"quality=\"high\" "+"bgcolor=\"#ffffff\" "+"width=\""+this.width+"\" "+"height=\""+this.height+"\" "+"id=\""+this.id+"Embed"+"\" "+"name=\""+this.id+"\" "+"swLiveConnect=\"true\" "+"align=\"middle\" "+"allowScriptAccess=\"always\" "+"type=\"application/x-shockwave-flash\" "+"pluginspage=\""+this.protocol()+"://www.macromedia.com/go/getflashplayer\" "+"></embed>\n"+"</object>\n";
161
dojo.connect(dojo,"loaded",dojo.hitch(this,function(){
162
var _24=this.id+"Container";
163
if(dojo.byId(_24)){
164
return;
165
}
166
var div=document.createElement("div");
167
div.id=this.id+"Container";
168
div.style.width=this.width+"px";
169
div.style.height=this.height+"px";
170
if(!this._visible){
171
div.style.position="absolute";
172
div.style.zIndex="10000";
173
div.style.top="-1000px";
174
}
175
div.innerHTML=_1c;
176
var _25=document.getElementsByTagName("body");
177
if(!_25||!_25.length){
178
throw new Error("No body tag for this page");
179
}
180
_25=_25[0];
181
_25.appendChild(div);
182
}));
183
},get:function(){
184
if(dojo.isIE||dojo.isWebKit){
185
return dojo.byId(this.id);
186
}else{
187
return document[this.id+"Embed"];
188
}
189
},setVisible:function(_26){
190
var _27=dojo.byId(this.id+"Container");
191
if(_26){
192
_27.style.position="absolute";
193
_27.style.visibility="visible";
194
}else{
195
_27.style.position="absolute";
196
_27.style.y="-1000px";
197
_27.style.visibility="hidden";
198
}
199
},center:function(){
200
var _28=this.width;
201
var _29=this.height;
202
var _2a=dojo.window.getBox();
203
var x=_2a.l+(_2a.w-_28)/2;
204
var y=_2a.t+(_2a.h-_29)/2;
205
var _2b=dojo.byId(this.id+"Container");
206
_2b.style.top=y+"px";
207
_2b.style.left=x+"px";
208
}};
209
dojox.flash.Communicator=function(){
210
};
211
dojox.flash.Communicator.prototype={_addExternalInterfaceCallback:function(_2c){
212
var _2d=dojo.hitch(this,function(){
213
var _2e=new Array(arguments.length);
214
for(var i=0;i<arguments.length;i++){
215
_2e[i]=this._encodeData(arguments[i]);
216
}
217
var _2f=this._execFlash(_2c,_2e);
218
_2f=this._decodeData(_2f);
219
return _2f;
220
});
221
this[_2c]=_2d;
222
},_encodeData:function(_30){
223
if(!_30||typeof _30!="string"){
224
return _30;
225
}
226
_30=_30.replace("\\","&custom_backslash;");
227
_30=_30.replace(/\0/g,"&custom_null;");
228
return _30;
229
},_decodeData:function(_31){
230
if(_31&&_31.length&&typeof _31!="string"){
231
_31=_31[0];
232
}
233
if(!_31||typeof _31!="string"){
234
return _31;
235
}
236
_31=_31.replace(/\&custom_null\;/g,"\x00");
237
_31=_31.replace(/\&custom_lt\;/g,"<").replace(/\&custom_gt\;/g,">").replace(/\&custom_backslash\;/g,"\\");
238
return _31;
239
},_execFlash:function(_32,_33){
240
var _34=dojox.flash.obj.get();
241
_33=(_33)?_33:[];
242
for(var i=0;i<_33;i++){
243
if(typeof _33[i]=="string"){
244
_33[i]=this._encodeData(_33[i]);
245
}
246
}
247
var _35=function(){
248
return eval(_34.CallFunction("<invoke name=\""+_32+"\" returntype=\"javascript\">"+__flash__argumentsToXML(_33,0)+"</invoke>"));
249
};
250
var _36=_35.call(_33);
251
if(typeof _36=="string"){
252
_36=this._decodeData(_36);
253
}
254
return _36;
255
}};
256
dojox.flash.Install=function(){
257
};
258
dojox.flash.Install.prototype={needed:function(){
259
if(!dojox.flash.info.capable){
260
return true;
261
}
262
if(!dojox.flash.info.isVersionOrAbove(8,0,0)){
263
return true;
264
}
265
return false;
266
},install:function(){
267
var _37;
268
dojox.flash.info.installing=true;
269
dojox.flash.installing();
270
if(dojox.flash.info.capable==false){
271
_37=new dojox.flash.Embed(false);
272
_37.write();
273
}else{
274
if(dojox.flash.info.isVersionOrAbove(6,0,65)){
275
_37=new dojox.flash.Embed(false);
276
_37.write(true);
277
_37.setVisible(true);
278
_37.center();
279
}else{
280
alert("This content requires a more recent version of the Macromedia "+" Flash Player.");
281
window.location.href=+dojox.flash.Embed.protocol()+"://www.macromedia.com/go/getflashplayer";
282
}
283
}
284
},_onInstallStatus:function(msg){
285
if(msg=="Download.Complete"){
286
dojox.flash._initialize();
287
}else{
288
if(msg=="Download.Cancelled"){
289
alert("This content requires a more recent version of the Macromedia "+" Flash Player.");
290
window.location.href=dojox.flash.Embed.protocol()+"://www.macromedia.com/go/getflashplayer";
291
}else{
292
if(msg=="Download.Failed"){
293
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.");
294
}
295
}
296
}
297
}};
298
dojox.flash.info=new dojox.flash.Info();
299
}