/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
- /*
- * Copyright (c) 2010 Tonic Solutions LLC.
- *
- * http://www.nimbits.com
- *
- *
- * 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
- *
- * http://www.gnu.org/licenses/gpl.html
- *
- * 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.
- */
- var swfobject = function() {
- 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;
- var h = function() {
- var v = typeof K.getElementById != b && typeof K.getElementsByTagName != b && typeof K.createElement != b,AC = [0,0,0],x = null;
- if (typeof T.plugins != b && typeof T.plugins[n] == Q) {
- x = T.plugins[n].description;
- if (x && !(typeof T.mimeTypes != b && T.mimeTypes[P] && !T.mimeTypes[P].enabledPlugin)) {
- x = x.replace(/^.*\s+(\S+\s+\S+$)/, "$1");
- AC[0] = parseInt(x.replace(/^(.*)\..*$/, "$1"), 10);
- AC[1] = parseInt(x.replace(/^.*\.(.*)\s.*$/, "$1"), 10);
- AC[2] = /r/.test(x) ? parseInt(x.replace(/^.*r(.*)$/, "$1"), 10) : 0
- }
- } else {
- if (typeof j.ActiveXObject != b) {
- var y = null,AB = false;
- try {
- y = new ActiveXObject(p + ".7")
- } catch(t) {
- try {
- y = new ActiveXObject(p + ".6");
- AC = [6,0,21];
- y.AllowScriptAccess = "always"
- } catch(t) {
- if (AC[0] == 6) {
- AB = true
- }
- }
- if (!AB) {
- try {
- y = new ActiveXObject(p)
- } catch(t) {
- }
- }
- }
- if (!AB && y) {
- try {
- x = y.GetVariable("$version");
- if (x) {
- x = x.split(" ")[1].split(",");
- AC = [parseInt(x[0], 10),parseInt(x[1], 10),parseInt(x[2], 10)]
- }
- } catch(t) {
- }
- }
- }
- }
- 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);
- /*@cc_on q=true;@if(@_win32)z=true;@elif(@_mac)w=true;@end@*/
- return{w3cdom:v,pv:AC,webkit:AA,ie:q,win:z,mac:w}
- }();
- var L = function() {
- if (!h.w3cdom) {
- return
- }
- f(H);
- if (h.ie && h.win) {
- try {
- K.write("<script id=__ie_ondomload defer=true src=//:><\/script>");
- J = C("__ie_ondomload");
- if (J) {
- I(J, "onreadystatechange", S)
- }
- } catch(q) {
- }
- }
- if (h.webkit && typeof K.readyState != b) {
- Z = setInterval(function() {
- if (/loaded|complete/.test(K.readyState)) {
- E()
- }
- }, 10)
- }
- if (typeof K.addEventListener != b) {
- K.addEventListener("DOMContentLoaded", E, null)
- }
- R(E)
- }();
-
- function S() {
- if (J.readyState == "complete") {
- J.parentNode.removeChild(J);
- E()
- }
- }
-
- function E() {
- if (e) {
- return
- }
- if (h.ie && h.win) {
- var v = a("span");
- try {
- var u = K.getElementsByTagName("body")[0].appendChild(v);
- u.parentNode.removeChild(u)
- } catch(w) {
- return
- }
- }
- e = true;
- if (Z) {
- clearInterval(Z);
- Z = null
- }
- var q = o.length;
- for (var r = 0; r < q; r++) {
- o[r]()
- }
- }
-
- function f(q) {
- if (e) {
- q()
- } else {
- o[o.length] = q
- }
- }
-
- function R(r) {
- if (typeof j.addEventListener != b) {
- j.addEventListener("load", r, false)
- } else {
- if (typeof K.addEventListener != b) {
- K.addEventListener("load", r, false)
- } else {
- if (typeof j.attachEvent != b) {
- I(j, "onload", r)
- } else {
- if (typeof j.onload == "function") {
- var q = j.onload;
- j.onload = function() {
- q();
- r()
- }
- } else {
- j.onload = r
- }
- }
- }
- }
- }
-
- function H() {
- var t = N.length;
- for (var q = 0; q < t; q++) {
- var u = N[q].id;
- if (h.pv[0] > 0) {
- var r = C(u);
- if (r) {
- N[q].width = r.getAttribute("width") ? r.getAttribute("width") : "0";
- N[q].height = r.getAttribute("height") ? r.getAttribute("height") : "0";
- if (c(N[q].swfVersion)) {
- if (h.webkit && h.webkit < 312) {
- Y(r)
- }
- W(u, true)
- } else {
- if (N[q].expressInstall && !A && c("6.0.65") && (h.win || h.mac)) {
- k(N[q])
- } else {
- O(r)
- }
- }
- }
- } else {
- W(u, true)
- }
- }
- }
-
- function Y(t) {
- var q = t.getElementsByTagName(Q)[0];
- if (q) {
- var w = a("embed"),y = q.attributes;
- if (y) {
- var v = y.length;
- for (var u = 0; u < v; u++) {
- if (y[u].nodeName == "DATA") {
- w.setAttribute("src", y[u].nodeValue)
- } else {
- w.setAttribute(y[u].nodeName, y[u].nodeValue)
- }
- }
- }
- var x = q.childNodes;
- if (x) {
- var z = x.length;
- for (var r = 0; r < z; r++) {
- if (x[r].nodeType == 1 && x[r].nodeName == "PARAM") {
- w.setAttribute(x[r].getAttribute("name"), x[r].getAttribute("value"))
- }
- }
- }
- t.parentNode.replaceChild(w, t)
- }
- }
-
- function k(w) {
- A = true;
- var u = C(w.id);
- if (u) {
- if (w.altContentId) {
- var y = C(w.altContentId);
- if (y) {
- M = y;
- l = w.altContentId
- }
- } else {
- M = G(u)
- }
- if (!(/%$/.test(w.width)) && parseInt(w.width, 10) < 310) {
- w.width = "310"
- }
- if (!(/%$/.test(w.height)) && parseInt(w.height, 10) < 137) {
- w.height = "137"
- }
- K.title = K.title.slice(0, 47) + " - Flash Player Installation";
- var z = h.ie && h.win ? "ActiveX" : "PlugIn",q = K.title,r = "MMredirectURL=" + j.location + "&MMplayerType=" + z + "&MMdoctitle=" + q,x = w.id;
- if (h.ie && h.win && u.readyState != 4) {
- var t = a("div");
- x += "SWFObjectNew";
- t.setAttribute("id", x);
- u.parentNode.insertBefore(t, u);
- u.style.display = "none";
- var v = function() {
- u.parentNode.removeChild(u)
- };
- I(j, "onload", v)
- }
- U({data:w.expressInstall,id:m,width:w.width,height:w.height}, {flashvars:r}, x)
- }
- }
-
- function O(t) {
- if (h.ie && h.win && t.readyState != 4) {
- var r = a("div");
- t.parentNode.insertBefore(r, t);
- r.parentNode.replaceChild(G(t), r);
- t.style.display = "none";
- var q = function() {
- t.parentNode.removeChild(t)
- };
- I(j, "onload", q)
- } else {
- t.parentNode.replaceChild(G(t), t)
- }
- }
-
- function G(v) {
- var u = a("div");
- if (h.win && h.ie) {
- u.innerHTML = v.innerHTML
- } else {
- var r = v.getElementsByTagName(Q)[0];
- if (r) {
- var w = r.childNodes;
- if (w) {
- var q = w.length;
- for (var t = 0; t < q; t++) {
- if (!(w[t].nodeType == 1 && w[t].nodeName == "PARAM") && !(w[t].nodeType == 8)) {
- u.appendChild(w[t].cloneNode(true))
- }
- }
- }
- }
- }
- return u
- }
-
- function U(AG, AE, t) {
- var q,v = C(t);
- if (v) {
- if (typeof AG.id == b) {
- AG.id = t
- }
- if (h.ie && h.win) {
- var AF = "";
- for (var AB in AG) {
- if (AG[AB] != Object.prototype[AB]) {
- if (AB.toLowerCase() == "data") {
- AE.movie = AG[AB]
- } else {
- if (AB.toLowerCase() == "styleclass") {
- AF += ' class="' + AG[AB] + '"'
- } else {
- if (AB.toLowerCase() != "classid") {
- AF += " " + AB + '="' + AG[AB] + '"'
- }
- }
- }
- }
- }
- var AD = "";
- for (var AA in AE) {
- if (AE[AA] != Object.prototype[AA]) {
- AD += '<param name="' + AA + '" value="' + AE[AA] + '" />'
- }
- }
- v.outerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' + AF + ">" + AD + "</object>";
- i[i.length] = AG.id;
- q = C(AG.id)
- } else {
- if (h.webkit && h.webkit < 312) {
- var AC = a("embed");
- AC.setAttribute("type", P);
- for (var z in AG) {
- if (AG[z] != Object.prototype[z]) {
- if (z.toLowerCase() == "data") {
- AC.setAttribute("src", AG[z])
- } else {
- if (z.toLowerCase() == "styleclass") {
- AC.setAttribute("class", AG[z])
- } else {
- if (z.toLowerCase() != "classid") {
- AC.setAttribute(z, AG[z])
- }
- }
- }
- }
- }
- for (var y in AE) {
- if (AE[y] != Object.prototype[y]) {
- if (y.toLowerCase() != "movie") {
- AC.setAttribute(y, AE[y])
- }
- }
- }
- v.parentNode.replaceChild(AC, v);
- q = AC
- } else {
- var u = a(Q);
- u.setAttribute("type", P);
- for (var x in AG) {
- if (AG[x] != Object.prototype[x]) {
- if (x.toLowerCase() == "styleclass") {
- u.setAttribute("class", AG[x])
- } else {
- if (x.toLowerCase() != "classid") {
- u.setAttribute(x, AG[x])
- }
- }
- }
- }
- for (var w in AE) {
- if (AE[w] != Object.prototype[w] && w.toLowerCase() != "movie") {
- F(u, w, AE[w])
- }
- }
- v.parentNode.replaceChild(u, v);
- q = u
- }
- }
- }
- return q
- }
-
- function F(t, q, r) {
- var u = a("param");
- u.setAttribute("name", q);
- u.setAttribute("value", r);
- t.appendChild(u)
- }
-
- function X(r) {
- var q = C(r);
- if (q && (q.nodeName == "OBJECT" || q.nodeName == "EMBED")) {
- if (h.ie && h.win) {
- if (q.readyState == 4) {
- B(r)
- } else {
- j.attachEvent("onload", function() {
- B(r)
- })
- }
- } else {
- q.parentNode.removeChild(q)
- }
- }
- }
-
- function B(t) {
- var r = C(t);
- if (r) {
- for (var q in r) {
- if (typeof r[q] == "function") {
- r[q] = null
- }
- }
- r.parentNode.removeChild(r)
- }
- }
-
- function C(t) {
- var q = null;
- try {
- q = K.getElementById(t)
- } catch(r) {
- }
- return q
- }
-
- function a(q) {
- return K.createElement(q)
- }
-
- function I(t, q, r) {
- t.attachEvent(q, r);
- d[d.length] = [t,q,r]
- }
-
- function c(t) {
- var r = h.pv,q = t.split(".");
- q[0] = parseInt(q[0], 10);
- q[1] = parseInt(q[1], 10) || 0;
- q[2] = parseInt(q[2], 10) || 0;
- 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
- }
-
- function V(v, r) {
- if (h.ie && h.mac) {
- return
- }
- var u = K.getElementsByTagName("head")[0],t = a("style");
- t.setAttribute("type", "text/css");
- t.setAttribute("media", "screen");
- if (!(h.ie && h.win) && typeof K.createTextNode != b) {
- t.appendChild(K.createTextNode(v + " {" + r + "}"))
- }
- u.appendChild(t);
- if (h.ie && h.win && typeof K.styleSheets != b && K.styleSheets.length > 0) {
- var q = K.styleSheets[K.styleSheets.length - 1];
- if (typeof q.addRule == Q) {
- q.addRule(v, r)
- }
- }
- }
-
- function W(t, q) {
- var r = q ? "visible" : "hidden";
- if (e && C(t)) {
- C(t).style.visibility = r
- } else {
- V("#" + t, "visibility:" + r)
- }
- }
-
- function g(s) {
- var r = /[\\\"<>\.;]/;
- var q = r.exec(s) != null;
- return q ? encodeURIComponent(s) : s
- }
-
- var D = function() {
- if (h.ie && h.win) {
- window.attachEvent("onunload", function() {
- var w = d.length;
- for (var v = 0; v < w; v++) {
- d[v][0].detachEvent(d[v][1], d[v][2])
- }
- var t = i.length;
- for (var u = 0; u < t; u++) {
- X(i[u])
- }
- for (var r in h) {
- h[r] = null
- }
- h = null;
- for (var q in swfobject) {
- swfobject[q] = null
- }
- swfobject = null
- })
- }
- }();
- return{registerObject:function(u, q, t) {
- if (!h.w3cdom || !u || !q) {
- return
- }
- var r = {};
- r.id = u;
- r.swfVersion = q;
- r.expressInstall = t ? t : false;
- N[N.length] = r;
- W(u, false)
- },getObjectById:function(v) {
- var q = null;
- if (h.w3cdom) {
- var t = C(v);
- if (t) {
- var u = t.getElementsByTagName(Q)[0];
- if (!u || (u && typeof t.SetVariable != b)) {
- q = t
- } else {
- if (typeof u.SetVariable != b) {
- q = u
- }
- }
- }
- }
- return q
- },embedSWF:function(x, AE, AB, AD, q, w, r, z, AC) {
- if (!h.w3cdom || !x || !AE || !AB || !AD || !q) {
- return
- }
- AB += "";
- AD += "";
- if (c(q)) {
- W(AE, false);
- var AA = {};
- if (AC && typeof AC === Q) {
- for (var v in AC) {
- if (AC[v] != Object.prototype[v]) {
- AA[v] = AC[v]
- }
- }
- }
- AA.data = x;
- AA.width = AB;
- AA.height = AD;
- var y = {};
- if (z && typeof z === Q) {
- for (var u in z) {
- if (z[u] != Object.prototype[u]) {
- y[u] = z[u]
- }
- }
- }
- if (r && typeof r === Q) {
- for (var t in r) {
- if (r[t] != Object.prototype[t]) {
- if (typeof y.flashvars != b) {
- y.flashvars += "&" + t + "=" + r[t]
- } else {
- y.flashvars = t + "=" + r[t]
- }
- }
- }
- }
- f(function() {
- U(AA, y, AE);
- if (AA.id == AE) {
- W(AE, true)
- }
- })
- } else {
- if (w && !A && c("6.0.65") && (h.win || h.mac)) {
- A = true;
- W(AE, false);
- f(function() {
- var AF = {};
- AF.id = AF.altContentId = AE;
- AF.width = AB;
- AF.height = AD;
- AF.expressInstall = w;
- k(AF)
- })
- }
- }
- },getFlashPlayerVersion:function() {
- return{major:h.pv[0],minor:h.pv[1],release:h.pv[2]}
- },hasFlashPlayerVersion:c,createSWF:function(t, r, q) {
- if (h.w3cdom) {
- return U(t, r, q)
- } else {
- return undefined
- }
- },removeSWF:function(q) {
- if (h.w3cdom) {
- X(q)
- }
- },createCSS:function(r, q) {
- if (h.w3cdom) {
- V(r, q)
- }
- },addDomLoadEvent:f,addLoadEvent:R,getQueryParamValue:function(v) {
- var u = K.location.search || K.location.hash;
- if (v == null) {
- return g(u)
- }
- if (u) {
- var t = u.substring(1).split("&");
- for (var r = 0; r < t.length; r++) {
- if (t[r].substring(0, t[r].indexOf("=")) == v) {
- return g(t[r].substring((t[r].indexOf("=") + 1)))
- }
- }
- }
- return""
- },expressInstallCallback:function() {
- if (A && M) {
- var q = C(m);
- if (q) {
- q.parentNode.replaceChild(M, q);
- if (l) {
- W(l, true);
- if (h.ie && h.win) {
- M.style.display = "block"
- }
- }
- M = null;
- l = null;
- A = false
- }
- }
- }}
- }();