// Software Analyser Tool v1.0
// developed for the Australian Flexible Learning Framework
// E-standards for Training Business Activity
//
// Developer: John Zhiqiang Luo
// Contributors: Simon Lismann, Owen ONeill & Felicity Farr
// Updated and big fixed by Mark OBrien Feb 2011
// nb all strings searched for must be in lowercase (strings orginating from the browser are converted to lower case)
// ?Commonwealth of Australia 2008


var os_string_1 = "nt 5.1"; // XP
var os_string_2 = "nt 6.0"; // vista
var os_string_3 = "nt 6.1"; // windows 7 -warning
var os_string_4 = "mac os x 10_5"; // mac os x 10_5. If above this version warn
var os_string_5 = "mac os x 10.5"; // mac uses . and _ for some reason...
var mac_target_minor_version = 5;

var operating_title = "Operating system";
var operating_comment_good = "Appears to be compatible";
var operating_comment_bad = "Appears to be unknown or incompatible";
var operating_comment_warning = "The version is higher than VET minimum standard; see Note above";

var screenResolution_title = "Screen resolution";
var screenResolution_width = 1024;
var screenResolution_height = 768;
var screenResolution_comment_good = "Appears to be compatible";
var screenResolution_comment_bad = "Appears to be incompatible";
var screenResolution_comment_warning = "Settings may give unexpected results"

var browser_title = "Browser Version";
var browser_version_ie_a = 7;
var browser_version_ie_b = 8;
var browser_version_firefox_a = 3;
var browser_version_safari_a = 3;
var browser_comment_good = "Appears to be compatible";
var browser_comment_bad = "Appears to be unknown or incompatible";
var browser_comment_warning = "The version is higher than VET minimum standard; see Note above";

var popwindows_title = "Pop-ups";
var popwindows_comment_good = "Not blocked";
var popwindows_comment_bad = "Blocked";

var javascript_title = "JavaScript";
var javascript_version = 1.5;
var javascript_comment_good = "JavaScript is enabled";
var javascript_comment_bad = "JavaScript appears to be disabled";

var java_title = "Java";
var java_version = 1.6;
var java_comment_good = "Appears to be compatible";
var java_comment_bad = "Appears to be unknown or incompatible";
var java_comment_warning = "The version is higher than VET minimum standard; see Note above";

var quicktime_title = "Apple QuickTime Viewer";
var quicktime_version = 7;
var quicktime_comment_good = "Appears to be compatible";
var quicktime_comment_bad = "Appears to be unknown or incompatible";
var quicktime_comment_warning = "The version is higher than VET minimum standard; see Note above";
var quicktime_installed_version_major;

var acrobatReader_title = "Adobe Acrobat Reader";
var acrobatReader_version = 8;
var acrobatReader_comment_good = "Appears to be compatible";
var acrobatReader_comment_bad = "Appears to be unknown or incompatible";
var acrobatReader_comment_warning = "The version is higher than VET minimum standard; see Note above";
var acrobatReader_comment_unknown_version = "Unable to determine Acrobat Reader version";

var flash_title = "Adobe Flash";
var flash_version = 10;
var flash_comment_good = "Appears to be compatible";
var flash_comment_bad = "Appears to be unknown or incompatible";
var flash_comment_warning = "The version is higher than VET minimum standard; see Note above";
var flash_version_installed_major;

var shockwave_title = "Shockwave Player";
var shockwave_version = 9;
var shockwave_comment_good = "Installed, and up-to-date";
var shockwave_comment_bad = "You might need to upgrade your version of Shockwave";

var mediaplayer_title = "Windows Media Player";
var mediaplayer_version = 7;
var mediaplayer_comment_good = "Installed, and up-to-date";
var mediaplayer_comment_bad = "You might need to upgrade your version of Windows Media Player";

var tick = '<img src="../images/tick.png" height="20" width="20" alt="userAgented" class="nobdr" style="vertical-align: text-top;" /> ';
var info = '<img src="../images/information.png" height="20" width="20" alt="Information" class="nobdr" style="vertical-align: text-top;" /> ';
var cross = '<img src="../images/cross.png" height="20" width="20" alt="Not userAgented" class="nobdr" style="vertical-align: text-top;" /> ';
var unableuserAgent = '<img src="../images/unabluserAgent.png" height="20" width="20" alt="Unknown Setting" class="nobdr" style="vertical-align: text-top;" /> ';


function obj(o, ot)
{
	if (ot)
	{
		if (typeof(o) == t)
		{
			return 1;
		}
		else
		{
			return 0;
		}
	}
	else
	{
		if (typeof(o) != "undefined")
		{
			return 1;
		}
		else
		{
			return 0;
		}
	}
}

var OS = "";
var browser = "";
var browser_version = "";
var userAgent = navigator.userAgent.toLowerCase();
var thestring, place;

function checkIt(string)
{
	place = userAgent.indexOf(string) + 1;
	thestring = string;
	return place;
}

