var flexId = "";

function fbInit( apikey, crossdomain, id )
{
	FB.init( apikey, crossdomain );
	flexId = id;
}

function fbLogin( isAuto )
{
	if ( isAuto == false ){
		FB.Connect.requireSession( onLogin );
	} else
	{
		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(630);
        dialog.setContentHeight(540);
        
        dialog.show();
    });
}

function fbPublish( template, param1, imagePath, imageLink )
{
	
	var comment_data = { 	
							"num":param1, 
							"images":[{"src":imagePath, "href":imageLink}]
						};					
	/*
	
	var objectLinks = new Array({text: 'viens jouer à micmacs',href:'http://www.micmacs-lefilm.com/lejeu'});
	
	
	var attachment = {'media':[{'type':'image','src':imagePath,'href':imageLink,description:' a rejoins la bande micmacs'}]}; 
	
	FB.Connect.streamPublish('Thomas a rejoins la bande du micmacs', attachment,objectLinks, null,null,null,true);
	*/
	FB.Connect.showFeedDialog( template , comment_data, null, null, null, FB.RequireConnect.promptConnect);
}

function fbPublishScore( template, mn, sec, milli, imagePath, imageLink )
{
	
	var comment_data = { 	
							"mn": mn, 
							"sec": sec, 
							"milli": milli, 
							"images":[{"src":imagePath, "href":imageLink}]
						};

	/*
	
	var objectLinks = new Array({text: 'viens jouer à micmacs',href:'http://www.micmacs-lefilm.com/lejeu'});
	
	
	var attachment = {'media':[{'type':'image','src':imagePath,'href':imageLink,description:' a rejoins la bande micmacs'}]}; 
	
	FB.Connect.streamPublish('Thomas a rejoins la bande du micmacs', attachment,objectLinks, null,null,null,true);
	*/
	FB.Connect.showFeedDialog( template , comment_data, null, null, null, FB.RequireConnect.promptConnect);
}

function fbSetStatus ( status ) 
{
	FB.Facebook.apiClient.users_setStatus(status,false,false, onSetStatus);
}

function fbGetFriends ( ) 
{
	FB.Facebook.apiClient.friends_get ( null, onGetFriends );
}

function onGetFriends ( result ) 
{
	flexDispatcher( "onGetFriends",result );
}

function fbGetAlbums ( ) 
{
	FB.Facebook.apiClient.photos_getAlbums(FB.Facebook.apiClient.get_session().uid,null, onGetAlbums);
}

function fbGetMyPhotos ( ) 
{
	FB.Facebook.apiClient.photos_get(FB.Facebook.apiClient.get_session().uid,'','',onGetMyPhotos);
}

function onGetMyPhotos ( result ) 
{
	flexDispatcher( "onGetMyPhotos",result );
}

function fbGetPhotos ( aid ) 
{
	FB.Facebook.apiClient.photos_get(null,aid,null,onGetPhotos);
}

function onGetPhotos ( result ) 
{
	flexDispatcher( "onGetPhotos",result );
}

function onGetAlbums ( result )
{
	flexDispatcher( "onGetAlbums",result );
}

function onSetStatus ( )
{
	flexDispatcher( "onSetStatus" );
}

//publish to the wall
function fbExtendedPermission( permission )
{
	FB.Connect.showPermissionDialog( permission , onPermissionGranted );
}

function onPermissionGranted ( ) 
{
	flexDispatcher( "onPermissionGranted" );
}

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