// $Id: detectNS.js,v 1.2 2007/10/08 13:08:29 andy Exp $

browserInfoDetector = function() {
	var nse = "";
	var detectIE = function(class_id) {
		browserInfoDetector.result = false;
		document.write('<SCR' + 'IPT LANGUAGE="VBScript">\n on error resume next \n browserInfoDetector.result = IsObject(CreateObject("' + class_id + '")) \n </SCR' + 'IPT>\n');
		return browserInfoDetector.result;
	}
	var detectNS = function(class_id) {
		var t = nse.indexOf(class_id) != -1 && navigator.mimeTypes[class_id].enabledPlugin != null;
		return t;
	}
	browserInfoDetector.info.screen	= screen.width+"x"+screen.height;
	browserInfoDetector.info.cdi	= screen.colorDepth || screen.pixelDepth;
	browserInfoDetector.info.java	= navigator.javaEnabled();
	
	browserInfoDetector.info.nav = navigator.appName.toLowerCase();
	browserInfoDetector.info.agt = navigator.userAgent.toLowerCase();

	browserInfoDetector.info.win  = ((browserInfoDetector.info.agt.indexOf("win")!=-1) || (browserInfoDetector.info.agt.indexOf("32bit")!=-1));
	browserInfoDetector.info.mac  = (browserInfoDetector.info.agt.indexOf("mac")!=-1);

	browserInfoDetector.info.ns   = (browserInfoDetector.info.nav.indexOf("netscape") != -1);
	browserInfoDetector.info.opera= (browserInfoDetector.info.nav.indexOf("opera") != -1);
	browserInfoDetector.info.ie   = (browserInfoDetector.info.agt.indexOf("msie") != -1);

    if ( document.documentElement && document.documentElement.clientWidth ) {
        browserInfoDetector.info.winsize = document.documentElement.clientWidth + 'x' + document.documentElement.clientHeight;
    } else if ( document.body && document.body.clientWidth ) {
        browserInfoDetector.info.winsize = document.body.clientWidth + 'x' + document.body.clientHeight;
    } else {
        browserInfoDetector.info.winsize = window.innerWidth + 'x' + window.innerHeight;
	}
	
	if ( browserInfoDetector.info.ie && browserInfoDetector.info.win ) {
		browserInfoDetector.info.shk = detectIE("SWCtl.SWCtl.1");

		browserInfoDetector.info.fla = detectIE("ShockwaveFlash.ShockwaveFlash.1");
		if ( browserInfoDetector.info.fla ) {
			browserInfoDetector.info.fla_version = 0;
			for( var i=0; i<20; i++) {
				if ( detectIE("ShockwaveFlash.ShockwaveFlash." + i) ) {
					browserInfoDetector.info.fla_version = i;
				}
			}
		}
		browserInfoDetector.info.rp  = detectIE("rmocx.RealPlayer G2 Control.1");
		browserInfoDetector.info.mov = detectIE("Quicktime.Quicktime");
		browserInfoDetector.info.wma = detectIE("wmplayer.ocx");
		browserInfoDetector.info.pdf = 0;
		browserInfoDetector.info.pdfver='';
        if ( detectIE("PDF.PdfCtrl.1") ) {
			browserInfoDetector.info.pdf = 1; browserInfoDetector.info.pdfver='4';
		}
	    if ( detectIE('PDF.PdfCtrl.5') ) {
			browserInfoDetector.info.pdf = 1; browserInfoDetector.info.pdfver='5';
		}
		if ( detectIE('PDF.PdfCtrl.6') ) {
			browserInfoDetector.info.pdf = 1; browserInfoDetector.info.pdfver='6';
		}
		if ( detectIE('AcroPDF.PDF.1') ) {
			browserInfoDetector.info.pdf = 1; browserInfoDetector.info.pdfver='7';
		}
	}
	if ( browserInfoDetector.info.ns || !browserInfoDetector.info.win) {
		nse = "";
		for ( var i=0; i<navigator.mimeTypes.length; i++) {
			nse += navigator.mimeTypes[i].type.toLowerCase();
		}
		browserInfoDetector.info.shk = detectNS("application/x-director","");
  		browserInfoDetector.info.svg = detectNS("image/svg+xml","");
		if (document.implementation.hasFeature("org.w3c.dom.svg", "")) {
			browserInfoDetector.info.svg = true;
		}
		browserInfoDetector.info.fla = detectNS("application/x-shockwave-flash");
		browserInfoDetector.info.fla_version = "";
		if ( browserInfoDetector.info.fla ) {
			var F_str = navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin.description;
			browserInfoDetector.info.fla_version = parseInt( F_str.substring( F_str.indexOf(".")-1));
		}
		browserInfoDetector.info.rp  = detectNS("audio/x-pn-realaudio-plugin");
		browserInfoDetector.info.mov = detectNS("video/quicktime");
		browserInfoDetector.info.wma = detectNS("application/x-mplayer2");
		browserInfoDetector.info.pdf = detectNS("application/pdf");
        browserInfoDetector.info.pdfver='';
    }
}
browserInfoDetector.result = false;
browserInfoDetector.info = {};
browserInfoDetector();

haveqt = browserInfoDetector.info.mov;
havefl = browserInfoDetector.info.fla;
FlashVersion = browserInfoDetector.info.fla_version
havemp = browserInfoDetector.info.wma;
haverp = browserInfoDetector.info.rp;