function isFirefox()
{
	if (navigator.userAgent.indexOf("Firefox") != -1) return true;
	return false;
}
function getBrowserVersionNumber()
{
	if (browser_version == null || browser_version == "")
		getBrowserVersion()
	return browser_version;
}
function getBrowserName()
{
	if (browser == null || browser == "")
		getBrowserVersion();
	return browser;
}
function getBrowserVersion()
{
	browser = "";
	browser_version = "";
	var userAgent = navigator.userAgent.toLowerCase();
	//alert(userAgent);

	if (userAgent.search("firefox") != -1)
	{
		browser = "Firefox";	
		var sub = userAgent.substr(userAgent.search("firefox/"));
		sub = sub.substr(8,5);
		browser_version = sub;
	
	} 
	else if (userAgent.search("msie") != -1)
	{
		browser = "Internet Explorer";	
		var sub = userAgent.substr(userAgent.search("msie "));
		sub = sub.substr(5,3);
		//alert ("trimed UA " + sub);
			   
		browser_version = sub;
		/*
		var GRRRAGAHHAHAHAH = new String();
		var temp = "";
		var uaArray = sub.split('');
		for (var i = 0; i < uaArray.length ; i++)
		{
			if (uaArray[i] != ";")
			{
				temp.concat(uaArray[i]);
				GRRRAGAHHAHAHAH.concat(uaArray[i]);
			//	alert(uaArray[i]);
				//alert(temp + "|" + sub.length + "|" + i  + "|" + sub  + "|" + sub[i]  );
			}
			else
			{
				break;
			}
		}
		alert(GRRRAGAHHAHAHAH);
		alert(temp.toString());
		browser_version = temp.toString();
		*/
	}
	else if (userAgent.search("safari") != -1)
	{
		if (userAgent.search("chrome") == -1 &&
			userAgent.search("arora") == -1 &&
			userAgent.search("android ") == -1 &&
			userAgent.search("bolt") == -1 &&
			userAgent.search("comodo_dragon") == -1 &&
			userAgent.search("epiphany") == -1 &&
			userAgent.search("flock") == -1 &&
			userAgent.search("icab") == -1 &&
			userAgent.search("iris") == -1 &&
			userAgent.search("konqueror") == -1 &&
			userAgent.search("rekonq") == -1 &&
			userAgent.search("midori") == -1 &&
			userAgent.search("omniweb") == -1 &&
			userAgent.search("rockmelt") == -1 &&
			userAgent.search("shiira") == -1 &&
			userAgent.search("sputnik") == -1 &&
			userAgent.search("teashark ") == -1 &&
			userAgent.search("uzbl") == -1 &&
			userAgent.search("s60") == -1 &&
			userAgent.search("webos") == -1 &&
			userAgent.search("webpositive") == -1 &&
			userAgent.search("haiku") == -1		
		)
		{
			var sub = userAgent.substr(userAgent.search("version/"));
			sub = sub.substr(8);
			browser_version = ""
			for (var i = 0; i < sub.length; i++)
			{
				if (sub[i] != " ")
				{
					browser_version += sub[i];
				}
				else
				{
					break;
				}
			}
			browser = "Safari";
		}
		else
		{
			browser = "Unsupported Browser";
			browser_version = ""
		}
	}
	else 
	{
		browser = "Unsupported Browser";	
		browser_version = "";
	}
		//alert("browser is " + browser + " browser version is " + browser_version);
	return browser + " " + browser_version;
}
function getBrowserVersionOld()
{
	if (checkIt('konqueror'))
	{
		browser = "Konqueror";
		OS = "Linux";
	}
	else if (checkIt('safari'))
		browser = "Safari";
	else if (checkIt('omniweb')) 
		browser = "OmniWeb";
	else if (checkIt('k-meleon'))
	{
		browser = "K-Meleon";
		var rv = userAgent.match(/k-meleon ([\w.]+)/);
		if (rv)
		{
			rv = rv[0];
			browser_version = rv.substr(3);
		}
	}
	else if (checkIt('opera')) 
		browser = "Opera";
	else if (checkIt('webtv'))
		browser = "WebTV";
	else if (checkIt('icab'))
		browser = "iCab"
	else if (checkIt('msie'))
		browser = "Internet Explorer";
	else if (!checkIt('compatible')) // wrong - mark, there more than just netscape and firefox that use 'compatible'
	{
		browser = "Netscape Navigator"
		browser_version = userAgent.charAt(8);
		if (typeof(navigator.product) != "undefined")
		{
			browser = "Mozilla";
			rv = navigator.userAgent.match(/([Mozilla ]?Firebird)\/([\w|\+.]+)/);
			if (rv)
			{
				browser = rv[1];
				browser_version = rv[2];
			}
			else
			{
				if (checkIt('firefox'))
				{
					browser = "FireFox";
					rv = navigator.userAgent.match(/Firefox\/([\w|\+.]+)/);

					if (rv)
					{
						rv = rv[0];
						browser_version = rv.substr(8);
					}
				}
				else
				{
					rv = navigator.userAgent.match(/rv:([\w|\+.]+)/);
					if (rv)
					{
						rv = rv[0];
						browser_version = rv.substr(3);
					}
				}
			}
		}

	}
	else browser = "An unknown browser";

	if (!browser_version)
	{
		browser_version = userAgent.charAt(place + thestring.length);
	}
	var browsername = "";
	if (browser) browsername += browser;
	if (browser_version) browsername += " " + browser_version;

	return browsername;
}


function getBrowserNameOld()
{
	if (checkIt('konqueror'))
	{
		browser = "Konqueror";
		OS = "Linux";
	}
	else if (checkIt('safari')) browser = "Safari";
	else if (checkIt('omniweb')) browser = "OmniWeb";
	else if (checkIt('k-meleon'))
	{
		browser = "K-Meleon";
		var rv = userAgent.match(/k-meleon ([\w.]+)/);
		if (rv)
		{
			rv = rv[0];
			browser_version = rv.substr(3);
		}
	}
	else if (checkIt('opera')) browser = "Opera";
	else if (checkIt('webtv')) browser = "WebTV";
	else if (checkIt('icab')) browser = "iCab"
	else if (checkIt('msie')) browser = "Internet Explorer";
	else if (!checkIt('compatible'))
	{
		browser = "Netscape Navigator"
		browser_version = userAgent.charAt(8);
		if (typeof(navigator.product) != "undefined")
		{
			browser = "Mozilla";
			rv = navigator.userAgent.match(/([Mozilla ]?Firebird)\/([\w|\+.]+)/);
			if (rv)
			{
				browser = rv[1];
				browser_version = rv[2];
			}
			else
			{
				rv = navigator.userAgent.match(/rv:([\w|\+.]+)/);
				if (rv)
				{
					rv = rv[0];
					browser_version = rv.substr(3);
				}
			}
		}

	}
	else browser = "An unknown browser";

	if (!browser_version)
	{
		browser_version = userAgent.charAt(place + thestring.length);
	}
	var browsername = "";
	if (browser) browsername += browser;

	return browsername;
}

function getBrowserVersionNumberOld()
{
	if (checkIt('konqueror'))
	{
		browser = "Konqueror";
		OS = "Linux";
	}
	else if (checkIt('safari')) browser = "Safari";
	else if (checkIt('omniweb')) browser = "OmniWeb";
	else if (checkIt('k-meleon'))
	{
		browser = "K-Meleon";
		var rv = userAgent.match(/k-meleon ([\w.]+)/);
		if (rv)
		{
			rv = rv[0];
			browser_version = rv.substr(3);
		}
	}
	else if (checkIt('opera')) browser = "Opera";
	else if (checkIt('webtv')) browser = "WebTV";
	else if (checkIt('icab')) browser = "iCab"
	else if (checkIt('msie')) browser = "Internet Explorer";
	else if (!checkIt('compatible'))
	{
		browser = "Netscape Navigator"
		browser_version = userAgent.charAt(8);
		if (typeof(navigator.product) != "undefined")
		{

			browser = "Mozilla";
			rv = navigator.userAgent.match(/([Mozilla ]?Firebird)\/([\w|\+.]+)/);

			if (rv)
			{
				browser = rv[1];
				browser_version = rv[2];
			}
			else
			{

				rv = navigator.userAgent.match(/rv:([\w|\+.]+)/);

				if (rv)
				{
					rv = rv[0];
					browser_version = rv.substr(3);
				}

			}
		}

	}
	else browser = "An unknown browser";

	if (!browser_version)
	{
		browser_version = userAgent.charAt(place + thestring.length);
	}

	return browser_version;
}


