	var UA = function()
	{
		var sUA = navigator.userAgent.toLowerCase();
		var oReturn =  {
			bIsWebKit : sUA.indexOf("applewebkit") > -1,
			bIsSafari : sUA.indexOf("safari") > -1,
			bIsKonq: navigator.product != null && navigator.product.toLowerCase().indexOf("konqueror") > -1,
			bIsOpera : sUA.indexOf("opera") > -1,
			bIsXML : document.contentType != null && document.contentType.indexOf("xml") > -1,
			bHasTransparencySupport : true,
			bUseDOM : true,
			nFlashVersion : null,
			nOperaVersion : null,
			nGeckoBuildDate : null,
			nWebKitVersion : null
		};
		
		oReturn.bIsKHTML = oReturn.bIsWebKit || oReturn.bIsKonq;
		oReturn.bIsGecko = !oReturn.bIsWebKit && navigator.product != null && navigator.product.toLowerCase() == "gecko";
		if(oReturn.bIsGecko){ oReturn.nGeckoBuildDate = new Number(sUA.match(/.*gecko\/(\d{8}).*/)[1]) };
		oReturn.bIsIE = sUA.indexOf("msie") > -1 && !oReturn.bIsOpera && !oReturn.bIsKHTML && !oReturn.bIsGecko;
		oReturn.bIsIEMac = oReturn.bIsIE && sUA.match(/.*mac.*/) != null;
		if(oReturn.bIsOpera){ oReturn.nOperaVersion = new Number(sUA.match(/.*opera(\s|\/)(\d+\.\d+)/)[2]) };
		if(oReturn.bIsIE || (oReturn.bIsOpera && oReturn.nOperaVersion < 7.6)){ oReturn.bUseDOM = false };
		if(oReturn.bIsWebKit){ oReturn.nWebKitVersion = new Number(sUA.match(/.*applewebkit\/(\d+).*/)[1]) };
		if(window.hasFlash && (!oReturn.bIsIE || oReturn.bIsIEMac)){ 
			var flashDescription = (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]).description;
			oReturn.nFlashVersion = parseInt(flashDescription.charAt(flashDescription.indexOf(".") - 1));
		};
		if(sUA.match(/.*(windows|mac).*/) == null || 
		oReturn.bIsIEMac || oReturn.bIsKonq || 
		(oReturn.bIsOpera && oReturn.nOperaVersion < 7.6) || 
		(oReturn.bIsSafari && oReturn.nFlashVersion < 7) ||
		(!oReturn.bIsSafari && oReturn.bIsWebKit && oReturn.nWebKitVersion < 124) || 
		(oReturn.bIsGecko && oReturn.nGeckoBuildDate < 20020523)){
			oReturn.bHasTransparencySupport = false;
		};

		if(!oReturn.bIsIEMac && !oReturn.bIsGecko && document.createElementNS){
			try {
				document.createElementNS("http://www.w3.org/1999/xhtml", "i").innerHTML = "";
			} catch(e){
				oReturn.bIsXML = true;
			};
		};
		
		oReturn.bUseInnerHTMLHack = oReturn.bIsKonq || (oReturn.bIsWebKit && oReturn.nWebKitVersion < 312) || oReturn.bIsIE;
		
		return oReturn;
	}();
	/*	If executed, the VBScript above checks for Flash and sets the hasFlash variable. 
		If VBScript is not supported it's value will still be undefined, so we'll run it though another test
		This will make sure even Opera identified as IE will be tested */
	var hasFlash = function()
	{
		var nRequiredVersion = 7;	
		
		if (navigator.appVersion.indexOf("MSIE") != -1 && navigator.appVersion.indexOf("Windows") > -1) {
			document.write('<script language="VBScript"\> \non error resume next \nhasFlash = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash." & ' + nRequiredVersion + '))) \n</script\> \n');
			if(window.hasFlash != null){
				return window.hasFlash;
			}
		}
		
		if (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"] && navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin) {
			var flashDescription = (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]).description;
			return parseInt(flashDescription.charAt(flashDescription.indexOf(".") - 1)) >= nRequiredVersion;
		}
		
		return false;
	}();

