function cw_config_process_options($options)
{
    global $tables;
    if ($options) {
        foreach ($options as $k => $v) {
            switch ($v['name']) {
                case 'cmpi_currency':
                    $currs = cw_query_hash("SELECT code, name FROM {$tables['currencies']}", "code", false, true);
                    if (empty($currs)) {
                        unset($options[$k]);
                        continue;
                    }
                    $v['variants'] = "";
                    foreach ($currs as $ek => $ev) {
                        $v['variants'] .= $ek . ":({$ek}) " . $ev . "\n";
                    }
                    break;
            }
            if (in_array($v['type'], array("selector", "multiselector"))) {
                if (empty($v['variants'])) {
                    unset($options[$k]);
                    continue;
                }
                $vars = cw_parse_str(trim($v['variants']), "\n", ":");
                $vars = cw_array_map("trim", $vars);
                if ($v['type'] == "multiselector") {
                    $v['value'] = explode(";", $v['value']);
                    foreach ($v['value'] as $vk => $vv) {
                        if (!isset($vars[$vv])) {
                            unset($v['value'][$vk]);
                        }
                    }
                    $options[$k]['value'] = $v['value'] = array_values($v['value']);
                }
                $options[$k]['variants'] = array();
                foreach ($vars as $vk => $vv) {
                    $options[$k]['variants'][$vk] = array("name" => $vv);
                    if (strpos($vv, " ") === false) {
                        $name = cw_get_langvar_by_name($vv, NULL, false, true);
                        if (!empty($name)) {
                            $options[$k]['variants'][$vk] = array("name" => $name);
                        }
                    }
                    if ($v['type'] == "selector") {
                        $options[$k]['variants'][$vk]['selected'] = $v['value'] == $vk;
                    } else {
                        $options[$k]['variants'][$vk]['selected'] = in_array($vk, $v['value']);
                    }
                }
            }
            if (in_array($v['type'], array('shipping', 'memberships', 'doc_status'))) {
                $options[$k]['value'] = unserialize($v['value']);
            }
        }
    }
    return $options;
}
function cw_qs_remove($qs)
{
    if (func_num_args() <= 1) {
        return $qs;
    }
    $args = func_get_args();
    array_shift($args);
    if (count($args) == 0 || strpos($qs, "=") === false && strpos($qs, "?") === false) {
        return $qs;
    }
    # Get scheme://domain/path part
    if (strpos($qs, '?') !== false) {
        list($main, $qs) = explode("?", $qs, 2);
    }
    # Get #hash part
    if (strrpos($qs, "#") !== false) {
        $hash = substr($qs, strrpos($qs, "#") + 1);
        $qs = substr($qs, 0, strrpos($qs, "#"));
    }
    # Parse query string
    $arr = cw_parse_str($qs);
    # Filter query string
    foreach ($args as $param_name) {
        if (empty($param_name) || !is_string($param_name)) {
            continue;
        }
        $reg = "/^" . preg_quote($param_name, "/") . "(\\[[^\\]]*\\])*(\\Z|=)/S";
        foreach ($arr as $ak => $av) {
            if (preg_match($reg, $ak) || empty($ak)) {
                unset($arr[$ak]);
                break;
            }
        }
    }
    # Assembly return string
    foreach ($arr as $ak => $av) {
        $arr[$ak] = $ak . "=" . $av;
    }
    $qs = implode("&", $arr);
    if (isset($main)) {
        $qs = $main . (empty($qs) ? "" : "?" . $qs);
    }
    if (isset($hash)) {
        $qs .= "#" . $hash;
    }
    return $qs;
}
    if ($_COOKIE['adv_campaign_id_time'] >= cw_core_get_time()) {
        $adv_campaign_id = 'Y';
    } else {
        setcookie('adv_campaign_id', '', 0, '/', $app_config_file['web']['http_host'], 0);
        setcookie('adv_campaign_id_time', '', 0, '/', $app_config_file['web']['http_host'], 0);
    }
}
#
# For type 'G' (use GET parameter(s))
#
if ($REQUEST_METHOD == 'GET' && empty($adv_campaign_id)) {
    $gets = cw_query("SELECT campaign_id, data, type FROM {$tables['salesman_adv_campaigns']} WHERE type = 'G'");
    $_campaign_id = 0;
    if ($gets) {
        foreach ($gets as $v) {
            $tmp = cw_parse_str($v['data']);
            if (!empty($tmp)) {
                $cnt = 0;
                foreach ($tmp as $key => $value) {
                    if ($_GET[$key] == $value && isset($_GET[$key])) {
                        $cnt++;
                    }
                }
                if ($cnt == count($tmp)) {
                    $QUERY_STRING = implode("&", array_diff(explode("&", $QUERY_STRING), explode("&", $v['data'])));
                    $_campaign_id = $v['campaign_id'];
                    $_type = $v['type'];
                    break;
                }
            }
        }