function getOperationSystem()
{
	var i_win;
	v_win = '';
	var agt = navigator.userAgent.toLowerCase();
	if (agt.indexOf("win") != -1 || agt.indexOf("16bit") != -1) i_win = true;
	if (i_win)
	{
		if (agt.indexOf("win95") != -1 || agt.indexOf("windows 95") != -1) v_win = "Windows 95";
		if (agt.indexOf("win98") != -1 || agt.indexOf("windows 98") != -1) v_win = "Windows 98";
		if (agt.indexOf("win 9x 4.90") != -1) v_win = "Windows ME";
		if (agt.indexOf("winnt") != -1 || agt.indexOf("windows nt") != -1) v_win = "Windows NT";
		if (agt.indexOf("windows nt 5.0") != -1) v_win = "Windows 2000";
		if (agt.indexOf("windows nt 5.1") != -1) v_win = "Windows XP";
		if (agt.indexOf("windows nt 5.2") != -1) v_win = "Windows 2003";
		if (agt.indexOf("windows nt 6.0") != -1) v_win = "Windows Vista";
		if (agt.indexOf("windows nt 6.1") != -1) v_win = "Windows 7";
		if (!v_win) v_win = "unknown operating system";
	}
	else
	{
		if (!OS)
		{
			if (checkIt('linux')) v_win = "Linux";
			else if (checkIt('x11')) v_win = "Unix";
			else if (checkIt('mac')) v_win = "Mac";
			else if (checkIt('win')) v_win = "Windows";
			else v_win = "unknown operating system";
		}
	}
	return v_win;
}


function isShockwaveInstalled()
{

	var isshockwaveinstalled = false;
	if (window.ActiveXObject)
	{
		var control = null;
		try
		{
			control = new ActiveXObject('SWCtl.SWCtl');
		}
		catch (e)
		{
			return null;
		}
		if (control)
		{
			isshockwaveinstalled = true;
		}
	}
	else
	{
		// Check navigator.plugins for "Shockwave Plug-in"
		if (navigator.plugins)
		{
			for (var i = 0; i < navigator.plugins.length; i++)
			{
				if (navigator.plugins[i].name.toLowerCase().indexOf("shockwave") >= 0)
				{
					isshockwaveinstalled = true;

					break;
				}
			}
		}
	}

	return isshockwaveinstalled;
}


function isMediaplayerInstalled()
{
	var ismediaplayerinstalled = false;
	if (window.ActiveXObject)
	{
		var control = null;
		try
		{
			control = new ActiveXObject('WMPlayer.OCX');
		}
		catch (e)
		{
			return ismediaplayerinstalled;
		}
		if (control)
		{
			ismediaplayerinstalled = true;
		}
	}
	else
	{
		// Check navigator.plugins for "Windows Media"--this also userAgents the Flip4Mac plugin  
		var len = navigator.plugins.length;
		for (var i = 0; i < len; i++)
		{
			if (navigator.plugins[i].name.toLowerCase().indexOf("media player") >= 0)
			{
				ismediaplayerinstalled = true;
			}

		}
	}
	return ismediaplayerinstalled;
}



function getMediaplayerVersion()
{
	var mediaplayerversion = null;
	if (window.ActiveXObject)
	{
		var control = null;
		try
		{
			control = new ActiveXObject('WMPlayer.OCX');
		}
		catch (e)
		{
			return mediaplayerversion;
		}
		if (control)
		{
			isInstalled = true;
			mediaplayerversion = parseFloat(control.versionInfo);
		}
	}
	else
	{
		// Check navigator.plugins for "Windows Media"--this also userAgents the Flip4Mac plugin  
		var len = navigator.plugins.length;
		for (var i = 0; i < len; i++)
		{
			if (navigator.plugins[i].name.toLowerCase().indexOf("media player") >= 0)
			{
				// Unknown version yet
				// Should add it later	  
			}

		}
	}
	return mediaplayerversion;
}


function isAcrobatReaderInstalled()
{
	var isacrobatReaderinstalled = false;
	if (window.ActiveXObject)
	{
		var control = null;
		try
		{
			// AcroPDF.PDF is used by version 7 and later  
			control = new ActiveXObject('AcroPDF.PDF');
		}
		catch (e)
		{
			return isacrobatReaderinstalled;
		}
		if (!control)
		{
			try
			{
				// PDF.PdfCtrl is used by version 6 and earlier  
				control = new ActiveXObject('PDF.PdfCtrl');
			}
			catch (e)
			{
				return isacrobatReaderinstalled;
			}
		}
		if (control)
		{
			isacrobatReaderinstalled = true;
		}
	}
	else
	{
		// Check navigator.plugins for "Shockwave Plug-in"
		for (var i = 0; i < navigator.plugins.length; i++)
		{
			if (navigator.plugins[i].name.toLowerCase().indexOf("adobe acrobat") >= 0)
			{
				isacrobatReaderinstalled = true;
				break;
			}
		}
	}
	return isacrobatReaderinstalled;
}




function getAcrobatReaderVersion()
{
	var acrobatReaderversion = null;
	if (window.ActiveXObject)
	{
		var control = null;
		try
		{
			// AcroPDF.PDF is used by version 7 and later  
			control = new ActiveXObject('AcroPDF.PDF');
		}
		catch (e)
		{
			//alert("getAcrobatReaderVersion returning " + acrobatReaderversion);
			return acrobatReaderversion;
		}
		if (!control)
		{
			try
			{
				// PDF.PdfCtrl is used by version 6 and earlier  
				control = new ActiveXObject('PDF.PdfCtrl');
			}
			catch (e)
			{
				//alert("getAcrobatReaderVersion returning " + acrobatReaderversion);
				return acrobatReaderversion;
			}
		}
		if (control)
		{
			//alert(control.GetVersions());
			acrobatReaderversion = control.GetVersions().split(',');
			acrobatReaderversion = acrobatReaderversion[0].split('=');
			acrobatReaderversion = parseFloat(acrobatReaderversion[1]);

		}
	}
	else
	{
		// Check navigator.plugins for "Shockwave Plug-in"
		// Firefox uses this execution path too - mob
		// if its Adobe PDF Plug-In for Firefox and Netscape its v8 +
		for (var i = 0; i < navigator.plugins.length; i++)
		{
			if (navigator.plugins[i].name.toLowerCase().indexOf("adobe acrobat") >= 0)
			{
				//alert ("navigator.plugins[i].description " + navigator.plugins[i].description);
				//alert ("navigator.plugins[i].name " + navigator.plugins[i].name);
				if (navigator.plugins[i].description.search("Adobe PDF Plug-In") != -1)
				{
					var prefix = "Adobe PDF Plug-In For Firefox and Netscape ";
					var desc = navigator.plugins[i].description;
					acrobatReaderversion = desc.substr(prefix.length);
					if (acrobatReaderversion == "")
						acrobatReaderversion = "???";
					
				}
				else
				{
					acrobatReaderversion = 0;
				}
				//				acrobatReaderversion = navigator.plugins[i].description.substring(navigator.plugins[i].description.toLowerCase().lastIndexOf("version ") + 8, navigator.plugins[i].description.toLowerCase().lastIndexOf(" for"));
				break;
			}
		}
	}
	//alert("getAcrobatReaderVersion returning " + acrobatReaderversion);
	return acrobatReaderversion;
}






