﻿// Create a BrowserTest object
var bt = new Object();

// Set Platform
if (navigator.platform == "MacPPC") {
    bt.platform = "Macintosh";
}
else if (navigator.platform == "Win32") {
    bt.platform = "Windows";
}
else {
    bt.platform = navigator.platform;
}

// Set Browser Name

if (navigator.userAgent.indexOf("Chrome") >= 0)
    bt.browserName = "Chrome";
else if (navigator.userAgent.indexOf("Safari") >= 0)
    bt.browserName = "Safari";
else if (navigator.appName == "Microsoft Internet Explorer")
    bt.browserName = "Internet Explorer";
else if (navigator.userAgent.indexOf("Netscape") >= 0)
    bt.browserName = "Netscape";
else if (navigator.product == "Gecko" && navigator.appName == "Netscape")
    bt.browserName = "Mozilla";
else
    bt.browserName = navigator.appName;

// Set Browser Version

// Safari
if (bt.browserName == "Safari") {
 
    var brVerId = navigator.userAgent.indexOf('Version/');
    brVerId = brVerId + 8;
    bt.browserVersion = navigator.userAgent.substr(brVerId, 3);
}
else if (bt.browserName == "Chrome") {
    var brVerId = navigator.userAgent.indexOf('Chrome/');
    brVerId = brVerId + 7;
    bt.browserVersion = navigator.userAgent.substr(brVerId, 3);
}
// Internet Explorer
else if (bt.browserName == "Internet Explorer") {
    var brVerId = navigator.userAgent.indexOf('MSIE');
    brVerId = brVerId + 5;
    bt.browserVersion = navigator.userAgent.substr(brVerId, 3);
}
// Netscape
else if (bt.browserName == "Mozilla") {
    var brVerId = navigator.userAgent.indexOf('Firefox');
    if (brVerId >= 0) {
        brVerId = brVerId + 8;
        bt.browserVersion = navigator.userAgent.substr(brVerId, 3);
    }
    else {
        bt.browserVersion = parseFloat(navigator.appVersion);
    }
}
// Others
else {
    bt.browserVersion = parseFloat(navigator.appVersion);
}

// Is Java enabled?
bt.hasJava = navigator.javaEnabled();
// Set if browser meets DeL specs
bt.browserOkForDel = false;
if (bt.platform == "Macintosh") {
    if (bt.browserName == "Internet Explorer") {
        if (parseFloat(bt.browserVersion) >= 5.0) {
            bt.browserOkForDel = true;
        }
    }
    else if (bt.browserName == "Mozilla") {
        if (parseFloat(bt.browserVersion) >= 2.0)
            bt.browserOkForDel = true;
    } else if (bt.browserName == "Safari") {
        if (parseFloat(bt.browserVersion) >= 4.0)
            bt.browserOkForDel = true;
    }
    else {
        bt.browserOkForDel = false;
    }
}
else if (bt.platform == "Windows") {
    if (bt.browserName == "Internet Explorer") {
        if (parseFloat(bt.browserVersion) >= 6.0) {
            bt.browserOkForDel = true;
        }
    }
    else if (bt.browserName == "Mozilla") {
        if (parseFloat(bt.browserVersion) >= 2.0)
            bt.browserOkForDel = true;
    }else if (bt.browserName == "Safari") {
        if (parseFloat(bt.browserVersion) >= 4.0)
            bt.browserOkForDel = true;
    } else if (bt.browserName == "Chrome") {
        if (parseFloat(bt.browserVersion) >= 3.0)
            bt.browserOkForDel = true;
    }
    else {
        bt.browserOkForDel = false;
    }
}

// Look for plug-ins
function detectIE(ClassID, name) {
    result = false;
    document.write('<SCR' + 'IPT LANGUAGE=VBScript>\n on error resume next \n result = IsObject(CreateObject("');
    document.write(ClassID);
    document.write('"))</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;
}


if (bt.browserName == "Internet Explorer" && bt.platform == "Windows") {
    pluginlist = detectIE("SWCtl.SWCtl.1", "Shockwave Director") +
				detectIE("ShockwaveFlash.ShockwaveFlash.1", "Shockwave Flash") +
				detectIE("rmocx.RealPlayer G2 Control.1", "RealPlayer") +
				detectIE("QuickTimeCheckObject.QuickTimeCheck.1", "QuickTime") +
				detectIE("MediaPlayer.MediaPlayer.1", "Windows Media Player") +
				detectIE("PDF.PdfCtrl.5", "Acrobat Reader");
}
else {
    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("audio/x-pn-realaudio-plugin", "RealPlayer") +
				detectNS("video/quicktime", "QuickTime") +
				detectNS("application/x-mplayer2", "Windows Media Player") +
				detectNS("application/pdf", "Acrobat Reader");
}

if (pluginlist.length > 0)
    pluginlist = pluginlist.substring(0, pluginlist.length - 1);

if (pluginlist.indexOf("Flash") >= 0)
    bt.hasFlash = true;
else
    bt.hasFlash = false;

if (pluginlist.indexOf("Shockwave Director") >= 0)
    bt.hasShockwave = true;
else
    bt.hasShockwave = false;

if (pluginlist.indexOf("RealPlayer") >= 0)
    bt.hasRealPlayer = true;
else
    bt.hasRealPlayer = false;

if (pluginlist.indexOf("Windows Media Player") >= 0)
    bt.hasWindowsMediaPlayer = true;
else
    bt.hasWindowsMediaPlayer = false;

if (pluginlist.indexOf("QuickTime") >= 0)
    bt.hasQuickTime = true;
else
    bt.hasQuickTime = false;

if (pluginlist.indexOf("Acrobat Reader") >= 0)
    bt.hasAcrobatReader = true;
else
    bt.hasAcrobatReader = false; 
