//v1.7<BR>// Flash Player Version Detection<BR>// Detect Client Browser 
type<BR>// Copyright 2005-2007 Adobe Systems Incorporated.  All rights 
reserved.<BR>var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : 
false;<BR>var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) 
? true : false;<BR>var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? 
true : false;<BR><BR>function ControlVersion()<BR>{<BR>    var version;<BR>    
var axo;<BR>    var e;<BR><BR>    // NOTE : new ActiveXObject(strFoo) throws an 
exception if strFoo isn't in the registry<BR><BR>    try {<BR>        // version 
will be set for 7.X or greater players<BR>        axo = new 
ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");<BR>        version = 
axo.GetVariable("$version");<BR>    } catch (e) {<BR>    }<BR><BR>    if 
(!version)<BR>    {<BR>        try {<BR>            // version will be set for 
6.X players only<BR>            axo = new 
ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");<BR>            <BR>            
// installed player is some revision of 6.0<BR>            // 
GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,<BR>        
    // so we have to be careful. <BR>            <BR>            // default to 
the first public version<BR>            version = "WIN 6,0,21,0";<BR><BR>        
    // throws if AllowScripAccess does not exist (introduced in 6.0r47)        
<BR>            axo.AllowScriptAccess = "always";<BR><BR>            // safe to 
call for 6.0r47 or greater<BR>            version = 
axo.GetVariable("$version");<BR><BR>        } catch (e) {<BR>        }<BR>    
}<BR><BR>    if (!version)<BR>    {<BR>        try {<BR>            // version 
will be set for 4.X or 5.X player<BR>            axo = new 
ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");<BR>            version = 
axo.GetVariable("$version");<BR>        } catch (e) {<BR>        }<BR>    
}<BR><BR>    if (!version)<BR>    {<BR>        try {<BR>            // version 
will be set for 3.X player<BR>            axo = new 
ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");<BR>            version = "WIN 
3,0,18,0";<BR>        } catch (e) {<BR>        }<BR>    }<BR><BR>    if 
(!version)<BR>    {<BR>        try {<BR>            // version will be set for 
2.X player<BR>            axo = new 
ActiveXObject("ShockwaveFlash.ShockwaveFlash");<BR>            version = "WIN 
2,0,0,11";<BR>        } catch (e) {<BR>            version = -1;<BR>        
}<BR>    }<BR>    <BR>    return version;<BR>}<BR><BR>// JavaScript helper 
required to detect Flash Player PlugIn version information<BR>function 
GetSwfVer(){<BR>    // NS/Opera version &gt;= 3 check for Flash plugin in plugin 
array<BR>    var flashVer = -1;<BR>    <BR>    if (navigator.plugins != null 
&amp;&amp; navigator.plugins.length &gt; 0) {<BR>        if 
(navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave 
Flash"]) {<BR>            var swVer2 = navigator.plugins["Shockwave Flash 2.0"] 
? " 2.0" : "";<BR>            var flashDescription = 
navigator.plugins["Shockwave Flash" + swVer2].description;<BR>            var 
descArray = flashDescription.split(" ");<BR>            var tempArrayMajor = 
descArray[2].split(".");            <BR>            var versionMajor = 
tempArrayMajor[0];<BR>            var versionMinor = tempArrayMajor[1];<BR>    
        var versionRevision = descArray[3];<BR>            if (versionRevision 
== "") {<BR>                versionRevision = descArray[4];<BR>            
}<BR>            if (versionRevision[0] == "d") {<BR>                
versionRevision = versionRevision.substring(1);<BR>            } else if 
(versionRevision[0] == "r") {<BR>                versionRevision = 
versionRevision.substring(1);<BR>                if 
(versionRevision.indexOf("d") &gt; 0) {<BR>                    versionRevision = 
versionRevision.substring(0, versionRevision.indexOf("d"));<BR>                
}<BR>            }<BR>            var flashVer = versionMajor + "." + 
versionMinor + "." + versionRevision;<BR>        }<BR>    }<BR>    // MSN/WebTV 
2.6 supports Flash 4<BR>    else if 
(navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 
4;<BR>    // WebTV 2.5 supports Flash 3<BR>    else if 
(navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 
3;<BR>    // older WebTV supports Flash 2<BR>    else if 
(navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;<BR>    
else if ( isIE &amp;&amp; isWin &amp;&amp; !isOpera ) {<BR>        flashVer = 
ControlVersion();<BR>    }    <BR>    return flashVer;<BR>}<BR><BR>// When 
called with reqMajorVer, reqMinorVer, reqRevision returns true if that version 
or greater is available<BR>function DetectFlashVer(reqMajorVer, reqMinorVer, 
reqRevision)<BR>{<BR>    versionStr = GetSwfVer();<BR>    if (versionStr == -1 ) 
{<BR>        return false;<BR>    } else if (versionStr != 0) {<BR>        
if(isIE &amp;&amp; isWin &amp;&amp; !isOpera) {<BR>            // Given "WIN 
2,0,0,11"<BR>            tempArray         = versionStr.split(" ");     // 
["WIN", "2,0,0,11"]<BR>            tempString        = tempArray[1];            
// "2,0,0,11"<BR>            versionArray      = tempString.split(",");    // 
['2', '0', '0', '11']<BR>        } else {<BR>            versionArray      = 
versionStr.split(".");<BR>        }<BR>        var versionMajor      = 
versionArray[0];<BR>        var versionMinor      = versionArray[1];<BR>        
var versionRevision   = versionArray[2];<BR><BR>            // is the 
major.revision &gt;= requested major.revision AND the minor version &gt;= 
requested minor<BR>        if (versionMajor &gt; parseFloat(reqMajorVer)) 
{<BR>            return true;<BR>        } else if (versionMajor == 
parseFloat(reqMajorVer)) {<BR>            if (versionMinor &gt; 
parseFloat(reqMinorVer))<BR>                return true;<BR>            else if 
(versionMinor == parseFloat(reqMinorVer)) {<BR>                if 
(versionRevision &gt;= parseFloat(reqRevision))<BR>                    return 
true;<BR>            }<BR>        }<BR>        return false;<BR>    
}<BR>}<BR><BR>function AC_AddExtension(src, ext)<BR>{<BR>  if (src.indexOf('?') 
!= -1)<BR>    return src.replace(/\?/, ext+'?'); <BR>  else<BR>    return src + 
ext;<BR>}<BR><BR>function AC_Generateobj(objAttrs, params, embedAttrs) <BR>{ 
<BR>  var str = '';<BR>  if (isIE &amp;&amp; isWin &amp;&amp; !isOpera)<BR>  
{<BR>    str += '&lt;object ';<BR>    for (var i in objAttrs)<BR>    {<BR>      
str += i + '="' + objAttrs[i] + '" ';<BR>    }<BR>    str += '&gt;';<BR>    for 
(var i in params)<BR>    {<BR>      str += '&lt;param name="' + i + '" value="' 
+ params[i] + '" /&gt; ';<BR>    }<BR>    str += '&lt;/object&gt;';<BR>  }<BR>  
else<BR>  {<BR>    str += '&lt;embed ';<BR>    for (var i in embedAttrs)<BR>    
{<BR>      str += i + '="' + embedAttrs[i] + '" ';<BR>    }<BR>    str += '&gt; 
&lt;/embed&gt;';<BR>  }<BR><BR>  document.write(str);<BR>}<BR><BR>function 
AC_FL_RunContent(){<BR>  var ret = <BR>    AC_GetArgs<BR>    (  arguments, 
".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"<BR>     , 
"application/x-shockwave-flash"<BR>    );<BR>  AC_Generateobj(ret.objAttrs, 
ret.params, ret.embedAttrs);<BR>}<BR><BR>function AC_SW_RunContent(){<BR>  var 
ret = <BR>    AC_GetArgs<BR>    (  arguments, ".dcr", "src", 
"clsid:166B1BCA-3F9C-11CF-8075-444553540000"<BR>     , null<BR>    );<BR>  
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);<BR>}<BR><BR>function 
AC_GetArgs(args, ext, srcParamName, classid, mimeType){<BR>  var ret = new 
Object();<BR>  ret.embedAttrs = new Object();<BR>  ret.params = new 
Object();<BR>  ret.objAttrs = new Object();<BR>  for (var i=0; i &lt; 
args.length; i=i+2){<BR>    var currArg = args[i].toLowerCase();    <BR><BR>    
switch (currArg){    <BR>      case "classid":<BR>        break;<BR>      case 
"pluginspage":<BR>        ret.embedAttrs[args[i]] = args[i+1];<BR>        
break;<BR>      case "src":<BR>      case "movie":    <BR>        args[i+1] = 
AC_AddExtension(args[i+1], ext);<BR>        ret.embedAttrs["src"] = 
args[i+1];<BR>        ret.params[srcParamName] = args[i+1];<BR>        
break;<BR>      case "onafterupdate":<BR>      case "onbeforeupdate":<BR>      
case "onblur":<BR>      case "oncellchange":<BR>      case "onclick":<BR>      
case "ondblClick":<BR>      case "ondrag":<BR>      case "ondragend":<BR>      
case "ondragenter":<BR>      case "ondragleave":<BR>      case 
"ondragover":<BR>      case "ondrop":<BR>      case "onfinish":<BR>      case 
"onfocus":<BR>      case "onhelp":<BR>      case "onmousedown":<BR>      case 
"onmouseup":<BR>      case "onmouseover":<BR>      case "onmousemove":<BR>      
case "onmouseout":<BR>      case "onkeypress":<BR>      case 
"onkeydown":<BR>      case "onkeyup":<BR>      case "onload":<BR>      case 
"onlosecapture":<BR>      case "onpropertychange":<BR>      case 
"onreadystatechange":<BR>      case "onrowsdelete":<BR>      case 
"onrowenter":<BR>      case "onrowexit":<BR>      case 
"onrowsinserted":<BR>      case "onstart":<BR>      case "onscroll":<BR>      
case "onbeforeeditfocus":<BR>      case "onactivate":<BR>      case 
"onbeforedeactivate":<BR>      case "ondeactivate":<BR>      case 
"type":<BR>      case "codebase":<BR>      case "id":<BR>        
ret.objAttrs[args[i]] = args[i+1];<BR>        break;<BR>      case 
"width":<BR>      case "height":<BR>      case "align":<BR>      case "vspace": 
<BR>      case "hspace":<BR>      case "class":<BR>      case "title":<BR>      
case "accesskey":<BR>      case "name":<BR>      case "tabindex":<BR>        
ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];<BR>        
break;<BR>      default:<BR>        ret.embedAttrs[args[i]] = 
ret.params[args[i]] = args[i+1];<BR>    }<BR>  }<BR>  ret.objAttrs["classid"] = 
classid;<BR>  if (mimeType) ret.embedAttrs["type"] = mimeType;<BR>  return 
ret;<BR>}<BR><BR>