var Score24Utils = {

    /**
     *
     * @param repl an array of pair 'param=val' to be replaced
     */
    updateQueryString : function (query, repl) {
        var trg = Score24Utils.splitParams(query);
        var src = Score24Utils.splitParams(repl);
            // merge
        for (var i = 0; i < trg.length; i++) {
            if (trg[i].length == 2) {
                for (var j = 0; j < src.length; j++) {
                    if (src[j].length == 2 && (src[j][0] == trg[i][0])) {
                        trg[i][1] = src[j][1];
                    }
                }
            }
        }


        var restr = '';
        if (trg[0].length == 2) {
            restr += trg[0][0] + '=' + trg[0][1];
        }
        for (var i = 1; i < trg.length; i++) {
            if (trg[i].length == 2) {
                restr += '&' + trg[i][0] + '=' + trg[i][1];
            }
        }

            // additional params
        var additParams = '';
        for (var i = 0; i < src.length; i++) {
            if (src[i].length == 2 && !Score24Utils.isExcistsInPairs(src[i], trg)) {
                additParams += '&' + src[i][0] + '=' + src[i][1];
            }
        }


        return restr + additParams;

    },

    "splitParams" : function (params) {
        var src = params.split('&');
        for (var j = 0; j < src.length; j++) {
            src[j] = src[j].split('=');
        }
        return src;
    },

    "isExcistsInPairs" : function (p, coll) {

        for (var i = 0; i < coll.length; i++) {
            if (coll[i].length == 2 && coll[i][0] == p[0]) {
                return true;
            }
        }
        return false;
    }


}
        ;