/*
    Copyright (c) DigitalPeers.  All rights reserved.
 
    Module Name:

        query_lib.js

    Abstract:

        Functions for parse the query of a url.

    Environment:

        Apache Server

    Revision History:

        Amit Aides Jan 11 2006 - Created.

*/                      



function HTMLDecode(encoded_str)
{
	var decoded_str = "";

    var i = 0;
	while (i < encoded_str.length)
	{
		var ch = encoded_str.charAt(i);

        if(ch != "&")
        {
            decoded_str += ch;
            i++;
            continue;
        }

        if("&amp;" == encoded_str.substr(i, "&amp;".length))
        {
            decoded_str += "&";
            i += "&amp;".length;
            continue;
        }

        if("&lt;" == encoded_str.substr(i, "&lt;".length))
        {
            decoded_str += "<";
            i += "&lt;".length;
            continue;
        }

        if("&gt;" == encoded_str.substr(i, "&gt;".length))
        {
            decoded_str += ">";
            i += "&gt;".length;
            continue;
        }

        if("&quot;" == encoded_str.substr(i, "&quot;".length))
        {
            decoded_str += "\"";
            i += "&quot;".length;
            continue;
        }

        if("&apos;" == encoded_str.substr(i, "&apos;".length))
        {
            decoded_str += "'";
            i += "&apos;".length;
            continue;
        }

        if("&nbsp;" == encoded_str.substr(i, "&nbsp;".length))
        {
            decoded_str += " ";
            i += "&nbsp;".length;
            continue;
        }

        decoded_str += ch;
        i++;
	}

	return decoded_str;
}



//
// I use the URLDecode function because unescape() doesn't translate '+' to ' '.
//
function URLDecode(encoded_text)
{
	var unescaped_text = unescape(encoded_text);
	
	var plain_text = "";
	var i = 0;
	while (i < unescaped_text.length)
	{
		var ch = unescaped_text.charAt(i);

		plain_text += (ch == "+"? " ": (ch == "\n"? "<br>": ch));

		i++;
	}

	return plain_text;
}



function parseQueryParams() 
{
	var getVars = new Array();

	if (top.location.search)
	{
		var pairs = top.location.search.substring(1).split(/\&/);
		for (var i in pairs) 
		{
		    var pair = pairs[i].split(/\=/);
            
			var decoded_key = URLDecode(pair[0]);
			var decoded_val = URLDecode(pair[1]);

			getVars[decoded_key] = decoded_val;
		}
	}
	return getVars;
}



