function cw_clean_url_get_html_page_url($params)
{
    global $app_web_dir, $tables, $current_language, $config;
    $language = !empty($current_language) ? $current_language : $config['default_customer_language'];
    $pages_types = array('product' => array('item_type' => 'P', 'item_id' => 'product_id'), 'index' => array('item_type' => 'C', 'item_id' => 'cat'), 'manufacturers' => array('item_type' => 'M', 'item_id' => 'manufacturer_id'), 'pages' => array('item_type' => 'AB', 'item_id' => 'page_id'), 'cms' => array('item_type' => 'AB', 'item_id' => 'contentsection_id'), 'search' => array('item_type' => 'Q', 'item_id' => '0'));
    $pt = $pages_types[$params['var']];
    if ($pt) {
        $att = cw_call('cw_attributes_filter', array(array('field' => 'clean_url', 'item_type' => $pt['item_type']), true));
        $url = cw_call('cw_attribute_get_value', array($att['attribute_id'], $params[$pt['item_id']], $language));
        $url = cw_clean_url_adjust($url);
        $clean_url_html_attribute_ids = cw_call('cw_clean_url_html_attribute_ids', array());
        if (in_array($att['attribute_id'], $clean_url_html_attribute_ids) && !empty($url)) {
            $url .= ".html";
        }
        if ($url) {
            unset($params[$pt['item_id']]);
            return cw_core_assign_addition_params($app_web_dir . '/' . $url, $params, array(), $params['delimiter']);
        }
    } else {
        // owner clean urls
        $url = cw_clean_url_get_redirect_url_in_owner_urls('target=' . $params['var'], $language);
        if ($url) {
            unset($params[$pt['item_id']]);
            return cw_core_assign_addition_params($app_web_dir . '/' . $url . '?', $params, array(), $params['delimiter']);
        }
    }
    return null;
}
/**
 * function build correct url from base URL and GET parameters
 * get parameters can be passed separately as params of {build_url} tag or as array in parameter "params"
 * 
 * @param url - base url
 * @param assign - optional name of smarty var
 * @param params - array of get params
 * other params considered as part of "params"
 * 
 * @example {build_url url='http://www.domain.com/cw/index.php?target=orders' mode='list' page='1' params=$array_of_get_params assign='order_url'}
 */
function smarty_function_build_url($params, &$smarty)
{
    $base_url = $params['url'];
    $get_params = $params['params'];
    $assign = $params['assign'];
    $force_sign = $params['force_sign'];
    cw_unset($params, 'url', 'params', 'assign', 'force_sign');
    foreach ($params as $k => $v) {
        $get_params[$k] = $v;
    }
    $url = cw_core_assign_addition_params($base_url, $get_params);
    if ($force_sign) {
        if (strpos($url, '?') === false) {
            $url .= '?';
        } else {
            $url .= '&';
        }
    }
    if (empty($assign)) {
        return $url;
    }
    $smarty->assign($assign, $url);
    return null;
}
$items_per_page_targets =& cw_session_register('items_per_page_targets', array());
if (!empty($_GET['items_per_page']) || !empty($items_per_page) || !empty($_GET['view_all']) || !empty($view_all)) {
    if ((!empty($_GET['view_all']) || !empty($view_all)) && !empty($app_config_file['interface']['max_count_view_products']) && $current_area == 'C') {
        $items_per_page_targets[$target] = $app_config_file['interface']['max_count_view_products'];
    } else {
        $items_per_page_targets[$target] = empty($_GET['items_per_page']) ? intval($items_per_page) : intval($_GET['items_per_page']);
    }
    cw_core_save_navigation($customer_id, $items_per_page_targets);
}
if (AREA_TYPE == 'A' && $_POST['action'] == 'update_settings' && is_array($_POST['configuration']) && $_POST['category']) {
    global $top_message;
    cw_load('config');
    cw_config_update($_POST['category'], $_POST['configuration']);
    // TOFIX: Move to addon as hook
    if ($_POST['category'] == 'Watermarks') {
        cw_load('in_images');
        $watermark_url = cw_in_images_assign('watermark_url');
        $watermark_url = $watermark_url['image_path'];
        touch($watermark_url);
    }
    $_tmp = parse_url($_POST['l_redirect']);
    parse_str($_tmp['query'], $merge_arr);
    if (!is_array($merge_arr)) {
        $merge_arr = array();
    }
    $l_redirect = cw_core_assign_addition_params($_tmp['path'], $merge_arr, array(), '&', false);
    $top_message = array('content' => cw_get_langvar_by_name('txt_settings_was_updated'), 'type' => 'I');
    if ($target != 'configuration' && $target != 'settings') {
        cw_header_location($l_redirect);
    }
}
function cw_core_get_html_page_url($params)
{
    global $app_web_dir, $tables, $current_language, $app_catalogs, $area;
    if ($ret = cw_get_return()) {
        return $ret;
    }
    # kornev, disable language for now;
    //    $language = strtolower($params['language']?$params['language']:$current_language);
    return cw_core_assign_addition_params($app_web_dir . '/index.php?target=' . $params['var'], $params, array(), $params['delimiter'], isset($params['is_exclude']) ? $params['is_exclude'] : true);
}
        parse_str($url_info['query'], $arr);
        $_att = $arr['att'];
        if (is_array($_att[$request_prepared['att_id']])) {
            foreach ($_att[$request_prepared['att_id']] as $k => $v) {
                if (in_array($v, $request_prepared['value_selected'])) {
                    unset($_att[$request_prepared['att_id']], $k);
                    $ns = preg_replace("|att\\[{$request_prepared['att_id']}\\]\\[\\w*\\]={$v}|", '', $ns);
                }
            }
        } else {
            $ns = preg_replace("|att\\[{$request_prepared['att_id']}\\]\\[\\w*\\]={$request_prepared['value_id']}|", '', $ns);
            unset($_att[$request_prepared['att_id']]);
        }
        $att = $_att;
    }
    $url = urldecode(htmlspecialchars_decode(cw_core_assign_addition_params($ns, array('att' => $att))));
    cw_ajax_add_block(array('id' => 'url', 'content' => cw_call('cw_clean_url_get_seo_url', array($url))));
}
/* TODO: rework AJAX to use XML */
// Old style AJAX JSON requests
if (in_array($action, array('load_address', 'update_address', 'delete_address', 'load_addresses'))) {
    global $user, $self_modification;
    $user = $customer_id;
    $self_modification = 1;
}
if ($mode == 'get_css') {
    header('Content-Type: text/css');
    echo $config['CSS']['store'];
    exit;
}
if ($mode == 'cart_update') {