// L2 - browser test - called by detect_sys
function browser_test()
{
	var err_arr = new Array();
	var browser_flag = false;
	var browser_msg = 'empty';
	var browser_m_fail_msg = 'This browser is not supported. Please upgrade to the latest version of this browser or <a href="http://videoadmin.talkpoint.com/vm10/admin/event/producer/help/minimum.jsp?type=browser&plugin=101&logo=no&fcolor=ffff&bgcolor=ffff&tdcolor=ffffff#1" target="new"><strong>check the technical requirements for this presentation</strong></a> for a list of officially supported browsers.';
	
	var ie_name = 'MSIE';
	var mozilla_name = 'Mozilla';
	var br_name = '';  
	// variable to hold userAgent 
	var temp_agt = navigator.userAgent.toLowerCase();  
	// checking if browser is Mozilla or IE using ie_mozilla function.
	browser = ie_mozilla(temp_agt);
	if(browser == 'ie')	{
		// getting the version of IE
		var ver_num = ie_version(temp_agt);
		// checking if this version is pass or fail.
		var test_version = ie_check(ver_num);
		
		if(test_version) {
			browser_msg = 'Passed.';
			browser_flag = true;
		} else {
			browser_msg = 'This browser is not supported. Please upgrade to the latest version of this browser or <a href="http://videoadmin.talkpoint.com/vm10/admin/event/producer/help/minimum.jsp?type=browser&plugin=101&logo=no&fcolor=ffff&bgcolor=ffff&tdcolor=ffffff#1" target="new"><strong>check the technical requirements for this presentation</strong></a> for a list of officially supported browsers.';
		}
	} else if(browser == 'mozilla') {
		var ver_num = mozilla_version(temp_agt);
		if(ver_num != false) {
			var test_version = mozilla_check(ver_num);
			
			if(test_version) {
				browser_msg = 'Passed.';
				browser_flag = true;
			} else {
				browser_msg = 'This browser is not supported. Please upgrade to the latest version of this browser or <a href="http://videoadmin.talkpoint.com/vm10/admin/event/producer/help/minimum.jsp?type=browser&plugin=101&logo=no&fcolor=ffff&bgcolor=ffff&tdcolor=ffffff#1" target="new"><strong>check the technical requirements for this presentation</strong></a> for a list of officially supported browsers.';
			}
		} else {
			browser_msg = browser_m_fail_msg;
		}
		var br_name = moz_browser_name (temp_agt);
		if(br_name != '') {
			browser = br_name;
			ver_num = '&nbsp;';
		}
	} else {
		browser_msg = browser_m_fail_msg;
		
		var br_name = moz_browser_name (temp_agt);
		
		if(br_name != '') {
			browser = br_name;
			ver_num = '&nbsp;';
		}
	}
	if(ver_num == false) {
		ver_num = 'empty';
	}
	return [browser_flag, browser, ver_num, browser_msg];
}

// L3 - returns browser name - called by browswer check
function moz_browser_name (user_agent)
{
	var name = 'Mozilla';
	var namesArr = [ /firefox\/\d+.\d+/ , /safari/ , /netscape\/\d+.\d+/ , /opera/ ];
	var b_name = '';
	for(var count =0; count<namesArr.length; count++) {
		b_name = user_agent.match(namesArr[count]);
		if(b_name!=null) return b_name;
	}
	return b_name='';
}

// L3 - returns ie, mozilla, or other - called by browser_test
function ie_mozilla (user_agent) 
{
	var ie = user_agent.match(/msie/);
	var mozilla = user_agent.match(/mozilla/);
	if(ie != null) {
		return 'ie';
	} else if(mozilla != null) {
		return 'mozilla';
	} else {
		return 'other';
	}
}

// L3 - gets version of IE - called by browser_test
function ie_version(user_agent)
{
	var ie_regex = /msie \d+.\d+/;
	var ie_id_regex = /\d+.\d+/;
	var ie_id = '';
	var temp_ie_id = user_agent.match(ie_regex);
	
	// if match was found for ms_some_number -> try to extract the number
	if(temp_ie_id) {
		ie_id = temp_ie_id[0].match(ie_id_regex);
		
		// if number was extracted
		if(ie_id[0] != null) {
			return ie_id[0];
		} else {
			return false;
		}
	}
}

