code: function(str) {
              var o   = parseUri.options,
              m   = o.parser.exec(str),
              uri = {},
              i   = 14;
  
              while (i--) if (m[i]) uri[o.key[i]] = m[i];
  
              if (uri[o.key[12]]) {
                  uri[o.q.name] = {};
                  uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) {
                      if ($1) uri[o.q.name][$1] = $2;
                  });
              }
              // member functions
              uri.toString = toString;
              uri.validate = validate;
              uri.normalize = normalize;
              uri.contains = contains;
              uri.originOnly = originOnly;
              return uri;
          }
docs: parseUri 1.2.2 (c) Steven Levithan <stevenlevithan.com> MIT License