function getShockwaveVersion()
{
	var shockwaveversion = null;
	if (window.ActiveXObject)
	{
		var control = null;
		try
		{
			control = new ActiveXObject('SWCtl.SWCtl');
		}
		catch (e)
		{
			return null;
		}
		if (control)
		{
			shockwaveversion = control.ShockwaveVersion('').split('r');
			shockwaveversion = parseFloat(shockwaveversion[0]);
		}
	}
	else
	{
		// Check navigator.plugins for "Shockwave Plug-in"
		if (navigator.mimeTypes && navigator.mimeTypes["application/x-director"] && navigator.mimeTypes["application/x-director"].enabledPlugin)
		{
			if (navigator.plugins && navigator.plugins["Shockwave for Director"] && (tVersionIndex = navigator.plugins["Shockwave for Director"].description.indexOf(".")) != -1)
			{
				shockwaveversion = navigator.plugins["Shockwave for Director"].description.substring(tVersionIndex - 2, tVersionIndex + 2);

			}
		}
	}
	return shockwaveversion;
}



function isQuickTimeInstalled()
{
	var isinstalled = false;

	if (window.ActiveXObject)
	{
		var control = null;
		try
		{
			control = new ActiveXObject('QuickTime.QuickTime');
		}
		catch (e)
		{
			// Do nothing
		}
		if (control)
		{
			// In case QuickTimeCheckObject.QuickTimeCheck does not exist
			isinstalled = true;
		}

		try
		{
			// This generates a user prompt in Internet Explorer 7
			control = new ActiveXObject('QuickTimeCheckObject.QuickTimeCheck');
		}
		catch (e)
		{
			return;
		}
		if (control)
		{
			// In case QuickTime.QuickTime does not exist
			isinstalled = true;

		}
	}
	else
	{
		// Check navigator.plugins for "QuickTime Plug-in"
		if (navigator.plugins)
		{
			for (var i = 0; i < navigator.plugins.length; i++)
			{
				if (navigator.plugins[i].name.toLowerCase().indexOf("quicktime") >= 0)
				{
					isinstalled = true;

					break;
				}
			}
		}
	}
	return isinstalled;
}

function getQuickVersion()
{
	var isInstalled = false;
	var quick_version = null;
	if (window.ActiveXObject)
	{
		var control = null;
		try
		{
			control = new ActiveXObject('QuickTime.QuickTime');
		}
		catch (e)
		{
			// Do nothing
		}
		if (control)
		{
			// In case QuickTimeCheckObject.QuickTimeCheck does not exist
			isInstalled = true;
		}

		try
		{
			// This generates a user prompt in Internet Explorer 7
			control = new ActiveXObject('QuickTimeCheckObject.QuickTimeCheck');
		}
		catch (e)
		{
			return;
		}
		if (control)
		{
			// In case QuickTime.QuickTime does not exist
			isInstalled = true;

			// Get version
			quick_version = control.QuickTimeVersion.toString(16); // Convert to
			// hex
			quick_version = quick_version.substring(0, 1) + '.' + quick_version.substring(1, 3);
			quick_version = String(parseFloat(quick_version));
			
			var sr = quick_version.indexOf(".");
			quicktime_installed_version_major = quick_version.substr(0,sr);
			//alert("setting quicktime_installed_version_major =" + quicktime_installed_version_major);
			
			
	//		quicktime_installed_version_major = 

		}
	}
	else
	{
		if (navigator.plugins)
		// Check navigator.plugins for "QuickTime Plug-in"
		{
			for (var i = 0; i < navigator.plugins.length; i++)
			{
				if (navigator.plugins[i].name.toLowerCase().indexOf("quicktime") >= 0)
				{
					i_quicktime = true;
					v_quicktime = navigator.plugins[i].name.substring(17, navigator.plugins[i].name.length);
					quick_version = v_quicktime;
					var sr = quick_version.indexOf(".");
					quicktime_installed_version_major = quick_version.substr(0,sr);
					//alert("setting quicktime_installed_version_major =" + quicktime_installed_version_major);
			
					//quicktime_installed_version_major = quick_version.charAt(0);
					break;
				}
			}
		}
	}
	return quick_version;
}



function isFlashInstalled()
{

	var isflashInstalled = false;
	if (window.ActiveXObject)
	{
		var control = null;
		try
		{
			control = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');

		}
		catch (e)
		{
			return null;
		}
		if (control)
		{
			isflashInstalled = true;
		}
	}
	else
	{
		// Check navigator.flash for "flash Plug-in"		
		if (navigator.plugins)
		{
			for (var i = 0; i < navigator.plugins.length; i++)
			{
				if (navigator.plugins[i].name.toLowerCase().indexOf("flash") >= 0)
				{
					isflashInstalled = true;

					break;
				}
			}
		}

	}
	return isflashInstalled;
}


function getFlashVersion()
{

	var isInstalled = false;
	var falshversion = null;
	var tVersionString = "";
	if (window.ActiveXObject)
	{
		var control = falshversion;
		try
		{
			control = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');

		}
		catch (e)
		{
			return null;
		}
		if (control)
		{
			isInstalled = true;
			falshversion = control.GetVariable('$version').substring(4);
			falshversion = falshversion.split(',');
			falshversion = parseFloat(falshversion[0] + '.' + falshversion[1]);

		}
	}
	else
	{
		// Check navigator.flash for "flash Plug-in"		
		if (navigator.plugins && navigator.plugins.length > 0)
		{
			var type = 'application/x-shockwave-flash';
			var mimeTypes = navigator.mimeTypes;
			if (mimeTypes && mimeTypes[type] && mimeTypes[type].enabledPlugin && mimeTypes[type].enabledPlugin.description)
			{
				var desc = mimeTypes[type].enabledPlugin.description;
				var descParts = desc.split(' ');
				var majorMinor = descParts[2].split('.');
				falshversion = majorMinor;
				self.installed = true;
			}
		}

	}
	falshversion = String(falshversion).replace(",",".");
	//alert("falshversion " + falshversion);
	var sr = falshversion.indexOf(".");
	flash_version_installed_major = String(falshversion).substr(0,sr);
	//alert("flash_version_installed_major " + flash_version_installed_major);
	 
	return falshversion;
}



