code: function joinQuery(queryObj, skipEmpties)
  {
  	var i,len,value,varname;
  	var count = { i:0 };  // literals do not persist across functions
  	var output = "";
  	
  	for (varname in queryObj)
  	{
  		if (queryObj.hasOwnProperty(varname)===true)
  		{
  			value = queryObj[varname];
  			
  			// "?var1=a&var1=b" would've been parsed to { var1: ["a","b"] }
  			if (Array.isArray(value) === false)
  			{
  				output += joinValue(varname, value, count, skipEmpties);
  			}
  			else
  			{
  				len = value.length;
  				
  				for (i=0; i<len; i++)
  				{
  					output += joinValue(varname, value[i], count, skipEmpties);
  				}
  			}
  		}
  	}
  	
  	return output;
  }
docs: TODO :: use "querystring" package (that node uses) -- create PR for `skipEmpties`?