/**
* Получить список групп в виде SELECT.
*
* @param    integer $selected_group_id  ID выбранной группы
* @param    string  $element_id         ID <SELECT> для которого надо получить группы
*/
function GetGroupsForSelect($selected_group_id = 0, $element_id)
{
    session_start();
    $objResponse = new xajaxResponse();
    if (hasPermissions('ourcontacts')) {
        $html = '';
        $groups = contacts::getGroups();
        if ($groups) {
            $objResponse->remove($element_id);
            $objResponse->insertAfter($element_id . '_label', 'select', $element_id);
            $objResponse->assign($element_id, 'name', $element_id);
            foreach ($groups as $group) {
                $objResponse->create("{$element_id}", 'option', $element_id . '_o_' . $group['id']);
                $objResponse->assign($element_id . '_o_' . $group['id'], 'value', $group['id']);
                $objResponse->assign($element_id . '_o_' . $group['id'], 'innerHTML', $group['title']);
                if ($group['id'] == $selected_group_id) {
                    $objResponse->assign($element_id . '_o_' . $group['id'], 'selected', true);
                }
            }
        }
    }
    return $objResponse;
}
/**
 * Захват потока пользователем
 * 
 * @param  int $content_id идентификатор сущности из admin_contents
 * @param  string $stream_id идентификатор потока
 * @param  int $is_first флаг того, что это первый открываемый фрейм
 * @return object xajaxResponse
 */
function chooseStream($content_id = 0, $stream_id = '', $is_first = 0)
{
    global $user_content;
    $objResponse = new xajaxResponse();
    if ($user_content->hasContentPermissions($content_id)) {
        $sStreamId = $user_content->chooseStream($content_id, $stream_id, $_SESSION['uid']);
        if ($sStreamId != $stream_id) {
            if (empty($sStreamId)) {
                $objResponse->alert('Захват потока не удался.\\nПовторите попытку.');
            }
        } else {
            $aStreams = $user_content->getStreamsForUser($_SESSION['uid']);
            $aContentId = array();
            // id сущностей, для которых есть захваченные потоки
            $aCounters = array();
            // данные счетчиков в шапке захватываемого потока
            $sContentName = '';
            // название сущности
            foreach ($aStreams as $aOne) {
                // находим нужный поток
                if ($aOne['stream_id'] == $stream_id) {
                    break;
                    // обрываем обход. то если это первый поток в сущности - $aContentId не будет id
                }
                $aContentId[$aOne['content_id']] = 1;
                // попутно собираем id сущностей
            }
            foreach ($user_content->contents as $aContent) {
                // находим название сущности
                if ($aContent['id'] == $aOne['content_id']) {
                    $sContentName = $aContent['name'];
                    break;
                }
            }
            if ($user_content->isStreamCounters($aOne['content_id'])) {
                // ели нужно добавляем счтчики - заготовка должна быть в каждом пото такой сущности
                $aCounters = $user_content->getStreamCounters($aOne['content_id'], false, $bShow);
            }
            $bFirstIn = !isset($aContentId[$aOne['content_id']]);
            // это первый поток данной сущности. нужно ли показывать счетчики
            ob_start();
            include_once $_SERVER['DOCUMENT_ROOT'] . '/siteadmin/user_content/frames_header.php';
            $sOutput = ob_get_contents();
            ob_end_clean();
            $sApproved = in_array($content_id, user_content::$aNoApproved) ? '' : 'проверенные';
            $sRejected = in_array($content_id, user_content::$aNoRejected) ? '' : 'заблокированные';
            if ($is_first == 1) {
                $objResponse->create('frames_body', 'table', 'frames_table');
                $objResponse->assign('frames_table', 'className', 'b-layout__table b-layout__table_height_99ps b-layout__table_width_full');
                $objResponse->assign('frames_table', 'border', '0');
                $objResponse->assign('frames_table', 'cellpadding', '0');
                $objResponse->assign('frames_table', 'cellspacing', '0');
                $objResponse->create('frames_table', 'tr', 'tr_header');
                $objResponse->assign('tr_header', 'className', 'b-layout__tr');
                $objResponse->create('frames_table', 'tr', 'tr_frames');
                $objResponse->assign('tr_frames', 'className', 'b-layout__tr');
            }
            $objResponse->script("if (\$('{$stream_id}')) { \$('{$stream_id}').contentWindow.location.reload(true); } \n                else {\n                    td1 = new Element('td', {'id': 'th_{$stream_id}','class': 'b-layout__one b-layout__one_bg_f7 b-layout__one_pad_10 b-layout__one_width_330 b-layout__one_bordright_ccc b-layout__one_bordbot_ccc b-layout__one_height_100',html: '' });\n                    td2 = new Element('td', {'id': 'td_{$stream_id}','class': 'b-layout__one b-layout__one_height_100ps b-layout__one_width_350  b-layout__one_bordright_ccc',html: '<div class=\"box-frame\"><iframe id=\"{$stream_id}\" src=\"/siteadmin/user_content/?site=stream&cid={$content_id}&sid={$stream_id}\" frameborder=\"0\" width=\"100%\" height=\"100%\"></iframe></div>' });\n                    \$('tr_header').adopt(td1);\$('tr_frames').adopt(td2);\n                };");
            if ($bFirstIn) {
                $objResponse->script("\$\$('div[id^=\"counters_{$aOne['content_id']}_\"]').addClass('b-shadow_hide');\$\$('div[id^=\"counters_{$aOne['content_id']}_\"]').setStyle('display', 'none');");
            }
            $objResponse->assign('th_' . $stream_id, 'innerHTML', $sOutput);
            $objResponse->script("user_content.addSoundControl('{$stream_id}');");
            $objResponse->script("user_content.tabMenuItems['{$stream_id}'] = ['непроверенные', '{$sApproved}', '{$sRejected}'];");
        }
    }
    return $objResponse;
}