function isJavaEnabled()
{
	var hasJavaEnabled = false;

	if (!hasJavaEnabled) hasJavaEnabled = (typeof(navigator.javaEnabled) != 'undefined');

	return hasJavaEnabled && navigator.javaEnabled();
}

function isJavaInstalled()
{

	var isJavainstalled = false;
	var ver = null;
	var browser = getBrowserVersion();
	if (browser.indexOf("Internet Explorer") >= 0)
	{

		if (javaVersion != null)
		{

			ver = javaVersion.javaVersion;

			if (ver != null) isJavainstalled = true;
		}
	}
	else
	{
		ver = java.lang.System.getProperty("java.version");
		if (ver != null) isJavainstalled = true;
	}

	return isJavainstalled;
}

function getJavaVersion()
{
	var Javaversion = null;
	var ver = null;
	var browser = getBrowserVersion();
	if (browser.indexOf("Internet Explorer") >= 0)
	{
		if (javaVersion != null)
		{
			ver = javaVersion.javaVersion;
			Javaversion = parseFloat(ver);
		}
	}
	else
	{
		ver = java.lang.System.getProperty("java.version");
		Javaversion = parseFloat(ver);
	}
	return Javaversion;
}

function getPopWindow()
{
	var popresult = true;
	result = window.open("version.html", "popped", "width=1, height=1, location=no, menubar=no, status=no, toolbar=no, scrollbars=no, resizable=no");
	if (result != null)
	{
		result.close();
		popresult = false;
	}
	return popresult;
}

function getScreenResolutionWidth()
{
	return screen.width;
}

function getScreenResolutionHeight()
{
	return screen.height;
}

function writePopWindow(column)
{
	if (column == 2)
	{
		document.write("<tr>");

		document.write("<td>");
		document.write(popwindows_title);
		document.write("</td>");
		document.write("<td>");

		document.write(info);
		document.write("</td>");
		document.write("<td>");
		if (getPopWindow()) document.write(popwindows_comment_bad);
		else
		document.write(popwindows_comment_good);
		document.write("</td>");
		document.write("</tr>");

	}
	else if (column == 4)
	{
		document.write("<tr>");

		document.write("<td>");
		document.write(popwindows_title);
		document.write("</td>");

		document.write("<td>");
		document.write("N/A");
		document.write("</td>");

		document.write("<td>");
		document.write(info);
		document.write("</td>");
		document.write("<td>");
		if (getPopWindow()) document.write(popwindows_comment_bad);
		else
		document.write(popwindows_comment_good);
		document.write("</td>");

		document.write("<td>");

		document.write("Pop-up results may vary depending on your settings");
		document.write("</tr>");

	}
}



function writeScreenResolution(column)
{
	if (column == 2)
	{
		document.write("<tr>");

		document.write("<td>");
		document.write(screenResolution_title);
		document.write("</td>");
		document.write("<td>");
		if (getScreenResolutionWidth() >= screenResolution_width && getScreenResolutionHeight >= screenResolution_height)
		{
			document.write(tick);
		}
		else
		{
			document.write(cross);
		}
		document.write("</td>");
		document.write("<td>");
		document.write(getScreenResolutionWidth() + 'x' + getScreenResolutionHeight());

		document.write("</td>");
		document.write("</tr>");

	}
	else if (column == 4)
	{
		document.write("<tr>");

		document.write("<td>");
		document.write(screenResolution_title);
		document.write("</td>");

		document.write("<td>");
		document.write(screenResolution_width + 'x' + screenResolution_height);
		document.write("</td>");

		document.write("<td>");

		if (getScreenResolutionWidth() >= screenResolution_width && getScreenResolutionHeight() >= screenResolution_height)
		{
			document.write(tick);
		}
		else
		{
			document.write(cross);
		}
		document.write("</td>");
		document.write("<td>");
		document.write(getScreenResolutionWidth() + 'x' + getScreenResolutionHeight());
		document.write("</td>");

		document.write("<td>");
		if (getScreenResolutionWidth() >= screenResolution_width && getScreenResolutionHeight() >= screenResolution_height)
		{
			document.write(screenResolution_comment_good);
		}
		else
		{
			document.write(screenResolution_comment_bad);
		}
		
		
		document.write("</td>");

		document.write("</tr>");

	}
}

function writeBrowser(column)
{

	if (column == 2)
	{
		document.write("<tr>");

		document.write("<td>");
		document.write(browser_title);
		document.write("</td>");
		document.write("<td>");
		document.write(info);
		document.write("</td>");
		document.write("<td>");
		document.write(getBrowserVersion());

		document.write("</td>");
		document.write("</tr>");

	}
	else if (column == 4)
	{
		document.write("<tr>");

		document.write("<td>");
		document.write(browser_title);
		document.write("</td>");

		document.write("<td>");
		document.writeln('Firefox 3.0, ');
		document.writeln('Internet Explorer 7 and 8, ');
		document.writeln('or Safari  ' + browser_version_safari_a);
		document.write("</td>");

		document.write("<td>");

		var requiredVersionA = 99999999; // if not set below, validation should always fail
		var requiredVersionB = 99999999;
		var browser = getBrowserName();

		if (browser == 'Internet Explorer') 
		{
			requiredVersionA = browser_version_ie_a;
			requiredVersionB = browser_version_ie_b;
		}
		else if (browser == 'Safari') 
			requiredVersionA = browser_version_safari_a;
		else if (browser == 'Netscape Navigator') 
			requiredVersionA = browser_version_nn;
		else if (browser == 'Firefox') 
			requiredVersionA = browser_version_firefox_a;
	
		var currentVersionMajor = String(getBrowserVersionNumber()).substr(0,1);
		//currentVersionMajor = 1;
		if (currentVersionMajor == requiredVersionA || currentVersionMajor == requiredVersionB )
		{
			document.write(tick);
		}
		else if (currentVersionMajor < requiredVersionA || (currentVersionMajor < requiredVersionB && requiredVersionB != 99999999 ))
		{
			document.write(cross);
		}
		else if (currentVersionMajor > requiredVersionA || currentVersionMajor > requiredVersionB )
		{
			document.write(info);
		}
		else
		{
			document.write("Internal Error"); // should never happen
		}
		document.write("</td>");
		document.write("<td>");

		document.write(getBrowserVersion());
		document.write("</td>");

		document.write("<td>");


		if (currentVersionMajor == requiredVersionA || currentVersionMajor == requiredVersionB )
		{
			document.write(browser_comment_good);
		}
		else if (currentVersionMajor < requiredVersionA || (currentVersionMajor < requiredVersionB && requiredVersionB != 99999999 ))
		{
			document.write(browser_comment_bad);
		}
		else if (currentVersionMajor > requiredVersionA || currentVersionMajor > requiredVersionB )
		{
			document.write(browser_comment_warning);
		}
		else
		{
			document.write("Internal Error"); // should never happen
		}

		document.write("</td>");

		document.write("</tr>");

	}
}

