sfFacebookConnect = function(api_key, signin_url) {
  this.xd_receiver_path = "/xd_receiver.htm";
  this.api_key = api_key;
  this.signin_url = signin_url;
  this.callback = '';
  this.forward = '';
  this.init();
};

sfFacebookConnect.prototype.init = function() {
  FB.init(this.api_key,this.xd_receiver_path);
}

sfFacebookConnect.prototype.getSigninUrl = function() {
  t_signin_url = this.signin_url;
  if(this.forward != undefined && this.forward != '') {
		t_signin_url += '?forward=' + this.forward; 
	}
  return t_signin_url;
}

sfFacebookConnect.prototype.success = function() {

	FB.Connect.showPermissionDialog("publish_stream", function(perms) {
		if (!perms) {
			$('#flash').css('margin-left', '0px');
		} else {
			$('#flash').css('margin-left', '0px');
		}
	});

	FB.Facebook.apiClient.users_getInfo(FB.Connect.get_loggedInUser(),['name'], function (result) { set_user_details_on_flash(result); });

};

sfFacebookConnect.prototype.requireSession = function(forward, callback) {

  this.forward = forward;
  var current_obj = this;

	callback = function() { current_obj.success() };
	cancelConnect = function() { current_obj.cancel() };
	
	FB.ensureInit(function() {
		FB.Connect.requireSession(callback, cancelConnect)
	});

};

sfFacebookConnect.prototype.cancel = function() {
	$('#flash').css('margin-left', '0px');
};


var flash = null;

function embedSWFCallback(e) {
	if (e.success) {
		flash = e.ref;
	}
}

function set_user_details_on_flash(user) {

  var fbid = FB.Connect.get_loggedInUser();
	if (flash != null) {
		flash.sendUserDetails(fbid , user[0]["name"]);
	}

}
