var userAgent = navigator.userAgent.toLowerCase();
jQuery.browser.chrome = /chrome/.test(navigator.userAgent.toLowerCase());

// Is this a version of Chrome?
if(jQuery.browser.chrome){
  userAgent = userAgent.substring(userAgent.indexOf('chrome/') +7);
  userAgent = userAgent.substring(0,userAgent.indexOf('.'));
  jQuery.browser.version = userAgent;
  // If it is chrome then jQuery thinks it's safari so we have to tell it it isn't
  jQuery.browser.safari = false;
}

// Is this a version of Safari?
if(jQuery.browser.safari){
  userAgent = userAgent.substring(userAgent.indexOf('safari/') +7);
  userAgent = userAgent.substring(0,userAgent.indexOf('.'));
  jQuery.browser.version = userAgent;
}

	if (jQuery.browser.msie || jQuery.browser.mozilla || jQuery.browser.chrome) {
		document.writeln('<object id="MP7" width=1 height=1 classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" codebase="#Version=7,0,0,1954"></object>');
	}

	// for mozilla firefox, we jsut say  true  because the needed addon should come with ff by default
	function checkForFireFoxWMPPlugin() {
		if (jQuery.browser.mozilla) {
			try {
				// for mozilla firefox, the needed addon should come with ff by default
				// different version of FF calls this different things
				if (navigator.plugins["Microsoft® Windows Media Player Firefox Plugin"] ||
						navigator.plugins["Windows Media Player Plug-in Dynamic Link Library"]) {
					return true;
				}
			} catch (e) {}
		}
		return false;
	}

    var existsMP7 = document.getElementById("MP7")  ? true : false;

	if (jQuery.browser.mozilla) {
		existsMP7 = checkForFireFoxWMPPlugin();
	}

    if(existsMP7 && jQuery.browser.msie){
	    try {
		    // if we have the object, get the version info
			    var v = document.getElementById("MP7").versionInfo;
			    var loc = v.indexOf(".");
			    var finalV = parseInt(v.substring(0, loc));
			    if(finalV < 9){
				    existsMP7 = false;
			    }
	    } catch (e) {
	    }
    }

var statusAcrobat, statusDisplay, statusBrowser, statusMediaPlayer, statusSlPlayer, statusOs;
var browserName = navigator.appName;
var browserVersion = parseFloat(navigator.appVersion.substring(22,25));


function checkMimeTypes(x) {
    return navigator.mimeTypes[x];
}

function checkMimeTypesPlugin(x) {
    return navigator.mimeTypes[x].enabledPlugin;
}

function testOs() {

        if (navigator.platform == "Win32") {
            statusOs = true;
    		document.getElementById('ospass').style.display="inline";
        }
        else if(navigator.platform.indexOf("Mac") > -1) {
            statusOs = true;
    		document.getElementById('ospass').style.display="inline";
        }
        else {
            statusOs = false;
            document.getElementById('osfail').style.display = "inline";
        }
}

function testDisplay() {
    if (screen.width >= 1024 & screen.height >= 768 & screen.colorDepth >= 16) {
        statusDisplay = true;
        document.getElementById('displaypass').style.display = "inline";
    }
    else {
        statusDisplay = false;
        document.getElementById('displayfail').style.display = "inline";
    }
}

function testBrowser() {
//	alert('jQuery.browser.mozilla: ' + jQuery.browser.mozilla );
//	alert('jQuery.browser.safari: ' + jQuery.browser.safari );
//	alert('jQuery.browser.msie: ' + jQuery.browser.msie );
//	alert('parseFloat(jQuery.browser.version): ' + parseFloat(jQuery.browser.version) );

    if(jQuery.browser.chrome && parseFloat(jQuery.browser.version) >= 15){
        statusBrowser = true;
        document.getElementById('browserpass').style.display = "inline";
    }
    else if
       (jQuery.browser.msie && parseFloat(jQuery.browser.version) >= 6) {
        statusBrowser = true;
        document.getElementById('browserpass').style.display = "inline";
    } else if (jQuery.browser.mozilla && testFFVersion(jQuery.browser.version.split('.'))) {
	    statusBrowser = true;
        document.getElementById('browserpass').style.display = "inline";
	} else if (jQuery.browser.safari && parseFloat(jQuery.browser.version) >= 525.0) {
	    statusBrowser = true;
        document.getElementById('browserpass').style.display = "inline";
    }
    else {
        statusBrowser = false;
        document.getElementById('browserfail').style.display = "inline";
    }
}


