function AdminBlocksEdit($a)
{
    global $config, $site, $user;
    // Для обратной совместимости со старыми блоками
    $showin = array('ALL_EXCEPT');
    $showin_uri = array();
    $template = '';
    $b_vi = 4;
    $b_en = 1;
    if (isset($_POST['type']) || $a == 'edit') {
        $b_pos = array('L' => false, 'R' => false, 'T' => false, 'B' => false);
        $b_pos = array('L' => false, 'R' => false, 'T' => false, 'B' => false, 'A' => false);
        $b_title = '';
        $b_vi = 4;
        $b_en = 1;
        $block_config = '';
        // Используется в подключаемых файлах
        if ($a == 'edit') {
            System::database()->Select('blocks', "`id`='" . SafeEnv($_GET['id'], 11, int) . "'");
            $r = System::database()->FetchRow();
            $b_title = SafeDB($r['title'], 255, str);
            $b_pos[SafeDB($r['position'], 1, str)] = true;
            $b_vi = SafeDB($r['view'], 1, int);
            $b_en = SafeDB($r['enabled'], 1, bool);
            $b_type = SafeDB($r['type'], 255, str);
            $template = SafeDB($r['template'], 255, str);
            $block_config = $r['config'];
            // Используется в подключаемых файлах
            $title = 'Редактирование блока';
            $a_form = ADMIN_FILE . '?exe=blocks&a=update&id=' . SafeEnv($_GET['id'], 11, int);
            $button = 'Сохранить изменения';
            if ($r['showin'] != '') {
                $showin = unserialize($r['showin']);
            }
            if ($r['showin_uri'] != '') {
                $showin_uri = unserialize($r['showin_uri']);
            }
        } else {
            $a_form = ADMIN_FILE . '?exe=blocks&a=newsave';
            $b_type = SafeEnv($_POST['type'], 255, str);
            $title = 'Настройка блока';
            $button = 'Создать';
            $showin[] = array('ALL_EXCEPT');
        }
        FormRow('Заголовок', System::site()->Edit('title', $b_title, false, 'style="width:400px;" class="autofocus"'));
        $constructor = System::config('blocks_dir') . $b_type . '/constructor.php';
        if (is_file($constructor)) {
            include_once $constructor;
        }
        $btems = GetBlockTemplates();
        $temdata = array();
        foreach ($btems as $tem) {
            System::site()->DataAdd($temdata, $tem, $tem, $tem == $template);
        }
        FormRow('Шаблон блока', System::site()->Select('template', $temdata));
        System::site()->DataAdd($posdata, 'Left', 'Колонка слева', $b_pos['L']);
        System::site()->DataAdd($posdata, 'Right', 'Колонка справа', $b_pos['R']);
        System::site()->DataAdd($posdata, 'Top', 'В центре сверху', $b_pos['T']);
        System::site()->DataAdd($posdata, 'Bottom', 'В центре снизу', $b_pos['B']);
        //System::site()->DataAdd($posdata, 'ABottom', 'A В центре снизу', $b_pos['A']);
        FormRow('Позиционирование', System::site()->Select('position', $posdata));
        VisibilityConditionsAdmin($showin, $showin_uri);
        FormRow('Кто видит', System::site()->Select('view', GetUserTypesFormData($b_vi)));
        FormRow('Включить', System::site()->Select('enabled', GetEnData($b_en, 'Да', 'Нет')));
        AddCenterBox($title);
        AddForm('<form action="' . $a_form . '" method="post">' . System::site()->Hidden('type', $b_type), System::site()->Button('Отмена', 'onclick="history.go(-1);"') . System::site()->Submit($button));
    } else {
        GO(ADMIN_FILE);
    }
}
function AdminExtensionsConfig()
{
    System::admin()->AddSubTitle('Настройки модуля');
    $name = SafeEnv($_GET['name'], 255, str);
    System::database()->Select('modules', "`folder`='" . $name . "'");
    $mod = System::database()->FetchRow();
    System::admin()->FormRow('Имя', System::admin()->Edit('name', $mod['name'], false, 'style="width:200px;" class="autofocus"'));
    $dir = System::config('tpl_dir') . System::config('general/site_template') . '/themes/';
    if (is_dir($dir)) {
        $templates = GetFiles($dir, false, true, ".html");
    } else {
        $templates = array();
    }
    System::admin()->DataAdd($templates_data, '', 'Стандартный "theme.html"', $mod['theme'] == '');
    foreach ($templates as $template) {
        System::admin()->DataAdd($templates_data, $template, $template, $mod['theme'] == $template);
    }
    System::admin()->FormRow('Шаблон страницы', System::admin()->Select('theme', $templates_data));
    System::admin()->FormRow('Кто видит', System::admin()->Select('view', GetUserTypesFormData(SafeDB($mod['view'], 1, int))));
    System::admin()->FormRow('Включить', System::admin()->Select('enabled', GetEnData((bool) $mod['enabled'], 'Да', 'Нет')));
    System::admin()->AddCenterBox('Настройка модуля "' . SafeDB($mod['name'], 255, str) . '"');
    System::admin()->AddForm(System::admin()->FormOpen(ADMIN_FILE . '?exe=extensions&a=mod_configsave&name=' . SafeDB($mod['folder'], 255, str)), System::admin()->Button('Отмена', 'onclick="history.go(-1)"') . System::admin()->Submit('Сохранить'));
}
function AdminGalleryUploadForm()
{
    global $edit_images;
    if (!$edit_images) {
        System::admin()->AccessDenied();
    }
    $top = 'Мультизагрузка';
    $cat_id = isset($_GET['to']) ? SafeDB($_GET['to'], 11, int) : 0;
    $cats_data = AdminGalleryGetTree()->GetCatsData($cat_id);
    if (count($cats_data) == 0) {
        $back_to_form = SaveRefererUrl();
        AddTextBox($top, 'Нет категорий для добавления! ' . System::admin()->SpeedButton('Добавить категорию', ADMIN_FILE . '?exe=gallery&a=cateditor&back=' . $back_to_form, '', true, true));
        return;
    }
    System::admin()->AddCenterBox($top);
    UseScript('swfupload');
    $formid = uniqid();
    // Уникальный ID формы
    $_SESSION['uploadforms'][$formid] = array('photos' => array(), 'category' => '0', 'allow_comments' => '1', 'allow_votes' => '1', 'view' => '4', 'show' => '1');
    System::admin()->AddOnLoadJS(Indent('
		window.photo_id = 1;
		window.allUploadComplete = false;
		window.photosCountFiles = 0;
		window.photosUploaded = 0;

		// SWFUpload
		if(window.gallery_swfu){
			window.gallery_swfu.destroy();
		}else{
			window.GallerySubmitFormGuard = function(){
				if(window.photosCountFiles == 0){
					alert("Выберите фотографии для загрузки");
					return false;
				}
				if(!window.allUploadComplete){
					window.gallery_swfu.startUpload();
					Admin.ShowSplashScreen("Загрузка фотографий на хостинг");
					return false;
				}
				return true;
			}
		}

		window.gallery_swfu = new SWFUpload({
			upload_url: "' . ADMIN_FILE . '?exe=gallery&a=upload&formid=' . $formid . '",
			file_post_name : "up_image",
			post_params: {
				"action": "upload"
			},
			file_size_limit: "100 MB",
			file_types: "*.jpg; *.png; *.jpeg; *.gif",
			file_types_description: "Все файлы",
			file_upload_limit: 0,
			file_queue_limit: 0,
			debug: false,

			button_placeholder_id: "uploadbutton",
			button_width: "54",
			button_height: "18",
			button_window_mode: SWFUpload.WINDOW_MODE.TRANSPARENT,
			button_text: "<span class=\\"btnCap\\">Обзор<span>",
			button_text_style: ".btnCap{ align: center; color: #4F4F4F; font-family: Verdana, Tahoma, sans-serif; font-weight: bold; }",
			button_text_left_padding: 4,
			button_text_top_padding: 1,

			file_dialog_complete_handler: function(numFilesSelected, numFilesQueued, total){
				$("#uploadFilesCount").html("Выбрано " + total + " файл(ов)");
				window.photosCountFiles = total;
			},
			upload_progress_handler: function(file, bytesLoaded, bytesTotal){
				var current = window.photosUploaded + 1;
				Admin.SetSplashScreenMessage("Загрузка фотографий на хостинг: " + current + "/" + window.photosCountFiles + " (" + Math.round(bytesLoaded/bytesTotal*100) + "%)");
			},
			upload_complete_handler: function(file){
				window.photosUploaded++;
				if(window.photosUploaded == window.photosCountFiles){
					window.allUploadComplete = true;
					$("#galleryForm").submit();
				}
			}
		});
	'));
    FormRow('В категорию', System::site()->Select('category', $cats_data));
    FormRow('Выберите файлы', RemoveIndent('
		<div style="float: left;" id="uploadFilesCount">Выбрано 0 файл(ов)</div>
		&nbsp;&nbsp;&nbsp;&nbsp;
		<div class="button" style="float: right; border: 1px #ccc solid;">
			<span id="uploadbutton">
				<a href="http://www.adobe.com/go/getflashplayer">Get Adobe Flash player</a>
			</span>
		</div>
	'));
    FormRow('Комментарии', System::site()->Select('allow_comments', GetEnData(true, 'Разрешить', 'Запретить')));
    FormRow('Оценки', System::site()->Select('allow_votes', GetEnData(true, 'Разрешить', 'Запретить')));
    FormRow('Кто видит', System::site()->Select('view', GetUserTypesFormData(4)));
    FormRow('Показать', System::site()->Select('show', GetEnData(true, 'Да', 'Нет')));
    AddForm('<form action="' . ADMIN_FILE . '?exe=gallery&a=upload&formid=' . $formid . '" method="post" onsubmit="return GallerySubmitFormGuard();" id="galleryForm">', System::admin()->Hidden('action', 'preview') . System::admin()->Submit('Загрузить'));
}
/**
 * Редактор новостей (редактирование / добавление)
 * @return void
 */
function AdminNewsEditor()
{
    global $news_access_editnews;
    if (!$news_access_editnews) {
        System::admin()->AccessDenied();
    }
    UseScript('jquery_ui', 'colorbox?theme=admin');
    System::admin()->AddOnLoadJS('
	$("#datepicker").datepicker({
		dateFormat: "dd.mm.yy",
		changeMonth: true,
		changeYear: true
	});');
    $topic_id = 0;
    // Номер темы
    $newstitle = '';
    // Заголовок новости
    $icon = '';
    // Иконки
    $stext = '';
    // Короткая новость
    $ctext = '';
    // Полная новость
    $view = 4;
    // Кто видит
    $allow_comments = true;
    // Разрешить комментарии
    $auto_br = false;
    // Авто добавление тега <br />
    $enabled = true;
    // Включить да/нет
    $alname = 'Разместить';
    // Надпись на отправляющей кнопке
    $img_view = 0;
    //Модуль SEO
    $seo_title = '';
    $seo_keywords = '';
    $seo_description = '';
    $public_date = date("d.m.Y", time());
    $public_time = date("G:i", time());
    if (!isset($_GET['id'])) {
        // Добавление новости
        $auto_br = false;
        $title = 'Добавить новость';
        $caption = 'Добавить';
        TAddSubTitle($title);
        $met = '';
    } else {
        // Редактирование новости
        System::database()->Select('news', "`id`='" . SafeEnv($_GET['id'], 11, int) . "'");
        $news = System::database()->FetchRow();
        $topic_id = SafeDB($news['topic_id'], 11, int);
        $newstitle = SafeDB($news['title'], 255, str);
        $icon = SafeDB($news['icon'], 255, str);
        $stext = SafeDB($news['start_text'], 0, str, false);
        $ctext = SafeDB($news['end_text'], 0, str, false);
        $allow_comments = SafeDB($news['allow_comments'], 1, bool);
        $auto_br = SafeDB($news['auto_br'], 1, bool);
        $img_view = SafeDB($news['img_view'], 1, int);
        $view = SafeDB($news['view'], 1, int);
        $enabled = SafeDB($news['enabled'], 1, bool);
        //Модуль SEO
        $seo_title = SafeDB($news['seo_title'], 255, str);
        $seo_keywords = SafeDB($news['seo_keywords'], 255, str);
        $seo_description = SafeDB($news['seo_description'], 255, str);
        $public_date = date("d.m.Y", $news['date']);
        $public_time = date("G:i", $news['date']);
        $title = 'Редактирование новости';
        $caption = 'Сохранить изменения';
        TAddSubTitle($title);
        $met = '&id=' . SafeEnv($_GET['id'], 11, int);
    }
    System::admin()->AddJS(Indent('
		NewsPreviewOpen = function(){
			if(tinyMCE){
				tinyMCE.triggerSave();
			}
			var form_data = Admin.SerializeFormData(document.forms.news_editor);
			var left = parseInt(screen.width / 2) - 400;
			var top = parseInt(screen.height / 10);
			var wp = window.open("", "Preview", "resizable=yes,scrollbars=yes,menubar=no,status=no,location=no,width=800,height=600,left="+left+",top="+top+"");
			wp.document.open();
			$.ajax({
				type: "POST",
				url: "' . ADMIN_FILE . '?exe=news&a=preview' . $met . '",
				data: form_data,
				dataType: "html",
				success: function(data){
					wp.document.write(data);
					wp.document.close();
				}
			});
		}
	'));
    System::database()->Select('news_topics', '');
    $topicdata = array();
    while ($topic = System::database()->FetchRow()) {
        System::admin()->DataAdd($topicdata, $topic['id'], $topic['title'], $topic['id'] == $topic_id);
    }
    if (count($topicdata) == 0) {
        AddTextBox($title, 'Нет раздела для добавления. Создайте хотя бы один раздел.');
        return;
    }
    $img_view_data = array();
    System::admin()->DataAdd($img_view_data, '0', 'Авто', $img_view == 0);
    System::admin()->DataAdd($img_view_data, '1', 'Исходная картинка', $img_view == 1);
    System::admin()->DataAdd($img_view_data, '2', 'Эскиз', $img_view == 2);
    $acts = array();
    System::admin()->DataAdd($acts, 'save', $alname);
    System::admin()->DataAdd($acts, 'preview', 'Предпросмотр');
    FormRow('Раздел', System::admin()->Select('topic_id', $topicdata, false, 'class="autofocus"'));
    FormRow('Заголовок новости', System::admin()->Edit('title', $newstitle, false, 'style="width:400px;"'));
    // Модуль SEO
    FormRow('[seo] Заголовок страницы', System::admin()->Edit('seo_title', $seo_title, false, 'style="width:400px;"'));
    FormRow('[seo] Ключевые слова', System::admin()->Edit('seo_keywords', $seo_keywords, false, 'style="width:400px;"'));
    FormRow('[seo] Описание', System::admin()->Edit('seo_description', $seo_description, false, 'style="width:400px;"'));
    list($width, $height) = SafeDB(explode(':', System::config('news/tmb_size')), 11, int);
    FormRow('Изображение', System::admin()->FileManager('icon', $icon) . '<br>
		<a href="' . $icon . '" class="filemanager_icon colorbox" data-content="href:path" target="_blank">
			<img src="' . GetThumb($icon, $width, $height) . '" class="filemanager_icon" data-content="src:tmb" style="margin-top: 5px; max-width: 250px;">
		</a>');
    //AdminImageControl('Изображение', 'Загрузить изображение', $icon, System::config('news/icons_dirs'), 'icon', 'up_photo', 'news_editor');
    FormRow('Отображение рисунка', System::admin()->Select('img_view', $img_view_data));
    FormTextRow('Короткая новость (HTML)', System::admin()->HtmlEditor('shorttext', $stext, 600, 200));
    FormTextRow('Полная новость (HTML)', System::admin()->HtmlEditor('continuation', $ctext, 600, 400));
    FormRow('', 'Преобразовать текст в HTML: ' . System::admin()->Select('auto_br', GetEnData($auto_br, 'Да', 'Нет')));
    FormRow('Дата и время публикации', System::admin()->Edit('public_date', $public_date, false, 'id="datepicker" style="width:120px;"') . '&nbsp;' . System::admin()->Edit('public_time', $public_time, false, 'style="width:60px;"'));
    FormRow('Комментарии', System::admin()->Select('acomments', GetEnData($allow_comments, 'Разрешить', 'Запретить')));
    FormRow('Кто видит', System::admin()->Select('view', GetUserTypesFormData($view)));
    FormRow('Включить', System::admin()->Select('enabled', GetEnData($enabled, 'Да', 'Нет')));
    AddCenterBox($title);
    $back = '';
    if (isset($_REQUEST['back'])) {
        $back = '&back=' . SafeDB($_REQUEST['back'], 255, str);
    }
    AddForm('<form name="news_editor" action="' . ADMIN_FILE . '?exe=news&a=save' . $met . $back . '" method="post" enctype="multipart/form-data" name="news_editor">', System::admin()->Button('Отмена', 'onclick="history.go(-1)"') . System::admin()->Button('Предпросмотр', 'onclick="NewsPreviewOpen();"') . System::admin()->Submit($caption));
}
function AdminMailEditTopic()
{
    $title = '';
    $description = '';
    $active = array(false, false);
    $status = array(false, false);
    if (!isset($_GET['id'])) {
        $active[1] = true;
        $status[1] = true;
        $action = 'save_topic';
        $top = 'Добавить тему';
        $cap = 'Добавить';
    } else {
        $id = SafeEnv($_GET['id'], 11, int);
        System::database()->Select('mail_topics', "`id`='{$id}'");
        $topic = System::database()->FetchRow();
        $title = SafeDB($topic['title'], 250, str);
        $description = SafeDB($topic['description'], 250, str);
        $active[SafeDB($topic['active'], 1, int)] = true;
        $status[SafeDB($topic['status'], 1, int)] = true;
        $action = 'save_topic&id=' . $id;
        $top = 'Редактирование темы';
        $cap = 'Сохранить изменения';
    }
    FormRow('Заголовок', System::site()->Edit('title', $title, false, 'maxlength="250" style="width:400px;" class="autofocus"'), 140);
    FormTextRow('Описание', System::site()->HtmlEditor('description', $description, 600, 200));
    FormRow('Активна', System::site()->Select('active', GetEnData($active[1])));
    FormRow('Включить', System::site()->Select('status', GetEnData($status[1])));
    AddCenterBox($top);
    AddForm('<form action="' . ADMIN_FILE . '?exe=mail&a=' . $action . '" method="post">', System::site()->Button('Отмена', 'onclick="history.go(-1)"') . System::site()->Submit($cap));
}
function AdminArticlesEditor()
{
    global $editarticles;
    if (!$editarticles) {
        System::admin()->AccessDenied();
    }
    $cat_id = isset($_GET['to']) ? SafeDB($_GET['to'], 11, int) : 0;
    $author = '';
    $email = '';
    $www = '';
    $title = '';
    $description = '';
    $article = '';
    $image = '';
    $auto_br_desc = false;
    $auto_br_article = false;
    $allow_comments = true;
    $allow_votes = true;
    $view = 4;
    $active = true;
    //Модуль SEO
    $seo_title = '';
    $seo_keywords = '';
    $seo_description = '';
    //
    $form = 0;
    $product_id = '';
    if (!isset($_GET['id'])) {
        $action = 'add';
        $top = 'Добавить статью';
        $cap = 'Добавить';
    } else {
        $id = SafeEnv($_GET['id'], 11, str);
        System::database()->Select('articles', "`id`='{$id}'");
        $art = System::database()->FetchRow();
        $cat_id = SafeDB($art['cat_id'], 11, int);
        $author = SafeDB($art['author'], 200, str);
        $email = SafeDB($art['email'], 50, str);
        $www = SafeDB($art['www'], 250, str);
        $title = SafeDB($art['title'], 255, str);
        $description = SafeDB($art['description'], 0, str, false);
        $article = SafeDB($art['article'], 0, str, false);
        $image = SafeDB($art['image'], 250, str);
        $auto_br_article = SafeDB($art['auto_br_article'], 1, bool);
        $auto_br_desc = SafeDB($art['auto_br_desc'], 1, bool);
        $active = SafeDB($art['active'], 1, bool);
        $allow_comments = SafeDB($art['allow_comments'], 1, int);
        $allow_votes = SafeDB($art['allow_votes'], 1, int);
        $view = SafeDB($art['view'], 1, int);
        //Модуль SEO
        $seo_title = SafeDB($art['seo_title'], 255, str);
        $seo_keywords = SafeDB($art['seo_keywords'], 255, str);
        $seo_description = SafeDB($art['seo_description'], 255, str);
        //
        $form = SafeDB($art['form'], 11, int);
        $product_id = SafeDB($art['product_id'], 255, str);
        $action = 'save&id=' . $id;
        $top = 'Редактирование статьи';
        $cap = 'Сохранить изменения';
    }
    System::admin()->AddJS(Indent('
		ArticlesPreviewOpen = function(){
			if(tinyMCE){
				tinyMCE.triggerSave();
			}
			var form_data = Admin.SerializeFormData(document.forms.edit_form);
			var left = parseInt(screen.width / 2) - 400;
			var top = parseInt(screen.height / 10);
			var wp = window.open("", "Preview", "resizable=yes,scrollbars=yes,menubar=no,status=no,location=no,width=800,height=600,left="+left+",top="+top+"");
			wp.document.open();
			$.ajax({
				type: "POST",
				url: "' . ADMIN_FILE . '?exe=articles&a=preview",
				data: form_data,
				dataType: "html",
				success: function(data){
					wp.document.write(data);
					wp.document.close();
				}
			});
		}
	'));
    $cats_data = AdminArticlesGetTree()->GetCatsData($cat_id);
    if (count($cats_data) == 0) {
        $back_to_form = SaveRefererUrl();
        AddTextBox($top, 'Нет категорий для добавления! ' . System::admin()->SpeedButton('Добавить категорию', ADMIN_FILE . '?exe=articles&a=cateditor&back=' . $back_to_form, '', true, true));
        return;
    }
    FormRow('В категорию', System::site()->Select('category', $cats_data, false, $cat_id == 0 ? 'class="autofocus"' : ''));
    FormRow('Заголовок', System::site()->Edit('title', $title, false, 'maxlength="250" style="width:400px;"' . ($cat_id != 0 ? 'class="autofocus"' : '')));
    //Модуль SEO
    FormRow('[seo] Заголовок страницы', System::site()->Edit('seo_title', $seo_title, false, 'style="width:400px;"'));
    FormRow('[seo] Ключевые слова', System::site()->Edit('seo_keywords', $seo_keywords, false, 'style="width:400px;"'));
    FormRow('[seo] Описание', System::site()->Edit('seo_description', $seo_description, false, 'style="width:400px;"'));
    //
    // Веб форма
    $forms = System::database()->Select('forms', "`active`='1'");
    $forms_data = array();
    System::site()->DataAdd($forms_data, '0', 'Нет', $form == 0);
    foreach ($forms as $f) {
        System::site()->DataAdd($forms_data, SafeDB($f['id'], 11, int), SafeDB($f['hname'], 255, str), $f['id'] == $form);
    }
    FormRow('Форма', System::site()->Select('form', $forms_data));
    FormRow('Код товара', System::site()->Edit('product_id', $product_id, false, 'maxlength="250" style="width:400px;"'));
    AdminImageControl('Изображение', 'Загрузить изображение', $image, System::config('articles/images_dir'));
    FormTextRow('Короткая статья (HTML)', System::site()->HtmlEditor('description', $description, 600, 200));
    FormRow('', 'Преобразовать текст в HTML: ' . System::site()->Select('auto_br_desc', GetEnData($auto_br_desc, 'Да', 'Нет')));
    FormTextRow('Полная статья (HTML)', System::site()->HtmlEditor('article', $article, 600, 400));
    FormRow('', 'Преобразовать текст в HTML: ' . System::site()->Select('auto_br_article', GetEnData($auto_br_article, 'Да', 'Нет')));
    FormRow('Автор', System::site()->Edit('author', $author, false, 'style="width:400px;" maxlength="50"'));
    FormRow('E-mail автора', System::site()->Edit('email', $email, false, 'style="width:400px;" maxlength="50"'));
    FormRow('Сайт автора', System::site()->Edit('www', $www, false, 'style="width:400px;" maxlength="250"'));
    FormRow('Комментарии', System::site()->Select('allow_comments', GetEnData($allow_comments, 'Разрешить', 'Запретить')));
    FormRow('Оценки', System::site()->Select('allow_votes', GetEnData($allow_votes, 'Разрешить', 'Запретить')));
    FormRow('Кто видит', System::site()->Select('view', GetUserTypesFormData($view)));
    FormRow('Активна', System::site()->Select('active', GetEnData($active, 'Да', 'Нет')));
    AddCenterBox($top);
    if (!isset($_REQUEST['back'])) {
        $_REQUEST['back'] = SaveRefererUrl(ADMIN_FILE . '?exe=articles');
    }
    AddForm('<form name="edit_form" action="' . ADMIN_FILE . '?exe=articles&a=' . $action . '&back=' . SafeDB($_REQUEST['back'], 255, str) . '" method="post" enctype="multipart/form-data">', System::site()->Button('Отмена', 'onclick="history.go(-1)"') . System::site()->Button('Предпросмотр', 'onclick="ArticlesPreviewOpen();"') . System::site()->Submit($cap));
}
function AdminSmilesEditSmile()
{
    global $smilies_dir, $mod;
    System::admin()->AddJS(Indent('
		SelectSmile = function(){
			var selected = $("#smile_file option:selected");
			$("#smile_image").prop("src", "' . $smilies_dir . '"+selected.val());
			$("#smile_code").val(selected.attr("code"));
			$("#smile_desc").val(selected.attr("description"));
		};
	'));
    $id = 0;
    $file = '';
    $code = '';
    $desc = '';
    $enabled = true;
    $box_title = 'Добавить смайлик';
    $submit = 'Добавить';
    if (isset($_GET['id'])) {
        $id = SafeEnv($_GET['id'], 11, int);
        System::database()->Select('smilies', "`id`='{$id}'");
        $smile = System::database()->FetchRow();
        $file = $smile['file'];
        $code = SafeDB($smile['code'], 255, str);
        $desc = SafeDB($smile['desc'], 255, str);
        $enabled = SafeDB($smile['enabled'], 1, bool);
        $submit = 'Сохранить';
        $box_title = 'Редактирование смайлика';
        System::admin()->AddOnLoadJS('$("#smile_image").prop("src", "' . $smilies_dir . '"+$("#smile_file option:selected").val());');
    } else {
        System::admin()->AddOnLoadJS('SelectSmile();');
    }
    AddCenterBox($box_title);
    $smilies = System::database()->Select('smilies');
    $xor = array();
    if ($id == 0) {
        $xor =& $smilies;
    } else {
        foreach ($smilies as $smile) {
            if ($smile['id'] != $id) {
                $xor[] = $smile;
            }
        }
    }
    $smilies_data = AdminSmiliesGetData($file, $xor);
    if ($id == 0 && count($smilies_data) == 0) {
        System::admin()->Highlight('Загрузите изображения смайликов в папку <b>' . $smilies_dir . '</b> для добавления.');
        return;
    }
    FormRow('Изображение', System::site()->Select('file', $smilies_data, false, 'onchange="SelectSmile()" id="smile_file" class="autofocus"'));
    FormRow('Предпросмотр', '<img id="smile_image">');
    FormRow('Код', System::site()->Edit('code', $code, false, 'style="width: 200px;" id="smile_code"'));
    FormRow('Описание', System::site()->Edit('desc', $desc, false, 'style="width: 200px;" id="smile_desc"'));
    FormRow('Показывать', System::admin()->Select('indexview', GetEnData($enabled, 'Да', 'Нет')));
    AddForm('<form name="newsmile" action="' . $mod . '&a=save' . ($id != 0 ? '&id=' . $id : '') . '" method="post">', System::site()->Button('Отмена', 'onclick="history.go(-1)"') . System::site()->Submit($submit));
}
function AdminAdminMenuEditor()
{
    UseScript('jquery');
    System::admin()->AddJS(Indent(<<<JS
\t\tSelectLinkType = function(type, first){
\t\t\t\$('.aaml').hide();
\t\t\tif(first){
\t\t\t\t\$('.aaml_'+type).show();
\t\t\t}else{
\t\t\t\t\$('.aaml_'+type).fadeIn(1000);
\t\t\t}
\t\t};
\t\tSelectModule = function(mod){
\t\t\t\tvar mod = \$(mod).find('option:selected').attr('title');
\t\t\t\t\$('#item_title').val(mod).focus();
\t\t};
JS
));
    $id = -1;
    $parent = 0;
    if (isset($_GET['parent'])) {
        $parent = SafeEnv($_GET['parent'], 11, int);
    }
    $module = '';
    $title = '';
    $icon = '';
    $admin_link = '';
    $external_link = '';
    $blank = false;
    $js = '';
    $type = 'admin';
    //(admin|external|js|node|delimiter)
    $enabled = true;
    if (isset($_GET['id'])) {
        $id = SafeEnv($_GET['id'], 11, int);
        System::database()->Select('adminmenu', "`id`='{$id}'");
        $item = System::database()->FetchRow();
        $parent = SafeDB($item['parent'], 11, int);
        $module = SafeDB($item['module'], 255, str);
        $title = SafeDB($item['title'], 255, str);
        $icon = SafeDB($item['icon'], 255, str);
        $admin_link = SafeDB($item['admin_link'], 255, str);
        $external_link = SafeDB($item['external_link'], 255, str);
        $blank = SafeDB($item['blank'], 1, bool);
        $js = SafeDB($item['js'], 0, str);
        $type = SafeDB($item['type'], 255, str);
        $enabled = SafeDB($item['enabled'], 1, bool);
        $form_title = 'Редактирование элемента';
        $button = 'Сохранить';
    } else {
        $form_title = 'Добавить элемент';
        $button = 'Добавить';
    }
    System::admin()->AddOnLoadJS("SelectLinkType('{$type}', true);");
    $items_db = System::database()->Select('adminmenu', "`type`<>'delimiter'");
    $items_tree = new Tree($items_db);
    $parent_data = $items_tree->GetCatsData($parent, false, true, $id, true);
    $modules_db = System::database()->Select('modules');
    $modules_data = array();
    System::admin()->DataAdd($modules_data, '', '', '' == $module);
    foreach ($modules_db as $mod) {
        System::admin()->DataAdd($modules_data, $mod['folder'], $mod['name'], $mod['folder'] == $module);
    }
    $types_data = array();
    $types_av = array('admin' => 'Внутренняя ссылка', 'external' => 'Внешняя ссылка', 'js' => 'JavaScript', 'node' => 'Категория', 'delimiter' => 'Разделитель');
    foreach ($types_av as $t => $c) {
        System::admin()->DataAdd($types_data, $t, $c, $t == $type);
    }
    System::admin()->FormRow('Родительский элемент', System::admin()->Select('parent', $parent_data, false, $parent == 0 ? 'class="autofocus"' : ''));
    System::admin()->FormRow('Модуль', System::admin()->Select('module', $modules_data, false, 'onchange="SelectModule(this);"' . ($parent != 0 ? ' class="autofocus"' : '')));
    System::admin()->FormRow('Заголовок', System::site()->Edit('title', $title, false, 'id="item_title" style="width:400px;" maxlength="255"'));
    System::admin()->FormRow('Иконка (16x16)', System::site()->Edit('icon', $icon, false, 'style="width:400px;" maxlength="255"'));
    System::admin()->FormRow('Тип', System::admin()->Select('type', $types_data, false, 'onchange="SelectLinkType(this.value);"'));
    System::admin()->FormRow('Внутренняя ссылка', System::site()->Edit('admin_link', $admin_link, false, 'style="width:400px;" maxlength="255"'), 'class="aaml aaml_admin"');
    System::admin()->FormRow('Внешняя ссылка', System::site()->Edit('external_link', $external_link, false, 'style="width:400px;" maxlength="255"'), 'class="aaml aaml_external"');
    System::admin()->FormRow('Открыть ссылку в новом окне/вкладке', System::admin()->Select('blank', GetEnData($blank, 'Да', 'Нет')), 'class="aaml aaml_external"');
    System::admin()->FormTextRow('JavaScript', System::site()->TextArea('js', $js, 'style="width:400px;height:100px;"'), 'class="aaml aaml_js"');
    System::admin()->FormRow('Включить', System::admin()->Select('enabled', GetEnData($enabled, 'Да', 'Нет')));
    System::admin()->AddCenterBox($form_title);
    System::admin()->AddForm('<form action="' . ADMIN_FILE . '?exe=adminmenu&a=save' . ($id != -1 ? '&id=' . $id : '') . '" method="post">', System::site()->Button('Отмена', 'onclick="history.go(-1)"') . System::site()->Submit($button));
}
function AdminFormsFieldEditor($action)
{
    global $cl_plugins, $cs_plugins;
    if (!isset($_GET['id'])) {
        GO(ADMIN_FILE . '?exe=forms');
    }
    $id = SafeEnv($_GET['id'], 11, int);
    $collsd = array();
    for ($i = 1; $i < 11; $i++) {
        System::site()->DataAdd($collsd, $i, $i);
    }
    $getfuncdata = array();
    System::site()->DataAdd($getfuncdata, '', '');
    foreach ($cl_plugins as $pl) {
        System::site()->DataAdd($getfuncdata, $pl[0], $pl[0]);
    }
    $savefuncdata = array();
    System::site()->DataAdd($savefuncdata, '', '');
    foreach ($cs_plugins as $pl) {
        System::site()->DataAdd($savefuncdata, $pl[0], $pl[0]);
    }
    $controls = array();
    System::site()->DataAdd($controls, 'edit', 'Текстовое поле');
    System::site()->DataAdd($controls, 'text', 'Область редактирования');
    System::site()->DataAdd($controls, 'combo', 'Раскрывающийся список');
    System::site()->DataAdd($controls, 'list', 'Список (мультивыделение)');
    System::site()->DataAdd($controls, 'check', 'Флажки');
    System::site()->DataAdd($controls, 'radio', 'Радиокнопки');
    System::site()->DataAdd($controls, 'file', 'Файл');
    $datatypes = array();
    System::site()->DataAdd($datatypes, 'int', 'Целочисленный');
    System::site()->DataAdd($datatypes, 'float', 'Вещественный');
    System::site()->DataAdd($datatypes, 'string', 'Текстовый');
    System::site()->DataAdd($datatypes, 'bool', 'Логический');
    System::site()->DataAdd($datatypes, 'file', 'Файл');
    $required = false;
    if ($action == 'add') {
        $hname = '';
        $name = '';
        $width = '';
        $height = '';
        $length = '0';
        $values = '';
        $cp = 'Добавить';
        $edit = false;
        System::admin()->FormTitleRow('Добавить поле');
    } else {
        $index = SafeEnv($_GET['index'], 11, int);
        System::database()->Select('forms', "`id`='{$id}'");
        $form = System::database()->FetchRow();
        $fields = unserialize($form['form_data']);
        $field = $fields[$index];
        $hname = $field['hname'];
        $name = $field['name'];
        $stype = FormsParseParams(explode(':', $field['kind']));
        $width = $stype['width'];
        $height = $stype['height'];
        $cols = $stype['cols'];
        $required = $stype['required'];
        $controls['selected'] = $stype['control'];
        $collsd['selected'] = $cols;
        $vv = explode(':', $field['values']);
        if (count($vv) == 2 && FormsConfigCheck2Func($vv[0], $vv[1])) {
            $getfuncdata['selected'] = $vv[1];
            $values = '';
        } else {
            $values = $field['values'];
        }
        if (function_exists($field['savefunc'])) {
            $savefuncdata['selected'] = $field['savefunc'];
        }
        $type = explode(',', $field['type']);
        $datatypes['selected'] = $type[1];
        $length = $type[0];
        $cp = 'Сохранить изменения';
        $edit = true;
    }
    FormRow('Название', System::site()->Edit('hname', $hname, false, 'maxlength="250" style="width:400px;" class="autofocus"'));
    FormRow('Имя HTML (уникальное для всех полей)', System::site()->Edit('name', $name, false, 'maxlength="250" style="width:400px;"'));
    FormRow('Элемент управления (укажите единицу измерения после ширины и высоты: %, px)', '<table>' . '<tr><td colspan="2" style="border:none; padding: 2px;">' . System::site()->Select('control', $controls) . '<td></tr>' . '<tr><td style="border:none; padding: 2px;">Ширина:</td>' . '<td style="border:none; padding: 2px;">' . System::site()->Edit('cwidth', $width, false, 'style="width:100px;"') . '</td></tr>' . '<tr><td style="border:none; padding: 2px;">Высота:</td>' . '<td style="border:none; padding: 2px;">' . System::site()->Edit('cheight', $height, false, 'style="width:100px;"') . '</td></tr>' . '<tr><td style="border:none; padding: 2px;">Колонок:</td>' . '<td style="border:none; padding: 2px;">' . System::site()->Select('ccols', $collsd) . '</td></tr>' . '</table>');
    FormTextRow('Возможные значения (Например: name:имя,name:имя, .... Только для элементов выбора.)', System::site()->TextArea('values', $values, 'style="width:600px;height:100px;"'));
    FormRow('Функция заполнения значений', System::site()->Select('valuesfunc', $getfuncdata));
    FormRow('Функция обработчик', System::site()->Select('savefunc', $savefuncdata));
    FormRow('Тип данных', System::site()->Select('datatype', $datatypes));
    FormRow('Длина поля (Размер файла Кб., 0 - неограниченно)', System::site()->Edit('maxlength', $length, false, 'style="width:60px;" maxlength="11"'));
    FormRow('Обязательное для заполнения', System::site()->Select('required', GetEnData($required, 'Да', 'Нет')));
    AddForm(System::site()->FormOpen(ADMIN_FILE . '?exe=forms&a=addfield&id=' . $id . ($edit ? '&index=' . $index : '')), ($edit ? System::site()->Button('Отмена', 'onclick="history.go(-1);"') : '') . System::site()->Submit($cp));
}
function AdminForumEditor()
{
    $site = System::site();
    $f_title = '';
    $f_desc = '';
    if (CheckGet('parent')) {
        $f_parent = SafeDB($_GET['parent'], 11, int);
    } else {
        $f_parent = 0;
    }
    $f_view = 4;
    $f_status = 1;
    $f_admin_theme_add = array(false, false);
    $f_new_message_email = array(false, true);
    $f_no_link_guest = array(false, false);
    $rang_access = 0;
    $rang_add_theme = 0;
    $rang_message = 0;
    $close_topic = array(false, false);
    if (isset($_GET['id'])) {
        // Редактирование
        $id = SafeDB($_GET['id'], 11, int);
        System::database()->Select('forums', "`id`='{$id}'");
        $forum = System::database()->FetchRow();
        $f_title = SafeDB($forum['title'], 255, str);
        $f_desc = SafeDB($forum['description'], 0, str);
        $f_parent = SafeDB($forum['parent_id'], 11, int);
        $f_admin_theme_add[(int) $forum['admin_theme_add']] = true;
        $f_new_message_email[(int) $forum['new_message_email']] = true;
        $f_no_link_guest[(int) $forum['no_link_guest']] = true;
        $rang_access = SafeDB($forum['rang_access'], 11, int);
        $rang_add_theme = SafeDB($forum['rang_add_theme'], 11, int);
        $rang_message = SafeDB($forum['rang_message'], 11, int);
        $close_topic[(int) $forum['close_topic']] = true;
        $f_view = SafeDB($forum['view'], 1, int);
        $f_status = SafeDB($forum['status'], 1, int);
        $id_param = '&id=' . $id;
        $b_cap = 'Сохранить изменения';
        if ($f_parent == 0) {
            $c_cap = 'Редактирование категории';
        } else {
            $c_cap = 'Редактирование форума';
        }
    } else {
        // Добавление
        $f_title = '';
        $f_admin_theme_add[0] = true;
        $f_new_message_email[1] = true;
        $f_no_link_guest[0] = true;
        $close_topic[0] = true;
        $id_param = '';
        $b_cap = 'Добавить';
        if ($f_parent == 0) {
            $c_cap = 'Добавить категорию';
        } else {
            $c_cap = 'Добавить форум';
        }
    }
    FormRow('Название', $site->Edit('title', $f_title, false, 'style="width:400px;" maxlength="255" class="autofocus"'));
    if ($f_parent != 0) {
        $where = '';
        if (isset($_GET['id'])) {
            $where = " `id`<>'" . SafeEnv($_GET['id'], 11, int) . "'";
        }
        $forums = System::database()->Select('forums', $where);
        $cat = false;
        if (count($forums) == 0) {
            $cat = false;
        } else {
            foreach ($forums as $forum) {
                if ($forum['parent_id'] == 0) {
                    $cat = true;
                }
            }
        }
        SortArray($forums, 'order');
        $tree = ForumTree::Instance($forums);
        $tree->NumItemsCaption = '';
        $tree->TopCatName = 'Нет родительского раздела';
        $data = array();
        if ($cat) {
            $data = $tree->GetCatsDataF($f_parent, true, true);
        } else {
            $site->DataAdd($data, 0, $tree->TopCatName, true);
        }
        FormRow('Родительский раздел', $site->Select('sub_id', $data));
        FormTextRow('Описание', $site->HtmlEditor('desc', $f_desc, 600, 200));
    }
    System::admin()->FormTitleRow('Настройки форума');
    $endata = array();
    $site->DataAdd($endata, '1', 'Да', $f_admin_theme_add[1]);
    $site->DataAdd($endata, '0', 'Нет', $f_admin_theme_add[0]);
    FormRow('', 'Только администраторы могут создавать новые темы: ' . $site->Select('admin_theme_add', $endata));
    $endata = array();
    $site->DataAdd($endata, '1', 'Да', $f_no_link_guest[1]);
    $site->DataAdd($endata, '0', 'Нет', $f_no_link_guest[0]);
    FormRow('', 'Скрывать ссылки от гостей: ' . $site->Select('no_link_guest', $endata));
    $endata = array();
    $site->DataAdd($endata, '1', 'Да', $f_new_message_email[1]);
    $site->DataAdd($endata, '0', 'Нет', $f_new_message_email[0]);
    FormRow('', 'Разрешить подписку на уведомление о новых сообщениях в теме: ' . $site->Select('new_message_email', $endata));
    $endata = array();
    $site->DataAdd($endata, '1', 'Да', $close_topic[1]);
    $site->DataAdd($endata, '0', 'Нет', $close_topic[0]);
    FormRow('', 'Закрыть для обсуждения (будет доступен только просмотр): ' . $site->Select('close_topic', $endata));
    System::admin()->FormTitleRow('Настройка прав доступа по рангам пользователей');
    FormRow('Доступ (с меньшим рангом доступ будет закрыт)', ForumAdminGetUsersTypesComboBox('rang_access', $rang_access));
    FormRow('Создание тем (с меньшим рангом темы создавать будет запрещено)', ForumAdminGetUsersTypesComboBox('rang_add_theme', $rang_add_theme));
    FormRow('Создание сообщений в теме (с меньшим рангом сообщения создавать будет запрещено)', ForumAdminGetUsersTypesComboBox('rang_message', $rang_message));
    System::admin()->FormTitleRow('Параметры видимости');
    FormRow('Видят', $site->Select('view', GetUserTypesFormData($f_view)));
    FormRow('Включить', $site->Select('status', GetEnData($f_status, 'Да', 'Нет')));
    FormRow('Внимание', 'Ограничения прав и видимости действует на все дочерние форумы.');
    AddCenterBox($c_cap);
    AddForm($site->FormOpen(ADMIN_FILE . '?exe=forum&a=forum_save' . $id_param), $site->Submit($b_cap));
}
function AdminSiteMessagesEditor()
{
    $title = '';
    $text = '';
    $showin = array('ALL_EXCEPT');
    $extrauri = array();
    $time = '0';
    $view = 4;
    $enabled = 1;
    $view_title = array(false, false);
    $position = array(false, false);
    $resettime = '';
    if (!isset($_GET['id'])) {
        $view_title[1] = true;
        $position[1] = true;
        $url = '';
        $btitle = 'Создать сообщение';
        $method = 'Создать';
        $a = 'add';
    } else {
        $id = SafeEnv($_GET['id'], 11, int);
        System::database()->Select('messages', "`id`='{$id}'");
        $msg = System::database()->FetchRow();
        $title = SafeDB($msg['title'], 250, str);
        $text = SafeDB($msg['text'], 0, str, false);
        $time = SafeDB($msg['expire'], 11, int);
        if ($time != '0') {
            $total = TotalTime(time(), SafeDB($msg['date'], 11, int) + Day2Sec * SafeDB($msg['expire'], 11, int));
            $resettime = 'Осталось времени ' . $total['sdays'] . ' и ' . $total['shours'];
        }
        $showin = unserialize($msg['showin']);
        $extrauri = unserialize($msg['showin_uri']);
        $view_title[SafeDB($msg['view_title'], 1, int)] = true;
        $position[SafeDB($msg['position'], 1, int)] = true;
        $view = SafeDB($msg['view'], 1, int);
        $enabled = SafeDB($msg['active'], 1, int);
        $url = '&id=' . $id;
        $btitle = 'Редактирование сообщения';
        $method = 'Сохранить изменения';
        $a = 'edit';
    }
    FormRow('Заголовок', System::site()->Edit('title', $title, false, 'maxlength="250" style="width:400px;" class="autofocus"'));
    FormRow('Показывать заголовок', System::site()->Radio('vtitle', 'on', $view_title[1]) . 'Да&nbsp;' . System::site()->Radio('vtitle', 'off', $view_title[0]) . 'Нет');
    FormTextRow('Текст сообщения', System::site()->HtmlEditor('text', $text, 625, 300));
    FormRow('Отображать&nbsp;дней:<br /><small> (0 - неограниченно)</small>', System::site()->Edit('time', $time, false, 'maxlength="3" style="width:40px;"') . $resettime);
    if ($a == 'edit') {
        FormRow('Сбросить таймер', System::site()->Check('resettime', '1', false));
    }
    VisibilityConditionsAdmin($showin, $extrauri);
    System::site()->DataAdd($posd, 'top', 'Вверху', $position[1]);
    System::site()->DataAdd($posd, 'bottom', 'Внизу', $position[0]);
    FormRow('Положение', System::site()->Select('position', $posd));
    FormRow('Кто видит', System::site()->Select('view', GetUserTypesFormData($view)));
    FormRow('Включить', System::site()->Select('enabled', GetEnData($enabled)));
    AddCenterBox($btitle);
    AddForm('<form action="' . ADMIN_FILE . '?exe=messages&a=save' . $url . '" method="post">', System::site()->Button('Отмена', 'onclick="history.go(-1)"') . System::site()->Submit($method));
}
/**
 * Редактирование категории
 * @return void
 */
function AdminPagesCatEditor()
{
    $id = -1;
    $title = '';
    $parent_id = -1;
    if (isset($_GET['parent'])) {
        $parent_id = SafeEnv($_GET['parent'], 11, int);
    }
    $view = array(1 => false, 2 => false, 3 => false, 4 => false);
    $enabled = true;
    $showinmenu = true;
    if (!isset($_GET['id'])) {
        $view[4] = true;
        $form_title = 'Добавить категорию';
        $submit = 'Добавить';
    } else {
        $id = SafeEnv($_GET['id'], 11, int);
        System::database()->Select('pages', "`id`='{$id}'");
        $pg = System::database()->FetchRow();
        $parent_id = SafeEnv($pg['parent'], 11, int);
        $title = SafeEnv($pg['title'], 255, str);
        $view[SafeDB($pg['view'], 1, int)] = true;
        $enabled = SafeDB($pg['enabled'], 1, bool);
        $showinmenu = SafeDB($pg['showinmenu'], 1, bool);
        $form_title = 'Редактирование категории';
        $submit = 'Сохранить изменения';
    }
    // Возможные родительские страницы
    $pages = System::database()->Select('pages');
    SortArray($pages, 'order');
    $tree = new Tree($pages);
    $cats_data = $tree->GetCatsData($parent_id, false, true, $id, true);
    // Кто видит
    $visdata = array();
    System::site()->DataAdd($visdata, 'all', 'Все', $view['4']);
    System::site()->DataAdd($visdata, 'members', 'Только пользователи', $view['2']);
    System::site()->DataAdd($visdata, 'guests', 'Только гости', $view['3']);
    System::site()->DataAdd($visdata, 'admins', 'Только администраторы', $view['1']);
    FormRow('Родительская страница', System::site()->Select('parent_id', $cats_data, false, $parent_id == -1 ? 'class="autofocus"' : ''));
    FormRow('Заголовок', System::site()->Edit('title', $title, false, 'style="width:400px;" maxlength="255"' . ($parent_id != -1 ? ' class="autofocus"' : '')));
    FormRow('Кто видит', System::site()->Select('view', $visdata));
    FormRow('Показать в меню', System::admin()->Select('showinmenu', GetEnData($showinmenu, 'Да', 'Нет')));
    FormRow('Включить', System::admin()->Select('enabled', GetEnData($enabled, 'Да', 'Нет')));
    AddCenterBox($form_title);
    AddForm('<form action="' . ADMIN_FILE . '?exe=pages&a=savecat' . ($id != -1 ? '&id=' . $id : '') . '" method="post">', System::site()->Button('Отмена', 'onclick="history.go(-1)"') . System::site()->Submit($submit));
}
function AdminDownloadsFileEditor($action)
{
    if (!System::user()->CheckAccess2('downloads', 'edit_files')) {
        System::admin()->AccessDenied();
    }
    $category = isset($_GET['to']) ? SafeDB($_GET['to'], 11, int) : 0;
    $title = '';
    $url = '';
    $file_size = '0';
    $size_type = 'b';
    $shortdesc = '';
    $description = '';
    $image = '';
    $author = '';
    $author_site = '';
    $author_email = '';
    $file_ver = '';
    $allow_comments = true;
    $allow_votes = true;
    $view = 4;
    $active = true;
    if (!isset($_GET['id'])) {
        $action = 'addfilesave';
        $top = 'Добавить файл';
        $cap = 'Добавить';
    } else {
        $id = SafeEnv($_GET['id'], 11, int);
        System::database()->Select('downloads', "`id`='{$id}'");
        $file = System::database()->FetchRow();
        $category = SafeDB($file['category'], 11, int);
        $title = SafeDB($file['title'], 250, str);
        $url = SafeDB($file['url'], 250, str);
        $file_size = SafeDB($file['size'], 11, real);
        $size_type = SafeDB($file['size_type'], 1, str);
        $shortdesc = SafeDB($file['shortdesc'], 0, str, false);
        $description = SafeDB($file['description'], 0, str, false);
        $image = SafeDB($file['image'], 250, str);
        $author = SafeDB($file['author'], 200, str);
        $author_site = SafeDB($file['author_site'], 250, str);
        $author_email = SafeDB($file['author_email'], 50, str);
        $file_ver = SafeDB($file['file_version'], 250, str);
        $allow_comments = SafeDB($file['allow_comments'], 1, int);
        $allow_votes = SafeDB($file['allow_votes'], 1, int);
        $view = SafeDB($file['view'], 1, int);
        $active = SafeDB($file['active'], 1, int);
        $action = 'editfilesave&id=' . $id;
        $top = 'Редактирование файла';
        $cap = 'Сохранить изменения';
    }
    $cats_data = AdminDownloadsGetTree()->GetCatsData($category);
    if (count($cats_data) == 0) {
        $back_to_form = SaveRefererUrl();
        AddTextBox($top, 'Нет категорий для добавления! ' . System::admin()->SpeedButton('Добавить категорию', ADMIN_FILE . '?exe=downloads&a=cateditor&back=' . $back_to_form, '', true, true));
        return;
    }
    $filesize_data = array();
    System::site()->DataAdd($filesize_data, 'b', 'Байт', $size_type == 'b');
    System::site()->DataAdd($filesize_data, 'k', 'Килобайт', $size_type == 'k');
    System::site()->DataAdd($filesize_data, 'm', 'Мегабайт', $size_type == 'm');
    System::site()->DataAdd($filesize_data, 'g', 'Гигабайт', $size_type == 'g');
    $max_file_size = ini_get('upload_max_filesize');
    AddCenterBox($top);
    FormRow('В категорию', System::site()->Select('category', $cats_data, false, $category == 0 ? 'class="autofocus"' : ''));
    FormRow('Название', System::site()->Edit('title', $title, false, 'style="width:400px;"' . ($category != 0 ? ' class="autofocus"' : '')));
    FormRow('Путь к файлу', System::site()->Edit('url', $url, false, 'style="width:400px;"'));
    //FormRow('Путь к файлу', System::site()->FileManager( 'url', $url, 400));
    FormRow('Загрузить файл<br />(<small>Максимальный размер файла: ' . $max_file_size . '</small>)', System::site()->FFile('upload_file') . '<br /><div style="width: 400px; word-wrap:break-word;">Разрешенные форматы:<br />' . System::config('downloads/file_exts') . '</div>');
    FormRow('Размер файла', System::site()->Edit('size', $file_size, false, 'style="width:200px;"') . ' ' . System::site()->Select('filesize_type', $filesize_data));
    AdminImageControl('Изображение', 'Загрузить изображение', $image, System::config('downloads/images_dir'));
    FormTextRow('Краткое описание', System::site()->HtmlEditor('shortdesc', $shortdesc, 600, 200));
    FormTextRow('Полное описание', System::site()->HtmlEditor('description', $description, 600, 400));
    FormRow('Версия файла', System::site()->Edit('version', $file_ver, false, 'style="width:400px;"'));
    FormRow('Автор', System::site()->Edit('author', $author, false, 'style="width:400px;"'));
    FormRow('E-mail автора', System::site()->Edit('author_email', $author_email, false, 'style="width:400px;"'));
    FormRow('Сайт автора', System::site()->Edit('author_site', $author_site, false, 'style="width:400px;"'));
    FormRow('Комментарии', System::site()->Select('allow_comments', GetEnData($allow_comments, 'Разрешить', 'Запретить')));
    FormRow('Оценки', System::site()->Select('allow_votes', GetEnData($allow_votes, 'Разрешить', 'Запретить')));
    FormRow('Кто видит', System::site()->Select('view', GetUserTypesFormData($view)));
    FormRow('Активен', System::site()->Select('active', GetEnData($active, 'Да', 'Нет')));
    if (!isset($_REQUEST['back'])) {
        $_REQUEST['back'] = SaveRefererUrl(ADMIN_FILE . '?exe=downloads');
    }
    AddForm('<form action="' . ADMIN_FILE . '?exe=downloads&a=' . $action . '&back=' . SafeDB($_REQUEST['back'], 255, str) . '" method="post" enctype="multipart/form-data" name="edit_form">', System::site()->Button('Отмена', 'onclick="history.go(-1)"') . System::site()->Submit($cap));
}
function AdminFeedBackEditor()
{
    $name = '';
    $email = '';
    $active = array(false, false);
    if (!isset($_GET['id'])) {
        $active[1] = true;
        $headt = 'Добавить департамент';
        $bbb = 'Добавить';
    } elseif (isset($_GET['id'])) {
        $id = SafeEnv($_GET['id'], 11, int);
        System::database()->Select('feedback', "`id`='" . $id . "'");
        $fb = System::database()->FetchRow();
        $name = SafeDB($fb['name'], 255, str);
        $email = SafeDB($fb['email'], 50, str);
        $active[$fb['active']] = true;
        $headt = 'Редактирование департамента';
        $bbb = 'Сохранить изменения';
    }
    FormRow('Название', System::site()->Edit('name', $name, false, 'style="width:200px;" class="autofocus"'));
    FormRow('E-mail', System::site()->Edit('email', $email, false, 'style="width:200px;"'));
    FormRow('Включить', System::site()->Select('enabled', GetEnData($active[1])));
    AddCenterBox($headt);
    AddForm('<form action="' . ADMIN_FILE . '?exe=feedback&a=save' . (isset($id) ? '&id=' . $id : '') . '" method="post">', System::site()->Submit($bbb));
}
function AdminPollsEditor()
{
    global $editpolls;
    if (!$editpolls) {
        System::admin()->AccessDenied();
    }
    $view = 4;
    $answers = array();
    if (isset($_GET['id'])) {
        //Редактирование
        $title = 'Редактирование опроса';
        $btitle = 'Сохранить изменения';
        $id = SafeEnv($_GET['id'], 11, int);
        System::database()->Select('polls', "`id`='{$id}'");
        $p = System::database()->FetchRow();
        $poll = SafeDB($p['question'], 255, str);
        $desc = SafeDB($p['description'], 255, str);
        $showinblock = SafeDB($p['showinblock'], 1, int);
        $multianswers = SafeDB($p['multianswers'], 1, int);
        //Ответы
        $answers = unserialize($p['answers']);
        $allow_comments = SafeDB($p['allow_comments'], 1, int);
        $active = $p['active'];
        $view = SafeDB($p['view'], 1, int);
        $uid = '&id=' . $id;
    } else {
        //Добавление
        $title = 'Добавить опрос';
        $btitle = 'Добавить';
        $poll = '';
        $desc = '';
        $showinblock = true;
        $multianswers = false;
        $answers[] = array('Вариант ответа 1', '', '0');
        $answers[] = array('Вариант ответа 2', '', '0');
        $allow_comments = true;
        $active = true;
        $uid = '';
    }
    FormRow('Вопрос', System::site()->Edit('poll', $poll, false, 'maxlength="250" style="width:400px;" class="autofocus"'));
    FormRow('Описание', System::site()->Edit('desc', $desc, false, 'maxlength="250" style="width:400px;"'));
    FormRow('Показывать в блоке', System::site()->Select('showinblock', GetEnData($showinblock, 'Да', 'Нет')));
    FormRow('Мультиответы', System::site()->Select('multianswers', GetEnData($multianswers, 'Да', 'Нет')));
    $answers_js = '';
    foreach ($answers as $answer) {
        $answers_js .= ",['" . HtmlChars($answer[0], ENT_QUOTES) . "', '" . HtmlChars($answer[1], ENT_QUOTES) . "', " . SafeDB($answer[2], 11, int) . "]";
    }
    $answers_js = '[' . substr($answers_js, 1) . ']';
    // Выводим поле для редактирования ответов
    System::admin()->AddOnLoadJS(Indent('
		if(!("map" in Array.prototype)) Array.prototype.map = function(mapper, that){
			var other = new Array(this.length);
			for(var i=0, n=this.length; i<n; i++){
				if(i in this){
					other[i] = mapper.call(that, this[i], i, this);
				}
			}
			return other;
		};

		answersdata = ' . $answers_js . ';

		tableAddRow = function(answer, color, voices){
			var tr = $("<tr>");
			var answerinput = $("<input>", {type: "text", name: "answer[]", "class": "fd_answer"}).val(answer).css("width", "400px");
			$("<td>").append(answerinput).appendTo(tr);
			$("<td>").append($("<input>", {type: "text", name: "color[]", "class": "fd_color"}).val(color).css("width", "80px")).appendTo(tr);
			$("<td>").append($("<input>", {type: "text", name: "voices[]", "class": "fd_voices"}).val(voices).css("width", "50px").css("text-align", "right")).appendTo(tr);

			var td_delete = $("<td>").appendTo(tr);
			$("<a>", {"class": "button", html: "<img src=\\"images/admin/delete.png\\">", href: "#", title: "Удалить"}).click(function(){
				tr.remove();
				return false;
			}).appendTo(td_delete);

			tr.appendTo($("#answers_table tbody"));
			answerinput.focus();
		};

		AddPollAnswer = function(){
			tableAddRow("", "", "0");
		};

		answersdata.map(function(item){
			tableAddRow(item[0], item[1], item[2]);
		});

		$("#answers_table tbody").sortable();
	'));
    FormRow('Ответы', Indent('
		<table cellspacing="0" cellpadding="0" class="cfgtable" id="answers_table">
			<thead>
				<tr>
					<th style="width: 400px;">Ответ</th>
					<th style="width: 80px;">Цвет</th>
					<th style="width: 50px;">Ответы</th>
					<th style="width: 40px;">&nbsp;</th>
				</tr>
			</thead>
			<tbody></tbody>
		</table>
		<div style="float: right;">' . System::admin()->SpeedConfirmJs('Добавить ответ', 'AddPollAnswer();', 'images/admin/plus.png', '', true) . '</div>
	'));
    FormRow('Разрешить комментарии', System::site()->Select('allow_comments', GetEnData($allow_comments, 'Да', 'Нет')));
    FormRow('Включить', System::site()->Select('active', GetEnData($active, 'Да', 'Нет')));
    FormRow('Кто может отвечать', System::site()->Select('view', GetUserTypesFormData($view)));
    AddCenterBox($title);
    AddForm('<form action="' . ADMIN_FILE . '?exe=polls&a=save' . $uid . '" method="post">', System::site()->Button('Отмена', 'onclick="history.go(-1)"') . System::site()->Submit($btitle));
}