function writeOperationSystem(column)
{

	if (column == 2)
	{
		document.write("<tr>");

		document.write("<td>");
		document.write(operating_title);
		document.write("</td>");
		document.write("<td>");
		document.write(info);
		document.write("</td>");
		document.write("<td>");
		document.write(getOperationSystem());

		document.write("</td>");
		document.write("</tr>");

	}
	else if (column == 4)
	{
		document.write("<tr>");

		document.write("<td>");
		document.write(operating_title);
		document.write("</td>");

		document.write("<td>");
		document.writeln('Windows XP, Windows Vista');
		document.writeln(', or Mac OSX v10.5 (Leopard)');
		document.write("</td>");

		document.write("<td>");

		//******

		agent = navigator.userAgent.toLowerCase();
		//alert(agent);
		//alert(os_string_3);
		
		if ( agent.search(os_string_1) != -1 || 
			 agent.search(os_string_2) != -1 ||
			 agent.search(os_string_4) != -1 ||
			 agent.search(os_string_5) != -1
			)
		{
			document.write(tick);
		}
		else if (agent.search(os_string_3) != -1)
		{
			document.write(info);
		}
		else if (agent.search(os_string_4.substr(0,os_string_4.length -1)) != -1)
		{
			// is it Mac OS X 10_*
			
			var os_major_v_str = os_string_4.substr(0,os_string_4.length -1);
			//alert("Agent: " + agent);
			//alert("os_major_v_str: " + os_major_v_str);			
			//alert("search agent for os_major_v_str: " + agent.search(os_major_v_str));
			
			var minor_version_number = agent.substr(agent.search(os_major_v_str)+os_major_v_str.length,1);
			//alert("minor_version_number" + minor_version_number);
		//alert("section: " + version_section);
		
			if (minor_version_number > mac_target_minor_version)
				document.write(info);
			else
				document.write(cross);
		}
		else if (agent.search(os_string_5.substr(0,os_string_5.length -1) != -1))
		{
			// is it Mac OS X 10_*
			
			var os_major_v_str = os_string_5.substr(0,os_string_5.length -1);
			//alert("Agent: " + agent);
			//alert("os_major_v_str: " + os_major_v_str);			
			//alert("search agent for os_major_v_str: " + agent.search(os_major_v_str));
			
			var minor_version_number = agent.substr(agent.search(os_major_v_str)+os_major_v_str.length,1);
		//	alert("minor_version_number" + minor_version_number);
			
			if (minor_version_number > mac_target_minor_version)
				document.write(info);
			else
				document.write(cross);
			
		//alert("section: " + version_section);
		}		
		else
		{
			document.write(cross);
		}
		//document.write(info);
		document.write("</td>");
		document.write("<td>");

		document.write(getOperationSystem());
		document.write("</td>");

		document.write("<td>");

		// now do it again for the comment.

		if ( agent.search(os_string_1) != -1 || 
			 agent.search(os_string_2) != -1 ||
			 agent.search(os_string_4) != -1 ||
			 agent.search(os_string_5) != -1
			)
		{
			document.write(operating_comment_good);
		}
		else if (agent.search(os_string_3) != -1)
		{
			document.write(operating_comment_warning);
		}
		else if (agent.search(os_string_4.substr(0,os_string_4.length -1)) != -1)
		{
			// is it Mac OS X 10_*
			
			var os_major_v_str = os_string_4.substr(0,os_string_4.length -1);
			//alert("Agent: " + agent);
			//alert("os_major_v_str: " + os_major_v_str);			
			//alert("search agent for os_major_v_str: " + agent.search(os_major_v_str));
			
			var minor_version_number = agent.substr(agent.search(os_major_v_str)+os_major_v_str.length,1);
			//alert("minor_version_number" + minor_version_number);
		//alert("section: " + version_section);
		
			if (minor_version_number > mac_target_minor_version)
				document.write(operating_comment_warning);
			else
				document.write(operating_comment_bad);
		}
		else if (agent.search(os_string_5.substr(0,os_string_5.length -1) != -1))
		{
			// is it Mac OS X 10_*
			
			var os_major_v_str = os_string_5.substr(0,os_string_5.length -1);
			//alert("Agent: " + agent);
			//alert("os_major_v_str: " + os_major_v_str);			
			//alert("search agent for os_major_v_str: " + agent.search(os_major_v_str));
			
			var minor_version_number = agent.substr(agent.search(os_major_v_str)+os_major_v_str.length,1);
		//	alert("minor_version_number" + minor_version_number);
			
			if (minor_version_number > mac_target_minor_version)
				document.write(operating_comment_warning);
			else
				document.write(operating_comment_bad);
			
		//alert("section: " + version_section);
		}		
		else
		{
			document.write(operating_comment_bad);
		}


		document.write("</td>");

		document.write("</tr>");

	}
}

// No longer used
function writeShockwave(column)
{

	if (column == 2)
	{
		document.write("<tr>");

		document.write("<td>");
		document.write(shockwave_title);
		document.write("</td>");
		document.write("<td>");
		if (isShockwaveInstalled())
		{
			document.write(tick);
			document.write("</td>");
			document.write("<td>");
			document.write(" Installed");
		}
		else
		{
			document.write(cross);
			document.write("</td>");
			document.write("<td>");
			document.write("Not userAgented");
		}
		document.write("</td>");
		document.write("</tr>");

	}
	else if (column == 4)
	{
		document.write("<tr>");

		document.write("<td>");
		document.write(shockwave_title);
		document.write("</td>");

		document.write("<td>");
		document.write("Version: " + shockwave_version);
		document.write("</td>");

		document.write("<td>");
		if (isShockwaveInstalled())
		{

			document.write(tick);
			document.write("</td>");
			document.write("<td>");

			if (getShockwaveVersion() == null)
			{

				document.write("Version unknown");
				document.write("</td>");

				document.write("<td>");

				document.write("Please use IE to userAgent the version");

				document.write("</td>");

				document.write("</tr>");

			}
			else
			{
			document.write("Version:" + getShockwaveVersion());
				document.write("</td>");

				document.write("<td>");
				if (isLeftGreaterThanRight(shockwave_version, getShockwaveVersion())) document.write(quicktime_comment_good);
				else
				document.write(quicktime_comment_bad);
			}
		}
		else
		{

			document.write(cross);
			document.write("</td>");
			document.write("<td>");
			document.write("Not userAgented");
			document.write("</td>");

			document.write("<td>");
			document.write("InStall please");
		}

		document.write("</td>");

		document.write("</tr>");

	}
}


