You've already forked Atomcms-edit
Initial commit
This commit is contained in:
Executable
+145
@@ -0,0 +1,145 @@
|
||||
var FlashDetect = new (function () {
|
||||
var self = this;
|
||||
self.installed = false;
|
||||
self.raw = "";
|
||||
self.major = -1;
|
||||
self.minor = -1;
|
||||
self.revision = -1;
|
||||
self.revisionStr = "";
|
||||
var activeXDetectRules = [
|
||||
{
|
||||
name: "ShockwaveFlash.ShockwaveFlash.7",
|
||||
version: function (obj) {
|
||||
return getActiveXVersion(obj);
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "ShockwaveFlash.ShockwaveFlash.6",
|
||||
version: function (obj) {
|
||||
var version = "6,0,21";
|
||||
try {
|
||||
obj.AllowScriptAccess = "always";
|
||||
version = getActiveXVersion(obj);
|
||||
} catch (err) {}
|
||||
return version;
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "ShockwaveFlash.ShockwaveFlash",
|
||||
version: function (obj) {
|
||||
return getActiveXVersion(obj);
|
||||
},
|
||||
},
|
||||
];
|
||||
var getActiveXVersion = function (activeXObj) {
|
||||
var version = -1;
|
||||
try {
|
||||
version = activeXObj.GetVariable("$version");
|
||||
} catch (err) {}
|
||||
return version;
|
||||
};
|
||||
var getActiveXObject = function (name) {
|
||||
var obj = -1;
|
||||
try {
|
||||
obj = new ActiveXObject(name);
|
||||
} catch (err) {
|
||||
obj = { activeXError: true };
|
||||
}
|
||||
return obj;
|
||||
};
|
||||
var parseActiveXVersion = function (str) {
|
||||
var versionArray = str.split(",");
|
||||
return {
|
||||
raw: str,
|
||||
major: parseInt(versionArray[0].split(" ")[1], 10),
|
||||
minor: parseInt(versionArray[1], 10),
|
||||
revision: parseInt(versionArray[2], 10),
|
||||
revisionStr: versionArray[2],
|
||||
};
|
||||
};
|
||||
var parseStandardVersion = function (str) {
|
||||
var descParts = str.split(/ +/);
|
||||
var majorMinor = descParts[2].split(/\./);
|
||||
var revisionStr = descParts[3];
|
||||
return {
|
||||
raw: str,
|
||||
major: parseInt(majorMinor[0], 10),
|
||||
minor: parseInt(majorMinor[1], 10),
|
||||
revisionStr: revisionStr,
|
||||
revision: parseRevisionStrToInt(revisionStr),
|
||||
};
|
||||
};
|
||||
var parseRevisionStrToInt = function (str) {
|
||||
return parseInt(str.replace(/[a-zA-Z]/g, ""), 10) || self.revision;
|
||||
};
|
||||
self.majorAtLeast = function (version) {
|
||||
return self.major >= version;
|
||||
};
|
||||
self.minorAtLeast = function (version) {
|
||||
return self.minor >= version;
|
||||
};
|
||||
self.revisionAtLeast = function (version) {
|
||||
return self.revision >= version;
|
||||
};
|
||||
self.versionAtLeast = function (major) {
|
||||
var properties = [self.major, self.minor, self.revision];
|
||||
var len = Math.min(properties.length, arguments.length);
|
||||
for (i = 0; i < len; i++) {
|
||||
if (properties[i] >= arguments[i]) {
|
||||
if (i + 1 < len && properties[i] == arguments[i]) {
|
||||
continue;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
};
|
||||
self.FlashDetect = (function () {
|
||||
if (navigator.plugins && navigator.plugins.length > 0) {
|
||||
var type = "application/x-shockwave-flash";
|
||||
var mimeTypes = navigator.mimeTypes;
|
||||
if (
|
||||
mimeTypes &&
|
||||
mimeTypes[type] &&
|
||||
mimeTypes[type].enabledPlugin &&
|
||||
mimeTypes[type].enabledPlugin.description
|
||||
) {
|
||||
var version = mimeTypes[type].enabledPlugin.description;
|
||||
var versionObj = parseStandardVersion(version);
|
||||
self.raw = versionObj.raw;
|
||||
self.major = versionObj.major;
|
||||
self.minor = versionObj.minor;
|
||||
self.revisionStr = versionObj.revisionStr;
|
||||
self.revision = versionObj.revision;
|
||||
self.installed = true;
|
||||
}
|
||||
} else if (
|
||||
navigator.appVersion.indexOf("Mac") == -1 &&
|
||||
window.execScript
|
||||
) {
|
||||
var version = -1;
|
||||
for (
|
||||
var i = 0;
|
||||
i < activeXDetectRules.length && version == -1;
|
||||
i++
|
||||
) {
|
||||
var obj = getActiveXObject(activeXDetectRules[i].name);
|
||||
if (!obj.activeXError) {
|
||||
self.installed = true;
|
||||
version = activeXDetectRules[i].version(obj);
|
||||
if (version != -1) {
|
||||
var versionObj = parseActiveXVersion(version);
|
||||
self.raw = versionObj.raw;
|
||||
self.major = versionObj.major;
|
||||
self.minor = versionObj.minor;
|
||||
self.revision = versionObj.revision;
|
||||
self.revisionStr = versionObj.revisionStr;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
})();
|
||||
})();
|
||||
FlashDetect.JS_RELEASE = "1.0.4";
|
||||
Reference in New Issue
Block a user