var platformProps, browserProps, shockwaveProps;
var platformVersion = (BrowserDetect.OSVersion != 'unknown') ? ' ' + BrowserDetect.OSVersion : '';
var platformFullName = BrowserDetect.OS + platformVersion;

var browserVersion = (BrowserDetect.browserVersion != 'unknown') ? ' ' + BrowserDetect.browserVersion : '';
var browserFullName = BrowserDetect.browser + browserVersion;

var swInstalled = (PluginDetect.isMinVersion('Shockwave', '0') >= 0);
var swVersion = swInstalled ? PluginDetect.getVersion('Shockwave').replace(/,/g, '.') : 'unknown';

var fInstalled = (PluginDetect.isMinVersion('Flash', '0') >= 0);
var fVersion = fInstalled ? PluginDetect.getVersion('Flash').replace(/,/g, '.') : 'unknown';
var fRequirement = '9.0.45.0'; 
var fTestStatus = 0;
var fMessage = '';			
var fStatus = PluginDetect.isMinVersion('Flash', fRequirement);
if (fStatus == 1) {
	fMessage = 'Flash ' + fVersion + ' is installed/enabled.';
	fTestStatus = 2;
} else if (fStatus == -1) {
	fMessage = 'Flash not installed/enabled.';
	if (fInstalled) fMessage = 'Flash plugin (' + fVersion + ') is installed but version is < ' + fRequirement;		
}					

//COOKIE detection
var tmpCookie = ((new Date()).getTime() + '');
document.cookie = 'tmpCookie=' + tmpCookie + '; path=/';
var cookiesEnabled = (document.cookie.indexOf(tmpCookie, 0) != -1);
var cookieStatus = cookiesEnabled ? 2 : 0;
var cookieMessage = cookiesEnabled ? 'Cookies support detected' : 'Cookies not enabled or not supported';
var cookieProps = {req: 'Cookies enabled web browser', detected: cookieStatus, status: cookieStatus, passMsg: cookieMessage, issueMsg: cookieMessage};

