
$(document).ready(function() {
    $("#facebook-login").click(function() {
        AIRTIME.facebook.promptForFacebookPage();
    });
});


window.fbAsyncInit = function() {
    FB.init({
        appId      : FACEBOOK_APP_ID,
        xfbml      : true,
        version    : 'v2.4'
    });
};

var AIRTIME = (function(AIRTIME) {

    //Module initialization
    if (AIRTIME.facebook === undefined) {
        AIRTIME.facebook = {};
    }

    var mod = AIRTIME.facebook;

    (function (d, s, id) {
        var js, fjs = d.getElementsByTagName(s)[0];
        if (d.getElementById(id)) {
            return;
        }
        js = d.createElement(s);
        js.id = id;
        js.src = "//connect.facebook.net/en_US/sdk.js";
        fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));

    mod.promptForFacebookPage = function() {
        FB.login(function (response) {
            if (response.authResponse) {
                mod.getPagesOwnedByUser(response.authResponse.userID, response.authResponse.accessToken);
                mod.addPageTab();

            } else {
                console.log('Authorization failed.');
            }
        }, {scope: 'manage_pages'});
    }

    mod.getPagesOwnedByUser = function(userId, accessToken) {
        FB.api('/' + userId + '/accounts', function (response) {
            console.log(response);
        }, {access_token: accessToken});
    }

    mod.addPageTab = function() {
        FB.ui(
            { method: 'pagetab' },
            function (resp) {
                console.log("response:");
                console.log(resp);
                var pageIdList = [];
                var tabs = resp["tabs_added"];

                if ((tabs != undefined) && (Object.keys(tabs).length > 0)) {
                    for (var pageId in tabs) {
                        pageIdList.push(pageId);
                    }

                    //POST these back to Airtime, which will then proxy it over to our social app. (multiple requests from Airtime)
                    $.post('facebook-tab-success', { "pages" : JSON.stringify(pageIdList) }, function() {
                        alert("Successfully added to your Facebook page!");
                    }).done(function() {

                    }).fail(function() {
                        alert("Sorry, an error occurred and we were unable to add the widget to your Facebook page.");
                    });
                }
            },
            {
                app_id: FACEBOOK_APP_ID,
                //redirect_uri: 'https://localhost'
            }
        );
    }

    return AIRTIME;

}(AIRTIME || {}));

