function fbInit(apiKey) {
	FB_RequireFeatures(['Connect'], function() {
		FB.Facebook.init(apiKey, 'fbconnect/xd_receiver.htm', {doNotUseCachedConnectState: true, ifUserConnected: fbUserConnected, ifUserNotConnected: fbUserNotConnected});
	});
}
function fbUserConnected() {
	fbCallback('fbInit', true);
}
function fbUserNotConnected() {
	fbCallback('fbInit', false);
}

function fbLogin() {
	FB.Connect.requireSession();
	FB.Facebook.get_sessionState().waitUntilReady(fbLoggedIn);
}
function fbLoggedIn(session) {
	fbCallback('fbLogin', (session ? true : false));
}

function fbShowFeedDialog(bundleID, data, targetID, body) {
	FB.Connect.showFeedDialog(bundleID, data, targetID, body, null, FB.RequireConnect.require, fbPostedToFeed);
}
function fbPostedToFeed() {
	fbCallback('fbShowFeedDialog');
}

function fbCallback(func) {
	if (arguments.length > 1)
		swfobject.getObjectById('site')[func](Array.prototype.slice.call(arguments).slice(1)[0]);
	else
		swfobject.getObjectById('site')[func]();
}