<?

include_once "./setting.php";

include_once $global["root"] . "/include/handle.php";
include_once $global["root"] . "/include/print_array.php";

//-------------------------------------------------- protection
include_once $global["root"] . "/lib/Site.php";

$Site = new Site;
$Site->init("mail");

extract($_POST);

// struct of case sensitive.
$case = array("on"=>"1");

while (list($i, $j) = each($_POST)) {

	if ($_POST[$i]["remove"] == "1") continue;

	if ( $_POST[$i]["From"]["string"] or $_POST[$i]["Subject"]["string"] or
			$_POST[$i]["payload_name"]["string"] or $_POST[$i]["message_size"]["string"]) {

		$query[] = sprintf(
			"insert into mail_filter_%s
				(f, s, payload_name, message_size, directory_num,
					sequence, expression, s_o, p_o, m_o, s_c, p_c)
				values('%s', '%s', '%s', '%s', '%s', '%s', '%s',
					'%s', '%s', '%s', '%s', '%s')",
				$_SESSION["config_id"],
					$_POST[$i]["From"]["string"],
					$_POST[$i]["Subject"]["string"],
					$_POST[$i]["payload_name"]["string"],
					$_POST[$i]["message_size"]["string"],

					$_POST[$i]["directory"],
					$i,
					$_POST[$i]["expression"],
					$_POST[$i]["Subject"]["condition"],
					$_POST[$i]["payload_name"]["condition"],
					$_POST[$i]["message_size"]["condition"],
					$case[$_POST[$i]["Subject"]["case"]],
					$case[$_POST[$i]["payload_name"]["case"]]
			);
	}
}

// remove current filtering rule.
$Site->DB->transaction_start(true);
$Site->DB->query("delete from mail_filter_". $_SESSION["config_id"]);

$retval = $Site->DB->retval;

// insert filtering rules.
if ($retval) {
	while (list($i, $j) = each($query)) {
		$Site->DB->query($j);

		if (! $Site->DB->retval) $retval = false;
	}
}

$Site->DB->retval = $retval;
$Site->DB->close();

if ($retval) {
	$url = "Location: " . $_SESSION["user_www_url"] .
		"/mail?mode=control&control=1&no=2";

	$Site->end1();

	Header($url);
	exit;
} else {
	$Site->end1();

	goprev();
}

/*
Description
-----------

Author
------
 Spike^ekipS <spike@spikeekips.net>

Changelog
---------

Usage
-----

*/

?>
