$title";
}
function generate_pagination_image($id, $alt)
{
	global $webimroot;
	return "
";
}
function prepare_pagination($items_count, $default_items_per_page = 15)
{
	global $page;
	if ($items_count) {
		$items_per_page = verifyparam("items", "/^\d{1,3}$/", $default_items_per_page);
		if ($items_per_page < 2)
			$items_per_page = 2;
		$total_pages = div($items_count + $items_per_page - 1, $items_per_page);
		$curr_page = verifyparam("page", "/^\d{1,6}$/", 1);
		if ($curr_page < 1)
			$curr_page = 1;
		if ($curr_page > $total_pages)
			$curr_page = $total_pages;
		$start_index = ($curr_page - 1) * $items_per_page;
		$end_index = min($start_index + $items_per_page, $items_count);
		$page['pagination'] =
				array("page" => $curr_page, "items" => $items_per_page, "total" => $total_pages,
					  "count" => $items_count, "start" => $start_index, "end" => $end_index,
					  "limit" => "LIMIT $start_index," . ($end_index - $start_index));
	} else {
		$page['pagination'] = true;
	}
}
function setup_pagination($items, $default_items_per_page = 15)
{
	global $page;
	prepare_pagination($items ? count($items) : 0, $default_items_per_page);
	if ($items && count($items) > 0) {
		$p = $page['pagination'];
		$page['pagination.items'] = array_slice($items, $p['start'], $p['end'] - $p['start']);
	} else {
		$page['pagination.items'] = false;
	}
}
/**
 * Selects rows from database taking pagination into account.
 * 
 * @global array $page
 * @param string $fields Selected fields
 * @param string $table Table name in database
 * @param string $conditions Where close
 * @param string $order Order clause
 * @param string $countfields Field, substituted in SQL COUNT function
 * @param array $values Associative array of substituted values. Keys are named placeholders in the 
 *   query(see Database::query() and its $values parameter description)
 * 
 * @see Database::query()
 */
function select_with_pagintation($fields, $table, $conditions, $order, $countfields, $values)
{
	global $page;
	$db = Database::getInstance();
	list($count) = $db->query(
		"select count(". ($countfields ? $countfields : "*") .") from {$table} " .
		"where " . (count($conditions)  ? implode(" and ", $conditions) : "") .
		($order ? " " . $order : ""),
		$values,
		array(
			'return_rows' => Database::RETURN_ONE_ROW,
			'fetch_type' => Database::FETCH_NUM
		)
	);
	prepare_pagination($count);
	if ($count) {
		$p = $page['pagination'];
		$limit = $p['limit'];
		$page['pagination.items'] = $db->query(
			"select {$fields} from {$table} " .
			"where " . (count($conditions)  ? implode(" and ", $conditions) : "") .
			($order ? " " . $order : "") . " " . $limit,
			$values,
			array('return_rows' => Database::RETURN_ALL_ROWS)
		);
	} else {
		$page['pagination.items'] = false;
	}
}
function setup_empty_pagination()
{
	global $page;
	$page['pagination.items'] = false;
	$page['pagination'] = false;
}
function generate_pagination($pagination, $bottom = true)
{
	global $pagination_spacing, $links_on_page;
	$result = getlocal2("tag.pagination.info",
						array($pagination['page'], $pagination['total'], $pagination['start'] + 1, $pagination['end'], $pagination['count'])) . "
";
	if ($pagination['total'] > 1) {
		if (!$bottom) {
			$result = "";
		} else {
			$result .= "
";
		}
		$result .= "