var requiredMajorVersion = 8;
var requiredMinorVersion = 0;
var requiredRevision = 0;
var jsVersion = 1.0;
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;
jsVersion = 1.1;


function SWFParam(
  sName
, sValu
)
{
	this.msName	= sName;
	this.msValu	= sValu;
}

function SWFObject(
  sUrl
, sName
, vWdth
, vHgt
, sBgColr
, sAltImagUrl
)
{
	this.mParm			= new Array();

	this.msUrl			= sUrl;
	this.msName			= sName;
	this.mWdth			= vWdth;
	this.mHgt			= vHgt;
	this.msBgColr		= sBgColr;
	this.msAltImagUrl	= sAltImagUrl;

	this.mbOk			= this.DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
}

SWFObject.prototype.addParameter = function(
  sName
, sValu
)
{
	this.mParm[ this.mParm.length ] = new SWFParam( sName , sValu );
}

SWFObject.prototype.getParametersStringEmbed = function()
{
	var sHtml = new String();

	for( var i = 0; i <	this.mParm.length; i++ )
	{
		sHtml += ' ' + this.mParm[ i ].msName + '="' + this.mParm[ i ].msValu + '"';
	}

	return sHtml;
}

SWFObject.prototype.getParametersStringParam = function()
{
	var sHtml = new String();

	for( var i = 0; i <	this.mParm.length; i++ )
	{
		sHtml += '<param name="' + this.mParm[ i ].msName + '"	value="' + this.mParm[ i ].msValu	+ '" />'
	}

	return sHtml;
}


SWFObject.prototype.write = function(
  sId
)
{
	var sHtml	= new String();
	var oCont	= document.getElementById( sId );

	if( ! this.mbOk )
	{
		sHtml += '<img src="' + this.msAltImagUrl + '" border="0">';

		oCont.innerHTML = sHtml;

		return;
	}

	sHtml	+= '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="' + this.mWdth + '" height="' + this.mHgt + '" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">'
		     + '<param name="movie"		value="' + this.msUrl		+ '" />'
		     + '<param name="bgcolor"	value="' + this.msBgColr	+ '" />'
			 + this.getParametersStringParam()
		     	 + '<embed src				="' + this.msUrl 	+ '" '
		     	 	+ ' bgcolor				="' + this.msBgColr + '" '
		     	 	+ ' width				="' + this.mWdth 	+ '" '
		     	 	+ ' height				="' + this.mHgt		+ '" '
		     	 	+ ' name				="' + this.msName	+ '" '
			 		+ this.getParametersStringEmbed()
		     	 	+ ' align				="middle"'
		     	 	+ ' play				="true"'
		     	 	+ ' loop				="false"'
		     	 	+ ' type				="application/x-shockwave-flash"'
		     	 	+ ' allowScriptAccess	="sameDomain"'
		     	 	+ ' pluginspage			="http://www.macromedia.com/go/getflashplayer">'
		     	 + '<\/embed>'
		     + '<\/object>'
		     ;

	oCont.innerHTML = sHtml.replace( /\s+/g , " " );

	return;
}



