/*  ##########################################################################
'	##########################################################################

' 	parameterManager.js

'	Author(s)
'	Chris Williams, CW, chris.williams@akqa.com

' 	Copyright 2004 AKQA.  All rights reserved.

'	Version 1.00
'	Created: 03/06/2004
'	Last modified: 03/06/2004

'	Versions:
' 	1.00 - Initial version - CW

	##########################################################################
	##########################################################################
*/

// Constructor
function ParameterManager()
{
	// public properties
	QSkeys = new Array();
	QSvalues = new Array();
	buildQSkeys = new Array();
	buildQSvalues = new Array();
	
	var query = window.location.search.substring(1);
	var pairs = query.split("&");
	
	for (var i=0;i<pairs.length;i++)
	{

		var pos = pairs[i].indexOf('=');
		if (pos >= 0)
		{
			var argname = pairs[i].substring(0,pos);
			var value = pairs[i].substring(pos+1);
			QSkeys[QSkeys.length] = argname;
			QSvalues[QSvalues.length] = value;		
		}
	}
	
	// create public functions
	this.getValue  = function getValue(key){
		var value = null;
		for (var i=0;i<QSkeys.length;i++)
		{
			if (QSkeys[i]==key)
			{
				value = QSvalues[i];
				break;
			}
		}
		return value;
	}
	
	this.buildQS = function buildQS(keys){
		var rebuildQS = "";
		var argnames = keys.split(",");
	
		for (var i=0;i<argnames.length;i++){
			buildQSkeys[argnames[i]] = argnames[i];
		}
	
		for (var i=0;i<QSkeys.length;i++)
		{
			if(buildQSkeys[QSkeys[i]]==QSkeys[i])
			{
				buildQSvalues[buildQSvalues.length] = QSvalues[i];
				rebuildQS = rebuildQS + QSkeys[i] + "=" + buildQSvalues[i] + "&";
			}
			else
			{
				buildQSvalues[buildQSvalues.length] = "";
			}
		
		}
		var trimQS = rebuildQS.substring(0,rebuildQS.length-1);
		return trimQS;
	}
	
	this.addParams = function addParams(argname,value){
		if (this.getValue(argname) == null)
		{
			QSkeys[QSkeys.length] = argname;
			QSvalues[QSvalues.length] = value;
		}
		
	}
	
	this.updateParams = function updateParams(argname,value){
		for (var i=0;i<QSkeys.length;i++)
		{
			if (QSkeys[i]==argname)
			{
				QSvalues[i] = value;
				break;
			}
		}
	}
}




// private functions


