function FlashLibrary(){
	var t = this;
	var activeX = false;
	t.ieAutoInstall = true;
	t.isSecure = false;
	
	t.versionStr = "6,0,0,0";
	
	t.defaultAlt = '<div align="center"><a href="https://www.macromedia.com/go/getflashplayer/" class="base-link-secondary base-anchor-img-swap" target="_blank"><img src="/images/global/flashplayer_required.gif" width="115" height="90" border="0"><br><img src="/images/global/common/single_arrow_0.gif" border="0" alt="" />click here to install</a><br>or<br>refresh to try again</div>';
	
	t.showPopup = function(verStr){
		if(!verStr) verStr = t.versionStr;
		if(base.winOpen){
			base.winOpen("/global/content/pop_flashinstall.jhtml?version=" + verStr,"installFlash",700,280,0,0,"status=0,resizable=0,scrollbars=0");
		}else{
			window.open("/global/content/pop_flashinstall.jhtml?version=" + verStr,"installFlash",700,280,0,0,"status=0,resizable=0,scrollbars=0");
		}
	}
	
	t.hasVersion = function(ver){ //ver can either be single int or full version: eg 6.0.79
		t.swf = false;
		var major;
		var minor;
		var testFullVersion = false;
		if(!ver) ver = 0;
		if(ver.length > 1){
			ver = ver.split(".");
			major = ver[1];		if(!major) major = 0;
			minor = ver[2];		if(!minor) minor = 0;
			ver = ver[0];		if(!ver) ver = 0;
			
			t.versionStr = ver + "," + major + "," + minor + ",0";
			testFullVersion = true;
		}else if(ver != 0){
			t.versionStr = ver + ",0,0,0";
		}
		var n = navigator;
		if(n.plugins && n.plugins.length > 0){
			var m,tp,d,pluginVer;
			m = n.mimeTypes;
			tp = 'application/x-shockwave-flash';
			if(m && m[tp] && m[tp].enabledPlugin && m[tp].enabledPlugin.description){
				d = m[tp].enabledPlugin.description; // Shockwave Flash 7.0 r19
				pluginVer = d.charAt(d.indexOf('.')-1); // 7
				if(!testFullVersion){
					t.swf = (pluginVer >= ver) ? true : false;
				}else{
					var pluginMajor = d.charAt(d.indexOf('.')+1); //0
					var pluginMinor = d.substr(-2); //19
					//document.write(ver + "," + major + "," + minor);
					//check version
					if(pluginVer < ver){
						t.swf = false;
					}else if(pluginVer > ver){
						//no need to check major or minor
						t.swf = true;
					}else{
						if(pluginMajor < major){
							t.swf = false;
						}else if(pluginMajor > major){
							//no need to check minor
							t.swf = true;
						}else{
							if(pluginMinor >= minor){
								t.swf = true;
							}else{
								t.swf = false;
							}
						}
					}
				}
			}
			
		}else if(n.appVersion.indexOf("Mac") == -1 && window.execScript){
			for(var i=ver; i<=8&&i!=1&&t.swf!=true; i++){
				execScript('on error resume next: flash.swf=IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash'+((i==0)?'':'.'+i)+'"))','VBScript');
			}
			activeX = true;
		}else{
			t.swf = false;
		}
		return t.swf;
	}
	
	t.getPluginTag = function(swfFile,width,height,bgcolor,ver,altFormat,params){
		//ver is either single int or full version name, eg: 6.0 r79
		var s = '';
		var win = (navigator.appVersion.toLowerCase().indexOf("win")!=-1);
		var ie = (navigator.appName=="Microsoft Internet Explorer");
		if(t.hasVersion(ver) && swfFile || win && ie && swfFile && t.ieAutoInstall){
			var additionalParams = '';
			var id = "";
			if(params && params.length>0){
				var pArray = params.split(",");
				for(var i=0; i<pArray.length; i++){
					var ta = pArray[i].substr(0,pArray[i].indexOf('='));
					var v = pArray[i].substr(pArray[i].indexOf('=')+1,pArray[i].length);
					if(ta == "name" || ta == "id")id = 'id="' + v + '"';
					additionalParams += (activeX)?'\t<param name="' + ta + '" value="' + v + '" />\n': ' '+ ta + '="' + v + '"';
				}
			}
			
			//check is width and height are %, if is int add quotes
			if(width.toString().indexOf("%") == -1) width = '"' + width + '"';
			if(height.toString().indexOf("%") == -1) height = '"' + height + '"';
			
			if(activeX){
				if(t.isSecure){
					s = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="https://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=' + t.versionStr + '" ' + id + ' width=' + width + ' height=' + height + '>\n';
				}else{
					s = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="https://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=' + t.versionStr + '" ' + id + ' width=' + width + ' height=' + height + '>\n';
				}
				s += '\t<param name="movie" value="'+swfFile+'" />\n';
				s += '\t<param name="quality" value="high" />\n';
				s += '\t<param name="menu" value="false" />\n';
				s += '\t<param name="bgcolor" value="'+bgcolor+'" />\n';
				s += additionalParams;
				s += '</object>\n\n';
				return s;
			}else{
				if(t.isSecure){
					s = '<embed src="'+swfFile+'" quality="high" type="application/x-shockwave-flash" swLiveConnect=true pluginspage="https://www.macromedia.com/go/getflashplayer" width=' + width + ' height=' + height + ' bgcolor="'+bgcolor+'"'+additionalParams+'></embed>\n';
				}else{
					s = '<embed src="'+swfFile+'" quality="high" type="application/x-shockwave-flash" swLiveConnect=true pluginspage="https://www.macromedia.com/go/getflashplayer" width=' + width + ' height=' + height + ' bgcolor="'+bgcolor+'"'+additionalParams+'></embed>\n';
				}
				return s;
			}
		}else{
			if(!altFormat || altFormat == ""){
				t.showPopup();
				altFormat = t.defaultAlt;
			}
			return altFormat;
		}
		
	}
	
	//calls getPluginTag but writes output from external to fix ie future plugin error
	t.embedMovie = function(swfFile,width,height,bgcolor,ver,altFormat,params){
		document.write(flash.getPluginTag(swfFile,width,height,bgcolor,ver,altFormat,params));
	}
}
var flash = new FlashLibrary();