var SonataSwf = {};
SonataSwf.bFlashReady = false;
SonataSwf.bJSReady = false;	//the user must click on the page to load the video so the page is loaded
SonataSwf.readyCB = null;

$(document).ready(
	function() {
		//called when the html page is ready
		SonataSwf.bJSReady = true;
	}
	);
	
SonataSwf.jsFlashReady = function (){
	//called when the video is ready to play
	SonataSwf.bFlashReady = true;
	if(typeof SonataSwf.readyCB == 'function')
		SonataSwf.readyCB();
	//mprint("flash is ready");
	return SonataSwf.bJSReady;
}	

	
SonataSwf.defSWFOptions =  {
	swfDivId: false		//write the swf object to this id
	, outId: document.uniqueId("swf")	//the id of the swf object created, user $("."+outId) to get the swf object
	, vwid: 600
	, vht: 600
	, bgcolor: "#000000"
	, swf: false
	, controlbar: false
	, directions: false
	, directionsSpeed: 2000
	, jsflashreadyfnc: "SonataSwf.jsFlashReady"
	, readyCB: null
	, args: {}
	};
	
SonataSwf.runSwf = function(opts) {
	var options = {};
	//fill options with defSWFOptions and overlay opts
	$.extend(options,SonataSwf.defSWFOptions,opts);
	//Sonata.prObject("opts",opts);
	//Sonata.prObject("SonataSwf.defSWFOptions",SonataSwf.defSWFOptions);
	//Sonata.prObject("options",options);
	//return;
	if(options.swfDivId==false) {
		mprint("SonataSwf.runSwf: no swfDivId");
		Sonata.prObject("opts",opts);
		Sonata.prObject("options",options);
		return;
	}
	if(options.swf==false) {
		mprint("SonataSwf.runSwf: no swf file");
		Sonata.prObject("opts",opts);
		Sonata.prObject("options",options);
		return;
	}
	SonataSwf.bFlashReady = false;
	SonataSwf.readyCB = options.readyCB;
	var so = new SWFObject(options.swf,options.outId,options.vwid,options.vht,'9',options.bgcolor);
	so.addParam('allowfullscreen','true');
	so.addParam('quality','high');
	so.addParam('allowScriptAccess','sameDomain');
	//tells browser to display flash transparently when layered in html
	//http://www.askapache.com/css/getting-flash-to-show-up-in-front-of-content.html
	//http://joshuaink2006.johnoxton.co.uk/blog/82/flash-content-and-z-index
	so.addParam("wmode","transparent");	
	so.addVariable('bgcolor',options.bgcolor);
	so.addVariable('jsflashreadyfnc',options.jsflashreadyfnc);
	so.addVariable('controlbar',options.controlbar?"true":"false");
	so.addVariable('directions',options.directions?"true":"false");
	so.addVariable('directionsSpeed',""+options.directionsSpeed);
	var arg;
	for(arg in options.args) {
		//mprint("addVariable arg="+arg+" value="+options.args[arg]);
		so.addVariable(arg,options.args[arg]);
	}
	so.write(options.swfDivId);
	
	return options.outId;
}
