function add_category_popup()
{
    $tpl = new templates();
    $page = CurrentPageName();
    $dans = new dansguardian_rules();
    $time = time();
    $q = new mysql_squid_builder();
    $error_max_dbname = $tpl->javascript_parse_text("{error_max_database_name_no_more_than}");
    $error_category_textexpl = $tpl->javascript_parse_text("{error_category_textexpl}");
    $error_category_nomore5 = $tpl->javascript_parse_text("{error_category_nomore5}");
    if (!$q->FIELD_EXISTS("personal_categories", "PublicMode")) {
        $q->QUERY_SQL("ALTER TABLE `personal_categories`\n\t\t\t\tADD `PublicMode` smallint( 1 ) NOT NULL ,\n\t\t\t\tADD INDEX ( `PublicMode` )");
    }
    $t = $_GET["t"];
    if (!is_numeric($t)) {
        $t = time();
    }
    $catenc = urlencode($_GET["cat"]);
    $actions = button("{compile2}", "Loadjs('ufdbguard.compile.category.php?category={$catenc}&t={$t}')", 26) . " | " . button("{delete}", "Loadjs('{$page}?category-delete-js={$catenc}&t={$t}')", 26) . " | ";
    if ($_GET["cat"] == null) {
        $actions = null;
    }
    if ($_GET["cat"] != null) {
        $sql = "SELECT * FROM personal_categories WHERE category='{$_GET["cat"]}'";
        $ligne = mysql_fetch_array($q->QUERY_SQL($sql));
        $titleBT = "{apply}";
    } else {
        $action = null;
        $titleBT = '{add}';
    }
    $proto = "http";
    if ($_SERVER["HTTPS"] == "on") {
        $proto = "https";
    }
    $uri = "{$proto}://{$_SERVER["SERVER_ADDR"]}:{$_SERVER["SERVER_PORT"]}/categories";
    $catz_allow_in_public_mode = $tpl->_ENGINE_parse_body("{catz_allow_in_public_mode}");
    $catz_allow_in_public_mode = str_replace("%URI", $uri, $catz_allow_in_public_mode);
    $PublicMode = Paragraphe_switch_img("{allow_in_public_mode}", "{$catz_allow_in_public_mode}", "PublicMode-{$time}", $ligne["PublicMode"], null, 750);
    $groups = $dans->LoadBlackListesGroups();
    $groups[null] = "{select}";
    $field = Field_array_Hash($groups, "CatzByGroupL", null, null, null, 0, "font-size:22px");
    $blacklists = $dans->array_blacksites;
    $description = "<textarea name='category_text'\n\tid='category_text-{$t}' style='height:50px;overflow:auto;width:99%;font-size:22px !important'>" . $ligne["category_description"] . "</textarea>";
    if (isset($blacklists[$_GET["cat"]])) {
        $description = "<input type='hidden' id='category_text-{$t}' value=''>\n\t\t<div class=text-info style='font-size:13px'>{$blacklists[$_GET["cat"]]}</div>";
    }
    $html = "\n\t<div id='perso-cat-form'></div>\n\t<div style='width:98%' class=form>\n\t\t\t<table style='width:100%'>\n\t\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td class=legend style='font-size:22px'>{category}:</td>\n\t\t\t\t<td>" . Field_text("category-to-add-{$t}", "{$_GET["cat"]}", "font-size:22px;padding:3px;width:99%;font-weight:bold") . "</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td class=legend style='font-size:22px'>{description}:</td>\n\t\t\t\t<td>{$description}</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td class=legend style='font-size:22px'>{group}:</td>\n\t\t\t\t<td>{$field}</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td class=legend style='font-size:22px'>{group} ({add}):</td>\n\t\t\t\t<td>" . Field_text("CatzByGroupA", null, "font-size:22px;padding:3px;width:320px") . "</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td colspan=2>{$PublicMode}</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td colspan=2 align='right' style='font-size:22px'><hr>{$actions}" . button($titleBT, "SavePersonalCategory{$t}()", 26) . "</td>\n\t\t\t</tr>\n\t\t\t</tbody>\n\t\t\t</table>\n\t\t\t</div>\n\t\t\n\n\t\t<script>\nvar X_SavePersonalCategory= function (obj) {\n\tvar results=obj.responseText;\n\tif(results.length>3){alert(results);return;};\n\t\$('#PERSONAL_CATEGORIES_TABLE').flexReload();\n\tYahooWin5Hide();\n\n}\n\nfunction SavePersonalCategory{$t}(){\n\tvar XHR = new XHRConnection();\n\tvar db=document.getElementById('category-to-add-{$t}').value;\n\tvar expl=document.getElementById('category_text-{$t}').value;\n\tif(db.length<5){alert('{$error_category_nomore5}');return;}\n\tif(expl.length<5){alert('{$error_category_textexpl}');return;}\n\tif(db.length>15){alert('{$error_max_dbname}: 15');return;}\n\tXHR.appendData('personal_database',db);\n\tvar pp=encodeURIComponent(document.getElementById('category_text-{$t}').value);\n\tXHR.appendData('category_text',pp);\n\tXHR.appendData('CatzByGroupA',document.getElementById('CatzByGroupA').value);\n\tXHR.appendData('CatzByGroupL',document.getElementById('CatzByGroupL').value);\n\tXHR.appendData('PublicMode',document.getElementById('PublicMode-{$time}').value);\n\t\n\t\n\t\n\tXHR.sendAndLoad('{$page}', 'POST',X_SavePersonalCategory);\n}\n\nvar X_DeletePersonalCat{$t}= function (obj) {\n\tvar results=obj.responseText;\n\tif(results.length>3){alert(results);return;};\n\t\$('#PERSONAL_CATEGORIES_TABLE').flexReload();\n\tYahooWin5Hide();\n}\n\nvar X_CompilePersonalCat{$t}= function (obj) {\n\tvar results=obj.responseText;\n\tdocument.getElementById('perso-cat-form').innerHTML='';\n\tif(results.length>3){alert(results);return;};\n\t\$('#PERSONAL_CATEGORIES_TABLE').flexReload();\n}\n\n\nfunction DeletePersonalCat{$t}(){\n\tif(confirm('{$delete_personal_cat_ask}')){\n\t\tvar XHR = new XHRConnection();\n\t\tXHR.appendData('delete-personal-cat','{$_GET["cat"]}');\n\t\tAnimateDiv('perso-cat-form');\n\t\tXHR.sendAndLoad('{$page}', 'POST',X_DeletePersonalCat{$t});\n\t}\n\n}\n\nfunction checkform{$t}(){\n\tvar cat='{$_GET["cat"]}';\n\tif(cat.length>0){document.getElementById('category-to-add-{$t}').disabled=true;}\n}\ncheckform{$t}();\n</script>\n\n";
    echo $tpl->_ENGINE_parse_body($html);
}
function add_category_popup()
{
    $tpl = new templates();
    $page = CurrentPageName();
    $dans = new dansguardian_rules();
    $time = time();
    $q = new mysql_squid_builder();
    $error_max_dbname = $tpl->javascript_parse_text("{error_max_database_name_no_more_than}");
    $error_category_textexpl = $tpl->javascript_parse_text("{error_category_textexpl}");
    $error_category_nomore5 = $tpl->javascript_parse_text("{error_category_nomore5}");
    if (!$q->FIELD_EXISTS("personal_categories", "PublicMode")) {
        $q->QUERY_SQL("ALTER TABLE `personal_categories`\n\t\t\t\tADD `PublicMode` smallint( 1 ) NOT NULL ,\n\t\t\t\tADD INDEX ( `PublicMode` )");
    }
    $t = $_GET["t"];
    if (!is_numeric($t)) {
        $t = time();
    }
    $catenc = urlencode($_GET["cat"]);
    if ($_GET["cat"] == null) {
        $actions = null;
    }
    if ($_GET["cat"] != null) {
        $sql = "SELECT * FROM personal_categories WHERE category='{$_GET["cat"]}'";
        $ligne = mysql_fetch_array($q->QUERY_SQL($sql));
    }
    $groups = $dans->LoadBlackListesGroups();
    $groups[null] = "{select}";
    $field = Field_array_Hash($groups, "CatzByGroupL", null, null, null, 0, "font-size:22px");
    $blacklists = $dans->array_blacksites;
    $description = utf8_encode($ligne["category_description"]);
    if (isset($blacklists[$_GET["cat"]])) {
        $description = $blacklists[$_GET["cat"]];
    }
    $html = "\n\t<div id='perso-cat-form'></div>\n\t<div style='width:98%' class=form>\n\t\t\t<table style='width:100%'>\n\t\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td class=legend style='font-size:22px'>{category}:</td>\n\t\t\t\t<td style='font-size:22px'>{$_GET["cat"]}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t<td class=legend style='font-size:22px'>{description}:</td>\n\t\t\t\t<td style='font-size:22px'>{$description}</td>\n\t\t\t\t</tr>\n\t\t\t</tbody>\n\t\t\t</table>\n\t</div>\n\t";
    echo $tpl->_ENGINE_parse_body($html);
}
function add_category_popup()
{
    $tpl = new templates();
    $page = CurrentPageName();
    $dans = new dansguardian_rules();
    $error_max_dbname = $tpl->javascript_parse_text("{error_max_database_name_no_more_than}");
    $error_category_textexpl = $tpl->javascript_parse_text("{error_category_textexpl}");
    $error_category_nomore5 = $tpl->javascript_parse_text("{error_category_nomore5}");
    $delete_personal_cat_ask = $tpl->javascript_parse_text("{delete_personal_cat_ask}");
    $t = $_GET["t"];
    if (!is_numeric($t)) {
        $t = time();
    }
    $actions = "<table style='width:180px' class=form>\n\t\t\t\t<tr>\n\t\t\t\t\t<td width=1%><img src='img/delete-24.png'></td>\n\t\t\t\t\t<td width=99%><a href=\"javascript:blur();\" \n\t\t\t\t\tOnClick=\"javascript:DeletePersonalCat{$t}();\" \n\t\t\t\t\tstyle='font-size:12px;text-decoration:underline'>{delete_this_category}</a>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td width=1%><img src='img/database-connect-24-2.png'></td>\n\t\t\t\t\t<td width=99%><a href=\"javascript:blur();\" \n\t\t\t\t\tOnClick=\"javascript:Loadjs('ufdbguard.compile.category.php?category={$_GET["cat"]}&t={$t}');\" \n\t\t\t\t\tstyle='font-size:12px;text-decoration:underline'>{compile_this_category}</a>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\t\t\t\t\n\t\t</table>";
    if ($_GET["cat"] == null) {
        $actions = null;
    }
    if ($_GET["cat"] != null) {
        $q = new mysql_squid_builder();
        $sql = "SELECT category_description,master_category FROM personal_categories WHERE category='{$_GET["cat"]}'";
        $ligne = mysql_fetch_array($q->QUERY_SQL($sql));
    } else {
        $action = null;
    }
    $groups = $dans->LoadBlackListesGroups();
    $groups[null] = "{select}";
    $field = Field_array_Hash($groups, "CatzByGroupL", null, $jsnull, null, 0, "font-size:16px");
    $blacklists = $dans->array_blacksites;
    $description = "<textarea name='category_text' id='category_text' style='height:50px;overflow:auto;width:320px;font-size:16px'>" . utf8_encode($ligne["category_description"]) . "</textarea>";
    if (isset($blacklists[$_GET["cat"]])) {
        $description = "<input type='hidden' id='category_text' value=''><div class=explain style='font-size:13px'>{$blacklists[$_GET["cat"]]}</div>";
    }
    $html = "\n\t<div id='perso-cat-form'></div>\n\t<table style='width:100%'>\n\t<tr>\n\t\t<td valign='top' width=99%>\n\t\t\t<table style='width:99%' class=form>\n\t\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td class=legend style='font-size:16px'>{category}:</td>\n\t\t\t\t<td>" . Field_text("category-to-add", "{$_GET["cat"]}", "font-size:16px;padding:3px;width:320px") . "</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td class=legend style='font-size:16px'>{description}:</td>\n\t\t\t\t<td>{$description}</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td class=legend style='font-size:16px'>{group}:</td>\n\t\t\t\t<td>{$field}</td>\n\t\t\t</tr>\t\n\t\t\t<tr>\n\t\t\t\t<td class=legend style='font-size:16px'>{group} ({add}):</td>\n\t\t\t\t<td>" . Field_text("CatzByGroupA", null, "font-size:16px;padding:3px;width:320px") . "</td>\n\t\t\t</tr>\t\n\t\t\t\n\t\t\t<tr>\n\t\t\t<td colspan=2 align='right'><hr>" . button("{apply}", "SavePersonalCategory()", 16) . "</td>\n\t\t\t</tr>\n\t\t\t</tbody>\n\t\t\t</table>\n\t\t</td>\n\t\t<td valign='top' width=99%>\n\t\t\t{$actions}\n\t\t</td>\n\t\t</tr>\n\t\t</table>\n\n\t<script>\nvar X_SavePersonalCategory= function (obj) {\n\t\tvar results=obj.responseText;\n\t\tdocument.getElementById('perso-cat-form').innerHTML='';\n\t\tif(results.length>3){alert(results);return;};\n\t\t\$('#dansguardian2-category-{$t}').flexReload();\n\t\tYahooWin5Hide();\n\t\n\t}\n\t\t\n\tfunction SavePersonalCategory(){\n\t\tvar XHR = new XHRConnection();\n\t\tvar db=document.getElementById('category-to-add').value;\n\t\tvar expl=document.getElementById('category_text').value;\n\t\tif(db.length<5){alert('{$error_category_nomore5}');return;}\n\t\tif(expl.length<5){alert('{$error_category_textexpl}');return;}\n\t\tif(db.length>15){alert('{$error_max_dbname}: 15');return;}\n\t\tXHR.appendData('personal_database',db);\n\t\tXHR.appendData('category_text',document.getElementById('category_text').value);\n\t\tXHR.appendData('CatzByGroupA',document.getElementById('CatzByGroupA').value);\n\t\tXHR.appendData('CatzByGroupL',document.getElementById('CatzByGroupL').value);\n\t\tAnimateDiv('perso-cat-form');\n\t\tXHR.sendAndLoad('{$page}', 'POST',X_SavePersonalCategory);\t\t\t\t\n\t}\n\t\n\tvar X_DeletePersonalCat{$t}= function (obj) {\n\t\tvar results=obj.responseText;\n\t\tdocument.getElementById('perso-cat-form').innerHTML='';\n\t\tif(results.length>3){alert(results);return;};\n\t\t\$('#dansguardian2-category-{$t}').flexReload();\n\t\tYahooWin5Hide();\n\t}\n\n\tvar X_CompilePersonalCat{$t}= function (obj) {\n\t\tvar results=obj.responseText;\n\t\tdocument.getElementById('perso-cat-form').innerHTML='';\n\t\tif(results.length>3){alert(results);return;};\n\t\t\$('#dansguardian2-category-{$t}').flexReload();\n\t\t\n\t}\t\t\n\n\t\n\tfunction DeletePersonalCat{$t}(){\n\t\tif(confirm('{$delete_personal_cat_ask}')){\n\t\t\tvar XHR = new XHRConnection();\n\t\t\tXHR.appendData('delete-personal-cat','{$_GET["cat"]}');\n\t\t\tAnimateDiv('perso-cat-form');\n\t\t\tXHR.sendAndLoad('{$page}', 'POST',X_DeletePersonalCat{$t});\n\t\t}\n\t\n\t}\n\t\n\tfunction checkform(){\n\t\tvar cat='{$_GET["cat"]}';\n\t\tif(cat.length>0){document.getElementById('category-to-add').disabled=true;}\n\t}\ncheckform();\n</script>\n\t\n\t";
    echo $tpl->_ENGINE_parse_body($html);
}
function category_settings()
{
    $q = new mysql_squid_builder();
    $dans = new dansguardian_rules();
    $lock = false;
    if ($_GET["cat"] != null) {
        $lock = true;
        $sql = "SELECT category_description,master_category FROM personal_categories WHERE category='{$_GET["cat"]}'";
        $ligne = mysql_fetch_array($q->QUERY_SQL($sql));
    }
    $groups = $dans->LoadBlackListesGroups();
    $groups[null] = "{select}";
    $boot = new boostrap_form();
    if (!$lock) {
        $boot->set_field("category-to-add", "{category}", null, array("ENCODE" => true));
        $boot->set_button("{add}");
        $boot->set_CloseYahoo("YahooWin5");
    } else {
        $boot->set_formtitle("{$_GET["cat"]}");
        $boot->set_hidden("category-to-add", $_GET["cat"]);
        $boot->set_button("{apply}");
    }
    $boot->set_textarea("category_text", "{description}", $ligne["category_description"], array("ENCODE" => true));
    $boot->set_list("group", "{group}", $groups, $ligne["master_category"]);
    $boot->set_field("CatzByGroupA", "{group} ({add})", null);
    $boot->set_RefreshSearchs();
    echo $boot->Compile();
}