function loginWithFacebook( mode, target ) {
    if (fbForceServerSideAuth) {
        return true;
    }
    var func, args=[];
    if (target && $.isFunction(target)) {
        func = target;
        args = Array.prototype.slice.call(arguments);
        // kick out first 2 arguments
        args.shift();
        args.shift();
    }
    
    FB.login(function(response) {
        if (response.authResponse) {
            var suffix;
            if (mode != 'AUTH') {
                suffix = 'signed_request=' + response.authResponse.signedRequest;
            } else {
                suffix = 'fbconnected=1&signed_request=' + response.authResponse.signedRequest;
            }
            if (func) {
                args.push(suffix);
                func.apply(null, args);
            } else {
                if (!target) {
                    target = window.location.href;
                }
                var newLocation;
                if(target.match(/\?/)) {
                    newLocation = target + '&' + suffix;
                } else {
                    newLocation = target + '?' + suffix;
                }
                window.location = newLocation;
            }
        }
        else {
            alert('Oops, we failed to connect you to Facebook. Please try again.');
        }
    }, { scope: "email, user_interests, user_location, user_about_me, user_activities, user_likes, user_birthday, user_hometown, user_work_history, user_education_history, user_events" });
    
    return false;
}
