var agt = navigator.userAgent.toLowerCase();
var ie  = (agt.indexOf("msie") != -1);
var ns  = (navigator.appName.indexOf("Netscape") != -1);
var win = ((agt.indexOf("win") != -1) || (agt.indexOf("32bit") != -1));
var mac = (agt.indexOf("mac") != -1);
var pluginlist;

if (ie && win) {
   pluginlist = detectIE("Adobe.SVGCtl", "SVG Viewer") + detectIE("SWCtl.SWCtl.1","Shockwave Director") + detectIE("ShockwaveFlash.ShockwaveFlash.1","Shockwave Flash");
   for (z = 6; z <= 10; z++) {
      pluginlist += detectIE("PDF.PdfCtrl." + z,"Adobe Reader");

   }

   if (pluginlist.indexOf("Adobe Reader") == -1)
      pluginlist += detectIE("AcroPDF.PDF.1", "Adobe Reader");
}

if (ns || !win) {
		nse = "";
        for (var i=0; i < navigator.mimeTypes.length; i++) {
           nse += navigator.mimeTypes[i].type.toLowerCase();
        }
		pluginlist = detectNS("image/svg-xml","SVG Viewer") + detectNS("application/x-director","Shockwave Director") + detectNS("application/x-shockwave-flash","Shockwave Flash") + detectNS("application/pdf","Adobe Reader");
}

function detectIE(ClassID,name) {
   result = false;
   document.write('<SCRIPT LANGUAGE=VBScript>\n on error resume next \n result = IsObject(CreateObject("' + ClassID + '"))</SCRIPT>\n');
   if (result)
      return name+',';
   else
      return '';
}
function detectNS(ClassID,name) {
   n = "";
   if (nse.indexOf(ClassID) != -1)
      if (navigator.mimeTypes[ClassID].enabledPlugin != null)
         n = name + ",";

   return n;
}

pluginlist += navigator.javaEnabled() ? "Java," : "";
if (pluginlist.length > 0)
   pluginlist = pluginlist.substring(0, pluginlist.length - 1);
