function kx_get_activex_swf_version()
{
	var version;
	var axo;
	var e;

	// NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry
	try { // version will be set for 7.X or greater players
		axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7"); 
		version = axo.GetVariable("$version");
	} catch (e) {
	}

	if (!version) {
		try { // version will be set for 6.X players only
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
			// installed player is some revision of 6.0
			// GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
			// so we have to be careful. 
			// default to the first public version
			version = "WIN 6,0,21,0";
			// throws if AllowScripAccess does not exist (introduced in 6.0r47)		
			axo.AllowScriptAccess = "always";
			// safe to call for 6.0r47 or greater
			version = axo.GetVariable("$version");

		} catch (e) {
		}
	}

	if (!version) {
		try { // version will be set for 4.X or 5.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = axo.GetVariable("$version");
		} catch (e) {
		}
	}

	if (!version) {
		try { // version will be set for 3.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = "WIN 3,0,18,0";
		} catch (e) {
		}
	}

	if (!version) {
		try { // version will be set for 2.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			version = "WIN 2,0,0,11";
		} catch (e) {
			version = -1;
		}
	}
	
	return version;
}


function kx_get_swf_ver(ie_flag)
{
	// NS/Opera version >= 3 check for Flash plugin in plugin array
	var flashVer = -1;
	
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
			var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
			var descArray = flashDescription.split(" ");
			var tempArrayMajor = descArray[2].split(".");
			var versionMajor = tempArrayMajor[0];
			var versionMinor = tempArrayMajor[1];
			if (descArray[3] != "") {
				tempArrayMinor = descArray[3].split("r");
			} else {
				tempArrayMinor = descArray[4].split("r");
			}
			var versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
			var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
		}
	}
	else 
	if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4; // MSN/WebTV 2.6 supports Flash 4
	else 
	if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3; // WebTV 2.5 supports Flash 3
	else 
	if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2; // older WebTV supports Flash 2
	else 
	if (ie_flag) {
		flashVer = kx_get_activex_swf_version();
	}	
	return flashVer;
}

function kx_detect_flash_ver()
{
	var is_ie  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
	var is_win = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
	var is_opera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
	var ie_flag = is_ie && is_win && !is_opera;

	var vs = kx_get_swf_ver(ie_flag);
	if (vs == -1 || vs == 0) return 0;

	var va;
	if (ie_flag) {
		var ta = vs.split(" ");
		var ts = ta[1];
		va = ts.split(",");
	} else {
		va = vs.split(".");
	}
	return ((va[0] & 0xFF) << 24) | ((va[1] & 0xFF) << 16) | (va[2] & 0xFFFF);
}

var ac_flash_ver = kx_detect_flash_ver();