function writeAcrobatReader(column)
{

	if (column == 2)
	{
		document.write("<tr>");

		document.write("<td>");
		document.write(acrobatReader_title);
		document.write("</td>");
		document.write("<td>");
		if (isAcrobatReaderInstalled())
		{
			document.write(tick);
			document.write("</td>");
			document.write("<td>");
			document.write(" Installed");
		}
		else
		{
			document.write(cross);
			document.write("</td>");
			document.write("<td>");
			document.write("Not Installed");
		}
		document.write("</td>");
		document.write("</tr>");

	}
	else if (column == 4)
	{
		document.write("<tr>");

		document.write("<td>");
		document.write(acrobatReader_title);
		document.write("</td>");

		document.write("<td>");
		document.write("Version: " + acrobatReader_version);
		document.write("</td>");

		document.write("<td>");

		if (isAcrobatReaderInstalled())
		{
			var t = String(getAcrobatReaderVersion());
			var installed_ver_major_index = t.indexOf(".");
			var installed_ver_major 
			
		//	alert(t);
			if (installed_ver_major_index == -1) {
				installed_ver_major = t;
			}
			else {
				installed_ver_major = t.substr(0, installed_ver_major_index);
			}
			
						
			if (installed_ver_major == acrobatReader_version)
				document.write(tick);
			else if (installed_ver_major > acrobatReader_version || installed_ver_major == "???")
				document.write(info);
			else
				document.write(cross);
				
			document.write("</td>");
			document.write("<td>");
			if (installed_ver_major != "???")
				document.write("Version:" + getAcrobatReaderVersion());
			else
				document.write(" ");
			document.write("</td>");
	
			document.write("<td>");

		//	alert("installed V major " + installed_ver_major);
					
			if (installed_ver_major == acrobatReader_version)
				document.write(acrobatReader_comment_good);
			else if (installed_ver_major > acrobatReader_version)
				document.write(acrobatReader_comment_warning);
			else if (installed_ver_major == "???")
				document.write(acrobatReader_comment_unknown_version);
			else
				document.write(acrobatReader_comment_bad);
				
		}
		else
		{

			document.write(cross);
			document.write("</td>");
			document.write("<td>");
			document.write("Not Installed");
			document.write("</td>");

			document.write("<td>");
			document.write("http://www.adobe.com/products/acrobat");
		}

		document.write("</td>");

		document.write("</tr>");

	}
}

function writeJava(column)
{

	if (column == 2)
	{
		document.write("<tr>");

		document.write("<td>");
		document.write(java_title);
		document.write("</td>");
		document.write("<td>");
		if (isJavaEnabled())
		{
			if (isJavaInstalled())
			{
				document.write(tick);
				document.write("</td>");
				document.write("<td>");
				document.write(" Installed");
			}
			else
			{
				document.write(cross);
				document.write("</td>");
				document.write("<td>");
				document.write("Not Installed");
			}
		}
		else
		{
			document.write(unableuserAgent);
			document.write("</td>");
			document.write("<td>");
			document.write("Unknown");

		}
		document.write("</td>");
		document.write("</tr>");

	}
	else if (column == 4)
	{

		document.write("<tr>");

		document.write("<td>");
		document.write(java_title);
		document.write("</td>");

		document.write("<td>");
		document.write("Version: " + java_version);
		document.write("</td>");

		document.write("<td>");

		if (isJavaEnabled())
		{
			if (isJavaInstalled())
			{
				if (getJavaVersion() == java_version) 
					document.write(tick);
				else if (getJavaVersion() > java_version) 
					document.write(info);
				else
					document.write(cross);
			
				//document.write(tick);
				document.write("</td>");
				document.write("<td>");
				document.write("Version:" + getJavaVersion());
				document.write("</td>");
				document.write("<td>");
				if (isLeftGreaterThanRight(java_version, getJavaVersion())) 
					document.write(java_comment_good);
				else
					document.write(java_comment_bad);
					
			}
			else
			{
				document.write(cross);
				document.write("</td>");
				document.write("<td>");
				document.write("Not enabled, or not installed");
				document.write("</td>");
				document.write("<td>");
				document.write("Please enable Java in this browser, or install Java");
			}
		}
		else
		{
			document.write(cross);
			document.write("</td>");
			document.write("<td>");
			document.write("Not enabled, or not installed");
			document.write("</td>");

			document.write("<td>");
			document.write("Please enable Java in this browser, or install Java");

		}

		document.write("</td>");

		document.write("</tr>");

	}
}



function writeQuickTime(column)
{

	if (column == 2)
	{
		document.write("<tr>");

		document.write("<td>");
		document.write(quicktime_title);
		document.write("</td>");
		document.write("<td>");
		if (isQuickTimeInstalled())
		{
			document.write(tick);
			document.write("</td>");
			document.write("<td>");
			document.write("Installed");
		}
		else
		{
			document.write(cross);
			document.write("</td>");
			document.write("<td>");
			document.write("Not userAgented");
		}
		document.write("</td>");
		document.write("</tr>");

	}
	else if (column == 4)
	{
		document.write("<tr>");

		document.write("<td>");
		document.write(quicktime_title);
		document.write("</td>");

		document.write("<td>");	
		document.write("Version: " + quicktime_version);
		document.write("</td>");

		document.write("<td>");
		getQuickVersion();
		if (isQuickTimeInstalled())
		{
			//alert("getQuickVersion(): " + getQuickVersion());
		//	var installedMajorVersion = String(getQuickVersion()).substr(1,1);
			//alert(installedMajorVersion + " " + quicktime_version);
			//alert(quicktime_installed_version_major + " " + quicktime_version);
			if (quicktime_installed_version_major == quicktime_version)
				document.write(tick);
			else if (quicktime_installed_version_major > quicktime_version)
				document.write(info);
			else
				document.write(cross);
				
			document.write("</td>");
			document.write("<td>");
			document.write("Version:" + getQuickVersion());
			document.write("</td>");

			document.write("<td>");
			if (quicktime_installed_version_major == quicktime_version)
				document.write(quicktime_comment_good);
			else if (quicktime_installed_version_major > quicktime_version)
				document.write(quicktime_comment_good);
			else
				document.write(quicktime_comment_bad);
				
		}
		else
		{

			document.write(cross);
			document.write("</td>");
			document.write("<td>");
			document.write("Not userAgented");
			document.write("</td>");
			document.write("<td>");
			document.write("http://www.apple.com/quicktime");
		}

		document.write("</td>");

		document.write("</tr>");

	}
}

