﻿/*
* The facebook_onload statement is printed out in the PHP. If the user's logged in
* status has changed since the last page load, then refresh the page to pick up
* the change.
*
* This helps enforce the concept of "single sign on", so that if a user is signed into
* Facebook when they visit your site, they will be automatically logged in -
* without any need to click the login button.
*
* @param already_logged_into_facebook  reports whether the server thinks the user
*                                      is logged in, based on their cookies
*
*/
function facebook_onload(already_logged_into_facebook, refresh_page_url) {
    // user state is either: has a session, or does not.
    // if the state has changed, detect that and reload.
    FB.ensureInit(function() {
    FB.Facebook.get_sessionState().waitUntilReady(function(session) {
    var is_now_logged_into_facebook = session ? true : false;
            // if the new state is the same as the old (i.e., nothing changed) then do nothing
            if (is_now_logged_into_facebook == already_logged_into_facebook) {
                return;
            }

            // otherwise, refresh to pick up the state change
            refresh_page(refresh_page_url);
        });
    });
}

/*
* Do a page refresh after login state changes.
* This is the easiest but not the only way to pick up changes.
* If you have a small amount of Facebook-specific content on a large page,
* then you could change it in Javascript without refresh.
*/
function refresh_page(refresh_page_url) {
    window.location = refresh_page_url;
}

function signOut(sign_out_url) {
    window.location = sign_out_url;
}

/*
* Prompts the user to grant a permission to the application.
*/
function facebook_prompt_permission(permission, refresh_page_url)
{
    FB.ensureInit(function() {
        FB.Connect.showPermissionDialog(permission, function(perms) {
            if (perms && refresh_page_url != '') {
                refresh_page(refresh_page_url);
            }
        });
    });
}