function requireFbLogin( scroll ) {
	FB.login( require_fb_login, { scope: 'email' } );
	return;
}

function getFBUserDataRedirect() {
	FB.login( get_fb_user_data_redirect, { scope: 'email' } );
	return;
}

function require_fb_login( response ) {
	if (!response.authResponse) {
		return;
	}

	FB.api( '/me', function( user ) {
		var data = format_facebook_data( user );

		data['action'] = 'fbconnect';

		$.ajax({
			url: '/users/',
			type: 'POST',
			data: data,
			dataType: 'json',
			success: function( data ) {
				if( data.logged ) {
					if( !data.unactivated ) window.location = data.url;
					else window.location = "/login/";
				} else {
					window.location = "/signup/fbconnect:1/";	
				}
				try {
				} catch(e){};
			}
		});
		
		return false;
	});
}

function get_fb_user_data_redirect( response ) {
	if (!response.authResponse) {
		return;
	}

	FB.api( '/me', function( user ) {
		var data = format_facebook_data( user );

		data['action'] = 'fbconnect';

		$.ajax({
			url: '/users/',
			type: 'POST',
			data: data,
			dataType: 'json',
			success: function( data ) {
				if( data.logged ) {
					if( !data.unactivated ) window.location = "/index/";
					else window.location = "/login/";
				} else {
					 window.location = "/signup/fbconnect:1/";	
				}
				try {
				} catch(e){};
			}
		});
		
		return false;
	});
}

function format_facebook_data( user ) {
	var data = new Object();

	data['action'] = 'fbconnect';
	data['uid'] = data['fb_uid'] = (user.id ? user.id : '');
	data['username'] = (user.username ? user.username : '');
	data['name'] = (user.name ? user.name : '');
	data['email'] = (user.email ? user.email : '');
	data['birthdat_data'] = false;
	data['pic_big'] = 'http://graph.facebook.com/' + user.username + '/picture?type=large';
	data['pic'] = 'http://graph.facebook.com/' + user.username + '/picture';
	
	return data;
}
