//// namespace
var CBSi = (typeof CBSi == 'undefined' || !CBSi) ? {} : CBSi;
CBSi.util = (typeof CBSi.util == 'undefined' || !CBSi.util) ? {} : CBSi.util;
CBSi.util.URLQuery = (typeof CBSi.util.URLQuery == 'undefined' || !CBSi.util.URLQuery) ? {} : CBSi.util.URLQuery;

/*******************************************************
* URLQuery
*
* pack - pack an object into a url query string
*   PARAMS:
*       queryObj: object to pack
*
*   RETURNS:
*       query string
*
* unpack - unpack a url query string into an object
*   PARAMS:
*       queryString: query string to unpack
*
*   RETURNS:
*       query object
*
******************************************************/

CBSi.util.URLQuery = {
    pack : function(queryObj) {
        var pairs = [];
        for (o in queryObj) {
            if (o != '' && queryObj[o] != '')
            pairs.push(o + '=' + queryObj[o]);
        }
        return '?' + pairs.join("&");
    },
    unpack : function(queryString) {
        var pairs = (queryString.substring(1)).split("&");
        var queryObj = {};
        for (p in pairs) {
            var thisPair = pairs[p].split("=");
            if (thisPair.length == 2 && thisPair[0] != '' && thisPair[1] != '') {
                queryObj[thisPair[0].toLowerCase()] = thisPair[1].toLowerCase();
            }
        }
        return queryObj;
    }
};

