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.

118 lines
2.5 KiB

YUI.add('yui2-swfdetect', function(Y) {
var YAHOO = Y.YUI2;
/*
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.com/yui/license.html
version: 2.9.0
*/
/**
* Utility for Flash version detection
* @namespace YAHOO.util
* @module swfdetect
*/
YAHOO.namespace("util");
/**
* Flafh detection utility.
* @class SWFDetect
* @static
*/
(function () {
var version = 0;
var uA = YAHOO.env.ua;
var sF = "ShockwaveFlash";
var mF, eP;
if (uA.gecko || uA.webkit || uA.opera) {
if ((mF = navigator.mimeTypes['application/x-shockwave-flash'])) {
if ((eP = mF.enabledPlugin)) {
var vS = [];
vS = eP.description.replace(/\s[rd]/g, '.').replace(/[A-Za-z\s]+/g, '').split('.');
version = vS[0] + '.';
switch((vS[2].toString()).length)
{
case 1:
version += "00";
break;
case 2:
version += "0";
break;
}
version += vS[2];
version = parseFloat(version);
}
}
}
else if(uA.ie) {
try
{
var ax6 = new ActiveXObject(sF + "." + sF + ".6");
ax6.AllowScriptAccess = "always";
}
catch(e)
{
if(ax6 != null)
{
version = 6.0;
}
}
if (version == 0) {
try
{
var ax = new ActiveXObject(sF + "." + sF);
var vS = [];
vS = ax.GetVariable("$version").replace(/[A-Za-z\s]+/g, '').split(',');
version = vS[0] + '.';
switch((vS[2].toString()).length)
{
case 1:
version += "00";
break;
case 2:
version += "0";
break;
}
version += vS[2];
version = parseFloat(version);
} catch (e) {}
}
}
uA.flash = version;
YAHOO.util.SWFDetect = {
getFlashVersion : function () {
return version;
},
isFlashVersionAtLeast : function (ver) {
return version >= ver;
},
parseFlashVersion : function (ver)
{
var flashVersion = ver;
if(YAHOO.lang.isString(ver))
{
var verSplit = ver.split(".");
if(verSplit.length > 2)
{
flashVersion = parseInt(verSplit[0]);
flashVersion += parseInt(verSplit[2]) * .001;
}
else
{
flashVersion = parseFloat(ver);
}
}
return YAHOO.lang.isNumber(flashVersion) ? flashVersion : null;
}
};
})();
YAHOO.register("swfdetect", YAHOO.util.SWFDetect, {version: "2.9.0", build: "2800"});
}, '2.9.0' ,{"requires": ["yui2-yahoo"]});