/* example:
 * var params = parseParams();
 *
 * This will return an array of name=value pairs which
 * can be manipulated as desired
 */

function parseParams()
{
    var index = 0;
    var x;
    var url = this.window.location.toString();
    var params = new Array();
    var start = url.indexOf("?");

    if (start<0) {
        return false;
    }

    for (var i = ++start; i < url.length; i++) {
        if (!params[index])
            params[index] = "";
        var x = url.charAt(i);
        if (x != '&')
            params[index] += x;
        else
            index++;
    }
    return unescapeUrl(params);
}

/* Example:
 * var data = getParam(params, "d_name")
 *
 * get a parameter by token name from an array of params
 *
 */

function getParam(params, token)
{
	var pre;
	var eq;
	for (var i = 0; i < params.length; i++) {
		eq = params[i].search("=");
		if (eq != -1) {
			pre = params[i].substr(0,eq);
			if (token == pre) {
				return params[i].substr(eq+1, params[i].length);
			}
		}
	}
	return "";
}

/* 
 * Supporting Functions. Dont' call these directly.
 */

/* used to escape an array of url encoded strings */
function unescapeUrl(p_arr)
{
	for (var i = 0; i < p_arr.length; i++) {
		p_arr[i] = unescapeUrl2(p_arr[i]);
	}
	return p_arr;
}

/* used to escape a url encoded string */
function unescapeUrl2(strToEscape)
{
	var length_s = strToEscape.length;
	var strToReturn = new String();
	var char_c;
	for (var i = 0; i < length_s; i++) {
		char_c = strToEscape.charAt(i);
		if (char_c == "+") {
			char_c = " ";
		}
		if (char_c == "%") {
			var tmp_str = strToEscape.substr(i,3);
			char_c = unescape(tmp_str);
			i += 2;
		}
		strToReturn += char_c;
	}
	return strToReturn;
}

