// Local Variable with Flash Content id. default = flashcontent
var as_swf_name = "flashcontent";
var api_key = "";
var session_data;
var user;


// Initialise Facebook
function fbInit(asSwfName, apiKey, receiver) {
	as_swf_name = asSwfName;
	api_key = apiKey;
	FB.init(apiKey, receiver, {permsToRequestOnConnect:"publish_stream"});
}
 
 
 
// JavaScript Connect method - called from Flash
function fbconnectlogin() {
	session_data = FB.Facebook.apiClient.get_session();
	// check to see if the user is already logged into Facebook
	if (session_data != null) {
		//passSessionDataToFlash();
		getUser();
	}
	else {
		FB.Connect.requireSession(onLogin);
	}
}



// Event Handlers
function onLogin() {
	session_data = FB.Facebook.apiClient.get_session();
	//passSessionDataToFlash();
	getUser();
}


function getUser() {
	FB.Facebook.apiClient.users_getInfo(session_data.uid, ["name"], function(result){onUser(result)});
}


function onUser(result) {
	user = result[0];
	passSessionDataToFlash();
}


function passSessionDataToFlash() {
	var flashVars = {	as_swf_name: as_swf_name,
						session_key: session_data.session_key,
						secret: session_data.secret,
						uid: session_data.uid,
						api_key: api_key,
						user_name: user.name
	};
	flashCallBack("onSession", flashVars);
}



// Call a function in Flash and optionally pass arguments
function flashCallBack(func) {
	if (arguments.length > 1) {
		document[as_swf_name][func](Array.prototype.slice.call(arguments).slice(1)[0]);
	}
	else {
		document[as_swf_name][func]();
	}
}
