// 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() {

    if (typeof aiGetVarsForClientJs == 'undefined') {

        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;
        
    } else {

        //This is a dummy function, in place so clients don't have to rush to change their templates
        //  Data is preset for them in <head> via layout
        var ret = new Array();

        for (var key in aiGetVarsForClientJs) {

            if (aiGetVarsForClientJs[key].length == 0){
                continue;
            }

            ret[key] = aiGetVarsForClientJs[key];

        }

        return ret;        
    }
}

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

