/v3.2/nimbits-tds/web/resources/flash/swfobject.js

http://nimbits-server.googlecode.com/ · JavaScript · 617 lines · 583 code · 21 blank · 13 comment · 272 complexity · b170a7f6dff73dd6d739ae1d4128b753 MD5 · raw file

  1. /*
  2. * Copyright (c) 2010 Tonic Solutions LLC.
  3. *
  4. * http://www.nimbits.com
  5. *
  6. *
  7. * Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
  8. *
  9. * http://www.gnu.org/licenses/gpl.html
  10. *
  11. * Unless required by applicable law or agreed to in writing, software distributed under the license is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
  12. */
  13. var swfobject = function() {
  14. var b = "undefined",Q = "object",n = "Shockwave Flash",p = "ShockwaveFlash.ShockwaveFlash",P = "application/x-shockwave-flash",m = "SWFObjectExprInst",j = window,K = document,T = navigator,o = [],N = [],i = [],d = [],J,Z = null,M = null,l = null,e = false,A = false;
  15. var h = function() {
  16. var v = typeof K.getElementById != b && typeof K.getElementsByTagName != b && typeof K.createElement != b,AC = [0,0,0],x = null;
  17. if (typeof T.plugins != b && typeof T.plugins[n] == Q) {
  18. x = T.plugins[n].description;
  19. if (x && !(typeof T.mimeTypes != b && T.mimeTypes[P] && !T.mimeTypes[P].enabledPlugin)) {
  20. x = x.replace(/^.*\s+(\S+\s+\S+$)/, "$1");
  21. AC[0] = parseInt(x.replace(/^(.*)\..*$/, "$1"), 10);
  22. AC[1] = parseInt(x.replace(/^.*\.(.*)\s.*$/, "$1"), 10);
  23. AC[2] = /r/.test(x) ? parseInt(x.replace(/^.*r(.*)$/, "$1"), 10) : 0
  24. }
  25. } else {
  26. if (typeof j.ActiveXObject != b) {
  27. var y = null,AB = false;
  28. try {
  29. y = new ActiveXObject(p + ".7")
  30. } catch(t) {
  31. try {
  32. y = new ActiveXObject(p + ".6");
  33. AC = [6,0,21];
  34. y.AllowScriptAccess = "always"
  35. } catch(t) {
  36. if (AC[0] == 6) {
  37. AB = true
  38. }
  39. }
  40. if (!AB) {
  41. try {
  42. y = new ActiveXObject(p)
  43. } catch(t) {
  44. }
  45. }
  46. }
  47. if (!AB && y) {
  48. try {
  49. x = y.GetVariable("$version");
  50. if (x) {
  51. x = x.split(" ")[1].split(",");
  52. AC = [parseInt(x[0], 10),parseInt(x[1], 10),parseInt(x[2], 10)]
  53. }
  54. } catch(t) {
  55. }
  56. }
  57. }
  58. }
  59. var AD = T.userAgent.toLowerCase(),r = T.platform.toLowerCase(),AA = /webkit/.test(AD) ? parseFloat(AD.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, "$1")) : false,q = false,z = r ? /win/.test(r) : /win/.test(AD),w = r ? /mac/.test(r) : /mac/.test(AD);
  60. /*@cc_on q=true;@if(@_win32)z=true;@elif(@_mac)w=true;@end@*/
  61. return{w3cdom:v,pv:AC,webkit:AA,ie:q,win:z,mac:w}
  62. }();
  63. var L = function() {
  64. if (!h.w3cdom) {
  65. return
  66. }
  67. f(H);
  68. if (h.ie && h.win) {
  69. try {
  70. K.write("<script id=__ie_ondomload defer=true src=//:><\/script>");
  71. J = C("__ie_ondomload");
  72. if (J) {
  73. I(J, "onreadystatechange", S)
  74. }
  75. } catch(q) {
  76. }
  77. }
  78. if (h.webkit && typeof K.readyState != b) {
  79. Z = setInterval(function() {
  80. if (/loaded|complete/.test(K.readyState)) {
  81. E()
  82. }
  83. }, 10)
  84. }
  85. if (typeof K.addEventListener != b) {
  86. K.addEventListener("DOMContentLoaded", E, null)
  87. }
  88. R(E)
  89. }();
  90. function S() {
  91. if (J.readyState == "complete") {
  92. J.parentNode.removeChild(J);
  93. E()
  94. }
  95. }
  96. function E() {
  97. if (e) {
  98. return
  99. }
  100. if (h.ie && h.win) {
  101. var v = a("span");
  102. try {
  103. var u = K.getElementsByTagName("body")[0].appendChild(v);
  104. u.parentNode.removeChild(u)
  105. } catch(w) {
  106. return
  107. }
  108. }
  109. e = true;
  110. if (Z) {
  111. clearInterval(Z);
  112. Z = null
  113. }
  114. var q = o.length;
  115. for (var r = 0; r < q; r++) {
  116. o[r]()
  117. }
  118. }
  119. function f(q) {
  120. if (e) {
  121. q()
  122. } else {
  123. o[o.length] = q
  124. }
  125. }
  126. function R(r) {
  127. if (typeof j.addEventListener != b) {
  128. j.addEventListener("load", r, false)
  129. } else {
  130. if (typeof K.addEventListener != b) {
  131. K.addEventListener("load", r, false)
  132. } else {
  133. if (typeof j.attachEvent != b) {
  134. I(j, "onload", r)
  135. } else {
  136. if (typeof j.onload == "function") {
  137. var q = j.onload;
  138. j.onload = function() {
  139. q();
  140. r()
  141. }
  142. } else {
  143. j.onload = r
  144. }
  145. }
  146. }
  147. }
  148. }
  149. function H() {
  150. var t = N.length;
  151. for (var q = 0; q < t; q++) {
  152. var u = N[q].id;
  153. if (h.pv[0] > 0) {
  154. var r = C(u);
  155. if (r) {
  156. N[q].width = r.getAttribute("width") ? r.getAttribute("width") : "0";
  157. N[q].height = r.getAttribute("height") ? r.getAttribute("height") : "0";
  158. if (c(N[q].swfVersion)) {
  159. if (h.webkit && h.webkit < 312) {
  160. Y(r)
  161. }
  162. W(u, true)
  163. } else {
  164. if (N[q].expressInstall && !A && c("6.0.65") && (h.win || h.mac)) {
  165. k(N[q])
  166. } else {
  167. O(r)
  168. }
  169. }
  170. }
  171. } else {
  172. W(u, true)
  173. }
  174. }
  175. }
  176. function Y(t) {
  177. var q = t.getElementsByTagName(Q)[0];
  178. if (q) {
  179. var w = a("embed"),y = q.attributes;
  180. if (y) {
  181. var v = y.length;
  182. for (var u = 0; u < v; u++) {
  183. if (y[u].nodeName == "DATA") {
  184. w.setAttribute("src", y[u].nodeValue)
  185. } else {
  186. w.setAttribute(y[u].nodeName, y[u].nodeValue)
  187. }
  188. }
  189. }
  190. var x = q.childNodes;
  191. if (x) {
  192. var z = x.length;
  193. for (var r = 0; r < z; r++) {
  194. if (x[r].nodeType == 1 && x[r].nodeName == "PARAM") {
  195. w.setAttribute(x[r].getAttribute("name"), x[r].getAttribute("value"))
  196. }
  197. }
  198. }
  199. t.parentNode.replaceChild(w, t)
  200. }
  201. }
  202. function k(w) {
  203. A = true;
  204. var u = C(w.id);
  205. if (u) {
  206. if (w.altContentId) {
  207. var y = C(w.altContentId);
  208. if (y) {
  209. M = y;
  210. l = w.altContentId
  211. }
  212. } else {
  213. M = G(u)
  214. }
  215. if (!(/%$/.test(w.width)) && parseInt(w.width, 10) < 310) {
  216. w.width = "310"
  217. }
  218. if (!(/%$/.test(w.height)) && parseInt(w.height, 10) < 137) {
  219. w.height = "137"
  220. }
  221. K.title = K.title.slice(0, 47) + " - Flash Player Installation";
  222. var z = h.ie && h.win ? "ActiveX" : "PlugIn",q = K.title,r = "MMredirectURL=" + j.location + "&MMplayerType=" + z + "&MMdoctitle=" + q,x = w.id;
  223. if (h.ie && h.win && u.readyState != 4) {
  224. var t = a("div");
  225. x += "SWFObjectNew";
  226. t.setAttribute("id", x);
  227. u.parentNode.insertBefore(t, u);
  228. u.style.display = "none";
  229. var v = function() {
  230. u.parentNode.removeChild(u)
  231. };
  232. I(j, "onload", v)
  233. }
  234. U({data:w.expressInstall,id:m,width:w.width,height:w.height}, {flashvars:r}, x)
  235. }
  236. }
  237. function O(t) {
  238. if (h.ie && h.win && t.readyState != 4) {
  239. var r = a("div");
  240. t.parentNode.insertBefore(r, t);
  241. r.parentNode.replaceChild(G(t), r);
  242. t.style.display = "none";
  243. var q = function() {
  244. t.parentNode.removeChild(t)
  245. };
  246. I(j, "onload", q)
  247. } else {
  248. t.parentNode.replaceChild(G(t), t)
  249. }
  250. }
  251. function G(v) {
  252. var u = a("div");
  253. if (h.win && h.ie) {
  254. u.innerHTML = v.innerHTML
  255. } else {
  256. var r = v.getElementsByTagName(Q)[0];
  257. if (r) {
  258. var w = r.childNodes;
  259. if (w) {
  260. var q = w.length;
  261. for (var t = 0; t < q; t++) {
  262. if (!(w[t].nodeType == 1 && w[t].nodeName == "PARAM") && !(w[t].nodeType == 8)) {
  263. u.appendChild(w[t].cloneNode(true))
  264. }
  265. }
  266. }
  267. }
  268. }
  269. return u
  270. }
  271. function U(AG, AE, t) {
  272. var q,v = C(t);
  273. if (v) {
  274. if (typeof AG.id == b) {
  275. AG.id = t
  276. }
  277. if (h.ie && h.win) {
  278. var AF = "";
  279. for (var AB in AG) {
  280. if (AG[AB] != Object.prototype[AB]) {
  281. if (AB.toLowerCase() == "data") {
  282. AE.movie = AG[AB]
  283. } else {
  284. if (AB.toLowerCase() == "styleclass") {
  285. AF += ' class="' + AG[AB] + '"'
  286. } else {
  287. if (AB.toLowerCase() != "classid") {
  288. AF += " " + AB + '="' + AG[AB] + '"'
  289. }
  290. }
  291. }
  292. }
  293. }
  294. var AD = "";
  295. for (var AA in AE) {
  296. if (AE[AA] != Object.prototype[AA]) {
  297. AD += '<param name="' + AA + '" value="' + AE[AA] + '" />'
  298. }
  299. }
  300. v.outerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' + AF + ">" + AD + "</object>";
  301. i[i.length] = AG.id;
  302. q = C(AG.id)
  303. } else {
  304. if (h.webkit && h.webkit < 312) {
  305. var AC = a("embed");
  306. AC.setAttribute("type", P);
  307. for (var z in AG) {
  308. if (AG[z] != Object.prototype[z]) {
  309. if (z.toLowerCase() == "data") {
  310. AC.setAttribute("src", AG[z])
  311. } else {
  312. if (z.toLowerCase() == "styleclass") {
  313. AC.setAttribute("class", AG[z])
  314. } else {
  315. if (z.toLowerCase() != "classid") {
  316. AC.setAttribute(z, AG[z])
  317. }
  318. }
  319. }
  320. }
  321. }
  322. for (var y in AE) {
  323. if (AE[y] != Object.prototype[y]) {
  324. if (y.toLowerCase() != "movie") {
  325. AC.setAttribute(y, AE[y])
  326. }
  327. }
  328. }
  329. v.parentNode.replaceChild(AC, v);
  330. q = AC
  331. } else {
  332. var u = a(Q);
  333. u.setAttribute("type", P);
  334. for (var x in AG) {
  335. if (AG[x] != Object.prototype[x]) {
  336. if (x.toLowerCase() == "styleclass") {
  337. u.setAttribute("class", AG[x])
  338. } else {
  339. if (x.toLowerCase() != "classid") {
  340. u.setAttribute(x, AG[x])
  341. }
  342. }
  343. }
  344. }
  345. for (var w in AE) {
  346. if (AE[w] != Object.prototype[w] && w.toLowerCase() != "movie") {
  347. F(u, w, AE[w])
  348. }
  349. }
  350. v.parentNode.replaceChild(u, v);
  351. q = u
  352. }
  353. }
  354. }
  355. return q
  356. }
  357. function F(t, q, r) {
  358. var u = a("param");
  359. u.setAttribute("name", q);
  360. u.setAttribute("value", r);
  361. t.appendChild(u)
  362. }
  363. function X(r) {
  364. var q = C(r);
  365. if (q && (q.nodeName == "OBJECT" || q.nodeName == "EMBED")) {
  366. if (h.ie && h.win) {
  367. if (q.readyState == 4) {
  368. B(r)
  369. } else {
  370. j.attachEvent("onload", function() {
  371. B(r)
  372. })
  373. }
  374. } else {
  375. q.parentNode.removeChild(q)
  376. }
  377. }
  378. }
  379. function B(t) {
  380. var r = C(t);
  381. if (r) {
  382. for (var q in r) {
  383. if (typeof r[q] == "function") {
  384. r[q] = null
  385. }
  386. }
  387. r.parentNode.removeChild(r)
  388. }
  389. }
  390. function C(t) {
  391. var q = null;
  392. try {
  393. q = K.getElementById(t)
  394. } catch(r) {
  395. }
  396. return q
  397. }
  398. function a(q) {
  399. return K.createElement(q)
  400. }
  401. function I(t, q, r) {
  402. t.attachEvent(q, r);
  403. d[d.length] = [t,q,r]
  404. }
  405. function c(t) {
  406. var r = h.pv,q = t.split(".");
  407. q[0] = parseInt(q[0], 10);
  408. q[1] = parseInt(q[1], 10) || 0;
  409. q[2] = parseInt(q[2], 10) || 0;
  410. return(r[0] > q[0] || (r[0] == q[0] && r[1] > q[1]) || (r[0] == q[0] && r[1] == q[1] && r[2] >= q[2])) ? true : false
  411. }
  412. function V(v, r) {
  413. if (h.ie && h.mac) {
  414. return
  415. }
  416. var u = K.getElementsByTagName("head")[0],t = a("style");
  417. t.setAttribute("type", "text/css");
  418. t.setAttribute("media", "screen");
  419. if (!(h.ie && h.win) && typeof K.createTextNode != b) {
  420. t.appendChild(K.createTextNode(v + " {" + r + "}"))
  421. }
  422. u.appendChild(t);
  423. if (h.ie && h.win && typeof K.styleSheets != b && K.styleSheets.length > 0) {
  424. var q = K.styleSheets[K.styleSheets.length - 1];
  425. if (typeof q.addRule == Q) {
  426. q.addRule(v, r)
  427. }
  428. }
  429. }
  430. function W(t, q) {
  431. var r = q ? "visible" : "hidden";
  432. if (e && C(t)) {
  433. C(t).style.visibility = r
  434. } else {
  435. V("#" + t, "visibility:" + r)
  436. }
  437. }
  438. function g(s) {
  439. var r = /[\\\"<>\.;]/;
  440. var q = r.exec(s) != null;
  441. return q ? encodeURIComponent(s) : s
  442. }
  443. var D = function() {
  444. if (h.ie && h.win) {
  445. window.attachEvent("onunload", function() {
  446. var w = d.length;
  447. for (var v = 0; v < w; v++) {
  448. d[v][0].detachEvent(d[v][1], d[v][2])
  449. }
  450. var t = i.length;
  451. for (var u = 0; u < t; u++) {
  452. X(i[u])
  453. }
  454. for (var r in h) {
  455. h[r] = null
  456. }
  457. h = null;
  458. for (var q in swfobject) {
  459. swfobject[q] = null
  460. }
  461. swfobject = null
  462. })
  463. }
  464. }();
  465. return{registerObject:function(u, q, t) {
  466. if (!h.w3cdom || !u || !q) {
  467. return
  468. }
  469. var r = {};
  470. r.id = u;
  471. r.swfVersion = q;
  472. r.expressInstall = t ? t : false;
  473. N[N.length] = r;
  474. W(u, false)
  475. },getObjectById:function(v) {
  476. var q = null;
  477. if (h.w3cdom) {
  478. var t = C(v);
  479. if (t) {
  480. var u = t.getElementsByTagName(Q)[0];
  481. if (!u || (u && typeof t.SetVariable != b)) {
  482. q = t
  483. } else {
  484. if (typeof u.SetVariable != b) {
  485. q = u
  486. }
  487. }
  488. }
  489. }
  490. return q
  491. },embedSWF:function(x, AE, AB, AD, q, w, r, z, AC) {
  492. if (!h.w3cdom || !x || !AE || !AB || !AD || !q) {
  493. return
  494. }
  495. AB += "";
  496. AD += "";
  497. if (c(q)) {
  498. W(AE, false);
  499. var AA = {};
  500. if (AC && typeof AC === Q) {
  501. for (var v in AC) {
  502. if (AC[v] != Object.prototype[v]) {
  503. AA[v] = AC[v]
  504. }
  505. }
  506. }
  507. AA.data = x;
  508. AA.width = AB;
  509. AA.height = AD;
  510. var y = {};
  511. if (z && typeof z === Q) {
  512. for (var u in z) {
  513. if (z[u] != Object.prototype[u]) {
  514. y[u] = z[u]
  515. }
  516. }
  517. }
  518. if (r && typeof r === Q) {
  519. for (var t in r) {
  520. if (r[t] != Object.prototype[t]) {
  521. if (typeof y.flashvars != b) {
  522. y.flashvars += "&" + t + "=" + r[t]
  523. } else {
  524. y.flashvars = t + "=" + r[t]
  525. }
  526. }
  527. }
  528. }
  529. f(function() {
  530. U(AA, y, AE);
  531. if (AA.id == AE) {
  532. W(AE, true)
  533. }
  534. })
  535. } else {
  536. if (w && !A && c("6.0.65") && (h.win || h.mac)) {
  537. A = true;
  538. W(AE, false);
  539. f(function() {
  540. var AF = {};
  541. AF.id = AF.altContentId = AE;
  542. AF.width = AB;
  543. AF.height = AD;
  544. AF.expressInstall = w;
  545. k(AF)
  546. })
  547. }
  548. }
  549. },getFlashPlayerVersion:function() {
  550. return{major:h.pv[0],minor:h.pv[1],release:h.pv[2]}
  551. },hasFlashPlayerVersion:c,createSWF:function(t, r, q) {
  552. if (h.w3cdom) {
  553. return U(t, r, q)
  554. } else {
  555. return undefined
  556. }
  557. },removeSWF:function(q) {
  558. if (h.w3cdom) {
  559. X(q)
  560. }
  561. },createCSS:function(r, q) {
  562. if (h.w3cdom) {
  563. V(r, q)
  564. }
  565. },addDomLoadEvent:f,addLoadEvent:R,getQueryParamValue:function(v) {
  566. var u = K.location.search || K.location.hash;
  567. if (v == null) {
  568. return g(u)
  569. }
  570. if (u) {
  571. var t = u.substring(1).split("&");
  572. for (var r = 0; r < t.length; r++) {
  573. if (t[r].substring(0, t[r].indexOf("=")) == v) {
  574. return g(t[r].substring((t[r].indexOf("=") + 1)))
  575. }
  576. }
  577. }
  578. return""
  579. },expressInstallCallback:function() {
  580. if (A && M) {
  581. var q = C(m);
  582. if (q) {
  583. q.parentNode.replaceChild(M, q);
  584. if (l) {
  585. W(l, true);
  586. if (h.ie && h.win) {
  587. M.style.display = "block"
  588. }
  589. }
  590. M = null;
  591. l = null;
  592. A = false
  593. }
  594. }
  595. }}
  596. }();