//v1.7
// Flash Player Version Detection
// Detect Client Browser type
// Copyright 2005-2007 Adobe Systems Incorporated.  All rights reserved.
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;

//var MinimumFlashVersion = '10.2.0';
var FlashVersionString = false;

function AC_Generateobj(objAttrs, params, embedAttrs, controls) {
	var str = '';
	if (controls.requiredversion && controls.expressInstall) {
		embedAttrs.src = controls.expressInstall;
		params.src = controls.expressInstall;
	} else if (controls.requiredversion) {
		document.write('<a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /></a>');
		return '';
	}
	if (isIE && isWin && !isOpera) {
		str += '<object ';
		for (var i in objAttrs) {
			str += i + '="' + objAttrs[i] + '" ';
		}
		str += '>';
		for (var i in params) {
			str += '<param name="' + i + '" value="' + params[i] + '" /> ';
		}
		str += '</object>';
	} else {
		str += '<embed ';
		for (var i in embedAttrs) {
			str += i + '="' + embedAttrs[i] + '" ';
		}
		str += ' />';
	}
	if (!controls.cancelwrite){
		try {	// (Sen)
			document.write(str);
		} catch (e) {
			location.reload();
		}
	}
	return str;
}
function AC_FL_RunContent(){
	var ret =  AC_GetArgs(arguments, "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000", "application/x-shockwave-flash");
	return AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs,ret.controls);
}
function AC_UN_RunContent(){
	var ret = AC_GetArgs(arguments, "src", "clsid:444785F1-DE89-4295-863A-D46C3A781394", "application/vnd.unity");
	return AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs,ret.controls);
}
function AC_SW_RunContent(){
	var ret = AC_GetArgs(arguments, "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000", null);
	return AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs,ret.controls);
}

function AC_GetArgs(args, srcParamName, classid, mimeType){
	var ret = {'embedAttrs' : {}, 'params' : {}, 'objAttrs' : {}, 'controls' : {}};
	// Stass
	//ret.controls['requiredversion'] = MinimumFlashVersion; // minimum version

	if (typeof args[0] == 'object') args = args[0]
	for (var i=0; i < args.length; i=i+2){
		var currArg = args[i].toLowerCase();
		switch (currArg){
			case "classid":
				break;
			case "expressinstall":
				ret.controls[args[i]] = args[i+1]; // Stass
				break;
			case "pluginspage":
				ret.embedAttrs[args[i]] = args[i+1];
				break;
			case "src":
			case "movie":
				ret.embedAttrs["src"] = args[i+1];
				ret.params["src"] = args[i+1];
				break;
			case "onafterupdate":
			case "onbeforeupdate":
			case "onblur":
			case "oncellchange":
			case "onclick":
			case "ondblclick":
			case "ondrag":
			case "ondragend":
			case "ondragenter":
			case "ondragleave":
			case "ondragover":
			case "ondrop":
			case "onfinish":
			case "onfocus":
			case "onhelp":
			case "onmousedown":
			case "onmouseup":
			case "onmouseover":
			case "onmousemove":
			case "onmouseout":
			case "onkeypress":
			case "onkeydown":
			case "onkeyup":
			case "onload":
			case "onlosecapture":
			case "onpropertychange":
			case "onreadystatechange":
			case "onrowsdelete":
			case "onrowenter":
			case "onrowexit":
			case "onrowsinserted":
			case "onstart":
			case "onscroll":
			case "onbeforeeditfocus":
			case "onactivate":
			case "onbeforedeactivate":
			case "ondeactivate":
			case "type":
			case "codebase":
			case "id":
			case "style":
				ret.objAttrs[args[i]] = args[i+1];
				break;
			case "requiredversion":
				//if 	(AC_CompareVersions(MinimumFlashVersion, args[i+1]) >= 0) {
				if 	(AC_DetectFlashVer(args[i+1])) { // Stass
					break;
				}
			case "cancelwrite":
				ret.controls[args[i]] = args[i+1];
				break;
			case "width":
			case "height":
			case "align":
			case "vspace": 
			case "hspace":
			case "class":
			case "title":
			case "accesskey":
			case "name":
			case "tabindex":
				ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
				break;
			default:
				ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
		}
	}
	ret.objAttrs["classid"] = classid;
	if (mimeType) ret.embedAttrs["type"] = mimeType;
	return ret;
}

function AC_CompareVersions(a, b) {
	if (a == -1) { a = '0.0.0'; }
	if (b == -1) { b = '0.0.0'; }
	var versionArray1 = a.split('.');
	var versionArray2 = b.split('.');
	for (var i = 0; i < 3; i++) {
		var d = parseInt(versionArray1[i]) - parseInt(versionArray2[i]);
		if (d==0) continue;
		return d>0 ? 1 : -1;
	}
	return 0;
}

function AC_DetectFlashVer(version) {
	if (FlashVersionString === false) {
		FlashVersionString = AC_GetSwfVer();
	}

	if (FlashVersionString == -1 ) {
		return false;
	} else if (FlashVersionString != 0) {
		return (AC_CompareVersions(FlashVersionString, version) >= 0);
	}
}


function AC_ControlVersion() {
	var version = -1;
	var axo;
	var e;

	try {
		axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		version = axo.GetVariable("$version");
	} catch (e) { }

	if (!version) {
		try {
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
			version = "WIN 6,0,21,0";
			axo.AllowScriptAccess = "always";
			version = axo.GetVariable("$version");
		} catch (e) { }
	}

	if (!version) {
		try {
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = axo.GetVariable("$version");
		} catch (e) { }
	}

	if (!version) {
		try {
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = "WIN 3,0,18,0";
		} catch (e) { }
	}

	if (!version) {
		try {
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			version = "WIN 2,0,0,11";
		} catch (e) {
			version = -1;
		}
	}

	return version;
}

function AC_GetSwfVer() {
	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];
			var versionRevision = descArray[3];
			if (versionRevision == "") {
				versionRevision = descArray[4];
			}
			if (versionRevision[0] == "d") {
				versionRevision = versionRevision.substring(1);
			} else if (versionRevision[0] == "r") {
				versionRevision = versionRevision.substring(1);
				if (versionRevision.indexOf("d") > 0) {
					versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
				}
			}
			flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
		}
	}	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) {
		flashVer = 4;
	}	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) {
		flashVer = 3;
	}	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) {
		flashVer = 2;
	} else if (isIE && isWin && !isOpera) {
		flashVer = AC_ControlVersion();
	}

	if(isIE && isWin && !isOpera) {
		if (flashVer != -1) {
			var tempArray = flashVer.split(" ");
			var tempString = tempArray[1];
			var versionArray = tempString.split(",");
			flashVer = versionArray.join('.');
		}
	}

	return flashVer;
}


