var Url = {

// добавляет (или перезаписывает) параметры в урл
add: function( url, newParams )
{
    if (!newParams || !newParams.length) return url;
    if (typeof(newParams[0]) == 'string')
        newParams = [ newParams ];

    // определяем где в урл параметры
    var a = document.createElement('a');
    a.href = url;
    url = a.pathname;
    var matches = a.pathname.match(/^(.*)\/z\/(.*)$/);
    // вообще-то лучше чтоб было /^(.*?)\/z\/(.*)$/, но сраный IE в win2000 не понимает .*? 
    var params = new Array();
    
    if (matches) {
        url = matches[1];
        if (matches[2]) {
            matches[2] = matches[2].split('/');
       
            // если параметров нечётное количество (значит один без значения)
            if (matches[2].length % 2 != 0) {
                // то добавляем пустое значение, иначе будет казус
                matches[2].push('');
            }
            // преобразуем урловые параметры (a/1/b/2/c/3) в массив [ [a,1], [b,2], [c,3] ]
            for (var m=0; m<matches[2].length; m+=2) {
                var pair = [ matches[2][m], matches[2][m+1] ];
                params.push( pair );
            }
        }
    }

    // в массив параметров добавляем новые (или перезаписываем старые)
    for (var n=0; n<newParams.length; n++) {
        var pair = newParams[n];
        var index2replace = -1;
        for (var p=0; p<params.length; p++) {
            if (params[p][0] != pair[0]) continue;
            index2replace = p;
            break;
        }

        if (index2replace != -1) {
            params[index2replace] = pair;
        } else {
            params.push( pair );
        }
    }

    // преобразуем массив параметров обратно в строку
    for (var p=0; p<params.length; p++) {
        params[p] = params[p].join('/');
    }
    params = params.join('/');
    // возвращаем урл с изменёнными параметрами
    // заплата для сраной оперы
    var hrefBase = a.href.substr(0, a.href.indexOf(a.pathname));
    a.pathname = url + (url[url.length-1]=='/' ? '':'/') + 'z/' + params; 
    return hrefBase + a.pathname;

},
// ^^^ Url.add

remove: function( url, params )
{

    if (typeof(params) == 'string') 
        params = [params];
    
    // удаляем параметры нах
}
// ^^^ Url.remove


}
// ^^^ Url




