add = function(nextObj, i){
            var nextTemp = temp
                ? (/\[\]$/.test(temp)) // prevent double-encoding
                ? temp
                : temp+'['+i+']'
                : i;
            if ((nextTemp !== 'undefined') && (i !== 'undefined')) {
                uristrings.push(
                    (typeof nextObj === 'object')
                        ? qq.obj2url(nextObj, nextTemp, true)
                        : (Object.prototype.toString.call(nextObj) === '[object Function]')
                        ? encodeURIComponent(nextTemp) + '=' + encodeURIComponent(nextObj())
                        : encodeURIComponent(nextTemp) + '=' + encodeURIComponent(nextObj)
                );
            }
        }
obj2url() takes a json-object as argument and generates
a querystring. pretty much like jQuery.param()

how to use:

   `qq.obj2url({a:'b',c:'d'},'http://any.url/upload?otherParam=value');`

will result in:

   `http://any.url/upload?otherParam=value&a=b&c=d`

@param  Object JSON-Object
@param  String current querystring-part
@return String encoded querystring