//Local Variable with Flash Content id. default = flashcontent
var as_swf_name = "flashcontent";
var api;

//Initialize Facebook
function fbInit(pAsSwfName,pApi_key,pReceiver){
	as_swf_name = pAsSwfName;
	FB.init(pApi_key,pReceiver);
}

//JavaScript Connect methods
function login(){
	FB.Connect.requireSession(onLoginHandler, onLoginCancelHandler);
}

//Method to dispatch an Event to Flash
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]();
	}
}

function checkIfHasPermission() {
	api.users_hasAppPermission('publish_stream', function(result){ onCheckPermissionHandler(result); } );
}

function askPermission(){
	FB.Connect.showPermissionDialog("publish_stream", function(result){onAskPermissionHandler(result);});	
}

function onAskPermissionHandler(result){
	flashCallBack( "onAskPermission",result );
}

//Disconnect
function logout(){
	FB.Connect.logout(onLogoutHandler);
}

//Event Handlers
function onLogoutHandler(){
	flashCallBack( "onLogOut" );
}

function onLoginCancelHandler(){
	flashCallBack("onLoginCancel");
}

function onCancelHandler(){
	flashCallBack( "onCancel" );
}

function onCheckPermissionHandler(result){
	flashCallBack( "onCheckPermission",result );
}

function onLoginHandler(){
	api = FB.Facebook.apiClient;
	flashCallBack( "onLogIn" );
}