/* detect object called by function, like this: detect.flash.installed(); */ var detect = {}; function detectionObject(type) { this.type = type; this.isPlugin = false; this.requireVersion; this.getPlugin = new Function("return get" + this.type + "Plugin(this.requireVersion)"); this.installed = new Function("return get" + this.type + "Installed()"); this.version = new Function("return get" + this.type + "Version()"); } /* Browser and Platform stuff */ detect.browser = {}; detect.platform = {}; detect.browser.getWidth = function() { if (document.all) { if (document.body) { return document.body.clientWidth; } else { return -1; } } else { return window.innerWidth; } } detect.browser.width = detect.browser.getWidth(); detect.browser.getHeight = function() { if (document.all) { if (document.body) { return document.body.clientHeight; } else { return -1; } } else { return window.innerHeight; } } detect.browser.height = detect.browser.getHeight(); detect.browser.ie = false; if (document.all) { detect.browser.ie = true; } detect.platform.pc = navigator.platform=="Win32"; detect.platform.mac = navigator.platform.indexOf("Mac")>-1; var pcie = false; if (detect.browser.ie) { if (detect.platform.pc) { detect.browserOs = 'ieWin'; pcie = true; } else detect.browserOs = 'ieMac'; } else { if (detect.platform.pc) detect.browserOs = 'netWin'; else detect.browserOs = 'netMac'; } if (navigator.userAgent) { if (navigator.userAgent.indexOf('NT 5.0')>-1) { detect.platform.os = 'Win2000'; } } detect.platform.winVersion = getWinVersion(); detect.browser.ieVersion = getIEVersion(); function getWinVersion() { var rv = -1; // Return value assumes failure if (navigator.userAgent.indexOf("Windows") != -1) { var ua = navigator.userAgent; var re = new RegExp("Windows NT ([5-9]{1,}[\.0-9]{0,})"); if (re.exec(ua) != null) rv = parseFloat( RegExp.$1 ); } return rv; } function getIEVersion() { var rv = -1; // Return value assumes failure if (navigator.appName == 'Microsoft Internet Explorer') { var ua = navigator.userAgent; var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})"); if (re.exec(ua) != null) rv = parseFloat( RegExp.$1 ); } return rv; } detect.showPlugins = new Function("getShowPlugins()"); detect.showAll = new Function("getShowAll()"); function getShowPlugins() { for (a in detect) { if (detect[a].isPlugin) { document.write("" + detect[a].type + '
'); document.write("Installed: " + detect[a].installed() + ""); document.write("Version: " + detect[a].version() + "

"); } } } function getShowAll() { detect.showPlugins(); document.write("detect.browser.ie " + detect.browser.ie + "
"); document.write("detect.platform.pc " + detect.platform.pc + "
" ); document.write("pcie " + pcie + "
"); } // VBscript functions if (pcie) { document.write(''); } // // Flash // detect.flash = new detectionObject('flash'); detect.flash.isPlugin = true; //some defaults. these are meant to be overridden function getflashPlugin(version){} detect.flash.minVersion = 3; detect.flash.maxVersion = 10; // functions function getflashInstalled(obj) { out = false; if (getflashVersion()>0) { out = true; } return out; } function getflashVersion() { var min = detect.flash.minVersion; var max = detect.flash.maxVersion; var version = null; if (pcie) { // Call VBscript for PC IE version = vbGetFlashVersion(min,max); } else { if(navigator.plugins.length) { var i; //loop through all the plugins installed for (i=0; i < navigator.plugins.length; i++) { //put the plugin string in a variable var pluginIdent = navigator.plugins[i].description.split(" "); //The Flash Player identification string is ([] = the array index) [0]Shockwave [1]Flash [2]6.0 [3]r21 if(pluginIdent[0] == "Shockwave" && pluginIdent[1] == "Flash") { //an array of the Flash version number (major.minor) var versionArray = pluginIdent[2].split("."); version = versionArray[0]; // get major version break; //need to break this loop as some browsers may have two versions installed } } } } return version; } // // Virtools // author: Dhimiter Bozo // Date: 11/10/2005 // detect.virtools = new detectionObject('virtools'); detect.virtools.isPlugin = true; //some defaults. these are meant to be overridden //version numbers are not needed since the plugin updates itself function getvirtoolsPlugin(version){} function getvirtoolsVersion() {} // this is not yet implemented, but needs to be here detect.virtools.minVersion = 1; detect.virtools.maxVersion = 1000; // functions function getvirtoolsInstalled(obj) { var installed = null; if (pcie) { // Call VBscript for PC IE installed = vbGetVirtoolsVersion(); } else { if(navigator.plugins.length) { var i; //loop through all the plugins installed for (i=0; i < navigator.plugins.length; i++) { //put the plugin string in a variable var pluginIdent = navigator.plugins[i].description.split(" "); if(pluginIdent[0] == "Virtools") { installed = true break; //need to break this loop as some browsers may have two versions installed } } } } return installed; } /* Shockwave Version numbers aren't accurate */ detect.shockwave = new detectionObject('shockwave'); detect.shockwave.isPlugin = true; //some defaults. these are meant to be overridden function getshockwavePlugin(){} detect.shockwave.minVersion = 3; detect.shockwave.maxVersion = 100; // functions function getshockwaveInstalled(obj) { out = false; //alert("shockwave version: " + getshockwaveVersion()); if (getshockwaveVersion()>0) { out = true; } return out; } function getshockwaveVersion() { var min = detect.shockwave.minVersion; var max = detect.shockwave.maxVersion; var version = null; if (pcie) { // Call VBscript for PC IE version = parseInt(vbGetShockwaveVersion(min,max)); } else { if (navigator.plugins) { for ( var i = 0 ; i< navigator.plugins.length ; i++) { if ((navigator.plugins[i].name.indexOf('Shockwave') > -1 )&&(navigator.plugins[i].name.indexOf('Flash') == -1)) { for (var a=min ; a<=max ; a++) { if ( navigator.plugins[i].description.indexOf(a) > -1 ){version = a } } } } } } return version; } /* Real G2 version = 3 */ detect.real = new detectionObject('real'); detect.real.isPlugin = true; //some defaults. these are meant to be overridden function getrealPlugin(){} detect.real.minVersion = 1; detect.real.maxVersion = 10; // functions function getrealInstalled(obj) { out = false; if (getrealVersion()>0) { out = true; } return out; } function getrealVersion() { var min = detect.real.minVersion; var max = detect.real.maxVersion; var version = null; if (pcie) { // Call VBscript for PC IE version = vbGetRealVersion(min,max); } else { if (navigator.plugins) { for ( var i = 0 ; i< navigator.plugins.length ; i++) { if (navigator.plugins[i].name.indexOf('RealPlayer') > -1 ) { for (var a=min ; a<=max ; a++) { if ( navigator.plugins[i].name.indexOf(a) > -1 ){version = a } } } } } } return version; } /* All PCIE versions = 4 Most NS versions = 3 */ detect.quicktime = new detectionObject('quicktime'); detect.quicktime.isPlugin = true; //some defaults. these are meant to be overridden function getquicktimePlugin(){} detect.quicktime.minVersion = 1; detect.quicktime.maxVersion = 10; // functions function getquicktimeInstalled(obj) { out = false; if (getquicktimeVersion()>0) { out = true; } return out; } function getquicktimeVersion() { var min = detect.quicktime.minVersion; var max = detect.quicktime.maxVersion; var version = null; if (pcie) { // Call VBscript for PC IE version = vbGetQuicktimeVersion(min,max); } else { if (navigator.plugins) { var isQuickTime = navigator.mimeTypes && navigator.mimeTypes["video/quicktime"] && navigator.mimeTypes["video/quicktime"].enabledPlugin; if ( isQuickTime ) { for (var a=min ; a<=max ; a++) { if ( isQuickTime.name.indexOf(a) > -1 ){version = a } } if ( isQuickTime.name.indexOf('4.1') > -1 ) version = 4.1 ; } if (version == null) { for ( var i = 0 ; i< navigator.plugins.length ; i++) { if (navigator.plugins[i].name.indexOf('QuickTime') > -1 ) { for (var a=min ; a<=max ; a++) { if ( navigator.plugins[i].description.indexOf(a) > -1 ){version = a } } } } } } } return version; } /* Windows Media Player All versions = 6 */ detect.wmp = new detectionObject('wmp'); detect.wmp.isPlugin = true; //some defaults. these are meant to be overridden function getwmpPlugin(){} detect.wmp.minVersion = 1; detect.wmp.maxVersion = 10; // functions function getwmpInstalled(obj) { out = false; if (getwmpVersion()>0) { out = true; } return out; } function getwmpVersion() { var min = detect.wmp.minVersion; var max = detect.wmp.maxVersion; var version = null; if (pcie) { // Instantiate a wmp object document.write(''); document.write(''); // Call VBscript for PC IE version = vbGetWmpVersion(min,max); } else { if (navigator.plugins) { v = false; if(navigator.mimeTypes && navigator.mimeTypes["application/x-drm"] && navigator.mimeTypes["application/x-drm"].enabledPlugin){v=true} if(navigator.mimeTypes && navigator.mimeTypes["video/x-ms-wm"] && navigator.mimeTypes["video/x-ms-wm"].enabledPlugin){v=true} if(navigator.mimeTypes && navigator.mimeTypes["video/x-ms-asf-plugin"] && navigator.mimeTypes["video/x-ms-asf-plugin"].enabledPlugin){v=true} if (v) { version = 6; } } } return version; }