//  SO is accepted as a global `var`
var SO  = {};

SO.Connected  = function (response) {
  
  //  TODO: Refactor, clean up, make sense.
  //  THIS NEEDS 
  $('#user-avatar p')
    .append('<img src="https://graph.facebook.com/'+$.cookie('fbsession')+'/picture"/>');
  
  response.user_icon = 'https://graph.facebook.com/'+$.cookie('fbsession')+'/picture';
  
  $.post(
    '/xhr/xhr_set_oauth_session.php',
    $.param(response),
    function (data) {
      //  finished
    }
  );
};

SO.Error  = function () {
  $('#common-error-cookies-blocked').dialog('open');
};

$(function () {
  
  FB.init({
    appId: '115331555173080',
    status: true,
    cookie: true,
    xfbml: true
  });    


  function FB_getLoginStatusCall() {

    FB.getLoginStatus(function(response) {

      if ( response.session ) {
        $.cookie('fbsession', response.session.uid, { domain: '.signed-on.com', expires: 1 });

        location.href = '/session.php?session=create&__fbsession__=' + response.session.uid;        

      } else {

        setTimeout(function () {

          FB_getLoginStatusCall();

        }, 10e3);
      }
    });
  }  

  
  $(window).focus(function () {
    FB.getLoginStatus(function(response) {
      //console.log(response);
    }, true);
  });  
 

  if ( !$.cookie('fbsession') ) { 
    FB_getLoginStatusCall();
  }

  FB.Event.subscribe('auth.logout', function(response) {
    $.cookie('fbsession', null, { domain: '.signed-on.com', expires: -1 });
    
    location.href = '/session.php?session=destroy';
  });    
  
  FB.Event.subscribe('auth.login', function(response) {

    $.cookie('fbsession', response.session.uid, { domain: '.signed-on.com', expires: 1 });
    
    location.href = '/session.php?session=create&__fbsession__=' + response.session.uid;
  });

  if ( location.pathname.indexOf('/editor') == -1  ) {
    if ( $.cookie('fbsession') ) { 
      FB.api('/me', SO.Connected);
    } 
  }
  
  $('#common-error-cookies-blocked').dialog({
    autoOpen: false,
    width: 400,
    buttons: {
      "Close": function() {
        $(this).dialog("close");
      }
    },
    modal: true
  });  
    
});



