function & get_dataset(& $counter, $params = array())
	{
		$mime_type = new mime_type();

		$pricelists_array =& $this->_fetch($counter, $params);
				
		$file_ids = array();
		foreach($pricelists_array as $id => $data)
			if($data['file_id'] > 0)
				$file_ids[$data['file_id']] = $data['file_id'];
		
		if(!$file_ids)
			return new array_dataset($pricelists_array);

		$files_counter = null;
		$file_data = fetch_by_node_ids($file_ids, 'file_object', $files_counter);

		foreach($pricelists_array as $id => $data)
			if($data['file_id'] > 0)
			{
				$pricelists_array[$id]['file_size'] = $file_data[$data['file_id']]['size'];
				$pricelists_array[$id]['file_icon'] = $mime_type->get_type_icon($file_data[$data['file_id']]['mime_type']);
			}
		
		
		return new array_dataset($pricelists_array);
	}
function get_message_file_data($message)
{
    $file_data = '';
    if ($message['file_id']) {
        $icon = mime_type::get_type_icon($message['mime_type']);
        $file_data = ", ['{$message['file_id']}', '{$icon}', '{$message['file_size']}', '{$message['image_width']}', '{$message['image_height']}']";
    }
    return $file_data;
}
            list($message_type, $string) = explode(':', $message['message'], 2);
            if ($message_type == 'system_message') {
                echo "top.add_system_message('{$message_date}', {$message['id']}, '{$string}');\n";
                echo "top.chat_user_event();";
            } elseif ($message_type == 'warning_message') {
                $string = '<img src="/shared/images/error.gif" align="center">' . $string;
                echo "top.add_warning_message('{$message_date}', {$message['id']}, '{$string}');\n";
            }
            break;
        case $message['recipient_id'] == $chat_user_data['id']:
            echo "top.add_private_incoming_message('{$message_date}', {$message['id']}, '{$sender_name}', \"{$message_text}\");\n";
            break;
        case $message['sender_id'] == $chat_user_data['id'] && $message['recipient_id'] > 0:
            echo "top.add_private_outgoing_message('{$message_date}', {$message['id']}, '{$sender_name}', \"{$message_text}\");\n";
            break;
        default:
            $file_data = "";
            if ($message['file_id']) {
                $icon = mime_type::get_type_icon($message['mime_type']);
                $file_data = ", ['{$message['file_id']}', '{$icon}', '{$message['file_size']}', '{$message['image_width']}', '{$message['image_height']}']";
            }
            echo "top.add_common_message('{$message_date}', {$message['id']}, '{$sender_name}', \"{$message_text}\" {$file_data});\n";
    }
    $last_message_id = $message['id'];
}
if (sizeof($messages)) {
    $last_message_ids[$chat_user_data['chat_room_id']] = $last_message_id;
    session::set("last_message_ids", $last_message_ids);
    echo "top.fetch_finished('{$last_message_id}');";
}
echo "</script>";
$last_message_ids = session :: get("last_message_ids");

if(!$last_message_id = $last_message_ids[$chat_user_data['chat_room_id']])
	$last_message_id = 0;

$messages = chat_system :: get_messages_for_user(
	$chat_user_data['id'],
	$chat_user_data['chat_room_id'],
	$last_message_id
);

$date =& new date();
$locale =& locale :: instance($this->locale_type);
$format_string = $locale->get_short_date_time_format();
$mime_type = new mime_type();
		
echo "<html>
			<script>";

foreach($messages as $message)
{
	$message_text = $smiles->decode_smiles($message['message']);
	$message_text = str_replace("\r", "", $message_text);
	$message_text = str_replace("\n", "<br>", $message_text);
	$message_color = $message['color'];
	$sender_name = $message['nickname'];
	
	$date->set_by_stamp($message['time']);
	$message_date =		$date->format($format_string);