/* 
 * flowplayer.js 3.2.2. The Flowplayer API
 * 
 * Copyright 2010 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-05-20 17:15:38 +0000 (Thu, 20 May 2010)
 * Revision: 480 
 */
//(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=""}flashembed(q,G,{config:t});if(J){J.cached=true;j(x,"onLoad",J)}};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.0";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}});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=v.clientHeight;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 H=0;m(t.playlist,function(){var J=this;if(typeof J=="object"&&J.length){J={url:""+J}}m(t.clip,function(K,L){if(L!==undefined&&J[K]===undefined&&typeof L!="function"){J[K]=L}});t.playlist[H]=J;J=new h(J,H,w);F.push(J);H++});m(t,function(J,K){if(typeof K=="function"){if(s[J]){s[J](K)}else{j(x,J,K)}delete t[J]}});m(t.plugins,function(J,K){if(K){y[J]=new l(J,K,w)}});if(!t.plugins||t.plugins.controls===undefined){y.controls=new l("controls",null,w)}y.canvas=new l("canvas",null,w);function I(J){if(!w.isLoaded()&&w._fireEvent("onBeforeClick")!==false){w.load()}return f(J)}u=q.innerHTML;if(u.replace(/\s/g,"")!==""){if(q.addEventListener){q.addEventListener("click",I,false)}else{if(q.attachEvent){q.attachEvent("onclick",I)}}}else{if(q.addEventListener){q.addEventListener("click",f,false)}w.load()}}if(typeof q=="string"){var z=c(q);if(!z){throw"Flowplayer cannot access element: "+q}else{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(l,f){if(f){for(key in f){if(f.hasOwnProperty(key)){l[key]=f[key]}}}return l}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 f;try{f=navigator.plugins["Shockwave Flash"].description.slice(16)}catch(n){try{var l=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");f=l&&l.GetVariable("$version")}catch(m){}}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.0"};jQuery.tools.flashembed={conf:b};jQuery.fn.flashembed=function(l,f){return this.each(function(){$(this).data("flashembed",flashembed(this,l,f))})}}})();


(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 = ""
                        }
                        flashembed(q, G, {
                            config: t
                        });
                        if (J) {
                            J.cached = true;
                            j(x, "onLoad", J)
                        }
                    };
                    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.0";
                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
            }
        });
        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 = v.clientHeight;
                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 H = 0;
            m(t.playlist, function () {
                var J = this;
                if (typeof J == "object" && J.length) {
                    J = {
                        url: "" + J
                    }
                }
                m(t.clip, function (K, L) {
                    if (L !== undefined && J[K] === undefined && typeof L != "function") {
                        J[K] = L
                    }
                });
                t.playlist[H] = J;
                J = new h(J, H, w);
                F.push(J);
                H++
            });
            m(t, function (J, K) {
                if (typeof K == "function") {
                    if (s[J]) {
                        s[J](K)
                    } else {
                        j(x, J, K)
                    }
                    delete t[J]
                }
            });
            m(t.plugins, function (J, K) {
                if (K) {
                    y[J] = new l(J, K, w)
                }
            });
            if (!t.plugins || t.plugins.controls === undefined) {
                y.controls = new l("controls", null, w)
            }
            y.canvas = new l("canvas", null, w);

            function I(J) {
                if (!w.isLoaded() && w._fireEvent("onBeforeClick") !== false) {
                    w.load()
                }
                return f(J)
            }
            u = q.innerHTML;
            if (u.replace(/\s/g, "") !== "") {
                if (q.addEventListener) {
                    q.addEventListener("click", I, false)
                } else {
                    if (q.attachEvent) {
                        q.attachEvent("onclick", I)
                    }
                }
            } else {
                if (q.addEventListener) {
                    q.addEventListener("click", f, false)
                }
                w.load()
            }
        }
        if (typeof q == "string") {
            var z = c(q);
            if (!z) {
                throw "Flowplayer cannot access element: " + q
            } else {
                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(l, f) {
        if (f) {
            for (key in f) {
                if (f.hasOwnProperty(key)) {
                    l[key] = f[key]
                }
            }
        }
        return l
    }
    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 f;
            try {
                f = navigator.plugins["Shockwave Flash"].description.slice(16)
            } catch (n) {
                try {
                    var l = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
                    f = l && l.GetVariable("$version")
                } catch (m) {}
            }
            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.0"
        };
        jQuery.tools.flashembed = {
            conf: b
        };
        jQuery.fn.flashembed = function (l, f) {
            return this.each(function () {
                $(this).data("flashembed", flashembed(this, l, f))
            })
        }
    }
})();