// L3 - gets version of mozilla - called by browser_test
function mozilla_version(user_agent)
{
	var rv_regex = /rv:\d+.\d+.\d+/;
	var rv_id_regex = /\d+.\d+.\d+/;
	var rv = user_agent.match(rv_regex);
	var temp_rv_id = user_agent.match(rv_regex);
	var versionIndex = user_agent.lastIndexOf("/");
	var versionString = user_agent.substring(versionIndex + 1);
	return versionString;
}

// L3 - checks to see if IE is above version 5.5 - called by browser_test. (we should make ie_fail 6)
function ie_check( version ){
	var ie_fail = '5.5';
	
	if(version >ie_fail) {
		return true;
	} else {
		return false;
	}
}

// L3 - checks to see if version of mozilla is above mozilla_standard - called by browser_test
function mozilla_check(version)
{
	// Lowest mozilla version
	var mozilla_standard = '1.7.13';
	
	if( version < mozilla_standard ) {
		return false;
	} else {
		return true;
	}
}

// L2 - Returns the version of windows being used - called by detect_sys
function win_name(user_agent)
{
	var winNum = /windows \d+/;
	var winNumRes = user_agent.match(winNum);
	var win32 = /win32/;
	var win32Res = user_agent.match(win32);
	var winNT = /windows nt/;
	var winNTRes = user_agent.match(winNT);
	if(winNumRes != null) {
		return winNumRes;
	} else if(win32Res != null) {
		return 'Windows XP';
	} else {
		var winNT_num = /windows nt \d+.\d+/;
		var winNT_num_res = user_agent.match(winNT_num);
		if(winNT_num_res) {
			var vers = winNT_num_res[0].match(/\d+.\d+/);
			
			if(vers != null) {
				switch(vers[0]) {
				case '5.0':
					return 'Windows 2000';
					break;
				case '5.1':
					return 'Windows XP';
					break;
				case '5.2':
					return 'Windows Server 2003'; 
					break;
				case '6.0':
					return 'Windows Vista';
					break;
				default:
					return 'Not known';
					break;
				}
			} else {
				return 'Not known';
			}
		} else {
			return winNTRes;
		}
	}
}

// L2 - checks to see if its a windows OS - called by detect_sys
function winOS_check(user_agent)
{
	var not_support = ['windows 98','nt','win98'];
	var test_os = true;
	for(var count =0; count<not_support.length; count++ ) {
		var result = user_agent.match(not_support[count]);
		if(result == 'nt'){
			var check_nt_version = user_agent.match(/nt [\d]/);
			
			if(check_nt_version == null) {
				test_os = false;
			}
		} else if(result != null) {
			test_os = false;
		}
	}
	return test_os;
}

// L2 - base_os_check - called by detect_sys
function base_os_check(user_agent)
{
	var os_type = ['win','mac','linux','freebsd'];
	var user_os_type = '';
	for(i in os_type) {
		user_os_type = user_agent.match(os_type[i]);
		if(user_os_type != null) {
			break;
		}
	}
	return user_os_type;
}

// L2 - checks to see if its mac OS X - called from detect_sys
function mozilla_Mac_check(user_agent)
{
	var is_mac = true;
	var mac_regex = /mac os x/;
	if(user_agent.match(mac_regex) == null ) {
		is_mac = false;
	}
	return is_mac;
}

// L2 - checks if its mac os x and returns 'Mac OS X' if true - called from detect_sys
function mozilla_OSX_check(user_agent)
{
	var is_mac = 'Mac OS X';
	var mac_regex = /mac os x/;
	if(user_agent.match(mac_regex) == null) {
		is_mac = false;
	}
	return is_mac;
}

// L2 - checks to see if cookies work
function checkcookie()
{
	document.cookie="testcookie";
	var cookieEnabled = (document.cookie.indexOf("testcookie") != -1) ? true : false;
	return cookieEnabled;
}

