if (!AT.FB) {
    AT.FB = {};
}

AT.FB.getFbCookie = function(applicationId) {
    return $.cookie('fbsr_' + applicationId);
};

AT.FB.getFbCookieStripped = function(applicationId) {
    var fbCookie = this.getFbCookie(applicationId);
    return fbCookie;
};

AT.FB.parseFbCookie = function(fbCookie) {
    var fbCookieParameters = {};
    var elems  = fbCookie.split(".");
    fbCookieParameters.sig = elems[0];
    fbCookieParameters.payload = elems[1];
    return fbCookieParameters;
};

AT.FB.loginWithFacebook = function(applicationId, facebookLoginPath, redirect) {
    var fbCookieParameters = this.parseFbCookie(this.getFbCookieStripped(applicationId));
    window.location = facebookLoginPath + '?sig=' + fbCookieParameters.sig + '&payload=' + fbCookieParameters.payload + (redirect?'&redirect=' + redirect:'');
};

AT.FB.isLoggedIn = function() {
    return $("#dialog_login").length == 0;
};

AT.FB.isLoggedInToFacebook = function(fbSession) {
    return fbSession.session;
};

AT.FB.loginWithFacebookIfCookieExists = function(applicationId, facebookLoginPath, redirect) {
    if (this.getFbCookie(applicationId))
        this.loginWithFacebook(applicationId, facebookLoginPath, redirect);
};

AT.FB.clickToOpenDialog = function(parameters) {
    var dialogSettings = $.extend({
        link: 'http://www.appletree.com',
        picture: 'http://images.appletree.com/tree.png',
        description: 'AppleTree is the family tree of the world.  Join for free!  Preserve your family history and memories.'
    }, parameters.dialog);
    parameters.element.click(function() {
        FB.ui(dialogSettings, function(response) {
            if (response && response.post_id) {
                if (parameters.success)
                    parameters.success();
            } else {
                if (parameters.fail)
                    parameters.fail();
            }
        });
    });
};

AT.FB.clickToPostOnWall = function(settings) {
    this.clickToOpenDialog({
        element: settings.element,
        success: settings.success,
        fail: settings.fail,
        dialog: {
            method: 'feed',
            name: settings.title,
            link: settings.link,
            picture: settings.image,
            caption: settings.caption,
            description: settings.description
        }
    });
};

