/*
 * Global functions used to parse parameter key/values.  Used for
 * client online giving pages.
 */

function getParams()
{
	var params = new Array();
	var href = document.location.href;
	var num = href.indexOf('?');
	if (num > 0 && href.length > (num + 1))
	{
		var search = href.substr(num + 1);
		params = search.split("&");
	}

	return params;
}

function cleanStr(str)
{
	var cleanStr = String(str);
	cleanStr = cleanStr.replace(/\+/g, " ");
	cleanStr = cleanStr.replace(/%20/g, " ");
	cleanStr = cleanStr.replace(/%40/g, "@");
	cleanStr = cleanStr.replace(/%3A/g, ":");
	cleanStr = cleanStr.replace(/%3B/g, ";");
	cleanStr = cleanStr.replace(/%2F/g, "/");
	cleanStr = cleanStr.replace(/%2F/g, "/");
	cleanStr = cleanStr.replace(/%7C/g, "|");
	cleanStr = cleanStr.replace(/%2C/g, ",");
	cleanStr = cleanStr.replace(/%3C/g, "<");
	cleanStr = cleanStr.replace(/%3E/g, ">");
	cleanStr = cleanStr.replace(/%60/g, "`");
	cleanStr = cleanStr.replace(/%7E/g, "~");
	cleanStr = cleanStr.replace(/%21/g, "!");
	cleanStr = cleanStr.replace(/%0D/g, "\r");
	cleanStr = cleanStr.replace(/%0A/g, "\n");
	cleanStr = cleanStr.replace(/%23/g, "#");
	cleanStr = cleanStr.replace(/%24/g, "$");
	cleanStr = cleanStr.replace(/%25/g, "%");
	cleanStr = cleanStr.replace(/%5E/g, "^");
	cleanStr = cleanStr.replace(/%26/g, "&");
	cleanStr = cleanStr.replace(/%28/g, "(");
	cleanStr = cleanStr.replace(/%29/g, ")");
	cleanStr = cleanStr.replace(/%2B/g, "+");
	cleanStr = cleanStr.replace(/%3D/g, "=");
	cleanStr = cleanStr.replace(/%5B/g, "[");
	cleanStr = cleanStr.replace(/%5D/g, "]");
	cleanStr = cleanStr.replace(/%7B/g, "{");
	cleanStr = cleanStr.replace(/%7D/g, "}");
	cleanStr = cleanStr.replace(/%5C/g, "\\");
	cleanStr = cleanStr.replace(/%3F/g, "?");
	cleanStr = cleanStr.replace(/%22/g, "\"");
	cleanStr = cleanStr.replace(/%27/g, "'");
	return cleanStr;
}

function getParamKeysLike(key)
{
	var keys = new Array(0); 
	var params = getParams();
	for (var i = 0; i < params.length; i++)
	{
		var array = params[i].split("=");
		if ((array.length > 0) && (array[0].indexOf(key) == 0))
		{
			keys[i] = cleanStr(array[0]);
		}
	}

	return keys;
}

function getParamValue(key)
{
	var value = "";
	var params = getParams();
	for (var i = 0; i < params.length; i++)
	{
		var array = params[i].split("=");
		if ((array.length > 0) && (array[0] == key))
		{
			if (array.length > 1)
			{
				value = cleanStr(array[1]);
			}
			break;
		}
	}

	return value;
}

function getParamValues(key)
{
	var values = new Array();  
	var params = getParams();
    var count = 0;
	for (var i = 0; i < params.length; i++)
	{
		var array = params[i].split("=");
		if ((array.length > 0) && (array[0] == key))
		{
			if (array.length > 1)
			{
				values[count] = cleanStr(array[1]);
                count++;
			}
		}
	}

	return values;
}

function getKeys()
{
    var keys = new Array();
	var value = "";
	var params = getParams();
	for (var i = 0; i < params.length; i++)
	{
		var array = params[i].split("=");
		if (array.length > 0)
		{
            keys[i] = array[0];
		}
	}

	return keys;
}

function getDonorName()
{
    var name = "";
    var salutation = getParamValue("salutation"); 
    var first = getParamValue("firstName"); 
    var middle = getParamValue("middleName"); 
    var last = getParamValue("lastName"); 

    if ((salutation != null) && (salutation != ""))
    {
        name += salutation;
        name += "&nbsp;";
    }

    if ((first != null) && (first != ""))
    {
        name += first;
        name += "&nbsp;";
    }

    if ((middle != null) && (middle != ""))
    {
        name += middle;
        name += "&nbsp;";
    }

    if ((last != null) && (last != ""))
    {
        name += last;
    }

    return name;
}

function getAddressBlock()  // address, city, state, postalCode
{
    var address = getParamValue("address"); 
    address += "<br>"
    address += getParamValue("city") + ", " + getParamValue("state") + "&nbsp;" + getParamValue("postalCode");

    return address;
}
