/* 
 * flowplayer.js 3.2.4. The Flowplayer API
 * 
 * Copyright 2009 Flowplayer Oy
 * 
 * This file is part of Flowplayer.
 * 
 * Flowplayer is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * Flowplayer is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with Flowplayer.  If not, see <http://www.gnu.org/licenses/>.
 * 
 * Date: 2010-08-25 12:48:46 +0000 (Wed, 25 Aug 2010)
 * Revision: 551 
 */
(function(){
	function g(o){
		console.log("$f.fireEvent",[].slice.call(o))
	}
	function k(q){
		if(!q||typeof q!="object"){
			return q
		}
		var o=new q.constructor();
		for(var p in q){
			if(q.hasOwnProperty(p)){
				o[p]=k(q[p])
			}
		}
		return o
	}
	function m(t,q){
		if(!t){return}
		var o,p=0,r=t.length;
		if(r===undefined){
			for(o in t){
				if(q.call(t[o],o,t[o])===false){break}
			}
		}else{
			for(var s=t[0];
			p<r&&q.call(s,p,s)!==false;
			s=t[++p]){}
		}
		return t
	}
	function c(o){
		return document.getElementById(o)
	}
	function i(q,p,o){
		if(typeof p!="object"){return q}
		if(q&&p){
			m(p,function(r,s){
				if(!o||typeof s!="function"){
					q[r]=s
				}
			})
		}
		return q
	}
	function n(s){
		var q=s.indexOf(".");
		if(q!=-1){
			var p=s.slice(0,q)||"*";var o=s.slice(q+1,s.length);
			var r=[];
			m(document.getElementsByTagName(p),function(){
				if(this.className&&this.className.indexOf(o)!=-1){
					r.push(this)
				}
			});
			return r
		}
	}
	function f(o){
		o=o||window.event;
		if(o.preventDefault){
			o.stopPropagation();
			o.preventDefault()
		}else{
			o.returnValue=false;
			o.cancelBubble=true
		}return false
	}
	function j(q,o,p){
		q[o]=q[o]||[];q[o].push(p)
	}
	function e(){
		return"_"+(""+Math.random()).slice(2,10)
	}
	var h=function(t,r,s){
		var q=this,p={},u={};
		q.index=r;
		if(typeof t=="string"){
			t={url:t}
		}
		i(this,t,true);
		m(("Begin*,Start,Pause*,Resume*,Seek*,Stop*,Finish*,LastSecond,Update,BufferFull,BufferEmpty,BufferStop").split(","),function(){
			var v="on"+this;
			if(v.indexOf("*")!=-1){
				v=v.slice(0,v.length-1);
				var w="onBefore"+v.slice(2);
				q[w]=function(x){
					j(u,w,x);
					return q
				}
			}
			q[v]=function(x){
				j(u,v,x);
				return q
			};
			if(r==-1){
				if(q[w]){
					s[w]=q[w]
				}
				if(q[v]){
					s[v]=q[v]
				}
			}
		});
		i(this,{
			onCuepoint:function(x,w){
				if(arguments.length==1){
					p.embedded=[null,x];
					return q
				}
				if(typeof x=="number"){
					x=[x]
				}
				var v=e();
				p[v]=[x,w];
				if(s.isLoaded()){
					s._api().fp_addCuepoints(x,r,v)
				}
				return q
			},
			update:function(w){
				i(q,w);
				if(s.isLoaded()){
					s._api().fp_updateClip(w,r)
				}
				var v=s.getConfig();
				var x=(r==-1)?v.clip:v.playlist[r];
				i(x,w,true)
			},
			_fireEvent:function(v,y,w,A){
				if(v=="onLoad"){
					m(p,function(B,C){
						if(C[0]){
							s._api().fp_addCuepoints(C[0],r,B)
						}
					});
					return false
				}A=A||q;
				if(v=="onCuepoint"){
					var z=p[y];
					if(z){
						return z[1].call(s,A,w)
					}
				}
				if(y&&"onBeforeBegin,onMetaData,onStart,onUpdate,onResume".indexOf(v)!=-1){
					i(A,y);
					if(y.metaData){
						if(!A.duration){
							A.duration=y.metaData.duration
						}else{
							A.fullDuration=y.metaData.duration
						}
					}
				}
				var x=true;
				m(u[v],function(){
					x=this.call(s,A,y,w)
				});
				return x
			}
		});
		if(t.onCuepoint){
			var o=t.onCuepoint;q.onCuepoint.apply(q,typeof o=="function"?[o]:o);
			delete t.onCuepoint
		}
		m(t,function(v,w){
			if(typeof w=="function"){
				j(u,v,w);
				delete t[v]
			}
		});
		if(r==-1){
			s.onCuepoint=this.onCuepoint
		}
	};
	var l=function(p,r,q,t){
		var o=this,s={},u=false;
		if(t){
			i(s,t)
		}
		m(r,function(v,w){
			if(typeof w=="function"){
				s[v]=w;delete r[v]
			}
		});
		i(this,{
			animate:function(y,z,x){
				if(!y){return o}
				if(typeof z=="function"){x=z;z=500}
				if(typeof y=="string"){var w=y;y={};y[w]=z;z=500}
				if(x){var v=e();s[v]=x}
				if(z===undefined){z=500}
				r=q._api().fp_animate(p,y,z,v);
				return o
			},
			css:function(w,x){
				if(x!==undefined){var v={};v[w]=x;w=v}
				r=q._api().fp_css(p,w);
				i(o,r);
				return o
			},
			show:function(){
				this.display="block";
				q._api().fp_showPlugin(p);
				return o
			},
			hide:function(){
				this.display="none";
				q._api().fp_hidePlugin(p);
				return o
			},
			toggle:function(){
				this.display=q._api().fp_togglePlugin(p);
				return o
			},
			fadeTo:function(y,x,w){
				if(typeof x=="function"){w=x;x=500}
				if(w){var v=e();s[v]=w}
				this.display=q._api().fp_fadeTo(p,y,x,v);
				this.opacity=y;
				return o
			},
			fadeIn:function(w,v){return o.fadeTo(1,w,v)},
			fadeOut:function(w,v){return o.fadeTo(0,w,v)},
			getName:function(){return p},
			getPlayer:function(){return q},
			_fireEvent:function(w,v,x){
				if(w=="onUpdate"){
					var z=q._api().fp_getPlugin(p);
					if(!z){return}
					i(o,z);
					delete o.methods;
					if(!u){
						m(z.methods,function(){
							var B=""+this;
							o[B]=function(){
								var C=[].slice.call(arguments);
								var D=q._api().fp_invoke(p,B,C);
								return D==="undefined"||D===undefined?o:D
							}
						});
						u=true
					}
				}
				var A=s[w];
				if(A){
					var y=A.apply(o,v);
					if(w.slice(0,1)=="_"){
						delete s[w]
					}
					return y
				}
				return o
			}
		})
	};
	function b(q,G,t){
		var w=this,v=null,D=false,u,s,F=[],y={},x={},E,r,p,C,o,A;i(w,{
			id:function(){return E},
			isLoaded:function(){return(v!==null&&v.fp_play!==undefined&&!D)},
			getParent:function(){return q},
			hide:function(H){
				if(H){q.style.height="0px"}
				if(w.isLoaded()){v.style.height="0px"}
				return w
			},
			show:function(){
				q.style.height=A+"px";
				if(w.isLoaded()){v.style.height=o+"px"}
				return w
			},
			isHidden:function(){
				return w.isLoaded()&&parseInt(v.style.height,10)===0
			},
			load:function(J){
				if(!w.isLoaded()&&w._fireEvent("onBeforeLoad")!==false){
					var H=function(){
						u=q.innerHTML;
						if(u&&!flashembed.isSupported(G.version)){
							q.innerHTML=""
						}
						if(J){
							J.cached=true;
							j(x,"onLoad",J)
						}
						flashembed(q,G,{config:t})
					};
					var I=0;m(a,function(){
						this.unload(function(K){
							if(++I==a.length){H()}
						})
					})
				}
				return w
			},
			unload:function(J){
				if(this.isFullscreen()&&/WebKit/i.test(navigator.userAgent)){
					if(J){J(false)}
					return w
				}
				if(u.replace(/\s/g,"")!==""){
					if(w._fireEvent("onBeforeUnload")===false){
						if(J){J(false)}
						return w
					}
					D=true;
					try{
						if(v){
							v.fp_close();
							w._fireEvent("onUnload")
						}
					}
					catch(H){}
					var I=function(){
						v=null;
						q.innerHTML=u;
						D=false;
						if(J){
							J(true)
						}
					};
					setTimeout(I,50)
				}else{
					if(J){
						J(false)
					}
				}
				return w
			},
			getClip:function(H){
				if(H===undefined){H=C}
				return F[H]
			},
			getCommonClip:function(){return s},
			getPlaylist:function(){return F},
			getPlugin:function(H){
				var J=y[H];
				if(!J&&w.isLoaded()){
					var I=w._api().fp_getPlugin(H);
					if(I){
						J=new l(H,I,w);
						y[H]=J
					}
				}
				return J
			},
			getScreen:function(){
				return w.getPlugin("screen")
			},
			getControls:function(){return w.getPlugin("controls")._fireEvent("onUpdate")},
			getLogo:function(){try{return w.getPlugin("logo")._fireEvent("onUpdate")}catch(H){}},
			getPlay:function(){return w.getPlugin("play")._fireEvent("onUpdate")},
			getConfig:function(H){return H?k(t):t},
			getFlashParams:function(){return G},
			loadPlugin:function(K,J,M,L){
				if(typeof M=="function"){L=M;M={}}
				var I=L?e():"_";w._api().fp_loadPlugin(K,J,M,I);
				var H={};
				H[I]=L;
				var N=new l(K,null,w,H);
				y[K]=N;return N
			},
			getState:function(){return w.isLoaded()?v.fp_getState():-1},
			play:function(I,H){
				var J=function(){
					if(I!==undefined){
						w._api().fp_play(I,H)
					}else{
						w._api().fp_play()
					}
				};
				if(w.isLoaded()){
					J()
				}else{
					if(D){
						setTimeout(function(){
							w.play(I,H)
						},50)
					}else{
						w.load(function(){J()}
						)
					}
				}
				return w
			},
			getVersion:function(){
				var I="flowplayer.js 3.2.4";
				if(w.isLoaded()){
					var H=v.fp_getVersion();
					H.push(I);
					return H
				}
				return I
			},
			_api:function(){
				if(!w.isLoaded()){
					throw"Flowplayer "+w.id()+" not loaded when calling an API method"
				}
				return v
			},
			setClip:function(H){
				w.setPlaylist([H]);
				return w
			},
			getIndex:function(){return p},
			_swfHeight:function(){return v.clientHeight}
		});
		m(("Click*,Load*,Unload*,Keypress*,Volume*,Mute*,Unmute*,PlaylistReplace,ClipAdd,Fullscreen*,FullscreenExit,Error,MouseOver,MouseOut").split(","),
		function(){
			var H="on"+this;
			if(H.indexOf("*")!=-1){
				H=H.slice(0,H.length-1);
				var I="onBefore"+H.slice(2);w[I]=function(J){
					j(x,I,J);
					return w
				}
			}
			w[H]=function(J){
				j(x,H,J);
				return w
			}
		});
		m(("pause,resume,mute,unmute,stop,toggle,seek,getStatus,getVolume,setVolume,getTime,isPaused,isPlaying,startBuffering,stopBuffering,isFullscreen,toggleFullscreen,reset,close,setPlaylist,addClip,playFeed,setKeyboardShortcutsEnabled,isKeyboardShortcutsEnabled").split(","),
		function(){
			var H=this;
			w[H]=function(J,I){
				if(!w.isLoaded()){return w}
				var K=null;
				if(J!==undefined&&I!==undefined){
				K=v["fp_"+H](J,I)}else{
					K=(J===undefined)?v["fp_"+H]():v["fp_"+H](J)
				}
				return K==="undefined"||K===undefined?w:K
			}
		});
		w._fireEvent=function(Q){
			if(typeof Q=="string"){Q=[Q]}
			var R=Q[0],O=Q[1],M=Q[2],L=Q[3],K=0;
			if(t.debug){g(Q)}
			if(!w.isLoaded()&&R=="onLoad"&&O=="player"){
				v=v||c(r);
				o=w._swfHeight();
				m(F,function(){this._fireEvent("onLoad")});
				m(y,function(S,T){T._fireEvent("onUpdate")});
				s._fireEvent("onLoad")
			}
			if(R=="onLoad"&&O!="player"){return}
			if(R=="onError"){if(typeof O=="string"||(typeof O=="number"&&typeof M=="number")){O=M;M=L}}
			if(R=="onContextMenu"){m(t.contextMenu[O],function(S,T){T.call(w)});return}
			if(R=="onPluginEvent"||R=="onBeforePluginEvent"){var H=O.name||O;var I=y[H];if(I){I._fireEvent("onUpdate",O);return I._fireEvent(M,Q.slice(3))}return}
			if(R=="onPlaylistReplace"){F=[];var N=0;m(O,function(){F.push(new h(this,N++,w))})}
			if(R=="onClipAdd"){if(O.isInStream){return}O=new h(O,M,w);F.splice(M,0,O);for(K=M+1;K<F.length;K++){F[K].index++}}
			var P=true;
			if(typeof O=="number"&&O<F.length){
				C=O;var J=F[O];
				if(J){P=J._fireEvent(R,M,L)}
				if(!J||P!==false){P=s._fireEvent(R,M,L,J)}
			}
			m(x[R],
			function(){
				P=this.call(w,O,M);
				if(this.cached){x[R].splice(K,1)}
				if(P===false){return false}K++
			});
			return P
		};
		function B(){
			if($f(q)){
				$f(q).getParent().innerHTML="";
				p=$f(q).getIndex();
				a[p]=w
			}else{
				a.push(w);
				p=a.length-1
			}
			A=parseInt(q.style.height,10)||q.clientHeight;E=q.id||"fp"+e();r=G.id||E+"_api";
			G.id=r;
			t.playerId=E;
			if(typeof t=="string"){t={clip:{url:t}}}
			if(typeof t.clip=="string"){t.clip={url:t.clip}}
			t.clip=t.clip||{};
			if(q.getAttribute("href",2)&&!t.clip.url){t.clip.url=q.getAttribute("href",2)}
			s=new h(t.clip,-1,w);
			t.playlist=t.playlist||[t.clip];
			var I=0;
			m(t.playlist,function(){
				var K=this;
				if(typeof K=="object"&&K.length){K={url:""+K}}
				m(t.clip,function(L,M){
					if(M!==undefined&&K[L]===undefined&&typeof M!="function"){K[L]=M}
				});
				t.playlist[I]=K;
				K=new h(K,I,w);
				F.push(K);I++
			});
			m(t,function(K,L){if(typeof L=="function"){if(s[K]){s[K](L)}else{j(x,K,L)}delete t[K]}});
			m(t.plugins,function(K,L){if(L){y[K]=new l(K,L,w)}});
			if(!t.plugins||t.plugins.controls===undefined){y.controls=new l("controls",null,w)}
			y.canvas=new l("canvas",null,w);
			u=q.innerHTML;
			function J(L){
				var K=w.hasiPadSupport&&w.hasiPadSupport();
				if(/iPad|iPhone|iPod/i.test(navigator.userAgent)&&!/.flv$/i.test(F[0].url)&&!K){return true}
				if(!w.isLoaded()&&w._fireEvent("onBeforeClick")!==false){w.load()}
				return f(L)
			}
			function H(){
				if(u.replace(/\s/g,"")!==""){
					if(q.addEventListener){
						q.addEventListener("click",J,false)
					}else{
						if(q.attachEvent){
							q.attachEvent("onclick",J)
						}
					}
				}else{
					if(q.addEventListener){
						q.addEventListener("click",f,false)
					}w.load()
				}
			}
			setTimeout(H,0)
		}
		if(typeof q=="string"){
			var z=c(q);
			if(!z){throw"Flowplayer cannot access element: "+q}
			q=z;B()
		}else{
			B()
		}
	}
	var a=[];
	function d(o){this.length=o.length;this.each=function(p){m(o,p)};this.size=function(){return o.length}}
	window.flowplayer=window.$f=function(){
		var p=null;
		var o=arguments[0];
		if(!arguments.length){
			m(a,function(){
				if(this.isLoaded()){
					p=this;return false
				}
			});
			return p||a[0]
		}
		if(arguments.length==1){
			if(typeof o=="number"){
				return a[o]
			}else{
				if(o=="*"){
					return new d(a)
				}
				m(a,function(){
					if(this.id()==o.id||this.id()==o||this.getParent()==o){
						p=this;return false
					}
				});
				return p
			}
		}
		if(arguments.length>1){
			var t=arguments[1],q=(arguments.length==3)?arguments[2]:{};
			if(typeof t=="string"){
				t={src:t}
			}
			t=i({bgcolor:"#000000",version:[9,0],expressInstall:"http://static.flowplayer.org/swf/expressinstall.swf",cachebusting:true},t);
			if(typeof o=="string"){
				if(o.indexOf(".")!=-1){
					var s=[];
					m(n(o),
					function(){s.push(new b(this,k(t),k(q)))});
					return new d(s)
				}else{
					var r=c(o);
					return new b(r!==null?r:o,t,q)
				}
			}else{
				if(o){return new b(o,t,q)}
			}
		}
		return null
	};
	i(window.$f,{
		fireEvent:function(){
			var o=[].slice.call(arguments);
			var q=$f(o[0]);
			return q?q._fireEvent(o.slice(1)):null
		},
		addPlugin:function(o,p){
			b.prototype[o]=p;
			return $f
		},
		each:m,extend:i
	});
	if(typeof jQuery=="function"){
		jQuery.fn.flowplayer=function(q,p){
			if(!arguments.length||typeof arguments[0]=="number"){
				var o=[];
				this.each(function(){
					var r=$f(this);
					if(r){o.push(r)}
				});
				return arguments.length?o[arguments[0]]:new d(o)
			}
			return this.each(function(){
				$f(this,k(q),p?k(p):{})
			})
		}
	}
})();
(function(){
	var h=document.all,
	j="http://www.adobe.com/go/getflashplayer",
	c=typeof jQuery=="function",
	e=/(\d+)[^\d]+(\d+)[^\d]*(\d*)/,
	b={
		width:"100%",
		height:"100%",
		id:"_"+(""+Math.random()).slice(9),
		allowfullscreen:true,
		allowscriptaccess:"always",
		quality:"high",
		version:[3,0],
		onFail:null,
		expressInstall:null,
		w3c:false,
		cachebusting:false
	};
	if(window.attachEvent){
		window.attachEvent("onbeforeunload",function(){
			__flash_unloadHandler=function(){};
			__flash_savedUnloadHandler=function(){}
		})
	}
	function i(m,l){
		if(l){
			for(var f in l){
				if(l.hasOwnProperty(f)){m[f]=l[f]}
			}
		}
		return m
	}
	function a(f,n){
		var m=[];
		for(var l in f){
			if(f.hasOwnProperty(l)){
				m[l]=n(f[l])
			}
		}return m
	}
	window.flashembed=function(f,m,l){
		if(typeof f=="string"){f=document.getElementById(f.replace("#",""))}
		if(!f){return}
		if(typeof m=="string"){m={src:m}}
		return new d(f,i(i({},b),m),l)
	};
	var g=i(window.flashembed,{
		conf:b,getVersion:function(){
			var m,f;
			try{
				f=navigator.plugins["Shockwave Flash"].description.slice(16)
			}
			catch(o){
				try{
					m=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
					f=m&&m.GetVariable("$version")
				}
				catch(n){
					try{
						m=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
						f=m&&m.GetVariable("$version")
					}
					catch(l){}
				}
			}
			f=e.exec(f);
			return f?[f[1],f[3]]:[0,0]
		},
		asString:function(l){
			if(l===null||l===undefined){return null}
			var f=typeof l;
			if(f=="object"&&l.push){
				f="array"
			}
			switch(f){
				case"string":
					l=l.replace(new RegExp('(["\\\\])',"g"),"\\$1");
					l=l.replace(/^\s?(\d+\.?\d+)%/,"$1pct");
					return'"'+l+'"';
				case"array":
					return"["+a(l,function(o){
					return g.asString(o)}).join(",")+"]";
				case"function":
					return'"function()"';
				case"object":
					var m=[];
					for(var n in l){
						if(l.hasOwnProperty(n)){
							m.push('"'+n+'":'+g.asString(l[n]))
						}
					}
					return"{"+m.join(",")+"}"
			}
			return String(l).replace(/\s/g," ").replace(/\'/g,'"')
		},
		getHTML:function(o,l){
			o=i({},o);
			var n='<object width="'+o.width+'" height="'+o.height+'" id="'+o.id+'" name="'+o.id+'"';
			if(o.cachebusting){o.src+=((o.src.indexOf("?")!=-1?"&":"?")+Math.random())}
			if(o.w3c||!h){
				n+=' data="'+o.src+'" type="application/x-shockwave-flash"'
			}else{
				n+=' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'
			}n+=">";
			if(o.w3c||h){n+='<param name="movie" value="'+o.src+'" />'}
			o.width=o.height=o.id=o.w3c=o.src=null;
			o.onFail=o.version=o.expressInstall=null;
			for(var m in o){if(o[m]){n+='<param name="'+m+'" value="'+o[m]+'" />'}}var 
			p="";
			if(l){
				for(var f in l){
					if(l[f]){
						var q=l[f];
						p+=f+"="+(/function|object/.test(typeof q)?g.asString(q):q)+"&"
					}
				}
				p=p.slice(0,-1);
				n+='<param name="flashvars" value=\''+p+"' />"
			}
			n+="</object>";
			return n
		},
		isSupported:function(f){
			return k[0]>f[0]||k[0]==f[0]&&k[1]>=f[1]
		}
	});
	var k=g.getVersion();
	function d(f,n,m){
		if(g.isSupported(n.version)){
			f.innerHTML=g.getHTML(n,m)
		}else{
			if(n.expressInstall&&g.isSupported([6,65])){
				f.innerHTML=g.getHTML(i(n,
					{src:n.expressInstall}),
					{MMredirectURL:location.href,
					MMplayerType:"PlugIn",
					MMdoctitle:document.title}
				)
			}else{
				if(!f.innerHTML.replace(/\s/g,"")){
					f.innerHTML="<h2>Flash version "+n.version+" or greater is required</h2><h3>"+(k[0]>0?"Your version is "+k:"You have no flash plugin installed")+"</h3>"+(f.tagName=="A"?"<p>Click here to download latest version</p>":"<p>Download latest version from <a href='"+j+"'>here</a></p>");
					if(f.tagName=="A"){f.onclick=function(){location.href=j}}
				}
				if(n.onFail){
					var l=n.onFail.call(this);
					if(typeof l=="string"){f.innerHTML=l}
				}
			}
		}
		if(h){window[n.id]=document.getElementById(n.id)}
		i(this,{getRoot:function(){return f},getOptions:function(){return n},getConf:function(){return m},getApi:function(){return f.firstChild}})
	}
	if(c){jQuery.tools=jQuery.tools||{version:"3.2.4"};jQuery.tools.flashembed={conf:b};jQuery.fn.flashembed=function(l,f){return this.each(function(){$(this).data("flashembed",flashembed(this,l,f))})}}
})();
