var pluginSvg=new Object(); var pluginPdf=new Object(); var pluginJava=new Object(); var NOT_INSTALLED = 0; var WRONG_VERSION = -1; var INSTALLED = 1; /** * Fonction trouvée sur internet et quelque peu modifiée. * http://forum.java.sun.com/thread.jspa?threadID=536912&messageID=2597230 * * Determines if the Java plugin with the required version number is * installed for use in the browser. * @param requiredVersion the minimum version number required - must only * consist of major and minor version, with no patch version (that means * n1.n2.n3 is in 1.4.2 - do NOT use 1.4.2_04). If minor version is 0, do not * include (i.e. give 1.3 instead of 1.3.0) * @return NOT_INSTALLED if no Java plugin detected, INSTALLED if plugin * detected and correct version, WRONG_VERSION if installed but wrong * version */ function isJavaPluginInstalled(requiredVersion) { if (!requiredVersion) requiredVersion = "1.5"; if (navigator.userAgent.indexOf("MSIE") != -1) { // MSIE plugin lookup try { var plugin = new ActiveXObject("JavaPlugin"); if (plugin) { // so now we know we have the plugin - let's see if we have the minimum version // Since both Sun and MS are idiots about actually documenting any of this // stuff, we'll have to "brute-force" a maximum version number // n1.n2 - major version number // n3 - minor version (maintainance version) // n4n5 - patch version var curr = -1; for (var n1 = 1; n1 >= 1 && curr == -1; --n1) { for (var n2 = 8; n2 >= 0 && curr == -1; --n2) { for (var n3 = 9; n3 >= 0 && curr == -1; --n3) { for (var n4 = 9; n4 >= 0 && curr == -1; --n4) { for (var n5 = 9; n5 >= 0 && curr == -1; --n5) { var version = "" + n1 + n2 + n3 + "_" + n4 + n5; // var version = "" + n1 + n2 + n3; try { var versioned = new ActiveXObject("JavaPlugin." + version); curr = new Number("" + n1 + n2 + n3); } catch (e) { continue; } } } } } } // don't know how we could've missed it, but this is the // bare minimum version possible (version 1.2) if (curr == null) curr = "120"; var array = requiredVersion.split("."); var convert = new Number(array[0]) * 100; if (array.length > 1) convert += new Number(array[1]) * 10; if (array.length > 2) convert += new Number(array[2]); if (curr >= convert) return INSTALLED; else return WRONG_VERSION; } return NOT_INSTALLED; } catch (e) { return NOT_INSTALLED } } else { // NS/Mozilla (presumably other) plugin lookup var wrong_version = false; for (var i = 0; i < navigator.mimeTypes.length; ++i) { var mime_type = navigator.mimeTypes[i]; if (mime_type.type == "application/x-java-applet;version=" + requiredVersion) return INSTALLED; if (mime_type.type.match(/^application\/x-java-applet;version=/)) wrong_version = true; } if (wrong_version) return WRONG_VERSION; return NOT_INSTALLED; } } function detect_mandatory_plugins() { pluginSvg.installed=false; pluginSvg.version='0.0'; pluginPdf.installed=false; pluginPdf.version='0.0'; if (navigator.plugins && navigator.plugins.length) { pluginSvg.installed=true; pluginSvg.version='3.0'; for (index = 0; index < navigator.plugins.length; index++) { if (navigator.plugins[index].name == "Adobe Acrobat") { pluginPdf.version=parseFloat(navigator.plugins[index].description.split('Version ')[1]); if (pluginPdf.version.toString().length == 1) { pluginPdf.version+='.0'; } pluginPdf.installed=true; } } } else { if (window.ActiveXObject) { for (version=1; version<10; version++) { try { if (eval("new ActiveXObject('Adobe.SVGCtl."+version+"');")) { pluginSvg.installed=true; pluginSvg.version=version+'.0'; } } catch(e) {} try { if (eval("new ActiveXObject('PDF.PdfCtrl."+version+"');")) { pluginPdf.installed=true; pluginPdf.version=version+'.0'; } } catch(e) {} } try { if (new ActiveXObject('PDF.PdfCtrl.1')) { pluginPdf.installed=true; pluginPdf.version='4.0'; } } catch(e) {} try { if (new ActiveXObject('AcroPDF.PDF.1')) { pluginPdf.installed=true; pluginPdf.version='7.0'; } } catch(e) {} } } } function detect_optional_plugins() { var java_installed = isJavaPluginInstalled('1.5'); if (java_installed == INSTALLED) pluginJava.installed = true; } function are_mandatory_plugins_installed() { detect_mandatory_plugins(); return (pluginSvg.installed && pluginPdf.installed && pluginPdf.version >= 7) } function afficheEtatPlugin() { detect_mandatory_plugins(); detect_optional_plugins(); if (pluginSvg.installed) { document.getElementById("svgOK").style.display=''; } else { document.getElementById("svgNOK").style.display=''; document.getElementById("svgIcone").style.display=''; document.getElementById("svgAide").style.display=''; } if (pluginPdf.installed && pluginPdf.version >= 7) { document.getElementById("pdfOK").style.display=''; } else { document.getElementById("pdfNOK").style.display=''; document.getElementById("pdfIcone").style.display=''; document.getElementById("pdfAide").style.display=''; } if (pluginJava.installed) { document.getElementById("javaOK").style.display=''; } else { document.getElementById("javaNOK").style.display=''; document.getElementById("javaIcone").style.display=''; document.getElementById("javaAide").style.display=''; } if(document.getElementById("svgNOK").style.display=='' || document.getElementById("swfNOK").style.display=='' && document.getElementById("pdfNOK").style.display=='' || document.getElementById("javaNOK").style.display==''){ document.getElementById("installation").style.visibility='visible'; } }