// author: Andrew Thompson
// get at: http://www.physci.org/codes/
// version: 2004-05-09

/** true for further debug info. */
var TEST = false;

/* obtain the supplied URL, stripped of domain and path
 e.g. http://ourbiz.com/index?this=that&when=now#biblio
  ->  this=that&when=now#biblio  */
var queryString = window.location.search.substring(1);

var parameterString;

/** The URL parameters array */
var parameters = new Array();

/* Trim any 'ref' part..
e.g. this=that&when=now#biblio
 ->  this=that&when=now  */
function stripFragment() {
	if (queryString.split('#').length>0) {
		parameterString = queryString.split("#")[0];
	} else {
		parameterString = queryString;
	}
	if (TEST) document.writeln( "urlQuery.js parameterString: " + 
		parameterString );
}

/** Parses the query string into name/value pairs,
then creates a QueryParameter object and adds it to
the parameters array. */
function parseQueryString() {

	if (TEST) document.writeln( "pQs: " + parameterString );
	pairs = parameterString.split("&");
	for (var ii=0;ii<pairs.length;ii++) {
		nameValue = pairs[ii].split('=');
		if (nameValue.length==2) {
			// add a new QueryParameter object to the array
			parameters[ ii ] = 
					new QueryParameter( nameValue[0], Url.decode( nameValue[1] ) );
		}
	}
}

/** Provides the value for the parameter named by 'key'. */
function getQueryString(key) {
	var value = null;
	for (var ii=0; ii<parameters.length; ii++) {
		if ( parameters[ii].isParam(key) ) {
			value = parameters[ii].getValue();
			break;
		}
	} return value;
}

// strip the URL fragment from queryString 
// and initialize the parameterString
stripFragment();

// parse the parameterString and initialize
// the parameters array.
parseQueryString();

