// Functions to test the availability of plugins
// Copyright Andante Corp. 2001
// By Guillaume Herisson - June 11th 2001

// browser constants
var BROWSER_UNKNOWN = 0;
var BROWSER_NETSCAPE = 1;
var BROWSER_IE = 2;

// platform constants
var PLATFORM_OTHER = 0;
var PLATFORM_WIN32 = 1;
var PLATFORM_MAC = 2;

// Plugin constants
var PLUGIN_WMP = "Windows Media Player";
var PLUGIN_REALPLAYER = "RealPlayer"; // version 5 and >
var PLUGIN_REALVIDEO = "RealVideo"; // version 4
var PLUGIN_G2 = "G2";
var PLUGIN_QT = "QuickTime";
var PLUGIN_FLASH = "Shockwave Flash";

// Plugin Test

// Windows Media Flags
var HasNSWMP = false;
var HasIEWMP = false;

// Real Player flags
var HasNSReal = false
var HasIEReal = false

// Quicktime flags
var HasNSQT = false;
var HasIEQT = false;

// Search the EMBED objects within the document

function checkForPlugin(pName)
{
	// get the number of plugins
	var num = navigator.plugins.length;
	
	// loop through the plugins list
	for (var i=0;i<num ;i++) {
		
		// get the plugin
        var plugin = navigator.plugins[i];
        if (plugin.name.indexOf(pName) > -1)
        {
			// plugin found
			return i;
        }
	}
	
	// plugin not found
	return -1;
}

function checkForMimeTypes(pName)
{
	// get the number of plugins
	var num = navigator.mimeTypes.length;
	
	// loop through the plugins list
	for (var i=0;i<num ;i++) {
		
		// get the plugin
        var mime = navigator.mimeTypes[i];
        if (mime.name.indexOf(pName) > -1)
        {
			// plugin found
			return i;
        }
	}
	
	// plugin not found
	return -1;
}

function showPlugins()
{
	// get the number of plugins
	var num = navigator.plugins.length;
	
	alert("" + num + " plugins found !");
	
	// loop through the plugins list
	for (var i=0;i<num ;i++) {
		
		// get the plugin
        var plugin = navigator.plugins[i];
        
        alert("'" + plugin.name.value + "' plugin found !");
	}
}

function showMimes()
{
	// get the number of plugins
	var num = navigator.mimeTypes.length;
	
	alert("" + num + " mimeTypes found !");
	
	// loop through the plugins list
	for (var i=0;i<num ;i++) {
		
		// get the plugin
        var mime = navigator.mimeTypes[i];
        
        alert("'" + mime .name.value + "' mime type found !");
	}
}

// Check the browser type and version
function checkForBrowser(BrowserType,BrowserVersion)
{
	if (navigator.userAgent.indexOf('MSIE') >= 0) 
	{
		BrowserType = BROWSER_IE;
	    BrowserVersion = parseInt(navigator.appVersion);
	} 
	else if (navigator.userAgent.indexOf('Mozilla') >= 0) 
	{
		BrowserType = BROWSER_NETSCAPE;
	    BrowserVersion = parseInt(navigator.appVersion);
	} 
	else
	{
		BrowserType = BROWSER_UNKNOWN;
	    BrowserVersion = parseInt (navigator.appVersion);
	}
}


function checkForBrowserType()
{
	if (navigator.userAgent.indexOf('MSIE') >= 0) 
	{
		return BROWSER_IE;
	} 
	else if (navigator.userAgent.indexOf('Mozilla') >= 0) 
	{
		return BROWSER_NETSCAPE;
	} 
	else
	{
		return BROWSER_UNKNOWN;
	}
}

// Check the platform
function checkForPlatform()
{
    var Platform=PLATFORM_OTHER;
	if (navigator.platform.indexOf('Win32') >= 0) 
	{
		// client on a windows machine
	    Platform = PLATFORM_WIN32;
	} 
	else if (navigator.platform.indexOf('Mac') >= 0) 
	{
		// client on a MAC
		Platform = PLATFORM_MAC;
	}
	return Platform;
}