flash = {
	/*	IE5.x does not support document.getElementsByTagName("*")
		therefore we're falling back to element.all */
	getElementsByTagName : function(oParentNode, sTagName)
	{
		if(sTagName == "*" && oParentNode.all != null) {
			return oParentNode.all;
		}
		return oParentNode.getElementsByTagName(sTagName);
	},
	
	getElementsByClassName : function(srcElm, clName, dive)
	{
		if (document.getElementsByTagName) {
			this.srcElm = srcElm;
			this.clName = clName;
			this.dive = (dive) ? true : false;
			this.foundElements = [];
			this.allElements = this.srcElm.getElementsByTagName("*");
			
			for (var i = 0; i < this.allElements.length; i++) {
				if (this.allElements[i].className == this.clName) {
					if (this.dive) {
						if (this.allElements[i].parentNode == this.srcElm) {
							this.foundElements[this.foundElements.length] = this.allElements[i];
						}
					} else {
						this.foundElements[this.foundElements.length] = this.allElements[i];
					}
				}
			}
			return this.foundElements;
		} else {
			return [];
		}
	},
	
	getFlashMovieObject : function(movieName)
	{
		if (window.document[movieName]) {
			return window.document[movieName];
		}
		if (navigator.appName.indexOf("Microsoft Internet")==-1) {
			if (document.embeds && document.embeds[movieName])
				return document.embeds[movieName]; 
		}
		else // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
		{
			return document.getElementById(movieName);
		}
	},
	
	init : function()
	{
		myHeader = document.getElementById("flashead");
		flash.insert(myHeader, "flashmap", 464, 200);
	},
	
	createObjectParameter : function(nodeObject, sName, sValue)
	{
		var node = document.createElement("param");
		
		node.setAttribute("name", sName);	
		node.setAttribute("value", sValue);
		nodeObject.appendChild(node);
	},
	
	insert : function(myElement, myId, myWidth, myHeight)
	{
		if(!UA.bUseDOM){
			myElement.innerHTML = ["<embed type=\"application/x-shockwave-flash\" src=\"flash/"+myId+".swf"+"\" quality=\"best\" wmode=\"Transparent\" bgcolor=\"White\" width=\""+myWidth+"\" height=\""+myHeight+"\" name=\"fl"+myId+"\"></embed>"].join("");
		} else {
			if (UA.bIsOpera) {
				nodeFlash = document.createElement("object");
				flash.createObjectParameter(nodeFlash, "movie", "flash/"+myId+".swf");
				flash.createObjectParameter(nodeFlash, "quality", "best");
				flash.createObjectParameter(nodeFlash, "wmode", "Transparent");
				flash.createObjectParameter(nodeFlash, "bgcolor", "#8AB7DF");
				nodeFlash.setAttribute("type", "application/x-shockwave-flash");
				nodeFlash.style.width = myWidth+"px";
				nodeFlash.style.height = myHeight+"px";
			} else {
				nodeFlash = document.createElement("embed");
				nodeFlash.setAttribute("name", "fl"+myId);
				nodeFlash.setAttribute("src", "flash/"+myId+".swf");
				nodeFlash.setAttribute("quality", "best");
				nodeFlash.setAttribute("wmode", "Transparent");
				nodeFlash.setAttribute("bgcolor", "#8AB7DF");
				nodeFlash.setAttribute("swliveconnect", "true");
				nodeFlash.setAttribute("pluginspace", "http://www.macromedia.com/go/getflashplayer");
			}
			nodeFlash.setAttribute("id", "fl"+myId);
			nodeFlash.setAttribute("scale", "noscale");
			nodeFlash.setAttribute("width", myWidth);
			nodeFlash.setAttribute("height", myHeight);
			
			myElement.appendChild(nodeFlash);
		}
	},
	
	enableAnimation : function(myElement)
	{
		if (!myElement || !myElement.tagName) {
			var e = evt.fix(myElement);
			myElement = e.target;
		}
		while (myElement.tagName.toLowerCase() != "div") {
			myElement = myElement.parentNode;
		}
		var myId = "fl"+myElement.id;
		var flashNode = flash.getFlashMovieObject(myId);
		
		if (!(!flashNode || flashNode == null))
			flashNode.SetVariable("/:hover", "true");
	},
	
	disableAnimation : function(myElement)
	{
		if (!myElement || !myElement.tagName) {
			var e = evt.fix(myElement);
			myElement = e.target;
		}
		while (myElement.tagName.toLowerCase() != "div") {
			myElement = myElement.parentNode;
		}
		var myId = "fl"+myElement.id;
		var flashNode = flash.getFlashMovieObject(myId);

		if (!(!flashNode || flashNode == null))
			flashNode.SetVariable("/:hover", "false");
	}

};

if (hasFlash)
	evt.add(window, "load", flash.init);



