

var FlashSnifferURL = "detectFlash.swf";




var latestPluginRevision = new Object();
latestPluginRevision["5.0"] = new Object();
latestPluginRevision["4.0"] = new Object();
latestPluginRevision["3.0"] = new Object();
latestPluginRevision["2.0"] = new Object();



latestPluginRevision["5.0"]["Windows"] = 30;
latestPluginRevision["5.0"]["Macintosh"] = 30;

latestPluginRevision["4.0"]["Windows"] = 28;
latestPluginRevision["4.0"]["Macintosh"] = 27;
latestPluginRevision["4.0"]["Unix"] = 12;

latestPluginRevision["3.0"]["Windows"] = 10;
latestPluginRevision["3.0"]["Macintosh"] = 10;

latestPluginRevision["2.0"]["Windows"] = 11;
latestPluginRevision["2.0"]["Macintosh"] = 11;




var FlashControlInstalled;	
var FlashControlVersion;	

function FlashInfo()
{
    if (navigator.plugins && navigator.plugins.length > 0)
    {
	this.implementation = "Plug-in";
	this.autoInstallable = false;

	if (navigator.plugins["Shockwave Flash"])
	{
	    this.installed = true;

	  

	    var words =
		navigator.plugins["Shockwave Flash"].description.split(" ");

	    for (var i = 0; i < words.length; ++i)
	    {
		if (isNaN(parseInt(words[i])))
		continue;

		this.version = words[i];

		this.revision = parseInt(words[i + 1].substring(1));
	    }
	}
	else
	{
	    this.installed = false;
	}
    }
    else if (FlashControlInstalled != null)
    {
	this.implementation = "ActiveX control";
	this.installed = FlashControlInstalled;
	this.version = FlashControlVersion;
	this.autoInstallable = true;
    }
    else if (FlashDetectedSelf())
    {
	this.installed = true;
	this.implementation = "Plug-in";
	this.autoInstallable = false;
    }

    this.canPlay = FlashCanPlay;
}





var FlashPluginsPage = "http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash";

function FlashDispatch(contentURL, contentVersion, requireLatestRevision,
			  upgradeURL, install, installURL, altURL,
			  overridePluginsPage)
{
    if (overridePluginsPage == null)
    {
	alert("ERROR: FlashDispatch() called with too few arguments.");
	return;
    }


    if (overridePluginsPage && installURL.substring(0, 7) != "http://")
    {
	alert("ERROR: FlashDispatch() called with relative URL" +
	    " for PLUGINSPAGE (" + installURL + ")");

	return;
    }


    var player = new FlashInfo();

    if (player.installed == null)
    {
	var sniffer =
	    "<EMBED HIDDEN=\"true\" TYPE=\"application/x-shockwave-flash\"" +
		  " WIDTH=\"18\" HEIGHT=\"18\"" +
		  " BGCOLOR=\"" + document.bgcolor + "\"" +
		  " SRC=\"" + FlashSnifferURL +
			"?contentURL=" + contentURL + "?" +
			"&contentVersion=" + contentVersion +
			"&requireLatestRevision=" + requireLatestRevision +
			"&latestRevision=" +
			    FlashLatestPluginRevision(contentVersion) +
			"&upgradeURL=" + upgradeURL +
			"\"" +
		  " LOOP=\"false\" MENU=\"false\"" +
		  " PLUGINSPAGE=\"" +
		    (overridePluginsPage ? installURL : FlashPluginsPage) +
		    "\"" +
	    ">" +
	    "</EMBED>";

	document.open();
	document.write("<HTML><HEAD><TITLE>");
	document.write("Checking for the Flash Player");
	document.write("</TITLE></HEAD>");
	document.write("<BODY BGCOLOR=\"" + document.bgcolor + "\">");
	document.write(sniffer);
	document.write("</BODY>");
	document.write("</HTML>");
	document.close();
    }
    else if (player.installed)
    {
	if (player.canPlay(contentVersion, requireLatestRevision))
	{
	    location = contentURL;
	}
	else
	{
	    location = player.autoInstallable ? contentURL : upgradeURL;
	}
    }
    else if (install)
    {
	location = player.autoInstallable ? contentURL : installURL;
    }
    else
    {
	location = altURL;
    }
}




function FlashRememberIfDetectedSelf(count, units)
{


    if (document.location.search.indexOf("?") != -1)
    {
	if (!count) count = 60;
	if (!units) units = "days";

	var msecs = new Object();

	msecs.minute = msecs.minutes = 60000;
	msecs.hour = msecs.hours = 60 * msecs.minute;
	msecs.day = msecs.days = 24 * msecs.hour;

	var expires = new Date();

	expires.setTime(expires.getTime() + count * msecs[units]);

	document.cookie =
	    'FlashDetectedSelf=true ; expires=' + expires.toGMTString();
    }
}



function FlashDemur(count, units)
{
    if (!count) count = 60;
    if (!units) units = "days";

    var msecs = new Object();

    msecs.minute = msecs.minutes = 60000;
    msecs.hour = msecs.hours = 60 * msecs.minute;
    msecs.day = msecs.days = 24 * msecs.hour;

    var expires = new Date();

    expires.setTime(expires.getTime() + count * msecs[units]);

    document.cookie =
	'FlashUserDemurred=true ; expires=' + expires.toGMTString();


    if (!FlashUserDemurred())
    {
	alert("Your browser must accept cookies in order to " +
	      "save this information.  Try changing your preferences.");

	return false;
    }
    else
	return true;
}




function FlashUserDemurred()
{
    return (document.cookie.indexOf("FlashUserDemurred") != -1);
}



function FlashLatestPluginRevision(playerVersion)
{
    var latestRevision;
    var platform;

    if (navigator.appVersion.indexOf("Win") != -1)
	platform = "Windows";
    else if (navigator.appVersion.indexOf("Macintosh") != -1)
	platform = "Macintosh";
    else if (navigator.appVersion.indexOf("X11") != -1)
	platform = "Unix";

    latestRevision = latestPluginRevision[playerVersion][platform];

    return latestRevision;
}




function FlashCanPlay(contentVersion, requireLatestRevision)
{
    var canPlay;

    if (this.version)
    {
	canPlay = (parseInt(contentVersion) <= this.version);

	if (requireLatestRevision)
	{
	    if (this.revision &&
		this.revision < FlashLatestPluginRevision(this.version))
	    {
		canPlay = false;
	    }
	}
    }
    else
    {
	canPlay = FlashDetectedSelf();
    }

    return canPlay;
}



function FlashDetectedSelf()
{
    return (document.cookie.indexOf("FlashDetectedSelf") != -1);
}
