(function() {
	var glow;
	
	gloader.load(
		["glow", "1", "glow.dom", "glow.embed", "glow.events", "glow.widgets.Mask", "glow.widgets.Overlay", "glow.widgets.Panel"],
		{
			async: false,
			onLoad: function(fetchedGlow) {
				glow = fetchedGlow;
				glow.ready(init);
			}
		}
	);

function init() {
	
	glow.lang.extend(bbc.fmtj.csd.pmConcrete, bbc.fmtj.csd.pmDirector);

	pm = new bbc.fmtj.csd.pmDirector(glow);
	
	// directives
	
	// context
	var ctxt_dirv = {
		metadata : {
			trans : biker_dTranslate,
			assets : biker_mediaAssetsHash,
			hotspots : "map#bikerimgmap area",
			context : {
				id : "img#biker_img",
				width : 786
			},
			project : 'biker',
			type : 'context'
		},
		classes : {
			def : "biker_overlay_def",
			panel : "biker_overlay_panel",
			emb :  "biker_embmed"
		},
		panel : {
			width : 552,
			top_offset : -10,
			interactFx : panelInteract
		} // no infopanel
	};
	
	// content
	var ctnt_dirv = {
		metadata : {
			trans : biker_dTranslate,
			assets : biker_mediaAssetsHash,
			hotspots : "map#bikerimgmap area",
			context : {
				id : "img#biker_img",
				width : 786
			},
			project : 'biker',
			type : 'content' // no infopanel
		},
		classes : {
			def : "biker_overlay_def",
			panel : "biker_overlay_panel",
			emb :  "biker_embmed"
		},
		embmed : {
			width : 512,
			height: 323,
			flashVars : {
				config: "http://news.bbc.co.uk/player/emp/config/default.xml?v11",
				config_settings_autoPlay: "true",
				/* if international :
				companionSize: "300x30",
				companionType: "adi",
				preroll: "http://ad.doubleclick.net/pfadx/bbccom.live.site.news/news_uk_content",
				*/
				preroll: "",
				config_plugin_fmtjLiveStats_pageType: "eav1",
				embedReferer: "http://news.bbc.co.uk/1/hi/uk/7712908.stm"
				/* will be changing
				config_plugin_fmtjLiveStats_edition: "Domestic"
				*/
			},
			fx : {
				close : stopPlay
			}
		}
	};

	pm.obj.context = pm.contextBuilder();
	pm.obj.context.setDirective(ctxt_dirv);

	pm.obj.content = pm.contentBuilder();
	pm.obj.content.setDirective(ctnt_dirv);

	for (o in pm.obj) {
		if(glow.lang.hasOwnProperty(pm.obj, o)) {
			pm.build(pm.obj[o]);
		}
	}
}

var panelInteract = function (which) {
	// be careful of the scope! 'this' is not what you think it would be!
	// make Panel pop up
	var biker_img = glow.dom.get(pm.obj.context.directive.metadata.context.id);
	if (pm.obj.context.ext_get_gvar('showing')) { // no two panels at the same time
		return false;
	} else {
		if (typeof(pm.obj.context.ext_get_gvar('embedMedia')[which]) != 'undefined') {
			pm.obj.context.ext_get_gvar('embedMedia')[which].embed();
		}
		pm.obj.context.ext_get_gvar('panelCompl')[which].show();
		
		// set position (this is to fix the problem when user resizes window after it has loaded)
		pm.obj.context.ext_get_gvar('panelCompl')[which].container.css("top", biker_img.offset().top + pm.obj.context.directive.panel.top_offset +"px");
		pm.obj.context.ext_get_gvar('panelCompl')[which].container.css("left", biker_img.offset().left + ((pm.obj.context.directive.metadata.context.width-pm.obj.context.directive.panel.width)/2) +"px");
		
		// disable cursors
		//glow.dom.get(pm.obj.context.directive.metadata.hotspots).css("cursor","normal");
		
		// panel open now
		pm.obj.context.ext_set_gvar('showing', true);
	}
};

var stopPlay = function (what) {
	if (glow.dom.get("#emb_" + what).length !== 0) {
		glow.dom.get("#emb_" + what).remove();
	}
	
	// enable cursors
	//glow.dom.get(pm.obj.context.directive.metadata.hotspots).css("cursor","pointer");
	
	pm.obj.context.ext_set_gvar('showing', false); // ok to open up another panel now
};

})();