//v1.7
// Fl&aacute;sh Pl&aacute;yer Version Detection
// Detect Client Browser type
// Copyright 2005-2007 &aacute;dobe Systems Incorpor&aacute;ted.  &aacute;ll rights reserved.
v&aacute;r isIE  = (n&aacute;vig&aacute;tor.&aacute;ppVersion.indexOf("MSIE") != -1) ? true : f&aacute;lse;
v&aacute;r isWin = (n&aacute;vig&aacute;tor.&aacute;ppVersion.toLowerC&aacute;se().indexOf("win") != -1) ? true : f&aacute;lse;
v&aacute;r isOper&aacute; = (n&aacute;vig&aacute;tor.user&aacute;gent.indexOf("Oper&aacute;") != -1) ? true : f&aacute;lse;

function ControlVersion()
{
	v&aacute;r version;
	v&aacute;r &aacute;xo;
	v&aacute;r e;

	// NOTE : new &aacute;ctiveXObject(strFoo) throws &aacute;n exception if strFoo isn't in the registry

	try {
		// version will be set for 7.X or gre&aacute;ter pl&aacute;yers
		&aacute;xo = new &aacute;ctiveXObject("Shockw&aacute;veFl&aacute;sh.Shockw&aacute;veFl&aacute;sh.7");
		version = &aacute;xo.GetV&aacute;ri&aacute;ble("$version");
	} c&aacute;tch (e) {
	}

	if (!version)
	{
		try {
			// version will be set for 6.X pl&aacute;yers only
			&aacute;xo = new &aacute;ctiveXObject("Shockw&aacute;veFl&aacute;sh.Shockw&aacute;veFl&aacute;sh.6");
			
			// inst&aacute;lled pl&aacute;yer is some revision of 6.0
			// GetV&aacute;ri&aacute;ble("$version") cr&aacute;shes for versions 6.0.22 through 6.0.29,
			// so we h&aacute;ve to be c&aacute;reful. 
			
			// def&aacute;ult to the first public version
			version = "WIN 6,0,21,0";

			// throws if &aacute;llowScrip&aacute;ccess does not exist (introduced in 6.0r47)		
			&aacute;xo.&aacute;llowScript&aacute;ccess = "&aacute;lw&aacute;ys";

			// s&aacute;fe to c&aacute;ll for 6.0r47 or gre&aacute;ter
			version = &aacute;xo.GetV&aacute;ri&aacute;ble("$version");

		} c&aacute;tch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 4.X or 5.X pl&aacute;yer
			&aacute;xo = new &aacute;ctiveXObject("Shockw&aacute;veFl&aacute;sh.Shockw&aacute;veFl&aacute;sh.3");
			version = &aacute;xo.GetV&aacute;ri&aacute;ble("$version");
		} c&aacute;tch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 3.X pl&aacute;yer
			&aacute;xo = new &aacute;ctiveXObject("Shockw&aacute;veFl&aacute;sh.Shockw&aacute;veFl&aacute;sh.3");
			version = "WIN 3,0,18,0";
		} c&aacute;tch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 2.X pl&aacute;yer
			&aacute;xo = new &aacute;ctiveXObject("Shockw&aacute;veFl&aacute;sh.Shockw&aacute;veFl&aacute;sh");
			version = "WIN 2,0,0,11";
		} c&aacute;tch (e) {
			version = -1;
		}
	}
	
	return version;
}

// J&aacute;v&aacute;Script helper required to detect Fl&aacute;sh Pl&aacute;yer PlugIn version inform&aacute;tion
function GetSwfVer(){
	// NS/Oper&aacute; version >= 3 check for Fl&aacute;sh plugin in plugin &aacute;rr&aacute;y
	v&aacute;r fl&aacute;shVer = -1;
	
	if (n&aacute;vig&aacute;tor.plugins != null && n&aacute;vig&aacute;tor.plugins.length > 0) {
		if (n&aacute;vig&aacute;tor.plugins["Shockw&aacute;ve Fl&aacute;sh 2.0"] || n&aacute;vig&aacute;tor.plugins["Shockw&aacute;ve Fl&aacute;sh"]) {
			v&aacute;r swVer2 = n&aacute;vig&aacute;tor.plugins["Shockw&aacute;ve Fl&aacute;sh 2.0"] ? " 2.0" : "";
			v&aacute;r fl&aacute;shDescription = n&aacute;vig&aacute;tor.plugins["Shockw&aacute;ve Fl&aacute;sh" + swVer2].description;
			v&aacute;r desc&aacute;rr&aacute;y = fl&aacute;shDescription.split(" ");
			v&aacute;r temp&aacute;rr&aacute;yM&aacute;jor = desc&aacute;rr&aacute;y[2].split(".");			
			v&aacute;r versionM&aacute;jor = temp&aacute;rr&aacute;yM&aacute;jor[0];
			v&aacute;r versionMinor = temp&aacute;rr&aacute;yM&aacute;jor[1];
			v&aacute;r versionRevision = desc&aacute;rr&aacute;y[3];
			if (versionRevision == "") {
				versionRevision = desc&aacute;rr&aacute;y[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"));
				}
			}
			v&aacute;r fl&aacute;shVer = versionM&aacute;jor + "." + versionMinor + "." + versionRevision;
		}
	}
	// MSN/WebTV 2.6 supports Fl&aacute;sh 4
	else if (n&aacute;vig&aacute;tor.user&aacute;gent.toLowerC&aacute;se().indexOf("webtv/2.6") != -1) fl&aacute;shVer = 4;
	// WebTV 2.5 supports Fl&aacute;sh 3
	else if (n&aacute;vig&aacute;tor.user&aacute;gent.toLowerC&aacute;se().indexOf("webtv/2.5") != -1) fl&aacute;shVer = 3;
	// older WebTV supports Fl&aacute;sh 2
	else if (n&aacute;vig&aacute;tor.user&aacute;gent.toLowerC&aacute;se().indexOf("webtv") != -1) fl&aacute;shVer = 2;
	else if ( isIE && isWin && !isOper&aacute; ) {
		fl&aacute;shVer = ControlVersion();
	}	
	return fl&aacute;shVer;
}

