// Check for Flash plugin and identify version
flash = new FlashConfig();

function FlashConfig() {
	this.forcehide = false;
	this.movies = new Array();
	this.embedMode = (navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length) ? true : false; // netscape plugin architecture (NS3+, Mozilla, Opera3+, IE5+ Mac)
	this.version = 0;
	this.minor = 0;
	this.rev = 0;

	this.setFlashVer = function(verArray) {
		this.version = parseInt(verArray[0]) || 0;
		this.minor = parseInt(verArray[1]) || 0;
		this.rev = parseInt(verArray[2]) || 0;
	}
	
	if(this.embedMode) {
		var sf = navigator.plugins["Shockwave Flash"];
		if(sf && sf.description) {
			this.setFlashVer(sf.description.replace(/([a-z]|[A-Z]|\s)+/, "").replace(/(\s+r|\s+b[0-9]+)/, ".").split("."));
		}
	}
	else if(window.ActiveXObject) { // IE4+ Win32
		try {
			var aObj = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			this.setFlashVer(aObj.GetVariable("$version").split(" ")[1].split(","));
		} catch (e) {}
	}
}

function FlashObj(src,width,height) {
	flash.movies[flash.movies.length] = this;
	this.num = flash.movies.length-1;
	this.id = "flashobj_" + this.num;
	this.src = src;
	this.width = width;
	this.height = height;
	this.wmode = "transparent";
	this.params = new Array();

	this.addParam = function(name,value) {
		this.params[this.params.length] = { key:name, val:value };
	}
	
	this.setOpaque = function(wmode) {
		this.wmode = "opaque";
	}
	
	this.setForceHide = function() {
		flash.forcehide = true;
		this.wmode = "window";
	}

	// set unchangable params
	this.addParam("quality","high")
	this.addParam("menu","false")
	this.addParam("allowScriptAccess","sameDomain")
	
	this.getHTML = function() {
		// set wmode
		this.addParam("wmode",this.wmode);
		
		// create html
		var flashHTML = '<div id="flash_'+this.num+'" class="flashobj" style="width:'+this.width + ((this.width.toString().indexOf("%") > -1) ? "" : "px") + ';height:'+this.height+((this.height.toString().indexOf("%") > -1) ? "" : "px")+'; overflow:hidden;">';
    	if(flash.embedMode) {
	        flashHTML += '<embed type="application/x-shockwave-flash" pluginspace="'+location.protocol+'//www.macromedia.com/go/getflashplayer" src="'+ this.src +'" width="'+ ((this.width.toString().indexOf("%") > -1) ? "100%" : this.width) +'" height="'+ ((this.height.toString().indexOf("%") > -1) ? "100%" : this.height) +'" id="'+ this.id + '" name="'+ this.id +'"';
	        for(var i = this.params.length-1; i > -1; i--) {
				flashHTML += ' ' + this.params[i].key + '="' + this.params[i].val + '"'
			}
	        flashHTML += '></embed>';
		}
		else {
	        flashHTML += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="'+location.protocol+'//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="'+ ((this.width.toString().indexOf("%") > -1) ? "100%" : this.width) +'" height="'+ ((this.height.toString().indexOf("%") > -1) ? "100%" : this.height) +'" id="'+ this.id +'">';
	        flashHTML += '<param name="movie" value="' + this.src + '" />';
	        for(var i = this.params.length-1; i > -1; i--) {
				flashHTML += '<param name="' + this.params[i].key + '" value="' + this.params[i].val + '" />'
			}
	        flashHTML += '</object>';
		}
		return flashHTML += "</div>";
	}
	
	this.write = function(targetID) {
		if(flash.version >= 6) document.getElementById(targetID).innerHTML = this.getHTML(); // version 6 is min for Novell site
	}
	
}