/* Client-side access to querystring name=value pairs
  Version 1.2.3
  22 Jun 2005
  Adam Vandenberg
*/
if(typeof tools=="undefined"){var tools=new Object();}
tools.Querystring = function(qs) 
{
  this.params = new Object();
  if (qs == null)
  {
    qs=location.search.substring(1, location.search.length);
  }

  if (qs.length == 0)
  {
    return;
  }

  // Turn <plus> back to <space>
  // See: http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.4.1
  qs = qs.replace(/\+/g, ' ');
  
  var args = qs.split('&');  
  for (var i=0;i<args.length;i++) 
  {
    var value;
    var pair = args[i].split('=');
    var name = unescape(pair[0]);
    if (pair.length == 2)
    {
      value = unescape(pair[1])
    } else
    {
      value = name
    }
    this.params[name] = value;
  }
}

tools.Querystring.prototype.has = function (key)
{
  var value=this.params[key];
  return (value != null);
}


tools.Querystring.prototype.get = function (key, defaultValue)
{
  // This silly looking line changes UNDEFINED to NULL
  if (defaultValue == null) defaultValue = null;
  
  var value = this.params[key];
  if (value == null)
  {
    value = defaultValue;
  }
  
  return value;
}