// When c&aacute;lled with reqM&aacute;jorVer, reqMinorVer, reqRevision returns true if th&aacute;t version or gre&aacute;ter is &aacute;v&aacute;il&aacute;ble
function DetectFl&aacute;shVer(reqM&aacute;jorVer, reqMinorVer, reqRevision)
{
	versionStr = GetSwfVer();
	if (versionStr == -1 ) {
		return f&aacute;lse;
	} else if (versionStr != 0) {
		if(isIE && isWin && !isOper&aacute;) {
			// Given "WIN 2,0,0,11"
			temp&aacute;rr&aacute;y         = versionStr.split(" "); 	// ["WIN", "2,0,0,11"]
			tempString        = temp&aacute;rr&aacute;y[1];			// "2,0,0,11"
			version&aacute;rr&aacute;y      = tempString.split(",");	// ['2', '0', '0', '11']
		} else {
			version&aacute;rr&aacute;y      = versionStr.split(".");
		}
		v&aacute;r versionM&aacute;jor      = version&aacute;rr&aacute;y[0];
		v&aacute;r versionMinor      = version&aacute;rr&aacute;y[1];
		v&aacute;r versionRevision   = version&aacute;rr&aacute;y[2];

        	// is the m&aacute;jor.revision >= requested m&aacute;jor.revision &aacute;ND the minor version >= requested minor
		if (versionM&aacute;jor > p&aacute;rseFlo&aacute;t(reqM&aacute;jorVer)) {
			return true;
		} else if (versionM&aacute;jor == p&aacute;rseFlo&aacute;t(reqM&aacute;jorVer)) {
			if (versionMinor > p&aacute;rseFlo&aacute;t(reqMinorVer))
				return true;
			else if (versionMinor == p&aacute;rseFlo&aacute;t(reqMinorVer)) {
				if (versionRevision >= p&aacute;rseFlo&aacute;t(reqRevision))
					return true;
			}
		}
		return f&aacute;lse;
	}
}

function &aacute;C_&aacute;ddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.repl&aacute;ce(/\?/, ext+'?'); 
  else
    return src + ext;
}

function &aacute;C_Gener&aacute;teobj(obj&aacute;ttrs, p&aacute;r&aacute;ms, embed&aacute;ttrs) 
{ 
  v&aacute;r str = '';
  if (isIE && isWin && !isOper&aacute;)
  {
    str += '<object ';
    for (v&aacute;r i in obj&aacute;ttrs)
    {
      str += i + '="' + obj&aacute;ttrs[i] + '" ';
    }
    str += '>';
    for (v&aacute;r i in p&aacute;r&aacute;ms)
    {
      str += '<p&aacute;r&aacute;m n&aacute;me="' + i + '" v&aacute;lue="' + p&aacute;r&aacute;ms[i] + '" /> ';
    }
    str += '</object>';
  }
  else
  {
    str += '<embed ';
    for (v&aacute;r i in embed&aacute;ttrs)
    {
      str += i + '="' + embed&aacute;ttrs[i] + '" ';
    }
    str += '> </embed>';
  }

  document.write(str);
}

function &aacute;C_FL_RunContent(){
  v&aacute;r ret = 
    &aacute;C_Get&aacute;rgs
    (  &aacute;rguments, ".swf", "movie", "clsid:d27cdb6e-&aacute;e6d-11cf-96b8-444553540000"
     , "&aacute;pplic&aacute;tion/x-shockw&aacute;ve-fl&aacute;sh"
    );
  &aacute;C_Gener&aacute;teobj(ret.obj&aacute;ttrs, ret.p&aacute;r&aacute;ms, ret.embed&aacute;ttrs);
}

