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;

function getFlashMovie(movieName)
{
	return (navigator.appName.indexOf("Microsoft") >= 0)? window[movieName] : document[movieName];
}

function insertFlashMovie()
{
	var args = makeFlashArgs(arguments);
	writeTags(args.objAttrs, args.params, args.embedAttrs);
}

function makeFlashArgs(args)
{
	var ret = new Object();
	ret.embedAttrs = new Object();
	ret.params = new Object();
	ret.objAttrs = new Object();
	var version = "8,0,0,0";
	
	for (var i = 0; i < args.length; i += 2)
	{
		var name = args[i], val = args[i + 1];
		var currArg = name.toLowerCase();
	
		switch (currArg)
		{
			case "classid":
				break;
			case "src":
			case "movie":	
				ret.embedAttrs["src"] = val;
				ret.params["movie"] = val;
				break;
			case "width":
			case "height":
			case "align":
			case "vspace": 
			case "hspace":
			case "class":
			case "title":
			case "accesskey":
			case "tabindex":
			case "type":
			case "name":
			case "id":
				ret.objAttrs[currArg] = val;
				ret.embedAttrs[currArg] = val;
				break;
			case "version":
				version = val;
			default:
				if (currArg.indexOf("on") == 0)
					ret.objAttrs[name] = val;
				else
				 	ret.embedAttrs[name] = ret.params[name] = val;
		}
	}
	
	if ((ret.objAttrs["id"] == null) != (ret.embedAttrs["name"] == null))
	{
		if (ret.objAttrs["id"] != null)
			ret.embedAttrs["name"] = ret.objAttrs["id"];
		else
			ret.objAttrs["id"] = ret.embedAttrs["name"];
	}
	
	ret.embedAttrs["type"] = "application/x-shockwave-flash";
	ret.embedAttrs["pluginspage"] = "http://www.macromedia.com/go/getflashplayer";
	ret.objAttrs["classid"] = "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000";
	ret.objAttrs["codebase"] = "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=" + version;
	return ret;
}

function writeTags(objAttrs, params, embedAttrs) 
{ 
	var str = '';
	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 += '> </embed>';
	}

	document.write(str);
}

var flashPlayerVersion = function()
		{
			var SHOCKWAVE_FLASH = "Shockwave Flash", SHOCKWAVE_FLASH_AX = "ShockwaveFlash.ShockwaveFlash";
			var playerVersion = [0,0,0], d = null;
			
			if (typeof navigator.plugins != null && typeof navigator.plugins[SHOCKWAVE_FLASH] == "object")
			{
				if (d = navigator.plugins[SHOCKWAVE_FLASH].description)
				{
					d = d.replace(/^.*\s+(\S+\s+\S+$)/, "$1");
					playerVersion[0] = parseInt(d.replace(/^(.*)\..*$/, "$1"), 10);
					playerVersion[1] = parseInt(d.replace(/^.*\.(.*)\s.*$/, "$1"), 10);
					playerVersion[2] = /r/.test(d) ? parseInt(d.replace(/^.*r(.*)$/, "$1"), 10) : 0;
				}
			}
			else if (typeof window.ActiveXObject != null)
			{
				var a = null, fp6Crash = false;
				try { a = new ActiveXObject(SHOCKWAVE_FLASH_AX + ".7"); }
				catch(e)
				{
					try
					{ 
						a = new ActiveXObject(SHOCKWAVE_FLASH_AX + ".6");
						playerVersion = [6,0,21];
						a.AllowScriptAccess = "always";  // Introduced in fp6.0.47
					}
					catch(e)
					{
						if (playerVersion[0] == 6)
							fp6Crash = true;
					}
					if (!fp6Crash)
					{
						try { a = new ActiveXObject(SHOCKWAVE_FLASH_AX); }
						catch(e) {}
					}
				}
				if (!fp6Crash && a)
				{ // a will return null when ActiveX is disabled
					try
					{
						if (d = a.GetVariable("$version"))  // Will crash fp6.0.21/23/29
						{
							d = d.split(" ")[1].split(",");
							playerVersion = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
						}
					}
					catch(e) {}
				}
			}
			return playerVersion;
		}();

