swfdetect-debug.js revision 8a485a720d4a37f68766d1022297dca2bd4549b7
8a485a720d4a37f68766d1022297dca2bd4549b7Allen RabinovichYUI.add('swfdetect', function(Y) {
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich/**
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich * Utility for Flash version detection
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich * @module swfdetect
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich */
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich// shortcuts
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovichvar version = 0;
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovichvar uA = Y.UA;
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovichvar lG = Y.Lang;
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovichvar sF = "ShockwaveFlash";
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovichfunction parseFlashVersion (flashVer) {
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich if (lG.isNumber(parseInt(flashVer[0]))) {
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich uA.flashMajor = flashVer[0];
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich }
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich if (lG.isNumber(parseInt(flashVer[1]))) {
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich uA.flashMinor = flashVer[1];
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich }
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich if (lG.isNumber(parseInt(flashVer[2]))) {
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich uA.flashRev = flashVer[2];
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich }
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich}
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovichif (uA.gecko || uA.webkit || uA.opera) {
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich if ((mF = navigator.mimeTypes['application/x-shockwave-flash'])) {
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich if ((eP = mF.enabledPlugin)) {
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich var vS = [];
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich vS = eP.description.replace(/\s[rd]/g, '.').replace(/[A-Za-z\s]+/g, '').split('.');
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich Y.log(vS[0]);
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich parseFlashVersion(vS);
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich }
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich }
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich }
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich else if(uA.ie) {
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich try
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich {
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich var ax6 = new ActiveXObject(sF + "." + sF + ".6");
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich ax6.AllowScriptAccess = "always";
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich }
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich catch(e)
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich {
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich if(ax6 != null)
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich {
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich version = 6.0;
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich }
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich }
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich if (version == 0) {
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich try
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich {
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich var ax = new ActiveXObject(sF + "." + sF);
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich var vS = [];
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich vS = ax.GetVariable("$version").replace(/[A-Za-z\s]+/g, '').split(',');
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich parseFlashVersion(vS);
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich } catch (e) {}
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich }
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich }
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich
8a485a720d4a37f68766d1022297dca2bd4549b7Allen RabinovichY.SWFDetect = {
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich getFlashVersion : function () {
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich return (String(uA.flashMajor) + "." + String(uA.flashMinor) + "." + String(uA.flashRev));
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich },
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich isFlashVersionAtLeast : function (flashMajor, flashMinor, flashRev) {
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich if (flashMajor < uA.flashMajor) {
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich return true;
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich }
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich else if (flashMajor > uA.flashMajor) {
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich return false;
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich }
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich else {
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich if (flashMinor < uA.flashMinor) {
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich return true;
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich }
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich else if (flashMinor > uA.flashMinor) {
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich return false;
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich }
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich else {
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich if (flashRev <= uA.flashRev) {
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich return true;
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich }
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich else {
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich return false;
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich }
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich }
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich }
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich return false;
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich }
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich };
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich
8a485a720d4a37f68766d1022297dca2bd4549b7Allen Rabinovich}, '@VERSION@' );