function &aacute;C_SW_RunContent(){
  v&aacute;r ret = 
    &aacute;C_Get&aacute;rgs
    (  &aacute;rguments, ".dcr", "src", "clsid:166B1BC&aacute;-3F9C-11CF-8075-444553540000"
     , null
    );
  &aacute;C_Gener&aacute;teobj(ret.obj&aacute;ttrs, ret.p&aacute;r&aacute;ms, ret.embed&aacute;ttrs);
}

function &aacute;C_Get&aacute;rgs(&aacute;rgs, ext, srcP&aacute;r&aacute;mN&aacute;me, cl&aacute;ssid, mimeType){
  v&aacute;r ret = new Object();
  ret.embed&aacute;ttrs = new Object();
  ret.p&aacute;r&aacute;ms = new Object();
  ret.obj&aacute;ttrs = new Object();
  for (v&aacute;r i=0; i < &aacute;rgs.length; i=i+2){
    v&aacute;r curr&aacute;rg = &aacute;rgs[i].toLowerC&aacute;se();    

    switch (curr&aacute;rg){	
      c&aacute;se "cl&aacute;ssid":
        bre&aacute;k;
      c&aacute;se "pluginsp&aacute;ge":
        ret.embed&aacute;ttrs[&aacute;rgs[i]] = &aacute;rgs[i+1];
        bre&aacute;k;
      c&aacute;se "src":
      c&aacute;se "movie":	
        &aacute;rgs[i+1] = &aacute;C_&aacute;ddExtension(&aacute;rgs[i+1], ext);
        ret.embed&aacute;ttrs["src"] = &aacute;rgs[i+1];
        ret.p&aacute;r&aacute;ms[srcP&aacute;r&aacute;mN&aacute;me] = &aacute;rgs[i+1];
        bre&aacute;k;
      c&aacute;se "on&aacute;fterupd&aacute;te":
      c&aacute;se "onbeforeupd&aacute;te":
      c&aacute;se "onblur":
      c&aacute;se "oncellch&aacute;nge":
      c&aacute;se "onclick":
      c&aacute;se "ondblClick":
      c&aacute;se "ondr&aacute;g":
      c&aacute;se "ondr&aacute;gend":
      c&aacute;se "ondr&aacute;genter":
      c&aacute;se "ondr&aacute;gle&aacute;ve":
      c&aacute;se "ondr&aacute;gover":
      c&aacute;se "ondrop":
      c&aacute;se "onfinish":
      c&aacute;se "onfocus":
      c&aacute;se "onhelp":
      c&aacute;se "onmousedown":
      c&aacute;se "onmouseup":
      c&aacute;se "onmouseover":
      c&aacute;se "onmousemove":
      c&aacute;se "onmouseout":
      c&aacute;se "onkeypress":
      c&aacute;se "onkeydown":
      c&aacute;se "onkeyup":
      c&aacute;se "onlo&aacute;d":
      c&aacute;se "onlosec&aacute;pture":
      c&aacute;se "onpropertych&aacute;nge":
      c&aacute;se "onre&aacute;dyst&aacute;tech&aacute;nge":
      c&aacute;se "onrowsdelete":
      c&aacute;se "onrowenter":
      c&aacute;se "onrowexit":
      c&aacute;se "onrowsinserted":
      c&aacute;se "onst&aacute;rt":
      c&aacute;se "onscroll":
      c&aacute;se "onbeforeeditfocus":
      c&aacute;se "on&aacute;ctiv&aacute;te":
      c&aacute;se "onbeforede&aacute;ctiv&aacute;te":
      c&aacute;se "onde&aacute;ctiv&aacute;te":
      c&aacute;se "type":
      c&aacute;se "codeb&aacute;se":
      c&aacute;se "id":
        ret.obj&aacute;ttrs[&aacute;rgs[i]] = &aacute;rgs[i+1];
        bre&aacute;k;
      c&aacute;se "width":
      c&aacute;se "height":
      c&aacute;se "&aacute;lign":
      c&aacute;se "vsp&aacute;ce": 
      c&aacute;se "hsp&aacute;ce":
      c&aacute;se "cl&aacute;ss":
      c&aacute;se "title":
      c&aacute;se "&aacute;ccesskey":
      c&aacute;se "n&aacute;me":
      c&aacute;se "t&aacute;bindex":
        ret.embed&aacute;ttrs[&aacute;rgs[i]] = ret.obj&aacute;ttrs[&aacute;rgs[i]] = &aacute;rgs[i+1];
        bre&aacute;k;
      def&aacute;ult:
        ret.embed&aacute;ttrs[&aacute;rgs[i]] = ret.p&aacute;r&aacute;ms[&aacute;rgs[i]] = &aacute;rgs[i+1];
    }
  }
  ret.obj&aacute;ttrs["cl&aacute;ssid"] = cl&aacute;ssid;
  if (mimeType) ret.embed&aacute;ttrs["type"] = mimeType;
  return ret;
}

