function fncSetHash(hash)
{
	var qs = '';
    for (var x in hash)
	{
		if (hash[x] != null)
			qs = qs + '&' + x + '=' + hash[x];
	}
	qs = qs.substring(1, qs.length);
	window.location.hash = qs.length > 0 ? qs : " ";
}

function fncGetHash()
{
    var qs = window.location.hash;
    var blnHasHash = false;
    if (qs.length > 0)
        blnHasHash = true;

    if (blnHasHash == false)
        return new Array();

	qs = qs.substring(1, qs.length);

	aryQSSets = new Array();
    aryQSSets = qs.split(/&(?!amp;)/);

	var hash = new Array();
	var aryTmp = new Array();

    for(var i = 0; i < aryQSSets.length; i++)
	{
		aryTmp = aryQSSets[i].split('=');
		if (hash[aryTmp[0]] == undefined)
			hash[aryTmp[0]] = aryTmp[1];
	}
    return hash;
}


function fncGetHashValue(key)
{
	var hash = fncGetHash();
	return hash[key];
}


function fncSetHashValue(key, value)
{
	var hash = fncGetHash();
    hash[key] = value;
    fncSetHash(hash);
}