var Flash = function () {
var o = {installed:0, version:[]}, description, oActiveX, nMajor, nMinor;

	if (navigator.plugins && typeof navigator.plugins["Shockwave Flash"] == "object") {
		o.pluginType = "npapi";
		description = navigator.plugins["Shockwave Flash"].description;
		if (typeof description != "undefined") {
			description = description.replace(/^.*\s+(\S+\s+\S+$)/, "$1");
			nMajor = parseInt(description.replace(/^(.*)\..*$/, "$1"), 10);
			nMinor = /r/.test(description) ? parseInt(description.replace(/^.*r(.*)$/, "$1"), 10) : 0;
			o.version = [nMajor, nMinor];
			o.installed = 1;
		}
	}
	else if (window.ActiveXObject) {
		o.pluginType = "ax";
		try {
			oActiveX = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		}
		catch (e) {
			try {
				oActiveX = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
				o.version = [6, 0];
				o.installed = 1;
				oActiveX.AllowScriptAccess = "always";
			}
			catch (e) {
				if (o.version[0] == 6) {o.installed=1; return; }
			}
			try {
				oActiveX = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			}
			catch (e) {
			}
		}

		if (typeof oActiveX == "object") {
			description = oActiveX.GetVariable("$version");
			if (typeof description != "undefined") {
				description = description.replace(/^\S+\s+(.*)$/, "$1").split(",");
				o.version = [parseInt(description[0], 10), parseInt(description[2], 10)];
				o.installed = 1;
			}
		}
	}

	return o;
}();

