function CFlashGenerator()
{
this.transparent = false;
this.title = " - Flash Player Installation";
this.installer = null;
this.postInstallUrl = null;
this.dlFlashText = '[Untranslated] ^GetFlash^';
this.installWidth = null;
this.installHeight = null;
this.InitInstaller = function(src, postInstallUrl, dlFlashText, width, height)
{
this.installer = src;
if (postInstallUrl)
this.postInstallUrl = postInstallUrl;
if (dlFlashText)
this.dlFlashText = dlFlashText;
this.installWidth = width;
this.installHeight = height;
}
this.DetectBadFlash = function()
{
var vs = GetSwfVer();
if (vs < 0)
return false;
var va = isIE && isWin && !isOpera ? vs.split(" ")[1].split(",") : vs.split(".");
if (va[0]=="10" && va[1]=="0" && va[2]=="32")
return true;
return false;
}
this.NeedsInstall = function()
{
return !DetectFlashVer(9, 0, 28) || this.DetectBadFlash();
}
this.Install = function(bgcolor)
{
this.Run(null, null, bgcolor);
}
this.Run = function(src, app, bgcolor)
{
var rval = false;
var args;
if (this.NeedsInstall())
{
if (DetectFlashVer(6, 0, 65) && this.installer)
{
var type = (isIE == true) ? "ActiveX" : "PlugIn";
var redirectURL = this.postInstallUrl ? this.postInstallUrl : window.location;
redirectURL = window.encodeURIComponent ? encodeURIComponent(redirectURL) : escape(redirectURL);
document.title = document.title.slice(0, 47) + this.title;
var title = document.title;
args = new Array(
"src", this.installer,
"FlashVars", "MMredirectURL="+redirectURL+"&MMplayerType="+type+"&MMdoctitle="+title
);
}
else
{
var linkCaret = /\^([^\^]*)\^/;
var size = this.installWidth ? ';width:'+this.installWidth+';height:'+this.installHeight : '';
document.write('<div style="background-color:'+bgcolor+size+';font-weight:bold"><div style="padding:20px 20px 20px 20px">' + this.dlFlashText.replace(linkCaret, '<a href="http://www.adobe.com/go/getflash/" onfocus="blur()">$1</a>') + '</div></div>');
}
}
else
{
if (src)
{
args = new Array("src", src);
if (this.transparent)
{
args.push("wmode");
args.push("transparent");
}
}
rval = true;
}
if (args)
{
args.push("id"); args.push(app);
args.push("name"); args.push(app);
args.push("bgcolor"); args.push(bgcolor);
args.push("width"); args.push("100%");
args.push("height"); args.push("100%");
args.push("align"); args.push("middle");
args.push("quality"); args.push("high");
args.push("allowScriptAccess"); args.push("sameDomain");
args.push("type"); args.push("application/x-shockwave-flash");
args.push("pluginspage"); args.push("http://www.adobe.com/go/getflashplayer");
var ret = AC_GetArgs(args, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000", "application/x-shockwave-flash");
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
return rval;
}
}
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 ControlVersion()
{
var version;
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 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"));
}
}
var 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 = ControlVersion();
}	
return flashVer;
}
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
versionStr = GetSwfVer();
if (versionStr == -1 ) {
return false;
} else if (versionStr != 0) {
if(isIE && isWin && !isOpera) {
tempArray         = versionStr.split(" "); 	tempString        = tempArray[1];			
versionArray      = tempString.split(",");	} else {
versionArray      = versionStr.split(".");
}
var versionMajor      = versionArray[0];
var versionMinor      = versionArray[1];
var versionRevision   = versionArray[2];
if (versionMajor > parseFloat(reqMajorVer)) {
return true;
} else if (versionMajor == parseFloat(reqMajorVer)) {
if (versionMinor > parseFloat(reqMinorVer))
return true;
else if (versionMinor == parseFloat(reqMinorVer)) {
if (versionRevision >= parseFloat(reqRevision))
return true;
}
}
return false;
}
}
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 = '';
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);
}
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_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 "id":
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;
}