// L2 - detectpopupblock - called by detect_sys
function detectpopupblock()
{
	var popupenabled = false;
	var newwindow = window.open("blankpopup.html","testpopup","width=1,height=1"); //changed for new popup detection
	if ((newwindow) && (typeof newwindow.document=="object")) {
		popupenabled = true;
	}
	return popupenabled;
}

// L2 - Detect screen resolution - called by detect_sys
function screen_Res() {
	var warning = false;
	var width = screen.width;
	var height = screen.height;
	if(width < height) {
		var temp = 0;
		
		temp = width;
		
		width = height;
		
		height = temp;
	} if((width>640) && (height>480) ) {
		var msg ='Passed.';   
		
		if((width<1024) && (height<768)) {
			msg +=' It is recommended that you view this presentation at 1024x768.';
			warning = true;
		}
		return [true, msg, warning, width, height];
	} else {
		return [false, 'Screen resolution: Failed. Please view this presentation on a monitor with a higher screen resolution.', warning, width, height];
	}
}

// L3 - Called by player detect functions
function createActiveXObject(id)
{
	var error;
	var control = null;
	try {
		if (window.ActiveXObject) {
			control = new ActiveXObject(id);
		} else if (window.GeckoActiveXObject) {
			control = new GeckoActiveXObject(id);
		}
	} catch (error) {
		//;
	}
	return control;
}

// L2 - detects windows media player information from detect_sys
function detectWMP()
{
	var wmpInfo = {installed: false,type: null,versionInfo: null,versionnum:0}
	var wmp64 = "MediaPlayer.MediaPlayer.1";
	var wmp7 = "WMPlayer.OCX.7";
	wmpInfo.type = "ActiveX";
	var player = createActiveXObject(wmp7); 
	
	if(player) {
		wmpInfo.installed = true;
		wmpInfo.versionInfo = player.versionInfo;
		wmpInfo.versionnum = 7;
		return wmpInfo;
	}
	player = createActiveXObject(wmp64);
	if(player) {
		wmpInfo.installed = true;
		wmpInfo.versionInfo = "6.4";
		wmpInfo.versionnum = 6;
		return wmpInfo;
	}
	if(navigator.mimeTypes) {
		wmpInfo.type = "NetscapePlugin";
		try {
			var player = navigator.mimeTypes['application/x-mplayer2'].enabledPlugin;
		} catch (error) {
			//;
		}
		if(player) {
			wmpInfo.installed = true;
			wmpInfo.versionInfo = "PluginVersion";
			wmpInfo.versionnum = 1;
			return wmpInfo;
		}
	}
	wmpInfo.versionInfo = "none";
	
	return wmpInfo;
}

// L3 - F.FF.FF.FFF - called from detectRMP_v2
function UnpackVersionNumber(n)
{
	return ''
		+ (n >> 28)
		+ '.'
		+ ((n & 0x0FF00000) >> 20)
		+ '.'
		+ ((n & 0x000FF000) >> 12)
		+ '.'
		+ ( n & 0x00000FFF);
}

// L2 - detects real player information - called from detect_sys
function detectRMP_v2()
{
	var rmpInfo = {installed: false,type: null,versionInfo: null,versionnum:0};
	var user_agt = navigator.userAgent.toLowerCase();
	if(user_agt.match(/msie/)!=null) {
		var nRPVersion = IERPCtl.RealPlayerVersion;
		
		if ( nRPVersion != undefined ) {
			rmpInfo.installed = true;
			rmpInfo.versionInfo = UnpackVersionNumber(nRPVersion);
			rmpInfo.versionnum = 2;
		}
	} else if(navigator.mimeTypes) {
		rmpInfo.type = "NetscapePlugin";
		try {
			var player = navigator.mimeTypes['audio/x-pn-realaudio-plugin'].enabledPlugin;
		} catch (error) {
			//;
		}
		if(player) {
			rmpInfo.installed = true;
			rmpInfo.versionInfo = "PluginVersion";
			rmpInfo.versionnum = 1;
		}
	} else {
		rmpInfo.versionInfo = "none";
	}
	return rmpInfo;
}

