/*	Unobtrusive Flash Objects(UFO) v3.20 <http://www.bobbyvandersluis.com/ufo/>
	Copyright 2005,2006 Bobby van der Sluis
	This software is licensed under the CC-GNU LGPL <http://creativecommons.org/licenses/LGPL/2.1/>
*/

var UFO={
	req:["movie","width","height","majorversion","build"],
	opt:["play","loop","menu","quality","scale","salign","wmode","bgcolor","base","flashvars","devicefont","allowscriptaccess","seamlesstabbing"],
	optAtt:["id","name","align"],
	optExc:["swliveconnect"],
	ximovie:"ufo.swf",
	xiwidth:"215",
	xiheight:"138",
	ua:navigator.userAgent.toLowerCase(),
	pluginType:"",
	fv:[0,0],
	foList:[],

	create:function(FO,id){
		if(!UFO.uaHas("w3cdom")||UFO.uaHas("ieMac")) return;
		UFO.getFlashVersion();
		UFO.foList[id]=UFO.updateFO(FO);
		UFO.createCSS("#"+id,"visibility:hidden;");
		UFO.domLoad(id);
	},

	updateFO:function(FO){
		if(typeof FO.xi!="undefined"&&FO.xi=="true"){
			if(typeof FO.ximovie=="undefined") FO.ximovie=UFO.ximovie;
			if(typeof FO.xiwidth=="undefined") FO.xiwidth=UFO.xiwidth;
			if(typeof FO.xiheight=="undefined") FO.xiheight=UFO.xiheight;
		}
		FO.mainCalled=false;
		return FO;
	},

	domLoad:function(id){
		var _t=setInterval(function(){
			if((document.getElementsByTagName("body")[0]!=null||document.body!=null)&&document.getElementById(id)!=null){
				UFO.main(id);
				clearInterval(_t);
			}
		},250);
		if(typeof document.addEventListener!="undefined"){
			document.addEventListener("DOMContentLoaded",function(){UFO.main(id);clearInterval(_t);},null);// Gecko,Opera 9+
		}
	},

	main:function(id){
		var _fo=UFO.foList[id];
		if(_fo.mainCalled) return;
		UFO.foList[id].mainCalled=true;
		document.getElementById(id).style.visibility="hidden";
		if(UFO.hasRequired(id)){
			if(UFO.hasFlashVersion(parseInt(_fo.majorversion,10),parseInt(_fo.build,10))){
				if(typeof _fo.setcontainercss!="undefined"&&_fo.setcontainercss=="true") UFO.setContainerCSS(id);
				UFO.writeSWF(id);
			}
			else if(_fo.xi=="true"&&UFO.hasFlashVersion(6,65)){
				UFO.createDialog(id);
			}
		}
		document.getElementById(id).style.visibility="visible";
	},

	createCSS:function(selector,declaration){
		var _h=document.getElementsByTagName("head")[0];
		var _s=UFO.createElement("style");
		if(!UFO.uaHas("ieWin")) _s.appendChild(document.createTextNode(selector+"{"+declaration+"}"));// bugs in IE/Win
		_s.setAttribute("type","text/css");
		_s.setAttribute("media","screen");
		_h.appendChild(_s);
		if(UFO.uaHas("ieWin")&&document.styleSheets&&document.styleSheets.length>0){
			var _ls=document.styleSheets[document.styleSheets.length-1];
			if(typeof _ls.addRule=="object") _ls.addRule(selector,declaration);
		}
	},

	setContainerCSS:function(id){
		var _fo=UFO.foList[id];
		var _w=/%/.test(_fo.width)?"":"px";
		var _h=/%/.test(_fo.height)?"":"px";
		UFO.createCSS("#"+id,"width:"+_fo.width+_w+";height:"+_fo.height+_h+";");
		if(_fo.width=="100%"){
			UFO.createCSS("body","margin-left:0;margin-right:0;padding-left:0;padding-right:0;");
		}
		if(_fo.height=="100%"){
			UFO.createCSS("html","height:100%;overflow:hidden;");
			UFO.createCSS("body","margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0;height:100%;");
		}
	},

	createElement:function(el){
		return(UFO.uaHas("xml")&&typeof document.createElementNS!="undefined")? document.createElementNS("http://www.w3.org/1999/xhtml",el):document.createElement(el);
	},

	createObjParam:function(el,aName,aValue){
		var _p=UFO.createElement("param");
		_p.setAttribute("name",aName);
		_p.setAttribute("value",aValue);
		el.appendChild(_p);
	},

	uaHas:function(ft){
		var _u=UFO.ua;
		switch(ft){
			case "w3cdom":
				return(typeof document.getElementById!="undefined"&&typeof document.getElementsByTagName!="undefined"&&(typeof document.createElement!="undefined"||typeof document.createElementNS!="undefined"));
			case "xml":
				var _m=document.getElementsByTagName("meta");
				var _l=_m.length;
				for(var i=0;i<_l;i++){
					if(/content-type/i.test(_m[i].getAttribute("http-equiv"))&&/xml/i.test(_m[i].getAttribute("content"))) return true;
				}
				return false;
			case "ieMac":
				return /msie/.test(_u)&&!/opera/.test(_u)&&/mac/.test(_u);
			case "ieWin":
				return /msie/.test(_u)&&!/opera/.test(_u)&&/win/.test(_u);
			case "gecko":
				return /gecko/.test(_u)&&!/applewebkit/.test(_u);
			case "opera":
				return /opera/.test(_u);
			case "safari":
				return /applewebkit/.test(_u);
			default:
				return false;
		}
	},

	getFlashVersion:function(){
		if(UFO.fv[0]!=0) return;
		if(navigator.plugins&&typeof navigator.plugins["Shockwave Flash"]=="object"){
			UFO.pluginType="npapi";
			var _d=navigator.plugins["Shockwave Flash"].description;
			if(typeof _d!="undefined"){
				_d=_d.replace(/^.*\s+(\S+\s+\S+$)/,"$1");
				var _m=parseInt(_d.replace(/^(.*)\..*$/,"$1"),10);
				var _r=/r/.test(_d)?parseInt(_d.replace(/^.*r(.*)$/,"$1"),10):0;
				UFO.fv=[_m,_r];
			}
		}
		else if(window.ActiveXObject){
			UFO.pluginType="ax";
			try{// avoid fp 6 crashes
				var _a=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
			}
			catch(e){
				try{
					var _a=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
					UFO.fv=[6,0];
					_a.AllowScriptAccess="always";// throws if fp<6.47
				}
				catch(e){
					if(UFO.fv[0]==6) return;
				}
				try{
					var _a=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
				}
				catch(e){}
			}
			if(typeof _a=="object"){
				var _d=_a.GetVariable("$version");// bugs in fp 6.21/6.23
				if(typeof _d!="undefined"){
					_d=_d.replace(/^\S+\s+(.*)$/,"$1").split(",");
					UFO.fv=[parseInt(_d[0],10),parseInt(_d[2],10)];
				}
			}
		}
	},

	hasRequired:function(id){
		var _l=UFO.req.length;
		for(var i=0;i<_l;i++){
			if(typeof UFO.foList[id][UFO.req[i]]=="undefined") return false;
		}
		return true;
	},

	hasFlashVersion:function(major,release){
		return(UFO.fv[0]>major||(UFO.fv[0]==major&&UFO.fv[1]>= release))?true:false;
	},

	writeSWF:function(id){
		var _fo=UFO.foList[id];
		var _e=document.getElementById(id);
		if(UFO.pluginType=="npapi"){
			if(UFO.uaHas("gecko")||UFO.uaHas("xml")){
				while(_e.hasChildNodes()){
					_e.removeChild(_e.firstChild);
				}
				var _obj=UFO.createElement("object");
				_obj.setAttribute("type","application/x-shockwave-flash");
				_obj.setAttribute("data",_fo.movie);
				_obj.setAttribute("width",_fo.width);
				_obj.setAttribute("height",_fo.height);
				var _l=UFO.optAtt.length;
				for(var i=0;i<_l;i++){
					if(typeof _fo[UFO.optAtt[i]]!="undefined") _obj.setAttribute(UFO.optAtt[i],_fo[UFO.optAtt[i]]);
				}
				var _o=UFO.opt.concat(UFO.optExc);
				var _l=_o.length;
				for(var i=0;i<_l;i++){
					if(typeof _fo[_o[i]]!="undefined") UFO.createObjParam(_obj,_o[i],_fo[_o[i]]);
				}
				_e.appendChild(_obj);
			}
			else{
				var _emb="";
				var _o=UFO.opt.concat(UFO.optAtt).concat(UFO.optExc);
				var _l=_o.length;
				for(var i=0;i<_l;i++){
					if(typeof _fo[_o[i]]!="undefined") _emb+=' '+_o[i]+'="'+_fo[_o[i]]+'"';
				}
				_e.innerHTML='<embed type="application/x-shockwave-flash" src="'+_fo.movie+'" width="'+_fo.width+'" height="'+_fo.height+'" pluginspage="http://www.macromedia.com/go/getflashplayer"'+_emb+'></embed>';
			}
		}
		else if(UFO.pluginType=="ax"){
			var _objAtt="";
			var _l=UFO.optAtt.length;
			for(var i=0;i<_l;i++){
				if(typeof _fo[UFO.optAtt[i]]!="undefined") _objAtt+=' '+UFO.optAtt[i]+'="'+_fo[UFO.optAtt[i]]+'"';
			}
			var _objPar="";
			var _l=UFO.opt.length;
			for(var i=0;i<_l;i++){
				if(typeof _fo[UFO.opt[i]]!="undefined") _objPar+='<param name="'+UFO.opt[i]+'" value="'+_fo[UFO.opt[i]]+'" />';
			}
			var _p=window.location.protocol=="https:"?"https:":"http:";
			_e.innerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+_objAtt+' width="'+_fo.width+'" height="'+_fo.height+'" codebase="'+_p+'//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version='+_fo.majorversion+',0,'+_fo.build+',0"><param name="movie" value="'+_fo.movie+'" />'+_objPar+'</object>';
		}
	},

	createDialog:function(id){
		var _fo=UFO.foList[id];
		UFO.createCSS("html","height:100%;overflow:hidden;");
		UFO.createCSS("body","height:100%;overflow:hidden;");
		UFO.createCSS("#xi-con","position:absolute;left:0;top:0;z-index:1000;width:100%;height:100%;background-color:#fff;filter:alpha(opacity:75);opacity:0.75;");
		UFO.createCSS("#xi-dia","position:absolute;left:50%;top:50%;margin-left:-"+Math.round(parseInt(_fo.xiwidth,10)/2)+"px;margin-top:-"+Math.round(parseInt(_fo.xiheight,10)/2)+"px;width:"+_fo.xiwidth+"px;height:"+_fo.xiheight+"px;");
		var _b=document.getElementsByTagName("body")[0];
		var _c=UFO.createElement("div");
		_c.setAttribute("id","xi-con");
		var _d=UFO.createElement("div");
		_d.setAttribute("id","xi-dia");
		_c.appendChild(_d);
		_b.appendChild(_c);
		var _mmu=window.location;
		if(UFO.uaHas("xml")&&UFO.uaHas("safari")){
			var _mmd=document.getElementsByTagName("title")[0].firstChild.nodeValue=document.getElementsByTagName("title")[0].firstChild.nodeValue.slice(0,47)+"-Flash Player Installation";
		}
		else{
			var _mmd=document.title=document.title.slice(0,47)+"-Flash Player Installation";
		}
		var _mmp=UFO.pluginType=="ax"?"ActiveX":"PlugIn";
		var _uc=typeof _fo.xiurlcancel!="undefined"?"&xiUrlCancel="+_fo.xiurlcancel:"";
		var _uf=typeof _fo.xiurlfailed!="undefined"?"&xiUrlFailed="+_fo.xiurlfailed:"";
		UFO.foList["xi-dia"]={movie:_fo.ximovie,width:_fo.xiwidth,height:_fo.xiheight,majorversion:"6",build:"65",flashvars:"MMredirectURL="+_mmu+"&MMplayerType="+_mmp+"&MMdoctitle="+_mmd+_uc+_uf };
		UFO.writeSWF("xi-dia");
	},

	expressInstallCallback:function(){
		var _b=document.getElementsByTagName("body")[0];
		var _c=document.getElementById("xi-con");
		_b.removeChild(_c);
		UFO.createCSS("body","height:auto;overflow:auto;");
		UFO.createCSS("html","height:auto;overflow:auto;");
	},

	cleanupIELeaks:function(){
		var _o=document.getElementsByTagName("object");
		var _l=_o.length
		for(var i=0;i<_l;i++){
			_o[i].style.display="none";
			for(var x in _o[i]){
				if(typeof _o[i][x]=="function"){
					_o[i][x]=null;
				}
			}
		}
	}

};

if(typeof window.attachEvent!="undefined"&&UFO.uaHas("ieWin")){
	window.attachEvent("onunload",UFO.cleanupIELeaks);
}
