gyorgy@0: gyorgy@0: // Core detector, plugins are added below gyorgy@0: mejs.PluginDetector = { gyorgy@0: gyorgy@0: // main public function to test a plug version number PluginDetector.hasPluginVersion('flash',[9,0,125]); gyorgy@0: hasPluginVersion: function(plugin, v) { gyorgy@0: var pv = this.plugins[plugin]; gyorgy@0: v[1] = v[1] || 0; gyorgy@0: v[2] = v[2] || 0; gyorgy@0: return (pv[0] > v[0] || (pv[0] == v[0] && pv[1] > v[1]) || (pv[0] == v[0] && pv[1] == v[1] && pv[2] >= v[2])) ? true : false; gyorgy@0: }, gyorgy@0: gyorgy@0: // cached values gyorgy@0: nav: window.navigator, gyorgy@0: ua: window.navigator.userAgent.toLowerCase(), gyorgy@0: gyorgy@0: // stored version numbers gyorgy@0: plugins: [], gyorgy@0: gyorgy@0: // runs detectPlugin() and stores the version number gyorgy@0: addPlugin: function(p, pluginName, mimeType, activeX, axDetect) { gyorgy@0: this.plugins[p] = this.detectPlugin(pluginName, mimeType, activeX, axDetect); gyorgy@0: }, gyorgy@0: gyorgy@0: // get the version number from the mimetype (all but IE) or ActiveX (IE) gyorgy@0: detectPlugin: function(pluginName, mimeType, activeX, axDetect) { gyorgy@0: gyorgy@0: var version = [0,0,0], gyorgy@0: description, gyorgy@0: i, gyorgy@0: ax; gyorgy@0: gyorgy@0: // Firefox, Webkit, Opera gyorgy@0: if (typeof(this.nav.plugins) != 'undefined' && typeof this.nav.plugins[pluginName] == 'object') { gyorgy@0: description = this.nav.plugins[pluginName].description; gyorgy@0: if (description && !(typeof this.nav.mimeTypes != 'undefined' && this.nav.mimeTypes[mimeType] && !this.nav.mimeTypes[mimeType].enabledPlugin)) { gyorgy@0: version = description.replace(pluginName, '').replace(/^\s+/,'').replace(/\sr/gi,'.').split('.'); gyorgy@0: for (i=0; i