ossim_valid($ctx, OSS_HEX, 'illegal:' . _("order"));
if (ossim_error()) {
    die(ossim_error());
}
//db connection
$db = new ossim_db();
$conn = $db->connect();
$group1 = Policy_group::get_list($conn, $ctx, " AND id=UNHEX('{$group}')");
if ($group1[0]) {
    $ctx = $group1[0]->get_ctx();
    if ($order == "up") {
        $pg_ord = Policy::get_pg_order($conn, $ctx, $group1[0]->get_order(), 'up');
        $group2 = Policy_group::get_list($conn, $ctx, " AND policy_group.order={$pg_ord}");
        $pg_src = $group2[0];
        $pg_dst = $group1[0];
    } elseif ($order == "down") {
        $pg_ord = Policy::get_pg_order($conn, $ctx, $group1[0]->get_order(), 'down');
        $group2 = Policy_group::get_list($conn, $ctx, " AND policy_group.order={$pg_ord}");
        $pg_src = $group1[0];
        $pg_dst = $group2[0];
    }
    if (is_object($pg_src) && is_object($pg_dst)) {
        echo "Swapping: id1=" . $pg_dst->get_group_id() . ",order1=" . $pg_src->get_order() . ",id2=" . $pg_dst->get_group_id() . ",order2=" . $pg_dst->get_order() . "<br>\n";
        Policy_group::swap_orders($conn, $pg_src->get_ctx(), $pg_src->get_group_id(), $pg_src->get_order(), $pg_dst->get_group_id(), $pg_dst->get_order());
        $infolog = array($pg_dst->get_name() . "(" . $pg_dst->get_group_id() . ")", $pg_dst->get_name() . "(" . $pg_dst->get_group_id() . ")");
        Log_action::log(99, $infolog);
        Web_indicator::set_on("Reload_policies");
        Web_indicator::set_on("ReloadPolicy");
    }
}
$db->close();