function Querystring()
{
// get the query string, ignore the ? at the front.
    var querystring=location.search.substring(1,location.search.length);

// parse out name/value pairs separated via &
    var args = querystring.split('&');

// split out each name = value pair
    for (var i=0;i<args.length;i++)
    {
        var pair = args[i].split('=');

        // Fix broken unescaping
        temp = unescape(pair[0]).split('+');
        name = temp.join(' ');

        temp = unescape(pair[1]).split('+');
        value = temp.join(' ');

        this[name]=value;
    }

    this.get=Querystring_get;
}


function Querystring_get(strKey,strDefault)
{
    var value=this[strKey];
    if (value==null)
    {
        value=strDefault;
    }

    return value;
}



// Evaluate an XPath expression aExpression against a given DOM node
// or Document object (aNode), returning the results as an array
// thanks wanderingstan at morethanwarm dot mail dot com for the
// initial work.
function evaluateXPath(aNode, aExpr) 
{
  var xpe = new XPathEvaluator();
  var nsResolver = xpe.createNSResolver(aNode.ownerDocument == null ?
    aNode.documentElement : aNode.ownerDocument.documentElement);
  var result = xpe.evaluate(aExpr, aNode, nsResolver, 0, null);
  var found = [];
  var res;
  while (res = result.iterateNext())
    found.push(res);
  return found;
}





