//embed_glow.js r15796
if (!embeddedMedia) {
    var embeddedMedia = {};
    gloader.load(["glow", "1.6.1", "glow.embed"], {
        onload: function (glow) {
            embeddedMedia.Player = function (version) {
                this.revision = "15501_15796";
                this.version = version || "8";
                this.opts = {};
                this.opts.params = {};
                this.opts.params.flashvars = {};
                this.opts.params.quality = "high";
                this.opts.params.wmode = "default";
                this.opts.params.quality = "high";
                this.opts.params.allowFullScreen = "true";
                this.opts.params.allowScriptAccess = "always";
                this.opts.params.flashvars.embedReferer = document.referrer;
                this.opts.params.flashvars.embedPageUrl = location.href;
            };

            embeddedMedia.playerInstances = {};

            embeddedMedia.Player.prototype = {

                write: function (guidanceFlag) {

                    embeddedMedia.playerInstances[this.domId] = this;

                    if (bbc.guidance) {
                        var instance = embeddedMedia.playerInstances,
                        guidance = bbc.guidance;

                        if (!embeddedMedia.guidanceInstalled) {
                            embeddedMedia.guidanceInstalled = true;
                            guidance.callbacks.toggle = guidance.callbacks.pass = function (status, callbackId) {
                                if (instance[callbackId]) instance[callbackId].write(status);
                            };
                        }

                        instance[this.domId] = this;
                        this.set("guidance", guidanceFlag || guidance.status());
                    }

                    var flashVersion = glow.embed.Flash.version();

                    var swf = "";
					if (flashVersion.major >= 10) {
						swf = "10player.swf";
					} else if (flashVersion.major < 8) {
						swf = "7player.swf";
					} else if (flashVersion.major == 9 && (flashVersion.minor > 0 || flashVersion.release >= 115)) {
						swf = "9player.swf";
					} else {
						swf = "player.swf";
					}
					
                    swf = "http://www.bbc.co.uk/emp/" + swf + "?revision=" + this.revision;
                    if (!this.opts.id) {
                        this.opts.id = "bbc_emp_embed_" + this.opts.params.flashvars.domId;
                    }
                    if (!this.opts.message) {
                        this.opts.message = glow.dom.get("#" + this.domId).html();
                    }
                    this.embed = new glow.embed.Flash(swf, "#" + this.opts.params.flashvars.domId, this.version, this.opts).embed();
                },
                setWidth: function (value) {
                    this.opts.width = value;
                },
                setHeight: function (value) {
                    this.opts.height = value;
                },
                setPlaylist: function (value) {
                    this.opts.params.flashvars.playlist = value;
                },
                setConfig: function (value) {
                    this.opts.params.flashvars.config = value;
                },
                setDomId: function (value) {
                    this.domId = value;
                    this.opts.params.flashvars.domId = value;
                },
                setId: function (value) {
                    this.opts.id = value;
                },
                setRevision: function (value) {
                    this.revision = value;
                },
				setWmode: function (value) {
					this.opts.param.wmode = value;
				},
                setMessage: function (message) {
                    this.opts.message = message;
                },
                set: function (key, value) {
                    this.opts.params.flashvars[key] = value;
                },
                call: function (functionName, params, callbackFunction) {
                    this.embed.movie.call(functionName, params, callbackFunction);
                },
                handleEvent: function (event) {
                    if (!this[event.type]) return;
                    this[event.type](event);
                },
                register: function (eventType) {
                    this.embed.movie.register(eventType);
                },
                unregister: function (eventType) {
                    this.embed.movie.unregister(eventType);
                },
                isEmbedded: function () {
                    return (this.embed && this.embed.movie) ? true : false;
                }
            };

            embeddedMedia.console = function () {

                var popDetail = {};

				function popoutSimulcast(pid, locale, colour) {
					var root = (locale && locale != "en") ? "/iplayer/" + locale : "/iplayer";

					createPopup(
					root + "/console/" + pid + (colour ? ("/colour/" + colour) : "/colour/silver"), "simulcastPop", 429, 512);
				}

                function popoutRadioInvoke(pid, locale) {
                    createPopup(getRadioConsoleUrl(pid, locale), "radioPop", 270, 512);
                }

                function getRadioConsoleUrl(pid, locale) {
                    var root = (locale && locale != "en") ? "/iplayer/" + locale : "/iplayer";
                    return root + "/console/" + (pid);
                }

                function popout(params, height, width, mode) {

                    height = height * 1;
                    width = width * 1;

                    popDetail = {
                        params: params,
                        mode: mode,
                        height: height,
                        width: width
                    };

                    createPopup("/emp/pop.html", "videoPop" + mode, height + ((mode == "standard") ? 77 : 32), width);
                }

                function createPopup(url, name, height, width) {

                    var win = window.open(
                    url, name, "width=" + width + ",height=" + height + ",toolbar=no,resizable=no,scrollbars=no");

                    if (!win.opener) win.opener = window.self;
                    if (win.focus) win.focus();
                    return win;
                }

                return {
                    popoutRadio: function (pid) {
                        popoutRadioInvoke(pid);
                    },
                    popoutRadioInvoke: popoutRadioInvoke,
                    popoutAudio: function (params, height, width) {
                        popout(params, height, width, "audio");
                    },
                    popoutVideo: function (params, height, width) {
                        popout(params, height, width, "standard");
                    },
					popoutiPlayerVideo: function(params,height,width) {
						popout(params,"323","512","standard");
					},
					/*
                    popoutiPlayerVideo: function (language, vpid, epid) {
					alert(language +""+vpid+""+epid);
                        createPopup("http://bbc.co.uk/iplayer/" + ((language != "en") ? language + "/" : "") + "console/" + epid + ((vpid) ? "/" + vpid : ""), "videoPopstandard", 400, 512);
                    },
					*/
					popoutSimulcast: function (pid, locale, colour) {
						popoutSimulcast(pid, locale, colour);
					},
					popoutBlackSimulcast: function (pid, locale) {
						popoutSimulcast(pid, locale, "black");
					},
                    notifyParent: function (childWin) {
                        if (childWin && childWin.updatePlayer) childWin.updatePlayer(popDetail);
                    }
                };
            } ();

            embeddedMedia.diagnostics = function () {
                return {
                    openDiagnostics: function () {
                        var href = ((/bbc.co.uk(:\d{2,5})?\/iplayer/).test(location.href)) ? "/iplayer/diagnostics" : "http://www.bbc.co.uk/iplayer/diagnostics";
                        var isPopup = (/emp\/pop/).test(location) || (/iplayer\/console/).test(location.href);
                        if (isPopup) {
                            window.open(href, "_blank");
                        } else {
                            location.href = href;
                        }
                    }
                };
            } ();

           

            if (!window.bbc) window.bbc = {};
            window.bbc.Emp = embeddedMedia.Player;

            //WIDGETS
            embeddedMedia.Widget = function (options, revision) {
                this.revision = revision ? revision : "14090";
                this.version = "9";
                this.opts = options;
                this.opts.params.quality = "high";
                this.opts.params.wmode = "default";
                this.opts.params.quality = "high";
                this.opts.params.allowFullScreen = "true";
                this.opts.params.allowScriptAccess = "always";
                this.opts.params.flashvars.embedReferer = document.referrer;
                this.opts.params.flashvars.embedPageUrl = location.href;
                this.opts.id = "bbc_emp_embed_" + this.opts.params.flashvars.domId;
            };
			
			embeddedMedia.widgetInstances = {};
			
            embeddedMedia.Widget.prototype = 
			{
				 write: function () 
				{
					embeddedMedia.widgetInstances[this.opts.params.flashvars.domId] = this;
                    this.embed = new glow.embed.Flash("http://www.bbc.co.uk/emp/widgets/" + this.revision + "_shell.swf", "#" + this.opts.params.flashvars.domId, this.version, this.opts).embed();
                },
				call: function (functionName, params, callbackFunction) 
				{
					this.embed.movie.call(functionName, params, callbackFunction);
				}, 
				handleEvent: function (event) 
				{
					if (!this[event.type]) return; 
					this[event.type](event);
				},
				register: function (eventType) 
				{
					this.embed.movie.register(eventType);
				}, 
				unregister: function (eventType) 
				{
					this.embed.movie.unregister(eventType);
				} 
               
            };
			
			 embeddedMedia.api = function () {
                return {
                    handleEvent: function (id, event) 
					{
						if ( embeddedMedia.playerInstances[id] ) 
						{
							embeddedMedia.playerInstances[id].handleEvent(event);
						} 
						else if ( embeddedMedia.widgetInstances[id] ) 
						{
							embeddedMedia.widgetInstances[id].handleEvent(event);
						}
                    }
                };
            } ();
        }
    });
}