facebookConnected = function() {  
  // Connect to Facebook and retrieve the user's information.
  FB.ensureInit(function() {
    $(".module_ajax_loader", "div#social_network").css({"display" : "inline"});
    $("#fb_update_link", "div#social_network").hide();

    core.disableModule("social_network");
    //console.log('facebook click / init');

    var api = FB.Facebook.apiClient;
    var session = api.get_session();
    var facebook = {facebook: {uid: session.uid, session_key: session.session_key, session_expires: session.expires, session_secret: session.secret}};
    
    $.post("/home/profile/update",
      {user_profile: $.toJSON(facebook)},
      function(json) {
        if (json.success === "false" || json.user_profile === null) {
          $(".module_ajax_loader", "div#social_network").css({"display" : "none"});
          $("#fb_update_link", "div#social_network").show();
        } else {
          $("#facebook_unconnected").hide();
          $("#facebook_connected").show();
          $("#facebook_connections").text(json.user_profile.facebook.connections.num);
          $("#facebook_common_name").text(json.user_profile.facebook.common.name);
          $("#facebook_common_num").text(json.user_profile.facebook.common.num);
          $(".module_ajax_loader", "div#social_network").css({"display" : "none"});
          $("#fb_update_link", "div#social_network").show();
        }
        core.enableModule("social_network");
      },
      "json");
  });
};

core.modules.social_network = function(sandbox) {
  return {
    init : function() {
      $("#fb_update_link").click(function() {
        facebookConnected();
        return false;
      });
    }
  };
};