/*	Unobtrusive Flash Objects (UFO) v1.01 <http://www.bobbyvandersluis.com/ufo/>
	Copyright 2005 Bobby van der Sluis
	This software is licensed under the CC-GNU LGPL <http://creativecommons.org/licenses/LGPL/2.1/>
	------------------------------
	v1.01 Fixed bug: Added missing quotes around attribute values
*/

var agt=navigator.userAgent.toLowerCase();
if (agt.indexOf('mac')==-1||agt.indexOf("msie")==-1){


	var UFO = {
		requiredAttrParams: ["movie", "width", "height", "majorversion", "build"],
		optionalAttrEmb: ["name", "swliveconnect", "align"],
		optionalAttrObj: ["id", "align"],
		optionalAttrParams: ["play", "loop", "menu", "quality", "scale", "salign", "wmode", "bgcolor", "base", "flashvars", "devicefont", "allowscriptaccess"],
		
		create: function(FO, id) {
			UFO.setElementDisplay(id, "none");
			var loadfn = function() {
				if (UFO.hasRequiredAttrParams(FO) && UFO.hasFlashVersion(FO.majorversion, FO.build)) {
					UFO.writeFlashObject(FO, id);
				}
				UFO.setElementDisplay(id, "block");
			};
			UFO.addLoadEvent(loadfn);
		},
	
		setElementDisplay: function(id, display) {
			if (!document.createElement || !document.getElementsByTagName) return;
			var selector = "#" + id;
			var property = "display: " + display;
			var style = document.createElement("style");
			style.setAttribute("type", "text/css");
			style.setAttribute("media", "screen");
			document.getElementsByTagName("head")[0].appendChild(style);
			var agt = navigator.userAgent.toLowerCase(); 
			var is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
			var is_win = (agt.indexOf("win") != -1);
			if (!(is_ie && is_win)) {
				var styles = document.getElementsByTagName("style");
				if (styles && styles.length > 0 && document.createTextNode) {
					var lastStyle = styles[styles.length - 1];
					var rule = document.createTextNode(selector + " {" + property + ";}");
					lastStyle.appendChild(rule); // Hopelessly bugs in IE/Win
				}
			}
			else if (document.styleSheets && document.styleSheets.length > 0) {
				var stylesheet = document.styleSheets[document.styleSheets.length - 1];
				if (typeof stylesheet.addRule == "object"){ // This test bugs in IE/Mac and Safari
					stylesheet.addRule(selector, property);
				}
			}
		},
	
		hasRequiredAttrParams: function(FO) {
			for (var i = 0; i < UFO.requiredAttrParams.length; i++) {
				if (typeof FO[UFO.requiredAttrParams[i]] == "undefined") return false;
			}
			return true;
		},
		
		hasFlashVersion: function(majorVersion, build) {
			var reqVersion = parseFloat(majorVersion + "." + build);
			if (navigator.plugins && typeof navigator.plugins["Shockwave Flash"] == "object") {
				var desc = navigator.plugins["Shockwave Flash"].description;
				if (desc) {
					var descArr = desc.split(" ");
					var majorArr = descArr[2].split(".");
					var major = majorArr[0];
					if (descArr[3] != "") {
						var minorArr = descArr[3].split("r");
					}
					else {
						var minorArr = descArr[4].split("r");
					}
					var minor = minorArr[1] > 0 ? minorArr[1] : 0;
					var flashVersion = parseFloat(major + "." + minor);
				}
			}
			else if (window.ActiveXObject) {
				try {
					var flash = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
					var desc = flash.GetVariable("$version");
					if (desc) {
						var descArr = desc.split(" ");
						var versionArr = descArr[1].split(",");        
						var major = versionArr[0];
						var minor = versionArr[2];
						var flashVersion = parseFloat(major + "." + minor);
					}
				}
				catch(e) {}
			}
			if (typeof flashVersion != "undefined"){
				return (flashVersion >= reqVersion ? true : false); 
			}
			return false;
		},
	
		writeFlashObject: function(FO, id) {
			if (!document.getElementById) return;
			var el = document.getElementById(id);
			if (typeof el.innerHTML == "undefined") return;
			var embHTML = "";
			var objAttrHTML = "";
			var objParamHTML = "";
			for (var i = 0; i < UFO.optionalAttrEmb.length; i++) {
				if (typeof FO[UFO.optionalAttrEmb[i]] != "undefined" && FO[UFO.optionalAttrEmb[i]] != "") {
					embHTML += ' ' + UFO.optionalAttrEmb[i] + '="' + FO[UFO.optionalAttrEmb[i]] + '"';
				}
			}
			for (var i = 0; i < UFO.optionalAttrObj.length; i++) {
				if (typeof FO[UFO.optionalAttrObj[i]] != "undefined" && FO[UFO.optionalAttrObj[i]] != "") {
					objAttrHTML += ' ' + UFO.optionalAttrObj[i] + '="' + FO[UFO.optionalAttrObj[i]] + '"';
				}
			}
			for (var i = 0; i < UFO.optionalAttrParams.length; i++) {
				if (typeof FO[UFO.optionalAttrParams[i]] != "undefined" && FO[UFO.optionalAttrParams[i]] != "") {
					embHTML += ' ' + UFO.optionalAttrParams[i] + '="' + FO[UFO.optionalAttrParams[i]] + '"';
					objParamHTML += '<param name="' + UFO.optionalAttrParams[i] + '" value="' + FO[UFO.optionalAttrParams[i]] + '" />';
				}
			}
			if (navigator.plugins && typeof navigator.plugins["Shockwave Flash"] == "object") {
				var foHTML = '<embed type="application/x-shockwave-flash" src="' + FO.movie + '" width="' + FO.width + '" height="' + FO.height + '" pluginspage="http://www.macromedia.com/go/getflashplayer"';
				foHTML += embHTML;
				foHTML += '></embed>';
			}
			else {
				var foHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' + objAttrHTML + ' width="' + FO.width + '" height="' + FO.height + '" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=' + FO.majorversion + ',0,' + FO.build + ',0">';
				foHTML += '<param name="movie" value="' + FO.movie + '" />';
				foHTML += objParamHTML;
				foHTML += '</object>';
			}
			el.innerHTML = foHTML;
		},
	
		addLoadEvent: function(fn) {
			if (window.addEventListener) {
				window.addEventListener("load", fn, false);
			}
			else if (document.addEventListener) {
				document.addEventListener("load", fn, false);
			}
			else if (window.attachEvent) {
				window.attachEvent("onload", fn);
			}
			else if (typeof window.onload == "function") {
				var fnOld = window.onload;
				window.onload = function(){
					fnOld();
					fn();
				};
			}
			else {
				window.onload = fn;
			}
		}
	};

}
else {

}

