function Flash( name, flashSrc, width, height, bgcolor, noflashHtml, reqVer ){
	this.name = name;
	this.flashSrc = flashSrc;
	this.width = width;
	this.height = height;
	this.bgcolor = this.bgcolor = (bgcolor) ? bgcolor : 'ffffff';
	this.noflashHtml = (noflashHtml) ? noflashHtml : '';
	this.reqVer = (reqVer) ? reqVer : 4;
	Flash[ this.name ] = this;
}

// global vars
var flash2Installed = false;		// boolean. true if flash 2 is installed
var flash3Installed = false;		// boolean. true if flash 3 is installed
var flash4Installed = false;		// boolean. true if flash 4 is installed
var flash5Installed = false;		// boolean. true if flash 5 is installed
var flash6Installed = false;		// boolean. true if flash 6 is installed
var maxVersion = 6;					// highest version we can actually detect
var actualVersion = 0;				// version the user really has
var hasRightVersion = false;		// boolean. true if it's safe to embed the flash movie in the page

// ActiveX object detect for Windows IE
if(is.ie && is.win){
	document.write('<SCR' + 'IPT LANGUAGE=VBScript\> \n');
	document.write('on error resume next \n');
	document.write('flash2Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.2"))) \n');
	document.write('flash3Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.3"))) \n');
	document.write('flash4Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.4"))) \n');
	document.write('flash5Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.5"))) \n');
	document.write('flash6Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.6"))) \n');
	document.write('</SCR' + 'IPT\> \n'); // break up end tag so it doesn't end our script
}

Flash.prototype.getFlashVersion = function(){
	if (navigator.plugins) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var isVersion2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
			var flashDescription = navigator.plugins["Shockwave Flash" + isVersion2].description;
			var flashVersion = parseInt(flashDescription.charAt(flashDescription.indexOf(".") - 1));
			flash2Installed = flashVersion == 2;
			flash3Installed = flashVersion == 3;
			flash4Installed = flashVersion == 4;
			flash5Installed = flashVersion == 5;
			flash6Installed = flashVersion == 6;
		}
	}
	for (var i = 2; i <= maxVersion; i++) {
		if (eval("flash" + i + "Installed") == true) actualVersion = i;
	}
	if (navigator.userAgent.indexOf("WebTV") != -1) actualVersion = 2;
	return actualVersion;
}

Flash.prototype.isVersionOK = function(){
	return ( this.reqVer <= this.getFlashVersion() );
}
Flash.prototype.writeFlash = function(){
	document.write( this.getHTML() );
}
Flash.prototype.getHTML = function(){
	return ( this.isVersionOK() ) ? this.flashHTML() : this.noflashHTML();
}
Flash.prototype.flashHTML = function(){
	var html = ''
	+ '<object'
	+ ' id="' + this.name + '"'
	+ ' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" '
	+ ' width="' + this.width + '" height="' + this.height + '"'
	+ ' >'
	+ ' <param name="movie" value="' + this.flashSrc + '">'
	+ ' <param name="quality" value="high">'
	+ ' <param name="bgcolor" value="#' + this.bgcolor + '">'
	+ ' <embed pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" swLiveConnect=true'
	+ '  name="' + this.name + '" src="' + this.flashSrc + '" quality=high '
	+ '  width="' + this.width + '" height="' + this.height + '" bgcolor="#' + this.bgcolor + '"></embed></object>';
	return html;
}

Flash.prototype.noflashHTML = function(){
	var html = this.noflashHtml;
	return html;
}
