// Serialize an array of form elements or a set of
// key/values into a query string
param: function( a , pn, d) {
if (!d)
d=0;
var t = typeof(a);
// We're at the end of the line so return it.
if (t == 'string' || t == 'number' || t == 'boolean' || t == 'undefined')
return pn+'='+encodeURIComponent(a);
var s = [];
if ( (a.constructor == Array && this.name) || a.jquery )
// Serialize the form elements
jQuery.each( a, function(){
s.push( encodeURIComponent(this.name) + "=" + encodeURIComponent( this.value ) );
});
// Otherwise, assume that it's an object of key/value pairs
else
for ( var j in a ) {
d++;
// prevent infinite recursion. max of 10 levels deep.
if (d>10)
break;
if (!pn)
// recurse into siblings. with this as parent.
s.push(jQuery.param(a[j], encodeURIComponent(j)),d);
else
// recurse into siblings.
s.push(jQuery.param(a[j], pn+"["+encodeURIComponent(j)+"]"),d);
}
// Return the resulting serialization
return s.join("&").replace(/%20/g, "+");
}