
var flexId = "";

function fbInit( apikey, crossdomain, id )
{
	FB.init( apikey, crossdomain );
	flexId = id;
}

function fbLogin( isAuto )
{
	if ( isAuto == false ){
		//alert("isAuto == false");
		FB.Connect.requireSession( onLogin );
	}
	else
	{
		//alert("isAuto == true");
		FB.Facebook.get_sessionState().waitUntilReady(function(session) 
				{
					if(session)
						onLogin();
				});
	}
}
function onLogin()
{
	flexDispatcher( "onLoggedIn", FB.Facebook.apiClient._session );
}

function fbUserInfo( uid, params )
{
	FB.Facebook.apiClient.users_getInfo( uid, params, onUserInfo );
}
function onUserInfo( result, ex )
{
	flexDispatcher( "onUserInfo", result[ 0 ] );
}

function fbLogout()
{
	FB.Connect.logout( onLogout );
}
function onLogout()
{
	flexDispatcher( "onLoggedOut" );
}

function inviteFriends( title, fbmlContent )
{
  FB.ensureInit(function()
  {
        var dialog = new FB.UI.FBMLPopupDialog( title, '' );
        var fbml = fbmlContent;
        
        dialog.setFBMLContent(fbml);
        dialog.setContentWidth(775);
        dialog.setContentHeight(675);
        
        dialog.show();
    });
}

//publish to the wall
function fbPublish( template, flavorToken, commentToken, imagePath, imageLink )
{
	var comment_data = { 	
							"flavor":flavorToken, 
							"comment":commentToken,
							"images":[{"src":imagePath, "href":imageLink}]
						};					
	
	FB.Connect.showFeedDialog( template , comment_data, null, null, null, FB.RequireConnect.promptConnect);
}


function flexDispatcher( func )
{
	if( arguments.length > 1 )
		swfobject.getObjectById( flexId )[func]( Array.prototype.slice.call(arguments).slice(1)[0]);
	else
		swfobject.getObjectById( flexId )[func]();
}