var facebook_connect_onlogin = function(return_url) {
	var url = base_url + 'signin?facebook-connect=1&return=' + encodeURIComponent(return_url);
	var client = new FB.ApiClient(facebook_api_key);
	
	var requested_permissions = {
		email: 'You must give email permissions on Facebook to use ProBrowse. Please try again.'
		,publish_stream: null
	};
	
	var missing_permissions = [];
	var permissions_count = 0;
	var known_permissions = 0;

	for (var permission in requested_permissions) {
		permissions_count++;
		(function(permission) {
			client.users_hasAppPermission(permission, function(result) {
				known_permissions++;
				
				if (!result) {
					missing_permissions.push(permission);
				}
				
				if (known_permissions == permissions_count) {
					if (missing_permissions.length == 0) {
						window.location = url;
						return;
					}
					
					FB.Connect.showPermissionDialog(missing_permissions.join(','), function(result) {
						var permissions = result.split(',');
						var keyed_permissions = {};
				
						for (var key in permissions) {
							var permission = permissions[key];
							keyed_permissions[permission] = true;
						}
						
						var connect = true;
						
						for (var key in missing_permissions) {
							var permission = missing_permissions[key];
							
							if (keyed_permissions[permission]) {
								return;
							}
							
							if (requested_permissions[permission]) {
								connect = false;
								alert(requested_permissions[permission]);
							}
						}
						
						if (connect) {
							window.location = url;
						}
					});
				}
			});
		})(permission);
	}
};