switch (BrowserDetect.OS) {
	case 'Windows':
		var pV = (BrowserDetect.OSVersion != '') ? 2 : 1;
		platformProps = {req: 'Windows 98, ME, 2000, XP, or Vista', detected: platformFullName, status: pV};
		var bV = ((BrowserDetect.browser == 'Internet Explorer') && BrowserDetect.browserVersion < 6) ? 0 : 2;
		bV = ((BrowserDetect.browser == 'Netscape') && BrowserDetect.browserVersion < 7) ? 0 : 2;
		bV = ((BrowserDetect.browser == 'Firefox') && BrowserDetect.browserVersion < 1.5) ? 0 : 2;
		browserProps = {req: 'Internet Explorer 6.x-7, Firefox 1.5, Opera 9, Netscape 7.0', detected: browserFullName, status: bV, issueMsg: 'Browser not fully supported.'};
		var swRequirement = '8.5'; 
		var swTestStatus = 0;
		var swMessage = '';
		var swStatus = PluginDetect.isMinVersion('Shockwave', swRequirement);
		if (swStatus == 1) {
			swMessage = 'Shockwave ' + swVersion + ' is installed/enabled.';
			swTestStatus = 2;							
		} else if (swStatus == -1) {
			swMessage = 'Shockwave plugin not installed/enabled.';
			if (swInstalled) swMessage = 'Shockwave plugin (' + swVersion + ') is installed but version is < ' + swRequirement;
		} else if (swStatus == -2) {
			swMessage = 'ActiveX not enabled in IE (plugins not detected)';						
			swTestStatus = 1;
		}	
		shockwaveProps = {req: 'Shockwave Player ' + swRequirement + ' or higher.', detected: swVersion, status: swTestStatus, passMsg: swMessage, issueMsg: swMessage};
		
		if (fStatus == -2) {
			fMessage = 'ActiveX not enabled in IE (plugins not detected)';						
			fTestStatus = 1;
		}
		break;
	case 'Mac (PPC)':
		platformProps = {req: 'MacOS 9.2, Mac OS X', detected: platformFullName, status: 2};
		var bV = (BrowserDetect.browser == 'Internet Explorer') ? 1 : 2;
		if((BrowserDetect.browser == 'Firefox') && BrowserDetect.browserVersion > 2) bV = 1;
		browserProps = {req: 'Safari 1.2, Firefox 1.5 - 2, Opera 9', detected: browserFullName, status: bV, issueMsg: '', issueMsg: 'Browser not fully supported.'};
		var swRequirement = '10'; 
		var swTestStatus = 0;
		
		var swStatus = PluginDetect.isMinVersion('Shockwave', swRequirement);
		var swMessage = 'Status Code: ' + swStatus;
		if (swStatus == 1) {
			swMessage = 'Shockwave ' + swVersion + ' is installed/enabled.';	
			swTestStatus = 2;							
		} else if (swStatus == -1) {
			swMessage = 'Shockwave plugin not installed/enabled.';
		} else if (swStatus == -1 && swInstalled) {
			swMessage = 'Your Shockwave plugin (' + swVersion + ') is installed but version is < ' + swRequirement; 								
		} else if (swStatus == -2) {
			swMessage = 'Shockwave version could not be determined.';					
			swTestStatus = 1;
		}	
		shockwaveProps = {req: 'Shockwave Player ' + swRequirement + ' (Full Installer)', detected: swVersion, status: swTestStatus, passMsg: swMessage, issueMsg: swMessage};
		
		if (fStatus == -2) {
			fMessage = 'Flash version not determined.';						
			fTestStatus = 1;
		}
		break;
	case 'Mac (Intel)':
		platformProps = {req: 'MacOS 9.2, Mac OS X', detected: platformFullName, status: 2};
		var bV = (BrowserDetect.browser == 'Internet Explorer') ? 1 : 2;
		if((BrowserDetect.browser == 'Firefox') && BrowserDetect.browserVersion > 2) bV = 1;
		browserProps = {req: 'Safari 1.2, Firefox 1.5 - 2, Opera 9', detected: browserFullName, status: bV, issueMsg: 'Browser not fully supported.'};
		var swRequirement = '11'; 
		var swTestStatus = 0;
		var swMessage = '';
		var swStatus = PluginDetect.isMinVersion('Shockwave', swRequirement);
		if (swStatus == 1) {
			swMessage = 'Shockwave ' + swVersion + ' is installed/enabled.';	
			swTestStatus = 2;							
		} else if (swStatus == -1) {
			swMessage = 'Shockwave plugin not installed or not enabled.';
		} else if (swStatus == -1 && swInstalled) {
			swMessage = 'Shockwave plugin (' + swVersion + ') is installed but version is < ' + swRequirement; 								
		} else if (swStatus == -2) {
			swMessage = 'Shockwave version could not be determined.';					
			swTestStatus = 1;
		}	
		shockwaveProps = {req: 'Shockwave Player ' + swRequirement + ' (Full)', detected: swVersion, status: swTestStatus, passMsg: swMessage, issueMsg: swMessage};
		
		if (fStatus == -2) {
			fMessage = 'Flash version not determined.';						
			fTestStatus = 1;
		}
		break;
	case 'Linux':
		platformProps = {req: 'Linux OS', detected: platformFullName, status: 2, msg: ''};
		var bV = ((BrowserDetect.browser == 'Firefox') && (BrowserDetect.browserVersion < 2)) ? 1 : 2;
		browserProps = {req: 'Firefox 2', detected: browserFullName, status: bV, issueMsg: '', issueMsg: 'Browser not fully supported.'};
		var swRequirement = '8.5'; 
		var swTestStatus = 0;
		var swMessage = 'N/A';
		shockwaveProps = {req: 'Shockwave not available for Linux', detected: 'N/A', status: 0, passMsg: swMessage, issueMsg: swMessage};
		break;						
}		
var flashProps = {req: 'Flash Player 9.0.45 or higher', detected: fVersion, status: fTestStatus, passMsg: fMessage, issueMsg: fMessage};

var testItems = [
	{name: 'platform', props: platformProps},
	{name: 'browser', props: browserProps},
	{name: 'shockwave', props: shockwaveProps},
	{name: 'flash', props: flashProps},
	{name: 'cookies', props: cookieProps}
];	

function GetClientInfo(formName) {
	var sForm = $(formName);
	for (var i = 0; i < testItems.length; i++) {       
		var testItem = testItems[i];
		var testItemProps = testItem.props;						
		var testDetected = (testItemProps.passMsg) ? testItemProps.passMsg : testItemProps.detected;
		var statusMsg = 'Pass';						
		if (testItemProps.status == 1) {
			testDetected = testItemProps.issueMsg;						
			statusMsg = 'Issue';
		}else if (testItemProps.status == 0) {
			testDetected = testItemProps.issueMsg;
			statusMsg = 'Fail';
		}
		var detectedFieldName = testItem.name + 'Detected';
		var detectedField = new Element('input', {type: 'hidden', id: detectedFieldName, name: detectedFieldName, value: testDetected });		
		var statusFieldName = testItem.name + 'Status';
		var statusField = new Element('input', {type: 'hidden', id: statusFieldName, name: statusFieldName, value: statusMsg });		
		var requirementFieldName = testItem.name + 'Requirement';
		var requirementField = new Element('input', {type: 'hidden', id: requirementFieldName, name: requirementFieldName, value: testItemProps.req });			
		sForm.adopt(detectedField, statusField, requirementField);
	}
}