window.fbAsyncInit = function() {
    FB.init({appId: facebookAppId, status: true, cookie: true, xfbml: true});
    fbKickstart();
};
(function() {
    var e = document.createElement('script'); e.async = true;
    e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
    document.getElementById('fb-root').appendChild(e);
}());

// Start the facebook session + check if the user has authorized our app
function fbKickstart() {
    FB.getLoginStatus(function(response) {
        if (response.session) {
            // logged in and connected user, someone you know
            fbLoadUser();
        } else {
            // no user session available, someone you dont know
            $('#fbLogin').addClass('loggedOut');
            $('#fbLogin').show();
        }
    });

    $('#fbLogin').click(function() {
        FB.login(function(response) {
            if (response.session) {
                // user successfully logged in
                fbLoadUser(true);
            } else {
                // user cancelled login
                $('#fbLogin').show();
            }
        }, {perms: 'email,user_birthday'});
    
        return false;
    });
}
var facebookData = { };
// Loads the facebook user info and populates data onto the page
function fbLoadUser(callOverlay) {
    FB.api('/me', function(response) {
        facebookData = {
            'facebookId': response.id,
            'givenName': response.first_name,
            'familyName': response.last_name,
            'profileLink': response.link
        };
        $('#fbProfilePic').attr('src', 'http://graph.facebook.com/'+response.id+'/picture')
            .attr('alt', response.name);
        //$('.styleNav').html(response.name);
        $('#fbLogin').hide();
        $('#fbLoggedIn').show();
        $('#giveNameSubscribe').val(response.first_name);
        $('#familyNameSubscribe').val(response.last_name);
        $('#emailAddressSubscribe').val(response.email);
        // Chop up DOB fields
        var dob = response.birthday.split('/');
        $('#dobDaySubscribe').val(parseInt(dob[1]));
        $('#dobMonthSubscribe').val(parseInt(dob[0]));
        if (dob[2] && parseInt(dob[2]) > 0) $('#dobYearSubscribe').val(parseInt(dob[2]));
        
        // Check if we should offer the member to join the newsletter
        if (callOverlay) { fbShowOverlay(); }
    });
}

// Handles altering the overlay for facebook purposes
function fbShowOverlay() {
    $.get('index.php?do=restFacebookMemberCheck', facebookData, function(data) {
        if ($('member', data).attr('status') == 'noMember') {
            $('#facebookStyleBoxWelcome').show();
            $('#newsletterSubscribe').removeAttr('checked');
            showOverlay();
        }
    });
}
