function fb_login_init()
{
    FB.login(function(response) {
        if (response.authResponse) {
            FB.api('/me', 
                function(response) {
                    $("#inputEmail").attr( 'value', response.email );
                    $("#inputName").attr( 'value', response.name );
                    var authResponse = FB.getAuthResponse();
                    fb_login_setAuthResponse(authResponse);
                }
            );
        } else {
            // do nothing
        }
    }, { scope: 'offline_access,email' } );
}

function fb_login_auth()
{
    var authResponse = FB.getAuthResponse();
    if (authResponse == null) {
        fb_login_init();
    }
    else {
        FB.api('/me', 
            function(response) {
                if (response&&response.email&&response.name) {
                    $("#inputEmail").attr( 'value', response.email );
                    $("#inputName").attr( 'value', response.name );
                    fb_login_setAuthResponse(authResponse);
                } else {
                    fb_login_init();
                }
            }
        );
    }
}

function fb_login_setAuthResponse(authResponse)
{
    $("#inputAccessToken").attr( 'value', authResponse.accessToken );
    $("#inputNetworkId").attr( 'value', authResponse.userID );
    $("#inputSessionExpiration").attr( 'value', authResponse.expiresIn );
    
    var rememberMe = true;
    if ( $('#facebookRememberMe').length ) {
        $("#inputRememberMe").attr( 'value', rememberMe );
    }
    
    $('#login-connectForm').submit();
}

