//flashbin - a flash container , jquery plugin
//requires: jmedia plugin

var __flashbin = jQuery.fn.flashbin = function(flashParams,flashVars){
	var flashbin_swf = $("script[@src$=flashbin.js]").attr('src').replace(/js$/,'swf');
	return this.each(function(index){
		var fv = jQuery.extend({},flashVars);
		var fp = jQuery.extend({},flashParams);
		if(typeof(fv['textfield.htmlText']) == "undefined") fv['textfield.htmlText'] = $(this).html();	

		//if(typeof(fp.flashVars) == "undefined") fp.flashVars = "";
		//for(var k in fv) fp.flashVars += '&' + escape(k)+'='+escape(fv[k]);


		var container_id = 'fb' + String(Math.random()).replace(/\D/,'');
		var resize;
		if(typeof(fp.src) == "undefined"){
			fp = jQuery.extend({src:flashbin_swf,quality:"best",scale:"noscale",salign:"TL"},fp);			
			if(fv.width_resize || fv.height_resize){
				__flashbin.resize_list[container_id] = {
					fp: fp,
					fv: fv
				};
				fv['container.id'] = container_id;	
			}
			
		}
		$(this).wrap('<span id="'+container_id+'"></span>');
		__flashbin.insert(container_id,fp,fv);

	});
}
	
__flashbin.resize_list = {};	

function __flashbin_resize(container_id,detected_width,detected_height){
	var resize = __flashbin.resize_list[container_id];
	var fp = resize.fp;
	var fv = resize.fv;
	if(fv.width_resize) fp.width = detected_width ;
	if(fv.height_resize) fp.height = detected_height;
	delete __flashbin.resize_list[container_id];
	//calling direct will crash Firefox
	setTimeout(function(){__flashbin.insert(container_id,fp,fv);},50);
}

__flashbin.insert = function(container_id,flashParams,flashVars){
	var so = new SWFObject(flashParams.src, container_id+'_movie' ,flashParams.width, flashParams.height, "9");
	for(var k in flashParams) so.addParam(k, flashParams[k]);
	for(var k in flashVars) so.addVariable(k, flashVars[k]);	
	try{
		so.write(container_id);
	}catch(e){};
}
