function users_online_page() {
	global $wpdb;

	$usersonline = $wpdb->get_results( "SELECT * FROM $wpdb->useronline" );

	$user_buckets = array();
	foreach ( $usersonline as $useronline )
		$user_buckets[$useronline->user_type][] = $useronline;

	$user_buckets = apply_filters( 'useronline_buckets', $user_buckets );

	$counts = UserOnline_Template::get_counts( $user_buckets );

	$nicetexts = array();
	foreach ( array( 'user', 'member', 'guest', 'bot' ) as $user_type )
		$nicetexts[$user_type] = UserOnline_Template::format_count( $counts[$user_type], $user_type );

	$text = _n(
		'There is <strong>%s</strong> online now: <strong>%s</strong>, <strong>%s</strong> and <strong>%s</strong>.',
		'There are a total of <strong>%s</strong> online now: <strong>%s</strong>, <strong>%s</strong> and <strong>%s</strong>.',
		$counts['user'], 'wp-useronline'
	);

	$output =
	html( 'div id="useronline-details"',
		 html( 'p', vsprintf( $text, $nicetexts ) )
		.html( 'p', UserOnline_Template::format_most_users() )
		.UserOnline_Template::detailed_list( $counts, $user_buckets, $nicetexts )
	);

	return apply_filters( 'useronline_page', $output );
}