SWFObject.prototype.JSGetSwfVer = function(
  i
)
{
	var vVrsn = null;

	// NS/Opera version >= 3 check for Flash plugin in plugin array
	if( ( navigator.plugins != null		) &&
		( navigator.plugins.length > 0	) )
	{
		if( ( navigator.plugins[ "Shockwave Flash 2.0" ]	) ||
			( navigator.plugins[ "Shockwave Flash" ]		) )
		{
			var sVrsn	= navigator.plugins[ "Shockwave Flash 2.0"		] ? " 2.0" : "";
      		var sDesc	= navigator.plugins[ "Shockwave Flash" + sVrsn	].description;

			var aDesc = sDesc.split( " " );

			var aTempMajr = aDesc[ 2 ].split( "." );
			var sTempMinr = null;

			var vVrsnMajr = aTempMajr[ 0 ];
			var vVrsnMinr = aTempMajr[ 1 ];

			if( aDesc[ 3 ] != "" )
			{
				sTempMinr = aDesc[ 3 ].split( "r" );
			}
			else
			{
				sTempMinr = aDesc[ 4 ].split( "r" );
			}

      		var vVrsnRvsn = sTempMinr[ 1 ] > 0 ? sTempMinr[ 1 ] : 0;

            vVrsn = vVrsnMajr + "." + vVrsnMinr + "." + vVrsnRvsn;
      	}
      	else
      	{
			vVrsn = -1;
		}
	}
	// MSN/WebTV 2.6 supports Flash 4
	else
	if( navigator.userAgent.toLowerCase().indexOf( "webtv/2.6" ) != -1 )
	{
		vVrsn = 4;
	}
	// WebTV 2.5 supports Flash 3
	else
	if( navigator.userAgent.toLowerCase().indexOf( "webtv/2.5" ) != -1 )
	{
		vVrsn = 3;
	}
	// older WebTV supports Flash 2
	else
	if( navigator.userAgent.toLowerCase().indexOf( "webtv" ) != -1 )
	{
		vVrsn = 2;
	}
	// Can't detect in all other cases
	else
	{

		vVrsn = -1;
	}

	return vVrsn;
}
// If called with no parameters this function returns a floating point value
// which should be the version of the Flash Player or 0.0
// ex: Flash Player 7r14 returns 7.14
// If called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available

SWFObject.prototype.DetectFlashVer = function(
  reqMajorVer
, reqMinorVer
, reqRevision
)
{
 	reqVer = parseFloat( reqMajorVer + "." + reqRevision );

   	// loop backwards through the versions until we find the newest version
	for( var i = 25; i > 0; i-- )
	{
		if( isIE && isWin && ! isOpera )
		{
			//versionStr = VBGetSwfVer( i );
			versionStr = this.JSGetSwfVer1( i );
		}
		else
		{
			versionStr = this.JSGetSwfVer( i );
		}

		if( versionStr == -1 )
		{
			return false;
		}
		else
		if( versionStr != 0 )
		{
			versionArray      = versionStr.split(".");

			vVrsnMajr      = versionArray[0];
			vVrsnMinr      = versionArray[1];
			versionRevision   = versionArray[2];

			versionString     = vVrsnMajr + "." + versionRevision;   // 7.0r24 == 7.24
			versionNum        = parseFloat(versionString);

        	// is the major.revision >= requested major.revision AND the minor version >= requested minor
			if( ( vVrsnMajr > reqMajorVer ) &&
				( versionNum >= reqVer ) )
			{
				return true;
			}
			else
			{
				return ((versionNum >= reqVer && vVrsnMinr >= reqMinorVer) ? true : false );
			}
		}
	}

	return (reqVer ? false : 0.0);
}



SWFObject.prototype.JSGetSwfVer1 = function(
  i
)
{
	var playerVersion = new PlayerVersion([0,0,0]);
		try
		{
			var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		}
		catch( e )
		{
			try
			{
				var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
				playerVersion = new PlayerVersion([6,0,21]);
				axo.AllowScriptAccess = "always"; // error if player version < 6.0.47 (thanks to Michael Williams @ Adobe for this code)
			}
			catch( e )
			{
				if (playerVersion.major == 6)
				{
					return playerVersion;
				}
			}
			try
			{
				axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			}
			catch(e)
			{}
		}

		if (axo != null)
		{
			playerVersion = new PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));
		}

	return playerVersion.major + "." + playerVersion.minor + "." + playerVersion.rev;

   //	vVrsnMajr + "." + vVrsnMinr + "." + vVrsnRvsn
}


function PlayerVersion(arrVersion)
{
	this.major = arrVersion[0] != null ? parseInt(arrVersion[0]) : 0;
	this.minor = arrVersion[1] != null ? parseInt(arrVersion[1]) : 0;
	this.rev = arrVersion[2] != null ? parseInt(arrVersion[2]) : 0;
}


