/* 
 * flowplayer.js 3.1.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: 2009-02-25 21:24:29 +0000 (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(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 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"||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(){
                if(x.replace(/\s/g,"")!==""){
                    if(E._fireEvent("onBeforeUnload")===false){
                        return E
                        }try{
                        if(y){
                            y.fp_close();E._fireEvent("onUnload")
                            }
                        }catch(F){}y=null;o.innerHTML=x
                    }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.4";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,MouseOver,MouseOut").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,playFeed").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"||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"){
                    if(u[H]){
                        u[H](I)
                        }else{
                        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";var i={
        width:"100%",
        height:"100%",
        allowfullscreen:true,
        allowscriptaccess:"always",
        quality:"high",
        version:null,
        onFail:null,
        expressInstall:null,
        w3c:false,
        cachebusting:false
    };if(e){
        jQuery.tools=jQuery.tools||{};jQuery.tools.flashembed={
            version:"1.0.4",
            conf:i
        }
        }function j(){
        if(c.done){
            return false
            }var l=document;if(l&&l.getElementsByTagName&&l.getElementById&&l.body){
            clearInterval(c.timer);c.timer=null;for(var k=0;k<c.ready.length;k++){
                c.ready[k].call()
                }c.ready=null;c.done=true
            }
        }var c=e?jQuery:function(k){
        if(c.done){
            return k()
            }if(c.timer){
            c.ready.push(k)
            }else{
            c.ready=[k];c.timer=setInterval(j,13)
            }
        };function f(l,k){
        if(k){
            for(key in k){
                if(k.hasOwnProperty(key)){
                    l[key]=k[key]
                    }
                }
            }return l
        }function g(k){
        switch(h(k)){
            case"string":k=k.replace(new RegExp('(["\\\\])',"g"),"\\$1");k=k.replace(/^\s?(\d+)%/,"$1pct");return'"'+k+'"';case"array":return"["+b(k,function(n){
                return g(n)
                }).join(",")+"]";case"function":return'"function()"';case"object":var l=[];for(var m in k){
                if(k.hasOwnProperty(m)){
                    l.push('"'+m+'":'+g(k[m]))
                    }
                }return"{"+l.join(",")+"}"
                }return String(k).replace(/\s/g," ").replace(/\'/g,'"')
        }function h(l){
        if(l===null||l===undefined){
            return false
            }var k=typeof l;return(k=="object"&&l.push)?"array":k
        }if(window.attachEvent){
        window.attachEvent("onbeforeunload",function(){
            __flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){}
            })
        }function b(k,n){
        var m=[];for(var l in k){
            if(k.hasOwnProperty(l)){
                m[l]=n(k[l])
                }
            }return m
        }function a(r,t){
        var q=f({},r);var s=document.all;var n='<object width="'+q.width+'" height="'+q.height+'"';if(s&&!q.id){
            q.id="_"+(""+Math.random()).substring(9)
            }if(q.id){
            n+=' id="'+q.id+'"'
            }if(q.cachebusting){
            q.src+=((q.src.indexOf("?")!=-1?"&":"?")+Math.random())
            }if(q.w3c||!s){
            n+=' data="'+q.src+'" type="application/x-shockwave-flash"'
            }else{
            n+=' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'
            }n+=">";if(q.w3c||s){
            n+='<param name="movie" value="'+q.src+'" />'
            }q.width=q.height=q.id=q.w3c=q.src=null;for(var l in q){
            if(q[l]!==null){
                n+='<param name="'+l+'" value="'+q[l]+'" />'
                }
            }var o="";if(t){
            for(var m in t){
                if(t[m]!==null){
                    o+=m+"="+(typeof t[m]=="object"?g(t[m]):t[m])+"&"
                    }
                }o=o.substring(0,o.length-1);n+='<param name="flashvars" value=\''+o+"' />"
            }n+="</object>";return n
        }function d(m,p,l){
        var k=flashembed.getVersion();f(this,{
            getContainer:function(){
                return m
                },
            getConf:function(){
                return p
                },
            getVersion:function(){
                return k
                },
            getFlashvars:function(){
                return l
                },
            getApi:function(){
                return m.firstChild
                },
            getHTML:function(){
                return a(p,l)
                }
            });var q=p.version;var r=p.expressInstall;var o=!q||flashembed.isSupported(q);if(o){
            p.onFail=p.version=p.expressInstall=null;m.innerHTML=a(p,l)
            }else{
            if(q&&r&&flashembed.isSupported([6,65])){
                f(p,{
                    src:r
                });l={
                    MMredirectURL:location.href,
                    MMplayerType:"PlugIn",
                    MMdoctitle:document.title
                    };m.innerHTML=a(p,l)
                }else{
                if(m.innerHTML.replace(/\s/g,"")!==""){}else{
                    m.innerHTML="<h2>Flash version "+q+" or greater is required</h2><h3>"+(k[0]>0?"Your version is "+k:"You have no flash plugin installed")+"</h3>"+(m.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(m.tagName=="A"){
                        m.onclick=function(){
                            location.href="http://www.adobe.com/go/getflashplayer"
                            }
                        }
                    }
                }
            }if(!o&&p.onFail){
            var n=p.onFail.call(this);if(typeof n=="string"){
                m.innerHTML=n
                }
            }if(document.all){
            window[p.id]=document.getElementById(p.id)
            }
        }window.flashembed=function(l,m,k){
        if(typeof l=="string"){
            var n=document.getElementById(l);if(n){
                l=n
                }else{
                c(function(){
                    flashembed(l,m,k)
                    });return
            }
            }if(!l){
            return
        }if(typeof m=="string"){
            m={
                src:m
            }
            }var o=f({},i);f(o,m);return new d(l,o,k)
        };f(window.flashembed,{
        getVersion:function(){
            var m=[0,0];if(navigator.plugins&&typeof navigator.plugins["Shockwave Flash"]=="object"){
                var l=navigator.plugins["Shockwave Flash"].description;if(typeof l!="undefined"){
                    l=l.replace(/^.*\s+(\S+\s+\S+$)/,"$1");var n=parseInt(l.replace(/^(.*)\..*$/,"$1"),10);var r=/r/.test(l)?parseInt(l.replace(/^.*r(.*)$/,"$1"),10):0;m=[n,r]
                    }
                }else{
                if(window.ActiveXObject){
                    try{
                        var p=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7")
                        }catch(q){
                        try{
                            p=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");m=[6,0];p.AllowScriptAccess="always"
                            }catch(k){
                            if(m[0]==6){
                                return m
                                }
                            }try{
                            p=new ActiveXObject("ShockwaveFlash.ShockwaveFlash")
                            }catch(o){}
                        }if(typeof p=="object"){
                        l=p.GetVariable("$version");if(typeof l!="undefined"){
                            l=l.replace(/^\S+\s+(.*)$/,"$1").split(",");m=[parseInt(l[0],10),parseInt(l[2],10)]
                            }
                        }
                    }
                }return m
            },
        isSupported:function(k){
            var m=flashembed.getVersion();var l=(m[0]>k[0])||(m[0]==k[0]&&m[1]>=k[1]);return l
            },
        domReady:c,
        asString:g,
        getHTML:a
    });if(e){
        jQuery.fn.flashembed=function(l,k){
            var m=null;this.each(function(){
                m=flashembed(this,l,k)
                });return l.api===false?this:m
            }
        }
    })();
