﻿var majorVersion = 0;
var minorVersion = 0;
var revision = 0;

function isFlashCompatible(maj, min, rev)
{
	getFlashVersion();
	
	if (majorVersion == -1 || minorVersion == -1 || maj == null)
		return false;

	// cannot continue check unless we have correct major version
	if (majorVersion < maj)
		return false;
		
	// if we specified the minor value, check against actual minor val.
	if ((min != null) && (minorVersion < min)) return false;
	
	// likewise for the revision
	if ((rev != null) && (revision < rev)) return false;
	
	return true;
}

function saveVersionInfo(maj, min, rev)
{
	majorVersion = (maj != null)? parseInt(maj): -1;
	minorVersion = (min != null)? parseInt(min): -1;
	revision = (rev != null)? parseInt(rev): -1;
}

function getFlashVersion()
{
	// initially set as not installed
	saveVersionInfo(-1, -1, -1);
	
	if (navigator.plugins && navigator.mimeTypes.length)
	{
		// Mozilla, Firefox
		var x = navigator.plugins["Shockwave Flash"];
		if (x && x.description)
		{
			var verInfo = x.description.replace(/([a-zA-Z]|\s)+/, "").replace(/(\s+r|\s+b[0-9]+)/, ".").split(".")
			saveVersionInfo(verInfo[0], verInfo[1], verInfo[2]);
		}
	}
	else
	{
		// Internet Explorer
		// Sample: WIN 9,0,47,0
		var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
		if (axo != null)
		{
			var verInfo = axo.GetVariable("$version").split(" ")[1].split(",");
			saveVersionInfo(verInfo[0], verInfo[1], verInfo[2]);
		}
	}
}