// L2 - detects flash player information - called from detect_sys
function detectflashplayer()
{
	var flashInfo = {installed: false,type: null,versionInfo: null}
	var l=navigator.plugins.length,i;
	var Flash = 0;
	var Flashtmp = null;
	var plugin_version = null;
	
	if (navigator.plugins && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash"]) {
			var plugin_version = 0;
			var words = navigator.plugins["Shockwave Flash"].description.split(" ");
			
			for (i in words) {
				if (isNaN(parseInt(words[i]))) {
					continue;
				}
				plugin_version = words[i];
			}
			if (plugin_version >= 6) {
				var plugin = navigator.plugins["Shockwave Flash"];
				for (i in plugin) {
					mimetype = plugin[i];
					if (mimetype) {
						if (mimetype.enabledPlugin && (mimetype.suffixes.indexOf("swf") != -1)) {
							Flash = 1;
						}
						// Mac wierdness
						if (navigator.mimeTypes["application/x-shockwave-flash"] == null) {
							Flash = 0;
						}
					}
				}
			}
		}
		if(Flash == 1) {
			flashInfo.installed = true;
			flashInfo.type = "NetscapePlugin";
			flashInfo.versionInfo = plugin_version;
			return flashInfo;
		}
	} else {
		for(i=20;i>0;i--) {
			Flashtmp = createActiveXObject('ShockwaveFlash.ShockwaveFlash.'+i);
			if (Flashtmp) {
				flashInfo.installed = true;
				flashInfo.type =  "ActiveX";
				flashInfo.versionInfo = i;
				return flashInfo;
				break;
			}
		}
	}
	flashInfo.type = "Not Installed";
	flashInfo.versionInfo = "Not Installed";
	return flashInfo;
}

// onclick - loads media.html into iframe with a rmp version number passed in - onclick of RMP test button
function rmptest(rmp_versionnum) {
	self.rmp.location = "media.html?rmp=" + rmp_versionnum;
	player_div = $("#rmp").parent("div");
	player_div.css("display" , "block");
}

// onclick - loads media.html into iframe with a fls=1 number passed in - onclick of flash test button
function flashtest() {
	window.flash.location = "media.html?fls=1";
	player_div = $("#flash").parent("div");
	player_div.css("display" , "block");
}

// onclick - loads media.html into iframe with a wmp version number passed in - onclick of WMP test button
function wmptest(wmp_versionnum){
	window.wmp.location = "media.html?wmp=" + wmp_versionnum;
	player_div = $("#wmp").parent("div");
	player_div.css("display" , "block");
}

// NA - builds an HTML tag.  attributes is an array of arrays like ['key',value'] or strings in the format of 'key=value'
function write_html (str, tag_name ,attributes)
{
	var output = "" , i;
	if(arguments.length == 3) {
		output = '<' + tag_name + ' ';
		for(i in attributes) {
			if (typeof(attributes[i]) == 'object') {
				output += ' ' + attributes[i][0] + '="' + attributes[i][1] +'" ';
			} else {
				output += ' ' + attributes[i] + ' ';
			}
		}
		output +='>' + str + '</' + tag_name +'>\n';
	} else {
		output = str;
	}
	return output; 
}

