    // Nick wrote: This code looks at the query string supplied in the url and parses it.
    // It returns an associative array of url decoded name value pairs
    function parseQueryString(){
      var ret=new Array();
      var qstring=location.search;

      if (qstring.charAt(0) == '?') qstring = qstring.substr(1);
      if (qstring.length == 0) return ret;

      qstring=qstring.replace(/\;/g, '&', qstring);
      //Purcell added: Needed to parse out urlencoded querystrings as well
      qstring=qstring.replace(/%26/g, '&', qstring);
      qstring=qstring.replace(/%3D/g, '=', qstring);

      nvpairs=qstring.split('&');

      for (i=0; i < nvpairs.length; i++){
        if (nvpairs[i].length == 0){
          continue;
        }

        if ((intIndex = nvpairs[i].indexOf('=')) != -1) {
          varName = pqsUrlDecode(nvpairs[i].substr(0, intIndex));
          varValue = pqsUrlDecode(nvpairs[i].substr(intIndex + 1));
        } else {
          varName = pqsUrlDecode(nvpairs[i].substr(0, intIndex));
          varValue = '';
        }

        if (varName=='' || varValue==''){
          continue;
        }

        ret[varName]=varValue;
      }

      return ret;
    }

    function pqsUrlDecode(string){
      // unescape doesn't handle +.
      return unescape(string.replace(/\+/g, ' '));
    }
