require_once 'searchlib.php';
$query = param_variable('query', '');
$offset = param_integer('offset', 0);
$limit = param_integer('limit', 10);
$filter = param_alpha('filter', 'all');
$page = 'myfriends';
if ($extradata = param_variable('extradata', null)) {
    $extradata = json_decode($extradata);
    if ($extradata->page) {
        $page = $extradata->page;
    }
}
if ($page == 'myfriends') {
    $data = search_friend($filter, $limit, $offset);
    $data['filter'] = $filter;
} else {
    $options = array('exclude' => $USER->get('id'));
    if ($filter == 'myinstitutions') {
        $options['myinstitutions'] = true;
    }
    $data = search_user($query, $limit, $offset, $options);
    $data['query'] = $query;
    if (!empty($options['myinstitutions'])) {
        $data['filter'] = $filter;
    }
}
require_once 'group.php';
$admingroups = (bool) group_get_user_admintutor_groups();
build_userlist_html($data, $page, $admingroups);
unset($data['data']);
json_reply(false, array('data' => $data));
$filter = param_alpha('filter', $USER->get('admin') ? 'all' : 'myinstitutions');
$limit = 10;
$options = array('exclude' => $USER->get('id'));
if ($filter == 'myinstitutions' && $USER->get('institutions')) {
    $options['myinstitutions'] = true;
} else {
    $filter = 'all';
}
$data = search_user($query, $limit, $offset, $options);
$data['query'] = $query;
if (!empty($options['myinstitutions'])) {
    $data['filter'] = $filter;
}
require_once get_config('libroot') . 'group.php';
$admingroups = (bool) group_get_user_admintutor_groups();
build_userlist_html($data, 'find', $admingroups);
$searchform = array('name' => 'search', 'checkdirtychange' => false, 'renderer' => 'oneline', 'elements' => array());
if ($USER->get('institutions')) {
    $searchform['elements']['filter'] = array('type' => 'select', 'options' => array('all' => get_string('Everyone', 'group'), 'myinstitutions' => get_string('myinstitutions', 'group')), 'defaultvalue' => $filter);
}
$searchform['elements']['query'] = array('title' => get_string('search'), 'hiddenlabel' => true, 'type' => 'text', 'defaultvalue' => $query);
$searchform['elements']['submit'] = array('type' => 'submit', 'value' => get_string('search'));
$searchform = pieform($searchform);
$js = <<<EOF
addLoadEvent(function () {
    p = {$data['pagination_js']}
    connect('search_submit', 'onclick', function (event) {
        replaceChildNodes('messages');
        var params = {'query': \$('search_query').value, 'extradata':serializeJSON({'page':'find'})};
        if (\$('search_filter')) {
            params.filter = \$('search_filter').value;
require_once 'searchlib.php';
define('TITLE', get_string('myfriends'));
define('SECTION_PLUGINTYPE', 'core');
define('SECTION_PLUGINNAME', 'user');
define('SECTION_PAGE', 'myfriends');
$filter = param_alpha('filter', 'all');
$offset = param_integer('offset', 0);
$limit = 10;
$data = search_friend($filter, $limit, $offset);
$data['filter'] = $filter;
$controlledgroups = count_records_sql("SELECT COUNT(g.id)\n          FROM {group} g\n          JOIN {group_member} gm ON (gm.group = g.id)\n          JOIN {grouptype_roles} gtr ON (gtr.grouptype = g.grouptype AND gtr.role = gm.role)\n          WHERE gm.member = ?\n          AND g.jointype = 'controlled'\n          AND (gm.role = 'admin' OR gtr.see_submitted_views = 1)\n          AND g.deleted = 0", array($USER->get('id')));
$invite = count_records_sql("SELECT COUNT(g.id)\n        FROM {group} g\n        JOIN {group_member} gm ON (gm.group = g.id)\n        WHERE gm.member = ?\n        AND g.jointype = 'invite'\n        AND gm.role = 'admin'\n        AND g.deleted = 0", array($USER->get('id')));
$admingroups = new StdClass();
$admingroups->controlled = $controlledgroups;
$admingroups->invite = $invite;
build_userlist_html($data, 'myfriends', $admingroups);
$filterform = pieform(array('name' => 'filter', 'renderer' => 'oneline', 'elements' => array('filter' => array('type' => 'select', 'options' => array('all' => get_string('allfriends', 'group'), 'current' => get_string('currentfriends', 'group'), 'pending' => get_string('pendingfriends', 'group')), 'defaultvalue' => $filter), 'submit' => array('type' => 'submit', 'value' => get_string('filter')))));
$js = <<<EOF
addLoadEvent(function () {
    p = {$data['pagination_js']}
    connect('filter_submit', 'onclick', function (event) {
        replaceChildNodes('messages');
        var params = {'filter': \$('filter_filter').value};
        p.sendQuery(params);
        event.stop();
    });
});
EOF;
if (!$data['count']) {
    if ($filter == 'pending') {
        $message = get_string('nobodyawaitsfriendapproval', 'group');