/* Get parameters via query strings from url
 * 2009-01-30, Bruno Meilick
 *
 * Usage:
 * - note: key as well as value are allways lowercase!
 * - visitor clicked on a link like <a href="purchases.htm?code=CR&desc=Red%20Coat">Red Coat</a><br/>
 * - next page calls
 * 	// setting default values for query strings
 * 	qsParm['code'] = null;
 * 	qsParm['desc'] = null;
 * 	// getting query strings
 * 	qs();
 * 	// check for specific query strings
 * 	if (qsParm['code'] && qsParm['desc']) // params not null
 * 	{
 * 		document.write('You selected' + qsParm['code'] + ' : ' + qsParm['desc']); // print the values
 * 	}
 *
 * Source:
 * Passing Parameters Via Query Strings by Stephen Chapman (http://javascript.about.com/library/blqs2.htm)
 */

// global array of query paramerters within url
var qsParm = new Array();
var allParams = new Array();

// defining qs parameter names. must be lowercase!
var qspn_page = "page";
var qspn_hash = "#";

qsParm[qspn_page] = null;

// getting query strings
qs();

// called on each reload
function qs(str)
{
	allParams = new Array();
	allParams[0]=qspn_page;
	allParams[1]=qspn_hash;

	if(str == null) { str = window.location; }

	qsParm = new Array();

	var query = qsGetParamsFromUrl(str);

	qsParm = qsParseString(query);
	// get internal link => hash aka #20041203
	qsParm[qspn_hash] = qsGetHashFromUrl(str);
}

function qsGetAllButDomainFromUrl(url)
{
	// http://www.test.com?te=1&a=b#c => te=1&a=b#c
	var wodomain = null;
	var urlParts = String(url).split('?');
	if(urlParts.length == 2) {wodomain = String(urlParts[1]);}
	return wodomain;
}

// get everything behind the "?" in an url or an empty string nothing was there
function qsGetParamsFromUrl(url)
{
	url = qsGetAllButDomainFromUrl(url);
	if(url != null)
	{
		var hashParts = String(url).split('#');
		if(hashParts.length == 2) {url = String(hashParts[0]);}

		url = url.replace("?","");
	}
	return url;
}

function qsGetHashFromUrl(url)
{
	// http://www.test.com?te=1&a=b#c => #=c
	var hash = null;
	var hashParts = String(url).split('#');
	if(hashParts.length == 2) {hash = String(hashParts[1]);}
	return hash;
}

// parsing the query string into an array with key/value pairs
function qsParseString(str)
{
	var parsedParams = new Array();
	if(str != null)
	{
		var parms = str.split('&');
		for (var i=0; i<parms.length; i++)
		{
			var pos = parms[i].indexOf('=');
			if (pos > 0)
			{
				var key = String( parms[i].substring(0,pos).toLowerCase() );
				var val = String( parms[i].substring(pos+1).toLowerCase() );
				parsedParams[key] = val;
			}
		}
	}
	return parsedParams;
}