/** 
 * 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:false,
    allowscriptaccess:'always',
    quality:'high',
    type:'application/x-shockwave-flash',
    pluginspage:'http://www.adobe.com/go/getflashplayer',
    showfullscreenbutton:false,
    showmenu:false
    };
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;
};
