// The functions in this file support the functionality that auto-loads the plugin in Overview.aspx
// if the user already has the proper plugin installed.

// Returns true if plugin is already installed
function detectWAPluginOnly(WAControlName, WAMIMEType) {
     
    // We only support Windows at this time
    if (navigator.platform.indexOf("Win") != 0) {
        alert("Web.Alive is currently supported on Windows only");
        return (false);
    }

    if (waIsIE()) {
        // Call VB detection function
        return DetectActiveX(WAControlName);
    }
    else if (waIsNetscape()) {
        // Cannot use VB in this case
        return detectUsingJS(WAMIMEType);
    }
    else {
        alert("The Web.Alive Plugin requires Internet Explorer, Firefox 3+, or Chrome");
        return (false);
    }
}


// The following functions have been cloned from WADetect.js

function waIsIE() {
    var browser = navigator.appName;
    var b_version = navigator.appVersion;
    var version = parseFloat(b_version);
    if ((browser == "Microsoft Internet Explorer") && (version >= 4)) {
        return (true);
    }
    else {
        return (false);
    }

}


function waIsNetscape() {
    var browser = navigator.appName;
    var b_version = navigator.appVersion;
    var version = parseFloat(b_version);
    //alert("Browser=" + browser + " version=" + b_version + " userAgent=" + navigator.userAgent + " platform=" + navigator.platform); // FPM
    if ((browser == "Netscape") && (version >= 4) &&
       (navigator.userAgent.indexOf("Firefox/3") >= 0) ||
       (navigator.userAgent.indexOf("Firefox/4") >= 0) ||
       (navigator.userAgent.indexOf("Firefox/5") >= 0) ||
       (navigator.userAgent.indexOf("Firefox/6") >= 0) ||
       (navigator.userAgent.indexOf("Chrome") >= 0)) {
        return (true);
    }
    else {
        return (false);
    }

}


function detectUsingJS(mType) {
    // Force the browser to refresh its plugins list.  See:
    // http://devedge-temp.mozilla.org/library/manuals/2000/javascript/1.3/reference/nav.html#1193459
    // Note: Webkit based browsers have a bug: plugins.refresh(false) does not work
    // but fortunately, plugins.refresh(true) does not refresh the page, probably
    // because we use <object> rather than <embed>
    if (navigator.appVersion.indexOf("WebKit") >= 0) {
        // Chrome and Safari
        navigator.plugins.refresh(false);
    }
    else {
        // Firefox works as expected
        navigator.plugins.refresh(false);
    }

    var mimetype = navigator.mimeTypes[mType];

    if (mimetype && mimetype.enabledPlugin) {
        return true;
    }
    else {
        return false;
    }
}
