// Check for Flash plugin and identify version
var 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.minVersion = 6;  // version 6 is min for Novell site

	this.addParam = function(name,value) {
		var addNew = true;
		for(var i = this.params.length-1; i >= 0; i--) {
			if(this.params[i].key == name && name == "flashvars") {
				this.params[i].val += "&"+value;
				addNew = false;
			}
		}
		if(addNew) this.params[this.params.length] = { key:name, val:value };
	}
	
	this.setVersion = function(value) {
		this.minVersion = 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='+this.minVersion+',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) {
		var target = document.getElementById(targetID);
		if(flash.version >= this.minVersion) target.innerHTML = this.getHTML();
		else {
			var noFlashMsg = '<div id="flasherrormsg" style="border:1px solid #999; padding:10px; margin:0; background-color:#ffffff; text-align:center;"><p>This content requires the Macromedia Flash Player version '+this.minVersion+' or higher.<br><a href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash"><img src="https://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash Player" style="margin-top:5px;" /></a></p></div>';
			var childNodes = target.childNodes;
			var childCount = 0;
			for(var i = 0; i < childNodes.length; i++) {
				if(childNodes[i].nodeType != 3 && childNodes[i].nodeName.toLowerCase() != "script") childCount++;
			}
			if(childCount == 0) target.innerHTML = noFlashMsg; // if no alt content, write out upgrade message
		}
	}
	
}