// L1 - Detect sys function called by main
function detect_sys(parameters)
{
	var check = parameters.check ? parameters.check : 0x00;
	
	var help_msg = 'To view a live presentation please use a supported Firefox browser using RealPlayer.';
	
	// attribute config for HTML printed
	var atts_main_test_table = [
		['id' , 'main_test_table']
		,['class' , 'syscheck']
		,['width' , '100%']
		,['cellpadding' , '0']
		,['cellspacing' , '0']
	];
	var atts_test_td = [
		['class','syscheck']
	];
	var atts_test_tr = [
		['class','syscheck']
	];
	var atts_adv_test_table = [
		['class', 'syscheck adv_test_table']
		,['width' , '100%']
		,['cellpadding' , '0']
		,['cellspacing' , '0']
	];
	
	var atts_syscheck_player_div = [
		['class','syscheck_player']
		,['style','display:none;']
	]
	
	///////////
	
	var user_agent = navigator.userAgent.toLowerCase();
	
	// Getting OS base name
	var os_tmpbase = base_os_check(user_agent);
	
	if(os_tmpbase!=null) {
		var os_base = os_tmpbase[0];
	} else {
		var os_base = 'Failed test';
	}
	
	// Browser test
	var b_test = browser_test();
	
	var table = '';
	
	// output user agent
	table += write_html(
		write_html('User Agent', 'td', atts_test_td) + write_html( user_agent, 'td', atts_test_td.concat('colspan="2"') )
		,'tr'
		,atts_test_tr
	);
	
	// If passed browser test...
	if(b_test[0]) {
		// check browser info
		if(check & CHECK_BROWSER_INFO) {
			table += write_html(
				write_html('Browser', 'td', atts_test_td) + write_html(b_test[3], 'td', atts_test_td) + write_html(b_test[1]+' '+b_test[2], 'td', atts_test_td)
				,'tr'
				,atts_test_tr
			);
		}
		
		// check os info
		if(check & CHECK_OS_INFO) {
			var os_good = '';
			var b = b_test[1];
			// If browser is Internet Explorer...
			if(b_test[1] == 'ie') {
				switch (os_base) {
				case 'mac':
					table += write_html(
						write_html( 'Operating System','td', atts_test_td) + write_html( 'You are using Internet Explorer browser. '+ help_msg,'td', atts_test_td )
						,'tr'
						,atts_test_tr
					);
					break;
				case 'win':
					os_good = winOS_check(user_agent);
					
					if(os_good) {
						table += write_html(
							write_html('Operating System','td',atts_test_td) + write_html('Passed.','td',atts_test_td) + write_html(win_name(user_agent),'td',atts_test_td)
							,'tr'
							,atts_test_tr
						);
					} else { 
						var win_fail = 'Failed. Older Windows Operating systems including Windows NT / 98 / ME will most likely work but are not officially supported. Please consult http://support.microsoft.com/default.aspx?pr=lifesupsps to determine if your Operating system is still supported by Microsoft.';
						
						table += write_html(
							write_html('Operating System','td',atts_test_td) + write_html( win_fail ,'td',atts_test_td) + write_html(win_name(user_agent),'td',atts_test_td)
							,'tr'
							,atts_test_tr
						);
					}
					break;
				default:
					table += write_html(
						write_html('Operating System','td',atts_test_td) + write_html('Undefined.','td',atts_test_td) + write_html('Undefined','td',atts_test_td)
						,'tr'
						,atts_test_tr
					);
					break;      
				}
			} else if( (b_test[1] == 'mozilla') || (b_test[1] == 'firefox') || ( b_test[1] == 'netscape') ) {
				switch (os_base) {
				case 'mac':
					os_good = mozilla_Mac_check(user_agent);
					if(os_good) {
						table += write_html(
							write_html('Operating System','td',atts_test_td) + write_html( 'Passed. ' + help_msg,'td',atts_test_td) + write_html( mozilla_OSX_check(user_agent),'td', atts_test_td.concat('nowrap') )
							,'tr'
							,atts_test_tr
						);
					} else {
						table += write_html(
							write_html('Operating System','td',atts_test_td) + write_html( 'Failed.','td',atts_test_td) + write_html( mozilla_OSX_check(user_agent),'td',atts_test_td.concat('nowrap') )
							,'tr'
							,atts_test_tr
						);
					}
					break;
				case 'win':
					os_good = winOS_check(user_agent);
					
					if(os_good) {
						table += write_html(
							write_html('Operating System','td',atts_test_td) + write_html( 'Passed.','td', atts_test_td) + write_html( win_name(user_agent),'td', atts_test_td.concat('nowrap') )
							,'tr'
							,atts_test_tr
						);
						table += write_html(
							write_html('Operating System','td',atts_test_td) + write_html( 'Passed.','td', atts_test_td) + write_html( win_name(user_agent),'td', atts_test_td.concat('nowrap') )
							,'tr'
							,atts_test_tr
						);
					} else {
						var win_fail = 'Failed. Older Windows Operating systems including Windows NT / 98 / ME will most likely work but are not officially supported. Please consult http://support.microsoft.com/default.aspx?pr=lifesupsps to determine if your Operating system is still supported by Microsoft.';
						
						table += write_html(
							write_html('Operating System','td',atts_test_td) + write_html( win_fail,'td',atts_test_td) + write_html( win_name(user_agent),'td',atts_test_td.concat('nowrap') )
							,'tr'
							,atts_test_tr
						);
					}
					break;
				case 'linux':
				case 'freebsd':
					table += write_html(
						write_html('Operating System','td',atts_test_td) + write_html( 'Passed. '+ help_msg,'td',atts_test_td) + write_html( os_base,'td',atts_test_td.concat('nowrap'))
						,'tr'
						,atts_test_tr
					);
					break;
				}
			}
		}
	} else {
		// check browser info
		if(check & CHECK_BROWSER_INFO) {
			table += write_html(
				write_html('Browser', 'td', atts_test_td) + write_html(b_test[3], 'td', atts_test_td) + write_html(b_test[1], 'td', atts_test_td.concat('nowrap') )
				,'tr'
				,atts_test_tr
			); 
		}
		
		// check os info
		if(check & CHECK_OS_INFO) {
			switch (os_base) {
			case 'mac':
				os_good = mozilla_Mac_check(user_agent);
				if(os_good) {
					table += write_html(
						write_html('Operating System','td',atts_test_td) + write_html( 'Passed. '+ help_msg,'td',atts_test_td) + write_html( mozilla_OSX_check(user_agent),'td',atts_test_td.concat('nowrap') )
						,'tr'
						,atts_test_tr
					);
				} else {
					table += write_html(
						write_html('Operating System','td',atts_test_td) + write_html( 'Failed.','td',atts_test_td) + write_html( mozilla_OSX_check(user_agent),'td',atts_test_td.concat('nowrap'))
						,'tr'
						,atts_test_tr
					);
				}
				break;
			case 'win':
				os_good = winOS_check(user_agent);
				
				if(os_good) {
					table += write_html(
						write_html('Operating System','td',atts_test_td) + write_html( 'Passed.','td',atts_test_td) + write_html( win_name(user_agent),'td',atts_test_td.concat('nowrap') )
						,'tr'
						,atts_test_tr
					);
				} else {
					var win_fail = 'Failed.Older Windows Operating systems including Windows NT / 98 / ME will most likely work but are not officially supported. Please consult http://support.microsoft.com/default.aspx?pr=lifesupsps to determine if your Operating system is still supported by Microsoft.';
					
					table += write_html(
						write_html('Operating System','td',atts_test_td) + write_html( win_fail,'td',atts_test_td) + write_html( win_name(user_agent),'td',atts_test_td.concat('nowrap') )
						,'tr'
						,atts_test_tr
					);
				}
				break;
			}// end switch
		}
	}
	
	//Testing for Cookies...
	if(check & CHECK_COOKIES) {
		var cookieTest = checkcookie();
		if(cookieTest) {
			table += write_html(
				write_html('Cookies','td',atts_test_td) + write_html('Enabled.','td',atts_test_td.concat('colspan="2"') )
				,'tr'
				,atts_test_tr
			);  
		} else {
			table += write_html(
				write_html('Cookies','td',atts_test_td) + write_html('<font color=red>Disabled.</font>','td',atts_test_td.concat('colspan="2"') )
				,'tr'
				,atts_test_tr
			);
		}
	}
	
	//Testing for pop-up block...
	if(check & CHECK_POPUPS) {
		if(!b_test[0]) {
			table += write_html(
				write_html( 'Popup','td',atts_test_td) + write_html('This browser is not supported. Test not initiated.','td',atts_test_td.concat('colspan="2"') )
				,'tr'
				,atts_test_tr
			);
		} else { 
			var popUpTest = detectpopupblock();
			if(popUpTest) {
				table += write_html(
					write_html( 'Pop-ups','td',atts_test_td) + write_html('Allowed.','td',atts_test_td.concat('colspan="2"') )
					,'tr'
					,atts_test_tr
				);
			} else {
				table += write_html(
					write_html( 'Pop-ups','td',atts_test_td) + write_html('<font color="#a10a0a">Automatic pop-up windows blocked.</font> - Please note that it is not necessary to disable your pop-up blocking software to view the presentation,<br />  however,  presenters <i>may</i> choose to link to third party Web sites that make use of pop-up windows.  Please <a href="http://videoadmin.talkpoint.com/vm10/admin/event/producer/help/minimum.jsp?type=browser&plugin=101&logo=no&fcolor=ffff&bgcolor=ffff&tdcolor=ffffff#5" target="new"><strong>click here </strong></a>for more information.','td',atts_test_td.concat('colspan="2"') )
					,'tr'
					,atts_test_tr
				);
			}
		}
	}
	
	// Checking screen resolution... 
	if(check & CHECK_RESOLUTION) {
		var screen_result = screen_Res();
		if(screen_result[0]) {
			table += write_html(
				write_html('Screen Resolution','td',atts_test_td) + write_html( screen_result[1],'td',atts_test_td) + write_html( screen_result[3]+' X '+screen_result[4],'td',atts_test_td.concat('nowrap') )
				,'tr'
				,atts_test_tr
			); 
		} else {
			table += write_html(
				write_html('Screen Resolution','td',atts_test_td) + write_html( screen_result[1],'td',atts_test_td) + write_html( screen_result[3]+' X '+screen_result[4],'td', atts_test_td.concat('nowrap') )
				,'tr'
				,atts_test_tr
			);
		}
	}
	
	// Checking for windows media player version...
	if(check & CHECK_WMP) {
		var wmp_info = detectWMP();
		var passed = '';
		if(wmp_info.installed) {
			if(wmp_info.versionInfo != 'none') {
				var wmp_sVersion = parseFloat(wmp_info.versionInfo);
				if(isNaN(wmp_sVersion)) {
					wmp_sVersion = wmp_info.versionInfo;
					
					var inner_tr = write_html(
						write_html( '* Windows Media Player' , 'td', atts_test_td) + write_html('<a class="syscheck" href="javascript:void(0);" onclick="wmptest('+wmp_info.versionnum+');">Click to Test</a>', 'td', atts_test_td.concat('align="right"') )
						,'tr'
						,atts_test_tr
					);
					
					var inner_table = write_html( inner_tr, 'table', atts_adv_test_table); 
					
					table += write_html(
						write_html(inner_table, 'td', atts_test_td ) + write_html('Installed.','td', atts_test_td) + write_html('Version: '+ wmp_sVersion,'td', atts_test_td.concat('nowrap') )
						,'tr'
						,atts_test_tr
					);
				} else {
					if(wmp_sVersion < 6.4) {
						passed ='Failed. Please downlowd the latest version of Windows Media.';
					} else if(wmp_sVersion < 9 && wmp_sVersion >= 6.4) {
						passed = 'Passed. You must have windows media codecs installed on your PC';
					} else if(wmp_sVersion >= 9) {
						passed = 'Installed.';
					}
					
					var inner_tr = write_html(
						write_html('* Windows Media Player' , 'td', atts_test_td) + write_html('<a class="syscheck" href="javascript:void(0);" onclick="wmptest('+wmp_info.versionnum+');">Click to Test</a>', 'td', atts_test_td.concat('align="right"') )
						,'tr'
						,atts_test_tr
					);
					
					var inner_table = write_html( inner_tr, 'table', atts_adv_test_table);
					
					table += write_html(
						write_html(inner_table, 'td', atts_test_td ) + write_html(passed,'td', atts_test_td) + write_html('Version: '+ wmp_sVersion,'td', atts_test_td.concat('nowrap') )
						,'tr'
						,atts_test_tr
					);
				}
			} else {
				table += write_html(
					write_html( '* Windows Media Player', 'td', atts_test_td) + write_html( 'Installed.', 'td', atts_test_td) + write_html( 'Version: undefined', 'td', atts_test_td.concat('nowrap') )
					,'tr'
					,atts_test_tr
				);
			}
		} else {
			table += write_html(
				write_html('* Windows Media Player', 'td', atts_test_td) + write_html( 'Not Installed. <a href="http://www.microsoft.com/windows/windowsmedia/download/AllDownloads.aspx" target="_blank"><strong> - Please click here to download</strong></a>', 'td', atts_test_td.concat('colspan="2"') )
				,'tr'
				,atts_test_tr
			);
		}
		
		test_player_div = write_html('<iframe src="about:blank" name="wmp" id="wmp" style="overflow:none;border:none;" scrolling="no" frameborder="0" allowtransparency="true" width="600" height="180"></iframe>','div', atts_syscheck_player_div );
		
		table += write_html(
			write_html(test_player_div, 'td', atts_test_td.concat('colspan="3" style="padding:0px; margin: 0px; border : 0px;"'))
			,'tr'
			,atts_test_tr
		);
	}
	
	// Checking for real player...
	if(check & CHECK_REAL) {
		var rmp_info = detectRMP_v2();
		if(rmp_info.installed) {
			var inner_tr = write_html(
				write_html( '* RealPlayer' ,'td', atts_test_td) + write_html( '<a class="syscheck" href="javascript:void(0)" onclick=" rmptest('+rmp_info.versionnum+'); ">Click to Test</a>','td', atts_test_td.concat('align="right"') )
				,'tr'
				,atts_test_tr
			);
			var inner_table = write_html( inner_tr, 'table', atts_adv_test_table);
			table += write_html(
				write_html(inner_table,'td', atts_test_td) + write_html( 'Installed.','td', atts_test_td) + write_html( 'Version: '+rmp_info.versionInfo,'td', atts_test_td)
				,'tr'
				,atts_test_tr
			);
			
			test_player_div = write_html('<iframe src="about:blank" name="rmp" id="rmp" style="overflow:none;border:none;" scrolling="no" frameborder="0" allowtransparency="true" width="600"></iframe>','div', atts_syscheck_player_div );
			
			table += write_html(
				write_html(test_player_div, 'td', atts_test_td.concat('colspan="3" style="padding:0px; margin: 0px; border : none;"'))
				,'tr'
				,atts_test_tr
			);
		} else {
			table += write_html(
				write_html( '* RealPlayer','td', atts_test_td) + write_html( 'Not Installed.','td', atts_test_td.concat('colspan="2"') )
				,'tr'
				,atts_test_tr
			);
		}
	}
	
	// Checking for flash versions... 
	if(check & CHECK_FLASH) {
		var flash_v = detectflashplayer();
		var test_f = '';
		var test_output = '* Adobe Flash Player';
		var ver_f = flash_v.versionInfo;
		if(ver_f >= 9) {
			test_f = 'Installed.';
			var flash_tr = write_html(
				write_html('* Adobe Flash Player' ,'td', atts_test_td) + write_html('<a class="syscheck" href="javascript:void(0)" onclick="flashtest();">Click to Test</a>' ,'td', atts_test_td.concat('align="right"') )
				,'tr'
				,atts_test_tr
			);
			test_output = write_html( flash_tr,'table', atts_adv_test_table);
		} else {
			test_f = 'Not installed. <a href="http://get.adobe.com/flashplayer/" target="_blank"><strong> - Please click here to download</strong></a>';
		}
		
		table += write_html(
			write_html( test_output,'td', atts_test_td) + write_html( test_f,'td', atts_test_td) + write_html( 'Version: '+ ver_f,'td', atts_test_td.concat('nowrap') )
			,'tr'
			,atts_test_tr
		);
		
		test_player_div = write_html('<iframe src="about:blank" name="flash" id="flash" style="overflow:none;border:none;" scrolling="no" frameborder="0" allowtransparency="true" width="600"></iframe>','div', atts_syscheck_player_div );
		
		table += write_html(
			write_html(test_player_div, 'td', atts_test_td.concat('colspan="3" style="padding:0px; margin: 0px; border : none;"'))
			,'tr'
			,atts_test_tr
		);
	}
	
	var main_test_table =  write_html( table,'table', atts_main_test_table);
	
	// output test results
	var syscheck_div_content = document.getElementById("syscheck_div_content");
	syscheck_div_content.innerHTML = main_test_table;
}