function testFFVersion(versionArray){


    var minimumFFVersion = [1,9,1];


    if(versionArray[0] != null && versionArray[0] > minimumFFVersion[0] ){
        return true;
    }

    if(versionArray[1] != null && versionArray[1] > minimumFFVersion[1] ){
        return true;
    }

    if(versionArray[2] != null && versionArray[2] >= minimumFFVersion[2] ){
        return true;
    }

    return false;
}


function testMediaPlayer() {
    if(navigator.platform == "Win32"){
        if(jQuery.browser.msie){
            if (existsMP7) {
                statusMediaPlayer = true;
                document.getElementById('mediaplayerpass').style.display = "inline";
            }
            else {
                statusMediaPlayer = false;
                document.getElementById('mediaplayerfail').style.display = "inline";
            }
        }else{
            statusMediaPlayer = true;
            document.getElementById('mediaplayerna').style.display = "inline";
        }
    }else if(navigator.platform.indexOf("Mac") > -1){
         document.getElementById('mediaplayerna').style.display = "inline";
    }
}

 function testSilverLightPlayer() {
    if(jQuery.browser.msie){
        statusSlPlayer = true;
        document.getElementById('slplayerna').style.display = "inline";
    }else{
        if (Silverlight.isInstalled('2')) {
            statusSlPlayer = true;
            document.getElementById('slplayerpass').style.display = "inline";
        }
        else {
            statusSlPlayer = false;
            document.getElementById('slplayerfail').style.display = "inline";
        }
    }
}


function testAcrobat() {
    if (window.ActiveXObject) {
         var existsAcrobat = null;
         try {
             // AcroPDF.PDF is used by version 7 and later
             existsAcrobat = new ActiveXObject('AcroPDF.PDF');
         } catch (e) {
             // Do nothing
         }
         if (!existsAcrobat) {
             try {
                 // PDF.PdfCtrl is used by version 6 and earlier
                 existsAcrobat = new ActiveXObject('PDF.PdfCtrl');
             } catch (e) {
                 return;
             }
         }
    /*
        // For acrobat version
         if (control) {
             isInstalled = true;
             version = control.GetVersions().split(',');
             version = version[0].split('=');
             version = parseFloat(version[1]);
         }
    */
     }else{
         existsAcrobat = navigator.mimeTypes && navigator.mimeTypes["application/pdf"] &&  navigator.mimeTypes["application/pdf"].enabledPlugin;
     }

    if (existsAcrobat || (navigator.platform.indexOf("Mac") > -1)) {
        statusAcrobat = true;
        document.getElementById('acrobatpass').style.display = "inline";
    }
    else {
        statusAcrobat = false;
        document.getElementById('acrobatfail').style.display = "inline";
    }
}


function testSummary() {
    if(navigator.platform == "Win32"){
        if (statusOs & statusBrowser & statusDisplay & statusMediaPlayer &  statusSlPlayer & statusAcrobat & statusFlashPlayer) {
            document.getElementById('testpass').style.display = "inline";
            document.getElementById('testpassdescription').style.display = "inline";
            if (is_win95) win95comment.style.display = "inline";
            document.getElementById('winntcomment').style.display = "inline";
        }
        else {
            document.getElementById('testfail').style.display = "inline";
            document.getElementById('testfaildescription').style.display = "inline";
        }
    }else if(navigator.platform.indexOf("Mac") > -1){
        if (statusOs & statusBrowser & statusDisplay & statusAcrobat) {
            document.getElementById('testpass').style.display = "inline";
            document.getElementById('testpassdescription').style.display = "inline";
        }
        else {
            document.getElementById('testfail').style.display = "inline";
            document.getElementById('testfaildescription').style.display = "inline";
        }
    }
}

function testSystem() {
    //    For instant display:
//    testOs();
//    testBrowser();
//    testDisplay();
//    testMediaPlayer();
//    testAcrobat();
//    testSummary();
    //For pauses between checks:
        setTimeout("testOs()", 500);
        setTimeout("testDisplay()", 1000);
        setTimeout("testBrowser()", 1500);
        setTimeout("testMediaPlayer()", 2000);
        setTimeout("testSilverLightPlayer()", 2500);
        setTimeout("testAcrobat()", 3000);
        setTimeout("testFlashPlayer()", 3500);
        setTimeout("testSummary()", 4000);
}


