/* 
 * flowplayer.js 3.1.1. 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: 2009-02-25 16:24:29 -0500 (Wed, 25 Feb 2009)
 * Revision: 166 
 */
(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.substring(0,q)||"*";
			var o=s.substring(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()).substring(2,10)
	}
	var h=function(t,r,s)
	{
		var q=this;
		var p={};
		var 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.substring(0,v.length-1);
				var w="onBefore"+v.substring(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(v=="onStart"||v=="onUpdate"||v=="onResume")
			{
				i(A,y);
				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 s={};
	var o=this;
	var 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 y=q._api().fp_getPlugin(p);
				if(!y)
				{
					return
				}
				i(o,y);
				delete o.methods;
				if(!u)
				{
					m(y.methods,function()
					{
						var A=""+this;
						o[A]=function()
						{
							var B=[].slice.call(arguments);
							var C=q._api().fp_invoke(p,A,B);
							return C=="undefined"?o:C
						}
					});
					u=true
				}
			}
			var z=s[w];
			if(z){z.apply(o,v);if(w.substring(0,1)=="_"){delete s[w]}}}})};function b(o,t,z){var E=this,y=null,x,u,p=[],s={},B={},r,v,w,D,A,q;i(E,{id:function(){return r},isLoaded:function(){return(y!==null)},getParent:function(){return o},hide:function(F){if(F){o.style.height="0px"}if(y){y.style.height="0px"}return E},show:function(){o.style.height=q+"px";if(y){y.style.height=A+"px"}return E},isHidden:function(){return y&&parseInt(y.style.height,10)===0},load:function(F){if(!y&&E._fireEvent("onBeforeLoad")!==false){m(a,function(){this.unload()});x=o.innerHTML;if(x&&!flashembed.isSupported(t.version)){o.innerHTML=""}flashembed(o,t,{config:z});if(F){F.cached=true;j(B,"onLoad",F)}}return E},unload:function(){try{if(!y||y.fp_isFullscreen()){return E}}catch(F){return E}if(x.replace(/\s/g,"")!==""){if(E._fireEvent("onBeforeUnload")===false){return E}y.fp_close();y=null;o.innerHTML=x;E._fireEvent("onUnload")}return E},getClip:function(F){if(F===undefined){F=D}return p[F]},getCommonClip:function(){return u},getPlaylist:function(){return p},getPlugin:function(F){var H=s[F];if(!H&&E.isLoaded()){var G=E._api().fp_getPlugin(F);if(G){H=new l(F,G,E);s[F]=H}}return H},getScreen:function(){return E.getPlugin("screen")},getControls:function(){return E.getPlugin("controls")},getConfig:function(F){return F?k(z):z},getFlashParams:function(){return t},loadPlugin:function(I,H,K,J){if(typeof K=="function"){J=K;K={}}var G=J?e():"_";E._api().fp_loadPlugin(I,H,K,G);var F={};F[G]=J;var L=new l(I,null,E,F);s[I]=L;return L},getState:function(){return y?y.fp_getState():-1},play:function(G,F){function H(){if(G!==undefined){E._api().fp_play(G,F)}else{E._api().fp_play()}}if(y){H()}else{E.load(function(){H()})}return E},getVersion:function(){var G="flowplayer.js 3.1.1";if(y){var F=y.fp_getVersion();F.push(G);return F}return G},_api:function(){if(!y){throw"Flowplayer "+E.id()+" not loaded when calling an API method"}return y},setClip:function(F){E.setPlaylist([F]);return E},getIndex:function(){return w}});m(("Click*,Load*,Unload*,Keypress*,Volume*,Mute*,Unmute*,PlaylistReplace,ClipAdd,Fullscreen*,FullscreenExit,Error").split(","),function(){var F="on"+this;if(F.indexOf("*")!=-1){F=F.substring(0,F.length-1);var G="onBefore"+F.substring(2);E[G]=function(H){j(B,G,H);return E}}E[F]=function(H){j(B,F,H);return E}});m(("pause,resume,mute,unmute,stop,toggle,seek,getStatus,getVolume,setVolume,getTime,isPaused,isPlaying,startBuffering,stopBuffering,isFullscreen,toggleFullscreen,reset,close,setPlaylist,addClip").split(","),function(){var F=this;E[F]=function(H,G){if(!y){return E}var I=null;if(H!==undefined&&G!==undefined){I=y["fp_"+F](H,G)}else{I=(H===undefined)?y["fp_"+F]():y["fp_"+F](H)}return I=="undefined"?E:I}});E._fireEvent=function(O){if(typeof O=="string"){O=[O]}var P=O[0],M=O[1],K=O[2],J=O[3],I=0;if(z.debug){g(O)}if(!y&&P=="onLoad"&&M=="player"){y=y||c(v);A=y.clientHeight;m(p,function(){this._fireEvent("onLoad")});m(s,function(Q,R){R._fireEvent("onUpdate")});u._fireEvent("onLoad")}if(P=="onLoad"&&M!="player"){return}if(P=="onError"){if(typeof M=="string"||(typeof M=="number"&&typeof K=="number")){M=K;K=J}}if(P=="onContextMenu"){m(z.contextMenu[M],function(Q,R){R.call(E)});return}if(P=="onPluginEvent"){var F=M.name||M;var G=s[F];if(G){G._fireEvent("onUpdate",M);G._fireEvent(K,O.slice(3))}return}if(P=="onPlaylistReplace"){p=[];var L=0;m(M,function(){p.push(new h(this,L++,E))})}if(P=="onClipAdd"){if(M.isInStream){return}M=new h(M,K,E);p.splice(K,0,M);for(I=K+1;I<p.length;I++){p[I].index++}}var N=true;if(typeof M=="number"&&M<p.length){D=M;var H=p[M];if(H){N=H._fireEvent(P,K,J)}if(!H||N!==false){N=u._fireEvent(P,K,J,H)}}m(B[P],function(){N=this.call(E,M,K);if(this.cached){B[P].splice(I,1)}if(N===false){return false}I++});return N};function C(){if($f(o)){$f(o).getParent().innerHTML="";w=$f(o).getIndex();a[w]=E}else{a.push(E);w=a.length-1}q=parseInt(o.style.height,10)||o.clientHeight;if(typeof t=="string"){t={src:t}}r=o.id||"fp"+e();v=t.id||r+"_api";t.id=v;z.playerId=r;if(typeof z=="string"){z={clip:{url:z}}}if(typeof z.clip=="string"){z.clip={url:z.clip}}z.clip=z.clip||{};if(o.getAttribute("href",2)&&!z.clip.url){z.clip.url=o.getAttribute("href",2)}u=new h(z.clip,-1,E);z.playlist=z.playlist||[z.clip];var F=0;m(z.playlist,function(){var H=this;if(typeof H=="object"&&H.length){H={url:""+H}}m(z.clip,function(I,J){if(J!==undefined&&H[I]===undefined&&typeof J!="function"){H[I]=J}});z.playlist[F]=H;H=new h(H,F,E);p.push(H);F++});m(z,function(H,I){if(typeof I=="function"){j(B,H,I);delete z[H]}});m(z.plugins,function(H,I){if(I){s[H]=new l(H,I,E)}});if(!z.plugins||z.plugins.controls===undefined){s.controls=new l("controls",null,E)}s.canvas=new l("canvas",null,E);t.bgcolor=t.bgcolor||"#000000";t.version=t.version||[9,0];t.expressInstall="http://www.flowplayer.org/swf/expressinstall.swf";function G(H){if(!E.isLoaded()&&E._fireEvent("onBeforeClick")!==false){E.load()}return f(H)}x=o.innerHTML;if(x.replace(/\s/g,"")!==""){if(o.addEventListener){o.addEventListener("click",G,false)}else{if(o.attachEvent){o.attachEvent("onclick",G)}}}else{if(o.addEventListener){o.addEventListener("click",f,false)}E.load()}}if(typeof o=="string"){flashembed.domReady(function(){var F=c(o);if(!F){throw"Flowplayer cannot access element: "+o}else{o=F;C()}})}else{C()}}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 r=arguments[1];var q=(arguments.length==3)?arguments[2]:{};if(typeof o=="string"){if(o.indexOf(".")!=-1){var t=[];m(n(o),function(){t.push(new b(this,k(r),k(q)))});return new d(t)}else{var s=c(o);return new b(s!==null?s:o,r,q)}}else{if(o){return new b(o,r,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.prototype.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 e=typeof jQuery=="function";function i(){if(c.done){return false}var k=document;if(k&&k.getElementsByTagName&&k.getElementById&&k.body){clearInterval(c.timer);c.timer=null;for(var j=0;j<c.ready.length;j++){c.ready[j].call()}c.ready=null;c.done=true}}var c=e?jQuery:function(j){if(c.done){return j()}if(c.timer){c.ready.push(j)}else{c.ready=[j];c.timer=setInterval(i,13)}};function f(k,j){if(j){for(key in j){if(j.hasOwnProperty(key)){k[key]=j[key]}}}return k}function g(j){switch(h(j)){case"string":j=j.replace(new RegExp('(["\\\\])',"g"),"\\$1");j=j.replace(/^\s?(\d+)%/,"$1pct");return'"'+j+'"';case"array":return"["+b(j,function(m){return g(m)}).join(",")+"]";case"function":return'"function()"';case"object":var k=[];for(var l in j){if(j.hasOwnProperty(l)){k.push('"'+l+'":'+g(j[l]))}}return"{"+k.join(",")+"}"}return String(j).replace(/\s/g," ").replace(/\'/g,'"')}function h(k){if(k===null||k===undefined){return false}var j=typeof k;return(j=="object"&&k.push)?"array":j}if(window.attachEvent){window.attachEvent("onbeforeunload",function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){}})}function b(j,m){var l=[];for(var k in j){if(j.hasOwnProperty(k)){l[k]=m(j[k])}}return l}function a(q,s){var o=f({},q);var r=document.all;var m='<object width="'+o.width+'" height="'+o.height+'"';if(r&&!o.id){o.id="_"+(""+Math.random()).substring(9)}if(o.id){m+=' id="'+o.id+'"'}o.src+=((o.src.indexOf("?")!=-1?"&":"?")+Math.random());if(o.w3c||!r){m+=' data="'+o.src+'" type="application/x-shockwave-flash"'}else{m+=' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'}m+=">";if(o.w3c||r){m+='<param name="movie" value="'+o.src+'" />'}o.width=o.height=o.id=o.w3c=o.src=null;for(var j in o){if(o[j]!==null){m+='<param name="'+j+'" value="'+o[j]+'" />'}}var n="";if(s){for(var l in s){if(s[l]!==null){n+=l+"="+(typeof s[l]=="object"?g(s[l]):s[l])+"&"}}n=n.substring(0,n.length-1);m+='<param name="flashvars" value=\''+n+"' />"}m+="</object>";return m}function d(l,o,k){var j=flashembed.getVersion();f(this,{getContainer:function(){return l},getConf:function(){return o},getVersion:function(){return j},getFlashvars:function(){return k},getApi:function(){return l.firstChild},getHTML:function(){return a(o,k)}});var p=o.version;var q=o.expressInstall;var n=!p||flashembed.isSupported(p);if(n){o.onFail=o.version=o.expressInstall=null;l.innerHTML=a(o,k)}else{if(p&&q&&flashembed.isSupported([6,65])){f(o,{src:q});k={MMredirectURL:location.href,MMplayerType:"PlugIn",MMdoctitle:document.title};l.innerHTML=a(o,k)}else{if(l.innerHTML.replace(/\s/g,"")!==""){}else{l.innerHTML="<h2>Flash version "+p+" or greater is required</h2><h3>"+(j[0]>0?"Your version is "+j:"You have no flash plugin installed")+"</h3>"+(l.tagName=="A"?"<p>Click here to download latest version</p>":"<p>Download latest version from <a href='http://www.adobe.com/go/getflashplayer'>here</a></p>");if(l.tagName=="A"){l.onclick=function(){location.href="http://www.adobe.com/go/getflashplayer"}}}}}if(!n&&o.onFail){var m=o.onFail.call(this);if(typeof m=="string"){l.innerHTML=m}}if(document.all){window[o.id]=document.getElementById(o.id)}}window.flashembed=function(k,l,j){if(typeof k=="string"){var m=document.getElementById(k);if(m){k=m}else{c(function(){flashembed(k,l,j)});return}}if(!k){return}var n={width:"100%",height:"100%",allowfullscreen:true,allowscriptaccess:"always",quality:"high",version:null,onFail:null,expressInstall:null,w3c:false};if(typeof l=="string"){l={src:l}}f(n,l);return new d(k,n,j)};f(window.flashembed,{getVersion:function(){var l=[0,0];if(navigator.plugins&&typeof navigator.plugins["Shockwave Flash"]=="object"){var k=navigator.plugins["Shockwave Flash"].description;if(typeof k!="undefined"){k=k.replace(/^.*\s+(\S+\s+\S+$)/,"$1");var m=parseInt(k.replace(/^(.*)\..*$/,"$1"),10);var q=/r/.test(k)?parseInt(k.replace(/^.*r(.*)$/,"$1"),10):0;l=[m,q]}}else{if(window.ActiveXObject){try{var o=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7")}catch(p){try{o=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");l=[6,0];o.AllowScriptAccess="always"}catch(j){if(l[0]==6){return}}try{o=new ActiveXObject("ShockwaveFlash.ShockwaveFlash")}catch(n){}}if(typeof o=="object"){k=o.GetVariable("$version");if(typeof k!="undefined"){k=k.replace(/^\S+\s+(.*)$/,"$1").split(",");l=[parseInt(k[0],10),parseInt(k[2],10)]}}}}return l},isSupported:function(j){var l=flashembed.getVersion();var k=(l[0]>j[0])||(l[0]==j[0]&&l[1]>=j[1]);return k},domReady:c,asString:g,getHTML:a});if(e){jQuery.tools=jQuery.tools||{version:{}};jQuery.tools.version.flashembed="1.0.2";jQuery.fn.flashembed=function(k,j){var l=null;this.each(function(){l=flashembed(this,k,j)});return k.api===false?this:l}}})();