﻿

function getComputerInfo(controlId)
{

	var log;

	log += navigator.userAgent + ', ';
	log += 'Operating System: ' + navigator.platform + ', ';
	log += 'Sun Java supported: ' + navigator.javaEnabled() + ', ';
	log += 'Screen: ' + screen.width + ' x ' + screen.height + ', ';
	
	if (navigator.userAgent.indexOf('MSIE') > 0) 
	{
		log += IEGetFlashInfo() + ', ';
		log += IEGetAdobeReaderInfo() + ', ';
		log += IEGetQuicktimeInfo() + ', ';
		log += IEGetRealPlayerInfo() + ', ';
		log += IEGetWMPInfo() +  ', ';
	
	}
	else
	{
		// all other browsers
		for(i=0; i < navigator.plugins.length -1 ; i++)
		{
			log += navigator.plugins[i].name + ', ';
		}
			
	}
	
	document.getElementById(controlId).value = log;
	
}

function IEGetFlashInfo()
{
	var isInstalled = false;
	var version = null;

	var control = null;
	try {
		control = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
	} catch (e) {
		return;
	}
	if (control) {
		isInstalled = true;
		version = control.GetVariable('$version').substring(4);
		version = version.split(',');
		version = parseFloat(version[0] + '.' + version[1]);
	}
	
	return languageFix('Flash',isInstalled,version);
}

function IEGetAdobeReaderInfo()
{
	var isInstalled = false;
	var version = null;

	var control = null;
	try {
		// AcroPDF.PDF is used by version 7 and later
		control = new ActiveXObject('AcroPDF.PDF');
	} catch (e) {
		// Do nothing
	}
	if (!control) {
		try {
			// PDF.PdfCtrl is used by version 6 and earlier
			control = new ActiveXObject('PDF.PdfCtrl');
		} catch (e) {
			return;
		}
	}
	if (control) {
		isInstalled = true;
		version = control.GetVersions().split(',');
		version = version[0].split('=');
		version = parseFloat(version[1]);
	}
	
	return languageFix('Adobe Reader', isInstalled, version);
}

function IEGetQuicktimeInfo()
{
	var isInstalled = false;
	var version = null;

	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
		version = control.QuickTimeVersion.toString(16); // Convert to hex
		version = version.substring(0, 1) + '.' + version.substring(1, 3);
		version = parseFloat(version);
	}

	
	return languageFix('Quicktime',isInstalled,version);
}

function IEGetRealPlayerInfo()
{
	var isInstalled = false;
	var version = null;

	var definedControls = [
		'rmocx.RealPlayer G2 Control',
		'rmocx.RealPlayer G2 Control.1',
		'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)',
		'RealVideo.RealVideo(tm) ActiveX Control (32-bit)',
		'RealPlayer'
	];

	var control = null;
	for (var i = 0; i < definedControls.length; i++) {
		try {
			control = new ActiveXObject(definedControls[i]);
		} catch (e) {
			continue;
		}
		if (control) {
			break;
		}
	}
	if (control) {
		isInstalled = true;
		version = control.GetVersionInfo();
		version = parseFloat(version);
	}

	return languageFix('Real Player',isInstalled, version);
}

function IEGetWMPInfo()
{
	var isInstalled = false;
	var version = null;

	var control = null;
	try {
		control = new ActiveXObject('WMPlayer.OCX');
	} catch (e) {
		return;
	}
	if (control) {
		isInstalled = true;
		version = parseFloat(control.versionInfo);
	}

	
	return languageFix('Windows Media Player',isInstalled,version);
}

function languageFix(plugin,isInstalled,version)
{
	
	if(isInstalled)
	{
		return plugin + ': Version ' + version;
	}
	else
	{
		return plugin + ' is not installed';
	}

}
