vanilla.facebook = {

    updateLoginButton: function(response) {
        if (window.console) { console.log('Updating Button', response); }
        var button = document.getElementById('fb-auth');
        
        if (response.status === 'connected') {
            button.innerHTML = 'Logout';
            button.onclick = function() {
                FB.logout(function(response) {
                    if (window.console) { console.log('FB.logout callback', response); }
                });
            };
        } else {
            button.innerHTML = 'Login';
            button.onclick = function() {
                FB.login(function(response) {
                    if (window.console) { console.log('FB.login callback', response); }
                    if (response.status === 'connected') {
                        if (window.console) { console.log('User is logged in'); }
                    } else {
                        if (window.console) { console.log('User is logged out'); }
                    }
                });
            };
        }
    },

    showAccountInfo: function() {
        FB.api(
            {
                method: 'fql.query',
                query: 'SELECT name, pic_square FROM user WHERE uid=' + FB.getUserID()
            },
            function(response) {
                if (window.console) { console.log('API Callback', response); }
                var html = '<img src="' + response[0].pic_square + '"> ' + response[0].name + ' on Facebook';
                jQuery('#fb-account-info').html(html);
                jQuery('#fb-login-form').show();
            }
        );
    },
    
    loginButtonOnLogin: function() {
        if (jQuery("input[name=fb_accessToken]").val()) {
            if (window.console) { console.log('in on-login, and we are logged in'); }
            // submit form with id login_form
            jQuery('#login_form').submit();
        } else {
            if (window.console) { console.log('in on-login, but we are not logged in'); }
        }
    },

    showLoginButton: function() {
        jQuery('#fb-account-info').html('<fb:login-button on-login=vanilla.facebook.loginButtonOnLogin() data-scope="email" >Login with Facebook</fb:login-button>');
        FB.XFBML.parse(document.getElementById('fb-account-info'));
        jQuery('#fb-login-form').hide();
    },
    
    showRegisterForm: function() {
        if (window.console) { console.log('showRegisterForm'); }
        jQuery('#fb-register-form').html('<h3>Register Using Facebook</h3><fb:registration fields="' + vanilla.facebook.registerFormFields + '" redirect-uri="http://' + vanilla.pageInfo.domain + '/register/?rm=process" width="' + vanilla.facebook.registerFormWidth + '"></fb:registration>');
        jQuery('#fb-register-form').after('<h3>Or Register Using Our Site</h3>');
        FB.XFBML.parse(document.getElementById('fb-register-form'));
    },

    showAppAuthorization: function() {
        var fb_accessToken = jQuery("input[name=fb_accessToken]").val();
        var fb_userID      = jQuery("input[name=fb_userID]").val();
        jQuery.ajax({
            type: "GET",
            url: 'https://graph.facebook.com/'+fb_userID+'/permissions/',
            data: "access_token=" +fb_accessToken,
            success: function(msg){
                alert("Permissions : " + msg);
            }
        });
    },
    deleteAppAuthorization: function() {
        var fb_accessToken = jQuery("input[name=fb_accessToken]").val();
        var fb_userID      = jQuery("input[name=fb_userID]").val();
        jQuery.ajax({
            type: "GET",
            // Deprecated REST API
            url: 'https://api.facebook.com/method/auth.revokeAuthorization?access_token='+fb_accessToken,
            success: function(msg){
                alert("Data Deleted: " + msg);
            }
        });
    },
    
    onLoginStatus: function(response) {
        if (window.console) { console.log('onLoginStatus', response); }
        if (response.status === 'connected') {
            vanilla.facebook.showAccountInfo();
            
            //if (window.console) { console.log(response.authResponse.accessToken); }
            jQuery("input[name=fb_accessToken]").val(response.authResponse.accessToken);
            jQuery("input[name=fb_userID]").val(response.authResponse.userID);
            jQuery("input[name=fb_signedRequest]").val(response.authResponse.signedRequest);
    
        } else {
            if (window.console) { console.log('onLoginStatus: user is logged out'); }
            jQuery("input[name=fb_accessToken]").val('');
            jQuery("input[name=fb_userID]").val('');
            jQuery("input[name=fb_signedRequest]").val('');
            vanilla.facebook.showLoginButton();
        }
    }



};

