/** 
 * flashembed 0.31. Adobe Flash embedding script
 * 
 * http://flowplayer.org/tools/flash-embed.html
 *
 * Copyright (c) 2008 Tero Piirainen (tipiirai@gmail.com)
 *
 * Released under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 * 
 * >> Basically you can do anything you want but leave this header as is <<
 *
 * version 0.01 - 03/11/2008 
 * version 0.31 - Tue Jul 22 2008 06:30:31 GMT+0200 (GMT+02:00)
 */
function flashembed(root,userParams,flashvars){
    function getHTML(){
        var html="";
        if(typeof flashvars=='function'){
            flashvars=flashvars();
        }
        if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){
            html='<embed type="application/x-shockwave-flash" ';
            if(params.id){
                extend(params,{
                    name:params.id
                    });
            }
            for(var key in params){
                if(params[key]!==null){
                    html+=[key]+'="'+params[key]+'"\n\t';
                }
            }
            if(flashvars){
                html+='flashvars=\''+concatVars(flashvars)+'\'';
            }
            html+='/>';
        }
        else{
            html='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" ';
            html+='width="'+params.width+'" height="'+params.height+'"';
            if(!params.id&&document.all){
                params.id="_"+(""+Math.random()).substring(5);
            }
            if(params.id){
                html+=' id="'+params.id+'"';
            }
            html+='>';
            html+='\n\t<param name="movie" value="'+params.src+'" />';params.id=params.src=params.width=params.height=null;for(var k in params){
                if(params[k]!==null){
                    html+='\n\t<param name="'+k+'" value="'+params[k]+'" />';
                }
                }if(flashvars){
                html+='\n\t<param name="flashvars" value=\''+concatVars(flashvars)+'\' />';
            }html+="</object>";if(debug){
                alert(html);
            }
            }return html;
    }function init(name){
        var timer=setInterval(function(){
            var doc=document;var el=doc.getElementById(name);if(el){
                flashembed(el,userParams,flashvars);clearInterval(timer);
            }else if(doc&&doc.getElementsByTagName&&doc.getElementById&&doc.body){
                clearInterval(timer);
            }
            },13);return true;
    }function extend(to,from){
        if(from){
            for(key in from){
                if(from.hasOwnProperty(key)){
                    to[key]=from[key];
                }
                }
            }
        }var params={
        src:'#',
        width:'100%',
        height:'100%',
        version:null,
        onFail:null,
        expressInstall:null,
        debug:false,
        bgcolor:'#ffffff',
        allowfullscreen:true,
        allowscriptaccess:'always',
        quality:'high',
        type:'application/x-shockwave-flash',
        pluginspage:'http://www.adobe.com/go/getflashplayer'
    };if(typeof userParams=='string'){
        userParams={
            src:userParams
        };
    }extend(params,userParams);var version=flashembed.getVersion();var required=params.version;var express=params.expressInstall;var debug=params.debug;if(typeof root=='string'){
        var el=document.getElementById(root);if(el){
            root=el;
        }else{
            return init(root);
        }
        }if(!root){
        return;
    }if(!required||flashembed.isSupported(required)){
        params.onFail=params.version=params.expressInstall=params.debug=null;root.innerHTML=getHTML();return root.firstChild;
    }else if(params.onFail){
        var ret=params.onFail.call(params,flashembed.getVersion(),flashvars);if(ret){
            root.innerHTML=ret;
        }
        }else if(required&&express&&flashembed.isSupported([6,65])){
        extend(params,{
            src:express
        });flashvars={
            MMredirectURL:location.href,
            MMplayerType:'PlugIn',
            MMdoctitle:document.title
            };root.innerHTML=getHTML();
    }else{
        if(root.innerHTML.replace(/\s/g,'')!==''){}else{
            root.innerHTML="<h2>Flash version "+required+" or greater is required</h2>"+"<h3>"+(version[0]>0?"Your version is "+version:"You have no flash plugin installed")+"</h3>"+"<p>Download latest version from <a href='"+params.pluginspage+"'>here</a></p>";
        }
        }function concatVars(vars){
        var out="";for(var key in vars){
            if(vars[key]){
                out+=[key]+'='+asString(vars[key])+'&';
            }
            }return out.substring(0,out.length-1);
    }function asString(obj){
        switch(typeOf(obj)){
            case'string':return'"'+obj.replace(new RegExp('(["\\\\])','g'),'\\$1')+'"';case'array':return'['+map(obj,function(el){
                return asString(el);
            }).join(',')+']';case'function':return'"function()"';case'object':var str=[];for(var prop in obj){
                if(obj.hasOwnProperty(prop)){
                    str.push('"'+prop+'":'+asString(obj[prop]));
                }
                }return'{'+str.join(',')+'}';
        }return String(obj).replace(/\s/g," ").replace(/\'/g,"\"");
    }function typeOf(obj){
        if(obj===null||obj===undefined){
            return false;
        }var type=typeof obj;return(type=='object'&&obj.push)?'array':type;
    }if(window.attachEvent){
        window.attachEvent("onbeforeunload",function(){
            __flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){};
        });
    }function map(arr,func){
        var newArr=[];for(var i in arr){
            if(arr.hasOwnProperty(i)){
                newArr[i]=func(arr[i]);
            }
            }return newArr;
    }return root;
}if(typeof jQuery=='function'){
    (function($){
        $.fn.extend({
            flashembed:function(params,flashvars){
                return this.each(function(){
                    flashembed(this,params,flashvars);
                });
            }
            });
    })(jQuery);
}flashembed=flashembed||{};flashembed.getVersion=function(){
    var version=[0,0];if(navigator.plugins&&typeof navigator.plugins["Shockwave Flash"]=="object"){
        var _d=navigator.plugins["Shockwave Flash"].description;if(typeof _d!="undefined"){
            _d=_d.replace(/^.*\s+(\S+\s+\S+$)/,"$1");var _m=parseInt(_d.replace(/^(.*)\..*$/,"$1"),10);var _r=/r/.test(_d)?parseInt(_d.replace(/^.*r(.*)$/,"$1"),10):0;version=[_m,_r];
        }
        }else if(window.ActiveXObject){
        try{
            var _a=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
        }catch(e){
            try{
                _a=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");version=[6,0];_a.AllowScriptAccess="always";
            }catch(ee){
                if(version[0]==6){
                    return;
                }
                }try{
                _a=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
            }catch(eee){}
            }if(typeof _a=="object"){
            _d=_a.GetVariable("$version");if(typeof _d!="undefined"){
                _d=_d.replace(/^\S+\s+(.*)$/,"$1").split(",");version=[parseInt(_d[0],10),parseInt(_d[2],10)];
            }
            }
        }return version;
};flashembed.isSupported=function(version){
    var now=flashembed.getVersion();var ret=(now[0]>version[0])||(now[0]==version[0]&&now[1]>=version[1]);return ret;
};