function writeMediaPlayer(column)
{

	if (column == 2)
	{
		document.write("<tr>");

		document.write("<td>");
		document.write(mediaplayer_title);
		document.write("</td>");
		document.write("<td>");

		if (isMediaplayerInstalled())
		{
			document.write(tick);
			document.write("</td>");
			document.write("<td>");
			document.write(" Installed");
		}
		else
		{
			document.write(cross);
			document.write("</td>");
			document.write("<td>");
			document.write("Not userAgented");
		}
		document.write("</td>");
		document.write("</tr>");

	}
	else if (column == 4)
	{
		document.write("<tr>");

		document.write("<td>");
		document.write(mediaplayer_title);
		document.write("</td>");

		document.write("<td>");
		document.write("Version: " + mediaplayer_version);
		document.write("</td>");

		document.write("<td>");
		if (isMediaplayerInstalled())
		{
			document.write(tick);
			document.write("</td>");
			document.write("<td>");

			if (getMediaplayerVersion() == null)
			{
				document.write("Version unknown");
				document.write("</td>");
				document.write("<td>");
				document.write("Please use IE to userAgent the version");
			}
			else
			{
				document.write("Version: " + getMediaplayerVersion());
				document.write("</td>");
				document.write("<td>");
				if (isLeftGreaterThanRight(mediaplayer_version, getMediaplayerVersion())) document.write(mediaplayer_comment_good);
				else
				document.write(mediaplayer_comment_bad);
			}
		}
		else
		{
			document.write(cross);
			document.write("</td>");
			document.write("<td>");
			document.write("Not userAgented");
			document.write("</td>");
			document.write("<td>");

			if (isFirefox() && getOperationSystem().indexOf("Windows") != -1)
			{
				document.write("You may need to install the WMP plugin ");

				document.write("<a  href='http://port25.technet.com/pages/windows-media-player-firefox-plugin-download.aspx' target='_blank' />");
				document.write("here");
			}
			else
			document.write("http://www.microsoft.com/windows/windowsmedia/");
		}

		document.write("</td>");

		document.write("</tr>");
	}
}


function writeJavaScript(jver, column)
{

	if (column == 2)
	{
		document.write("<tr>");

		document.write("<td>");
		document.write(javascript_title);
		document.write("</td>");
		document.write("<td>");

		document.write(tick);
		document.write("</td>");
		document.write("<td>");
		document.write(" Enable");

		document.write("</td>");
		document.write("</tr>");

	}
	else if (column == 4)
	{
		document.write("<tr>");

		document.write("<td>");
		document.write(javascript_title);
		document.write("</td>");

		document.write("<td>");
		document.write("Version: " + javascript_version);
		document.write("</td>");

		document.write("<td>");
		document.write(tick);
		document.write("</td>");
		document.write("<td>");
		document.write("Version: " + jver);
		document.write("</td>");

		document.write("<td>");
		if (isLeftGreaterThanRight(javascript_version, jver)) document.write(javascript_comment_good);
		else
		document.write(javascript_comment_bad);
		document.write("</td>");

		document.write("</tr>");

	}
}


function writeFlash(column)
{

	if (column == 2)
	{
		document.write("<tr>");

		document.write("<td>");
		document.write(flash_title);
		document.write("</td>");
		document.write("<td>");

		if (getFlashVersion() == null)
		{
			document.write(info);
			document.write("</td>");
			document.write("<td>");
			document.write("Unable to userAgent");
		}
		else
		{
			if (isFlashInstalled())
			{
				//document.write(tick);
				document.write("</td>");
				document.write("<td>");
				document.write("Installed");
			}
			else
			{
				//document.write(cross);
				document.write("</td>");
				document.write("<td>");
				document.write("Not userAgented");
			}
		}
		document.write("</td>");
		document.write("</tr>");

	}
	else if (column == 4)
	{
		document.write("<tr>");

		document.write("<td>");
		document.write(flash_title);
		document.write("</td>");

		document.write("<td>");
		document.write("Version: " + flash_version);
		document.write("</td>");

		document.write("<td>");

		if (getFlashVersion() == null)
		{
			document.write(unableuserAgent);

			document.write("</td>");
			document.write("<td>");

			document.write("Unable to detect");
			document.write("</td>");

			document.write("<td>");

			document.write("Please use IE to detect this");

			document.write("</td>");

			document.write("</tr>");

		}
		else
		{

			if (isFlashInstalled())
			{
				//alert(flash_version_installed_major + " " + flash_version);
				if (flash_version_installed_major == flash_version)
					document.write(tick);
				else if (flash_version_installed_major > flash_version)
					document.write(info);
				else
					document.write(cross);
					
			
				//document.write(tick);
				document.write("</td>");
				document.write("<td>");
				document.write("Version:" + getFlashVersion());
				document.write("</td>");

				document.write("<td>");			

				if (flash_version_installed_major == flash_version)
					document.write(flash_comment_good);
				else if (flash_version_installed_major > flash_version)
					document.write(flash_comment_good);
				else
					document.write(flash_comment_bad);

			}
			else
			{
				document.write(cross);
				document.write("</td>");
				document.write("<td>");
				document.write("Not userAgented");
				document.write("<td>");
				document.write("http://www.adobe.com/products/flash/");
			}
			document.write("</td>");

			document.write("</tr>");
		}

	}
}




function isLeftGreaterThanRight(rv, cv)
{
	if (parseFloat(cv) >= parseFloat(rv)) return true;
	else
	return false
}



function writeTableHead(column)
{

	if (column == 2)
	{
		document.write("<tr>");

		document.write("<th>");
		document.write("Item");
		document.write("</th>");

		document.write("<th>");
		document.write("Detected");
		document.write("</th>");

		document.write("<th>");
		document.write("Version on your PC");
		document.write("</th>");

		document.write("</tr>");

	}
	else if (column == 4)
	{
		document.write("<tr>");
		document.write("<th>");
		document.write("Item");
		document.write("</th>");

		document.write("<th>");
		document.write("Suggested minimum");
		document.write("</th>");

		document.write("<th>");
		document.write("Detected");
		document.write("</th>");

		document.write("<th>");
		document.write("Version on your computer");
		document.write("</th>");

		document.write("<th>");
		document.write("Comment(s)");
		document.write("</th>");

		document.write("</tr>");
	}

}

function writeDection(jver, column)
{
	document.write('<table width="100%" border="0" cellspacing="0" cellpadding="5" class="content">');

	writeTableHead(column);
	writeOperationSystem(column);
	writeScreenResolution(column);
	writeBrowser(column);
	writePopWindow(column);
//	writeJavaScript(jver, column);

	writeAcrobatReader(column);
	writeQuickTime(column);
	writeFlash(column);
//	writeShockwave(column);
//	writeMediaPlayer(column);
	writeJava(column);

	document.write('</table>');
}
