/*
Versión 2.00 19/04/2007
-----------------------

Se abrevia muchísimo respecto de la versión 1 ya que de la provisión de datos sobre el browser y el sistema queda a cargo de la
clase "BrowserInfo".

En el <head> se invoca algo parecido a esto:
<script language="javascript">
	var cssObj    = new CSSManager();
	var BI        = new BrowserInfo();
	var flash_ver = BI.GetPluginInfo("Flash");
	if(!flash_ver && detectableWithVB) {
		flash_ver = detectActiveXControl('ShockwaveFlash.ShockwaveFlash.1');
		flash_ver = BI.PluginVersion(flash_ver);
	} else {
		flash_ver = flash_ver.version;
	}
	var info      = BI.GetBrowserInfo();
	var brVer     = info.version;
	var isWin     = BI.isWin;
	var isIE      = BI.isIE;
	var isOpera   = BI.isOpera;
	var isFirefox = BI.isFirefox;
	var isMozilla = BI.isMozilla;
</script>

Y luego en el <body>:

<script language="javascript" type="text/javascript">
	if(Number(flash_ver) >= 8) {
		alert("Pongo el flash");
	} else {
		alert("Pongo el jpg");
	}
</script>

*/
function Flash() {
	this.AC_FL_RunContent            = AC_FL_RunContent;
	this.vbFSCommand                 = vbFSCommand;
	
	function vbFSCommand(movie_name) {
		if (isIE && isWin && navigator.userAgent.indexOf("Windows 3.1") == -1) {
			var vbFSCommandStr           = '<script language=\"VBScript\"\>\n';
			vbFSCommandStr              +=      'On Error Resume Next\n';
			vbFSCommandStr              +=      'Sub '+movie_name+'_FSCommand(ByVal command, ByVal args)\n';
			vbFSCommandStr              +=           'Call '+movie_name+'_DoFSCommand(command, args)\n';
			vbFSCommandStr              +=      'End Sub\n';
			vbFSCommandStr              += '</script\>\n';
			document.write(vbFSCommandStr);
		}
	}
	
	//Copyright 2006 Adobe Systems, Inc. All rights reserved. v1.0
	function AC_AddExtension(src, ext) {
		if (src.indexOf('?') != -1) {
			return src.replace(/\?/, ext+'?'); 
		} else {
			return src+ext;
		}
	}
	function AC_Generateobj(objAttrs, params, embedAttrs) {
		var 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                             += '<embed ';
		for (var i in embedAttrs) {
			str                         += i+'="'+embedAttrs[i]+'" ';
		}
		str                             += ' ></embed></object>';
		document.write(str);
	}
	function AC_FL_RunContent() {
		var ret                          = AC_GetArgs(arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000", "application/x-shockwave-flash");
		AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
	}
	function AC_SW_RunContent() {
		var ret                          = AC_GetArgs(arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000", null);
		AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
	}
	function AC_GetArgs(args, ext, srcParamName, classid, mimeType) {
		var ret                          = new Object();
		ret.embedAttrs                   = new Object();
		ret.params                       = new Object();
		ret.objAttrs                     = new Object();
		for (var i = 0; i<args.length; i=i+2) {
			var currArg                  = args[i].toLowerCase();
			switch (currArg) {
			case "classid" :
				break;
			case "pluginspage" :
				ret.embedAttrs[args[i]]  = args[i+1];
				break;
			case "src" :
			case "movie" :
				args[i+1] = AC_AddExtension(args[i+1], ext);
				ret.embedAttrs["src"]    = args[i+1];
				ret.params[srcParamName] = 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" :
				ret.objAttrs[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 "id" :
			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;
	}
}




