function getExpr(&$rubrics)
{
    $expr = "";
    if (!StrUtils::isEmpty($_REQUEST["rubricsIds"])) {
        $rubs = explode(",", $_REQUEST["rubricsIds"]);
        $tmpRubrics = array();
        foreach ($rubs as $r) {
            $tmpRubrics = array_merge($tmpRubrics, $rubrics->getNoParentRubrics(trim($r)));
        }
        if (sizeof($tmpRubrics) == 0) {
            return new PEAR_Error("Empty subrubrics id for rubric");
        }
        $expr .= " AND rubrics.id IN (" . implode(", ", $tmpRubrics) . ") \n";
    }
    if (isset($_REQUEST["useParams"]) && $_REQUEST["useParams"] == "1") {
        if (isset($_REQUEST["status"])) {
            if (!in_array("all", $_REQUEST["status"]) && sizeof($_REQUEST["status"]) > 0) {
                $expr .= " AND (status LIKE '" . implode("' OR status LIKE '", $_REQUEST["status"]) . "') ";
            }
        }
        if (!StrUtils::isEmpty($_REQUEST["begdate"]) && trim($_REQUEST["begdate"]) !== "дд/мм/гггг" && !StrUtils::isEmpty($_REQUEST["enddate"]) && trim($_REQUEST["enddate"]) !== "дд/мм/гггг") {
            $begdate = split("/", $_REQUEST["begdate"]);
            $begdate = $begdate[2] . "-" . $begdate[1] . "-" . $begdate[0];
            $enddate = split("/", $_REQUEST["enddate"]);
            $enddate = $enddate[2] . "-" . $enddate[1] . "-" . $enddate[0];
            $expr .= " AND (lastdate >= '" . $begdate . "' AND lastdate <= '" . $enddate . "') \n";
        }
        if (!StrUtils::isEmpty($_REQUEST["city"]) && trim($_REQUEST["city"]) !== "город") {
            $expr .= " AND address LIKE '%" . trim($_REQUEST["city"]) . "%' \n";
        }
        if (!StrUtils::isEmpty($_REQUEST["keyword"]) && trim($_REQUEST["keyword"]) !== "ключевое слово") {
            $val = trim($_REQUEST["keyword"]);
            $expr .= " AND (address LIKE '%{$val}%' OR phone LIKE '%{$val}%'\n\t\t\t\tOR site LIKE '%{$val}%' OR items.name LIKE '%{$val}%'\n\t\t\t\tOR emailtext LIKE '%{$val}%' OR fax LIKE '%{$val}%') ";
        }
    }
    if (isset($_REQUEST["region"]) && (int) $_REQUEST["region"] > 0) {
        $expr .= " AND street_id IN (\n\t\t\tSELECT id FROM streets WHERE region_id = " . $_REQUEST["region"] . ") ";
    }
    $expr .= " AND level = 2 ";
    if (!StrUtils::isEmpty($_REQUEST["listType"]) && strcmp($_REQUEST["listType"], "uniques") == 0) {
        $expr .= " GROUP BY items.address, items.name ";
    }
    $expr .= " ORDER BY rubrics.id ";
    return $expr;
}
function HandleShowProcesses()
{
    session_start();
    require_once "Pager.php";
    require_once "RubricsData.php";
    require_once "StrUtils.php";
    $procNum = -1;
    if (!StrUtils::isEmpty($_REQUEST["procType"]) && $_REQUEST["procType"] == "all") {
        $_GLOBAL["procType"]["all"] = "selected";
        $_SESSION["procType"] = "all";
        $procNum = -1;
    } else {
        if (!StrUtils::isEmpty($_REQUEST["procType"]) && $_REQUEST["procType"] == "usual") {
            $_GLOBAL["procType"]["usual"] = "selected";
            $_SESSION["procType"] = "usual";
            $procNum = 0;
        } else {
            if (!StrUtils::isEmpty($_REQUEST["procType"]) && $_REQUEST["procType"] == "test") {
                $_GLOBAL["procType"]["test"] = "selected";
                $_SESSION["procType"] = "test";
                $procNum = 1;
            } else {
                if (!StrUtils::isEmpty($_REQUEST["procType"]) && $_REQUEST["procType"] == "spec") {
                    $_GLOBAL["procType"]["spec"] = "selected";
                    $_SESSION["procType"] = "spec";
                    $procNum = 2;
                } else {
                    if ($_SESSION["procType"] == "all") {
                        $_GLOBAL["procType"]["all"] = "selected";
                        $procNum = -1;
                    } else {
                        if ($_SESSION["procType"] == "usual") {
                            $_GLOBAL["procType"]["usual"] = "selected";
                            $procNum = 0;
                        } else {
                            if ($_SESSION["procType"] == "test") {
                                $_GLOBAL["procType"]["test"] = "selected";
                                $procNum = 1;
                            } else {
                                if ($_SESSION["procType"] == "spec") {
                                    $_GLOBAL["procType"]["spec"] = "selected";
                                    $procNum = 2;
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    if (isset($_REQUEST["bSelProcType"])) {
        $_REQUEST["pageID"] = 0;
    }
    header("Content-type: text/html; charset=windows-1251");
    print " ";
    $header = array("Дата", "Время начала", "Время окончания", "Название процесса", "Cтатус", "Очередь");
    $rubricsData = new RubricsData();
    $data = array();
    $navContent = getPagesHtml($rubricsData, $data, $procNum);
    print <<<HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<html><head><title>Журнал текущего состояния</title>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
<meta name="description" content="">
<meta name="keywords" content="">
<link type="text/css" rel="stylesheet" href="styles/style.css">
<script src="scripts/jquery.js"></script>
</head>
<body><div id="container" class="stats"><div id="page">
<div id="content"><div id="header">
<a href="./categs.html">Категории</a> &nbsp; 
| &nbsp; <a href="./tasks.html"><b>Журнал обновлений</b></a> &nbsp; 
| &nbsp; <a href="./stat.html">Статистика скачиваний</a></div>

<div id="main_content">
<h1>Журнал обновлений</h1>
<strong style="font-size: 11px;">Обновление статистики производится ежедневно после 06.00, 12.00, 16.00, 20.00, 00.00 часов.</strong>
<p>&nbsp;</p>
<form id="selProc" name="selProc" action="" method="POST">
<input type="hidden" name="action" value="ShowProcesses">
<select name="procType" style="width: 150pt;">
<option value="all" {$_GLOBAL['procType']['all']}>Все</option>
<option value="usual" {$_GLOBAL['procType']['usual']}>Обычная очередь</option>
<option value="test" {$_GLOBAL['procType']['test']}>Тестовая очередь</option>
<option value="spec" {$_GLOBAL['procType']['spec']}>Специальная очередь</option>
</select>
<input name="bSelProcType" type="submit" value="Выбрать">
</form>
<br><br><br>
<p>
{$navContent}
<p>
<br>
<table border=0 cellspacing=1 cellpadding=3>
HTML;
    print "<thead><tr><th>" . implode("<th>", $header) . "</tr></thead>\n";
    $empty = "&nbsp;";
    $even = true;
    if ($procNum >= 0) {
        $expr = " AND processes.rprocess_num = {$procNum} ";
    } else {
        $expr = "";
    }
    $ids = "";
    if (sizeof($data) > 0) {
        foreach ($data as $r) {
            $ids .= $r[0] . ",";
        }
        $ids = substr($ids, 0, -1);
        $res =& $rubricsData->getProcesses(" WHERE processes.id IN ({$ids}) {$expr}", true);
        if (PEAR::isError($res)) {
            print $res->getMessage() . "<br>";
            print $res->getuserInfo() . "<br>";
            exit;
        }
        foreach ($res as $row) {
            //while ($row = &$res->fetchRow(DB_FETCHMODE_ASSOC)) {
            $row["name"] = $rubricsData->getPath($row["rubric_id"]) . " / " . $row["name"];
            unset($row["rubric_id"]);
            $row["adddate"] = date("d.m.Y H:i", strtotime($row["adddate"]));
            $row["startdate"] = $row["startdate"] == 0 ? $empty : date("d.m.Y H:i", strtotime($row["startdate"]));
            $row["enddate"] = $row["enddate"] == 0 ? $empty : date("d.m.Y H:i", strtotime($row["enddate"]));
            if ($row["loaded"] == 0 && $row["startdate"] === $empty) {
                $row["loaded"] = "Поставлено в очередь";
            } else {
                $row["loaded"] = $row["loaded"] == 1 ? "Обновлено" : "Идет обновление";
            }
            if ($row["rprocess_num"] == 0) {
                $row["rprocess_num"] = "Основная";
            } else {
                if ($row["rprocess_num"] == 1) {
                    $row["rprocess_num"] = "Тестовая";
                } else {
                    if ($row["rprocess_num"] == 2) {
                        $row["rprocess_num"] = "Специальная";
                    }
                }
            }
            if ($even) {
                $evenClass = ' class="even" ';
            } else {
                $evenClass = '';
            }
            $even = !$even;
            print "<tr {$evenClass}><th>" . implode("<th>", $row) . "</tr>\n";
        }
    }
    print <<<HTML
</table>
<br>
<p>
{$navContent}
<p>
</div>
</div></div></div><div id="footer"></div>
</body></html>
HTML;
}