//****************************************************************************
// CHECK FOR FLASH LOGIC
//****************************************************************************

var flash2Installed = false;		// boolean. true if flash 2 is installed
var flash3Installed = false;		// boolean. true if flash 3 is installed
var flash4Installed = false;		// boolean. true if flash 4 is installed
var flash5Installed = false;		// boolean. true if flash 5 is installed
var flash6Installed = false;		// boolean. true if flash 5 is installed
var flash7Installed = false;		// boolean. true if flash 5 is installed
var flash8Installed = false;		// boolean. true if flash 5 is installed
var flash9Installed = false;		// boolean. true if flash 5 is installed
var flash10Installed = false;		// boolean. true if flash 5 is installed
var maxVersion = 10;				// highest version we can actually detect
var actualVersion = 0;				// version the user really has

//****************************************************************************
// Purpose: To indicate if Flash 7 is installed
//****************************************************************************
function isFlash7Installed()
{
    return "&flash7installed=" + flash7Installed + "&actualVersion=" + actualVersion;
}

//****************************************************************************
// Purpose: To retrieve browser information in querystring key/value format
//****************************************************************************
function getBrowserInfo() 
{
	var buffer = "";

	buffer += "&em_appCodeName=" + escape(navigator.appCodeName);
	buffer += "&em_appName=" + escape(navigator.appName);
	buffer += "&em_appVersion=" + escape(navigator.appVersion);
	buffer += "&em_userAgent=" + escape(navigator.userAgent);

	if (navigator.plugins)
	{
		with(navigator)
		{
			var iPlugins = plugins.length;
			buffer += "&em_plugins_length=" + escape(iPlugins);
			for (var i = 0; i < iPlugins; i++)
			{
				if (plugins[i])
					buffer += "&em_plugin" + i + 
						"_name=" + escape(plugins[i].name) + 
						"&em_plugin" + i + "_desc=" + escape(plugins[i].description);
			}
		}
	}
	else
	{
		buffer += "&em_plugins_length=0";
	}

	return buffer;
}

//****************************************************************************
// Purpose: To get the current version of Flash installed on a client computer
//****************************************************************************
function getFlashVersion(requiredVersion)
{
	var appVersion = navigator.appVersion;

	// write vbscript detection if we're on ie win
	var isIE = (navigator.appVersion.indexOf("MSIE") != -1)? true : false;	// true if we're on ie
	var isMac = (navigator.appVersion.indexOf("Mac") != -1)? true : false; // true if we're on mac

	// init to the required so that if we can't test for it then just accept
	actualVersion = requiredVersion;

	if (isIE && !isMac) // don't write vbscript tags on anything but ie win
	{
		actualVersion = 0;  //since we can test, set back to 0
		document.write('<SCR' + 'IPT LANGUAGE=VBScript\> \n');
		document.write('on error resume next \n');
		document.write('flash2Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.2"))) \n');
		document.write('flash3Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.3"))) \n');
		document.write('flash4Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.4"))) \n');
		document.write('flash5Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.5"))) \n');	
		document.write('flash6Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.6"))) \n');
		document.write('flash7Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.7"))) \n');	
		document.write('flash8Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.8"))) \n');	
		document.write('flash9Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.9"))) \n');	
		document.write('flash10Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.10"))) \n');	

		// Matt Edgar - 03/05/2009
		// Added extra logic to handle changes to new Flash Player (version 10.0.22.87).
		document.write('If IsEmpty(flash7Installed) Then \n');
		document.write('    flash7Installed = (flash8Installed Or flash9Installed Or flash10Installed) \n');
		document.write('End If \n');
		document.write('If Not flash7Installed Then \n');
		document.write('    flash7Installed = (flash8Installed Or flash9Installed Or flash10Installed) \n');
		document.write('End If \n');
		// Matt Edgar - 03/05/2009

		document.write('</SCR' + 'IPT\> \n'); // break up end tag so it doesn't end our script
	}

	// do our javascript detection if the navigator object is fully supported
	if (navigator.plugins) // does navigator.plugins exist?
	{
		actualVersion = 0;  //since we can test, set back to 0
		var flashDescription;
		var flashVersion;
		var pointIndex;
		
		if (navigator.plugins["Shockwave Flash 2.0"] || // is Flash 2 installed?
			navigator.plugins["Shockwave Flash"])		// no? then is flash 3+ installed?
		{
			var isVersion2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : ""; 		// flash 2 ref.
			flashDescription = navigator.plugins["Shockwave Flash" + isVersion2].description;	// plugin description
			flashDescription = flashDescription.replace(/[^0-9\.]/g, "");
			pointIndex = flashDescription.indexOf(".")
			flashVersion = parseInt(flashDescription.substring(0, pointIndex));	// plugin version

			if (flashVersion >= 2) flash2Installed = true;	// set appropriate version flag
			if (flashVersion >= 3) flash3Installed = true;	
			if (flashVersion >= 4) flash4Installed = true;
			if (flashVersion >= 5) flash5Installed = true;
			if (flashVersion >= 6) flash6Installed = true;
			if (flashVersion >= 7) flash7Installed = true;
			if (flashVersion >= 8) flash8Installed = true;
			if (flashVersion >= 9) flash9Installed = true;
			if (flashVersion >= 10) flash10Installed = true;
		}
		else
		{
			for (i = 0; i < navigator.plugins.length; i++)
			{
				flashDescription = navigator.plugins[i].description;

				if (flashDescription.indexOf("Shockwave Flash") > -1)
				{
					flashDescription = flashDescription.replace(/[^0-9\.]/g, "");
					pointIndex = flashDescription.indexOf(".")
					flashVersion = parseInt(flashDescription.substring(0, pointIndex));	// plugin version
					if (flashVersion >= 2) flash2Installed = true;	// set appropriate version flag
					if (flashVersion >= 3) flash3Installed = true;	
					if (flashVersion >= 4) flash4Installed = true;
					if (flashVersion >= 5) flash5Installed = true;
					if (flashVersion >= 6) flash6Installed = true;
					if (flashVersion >= 7) flash7Installed = true;
					if (flashVersion >= 8) flash8Installed = true;
					if (flashVersion >= 9) flash9Installed = true;
					if (flashVersion >= 10) flash10Installed = true;
				}
			}
		}
	}
	
	// set actualVersion to highest detected version
	for (i = 2; i <= maxVersion; i++)
	{
		if (eval("flash" + i + "Installed") == true)
			actualVersion = i;
	}
	
	return actualVersion;
}