var TSUrl = function(aUrl)
	{
	this.fServer = '';
	this.fQuery = new Array();
	this.fAnchor = '';
	
	
	
	this.Constructor = function(aUrl)
	  {
	  if(typeof(aUrl) == "undefined")
	  	aUrl = location.href;

		this.fUrl = aUrl;

	  var lTemp = this.fUrl.split('?', 2);
		if(typeof(lTemp[1]) == 'undefined') lTemp[1] = '';
		if(typeof(lTemp[0]) == 'undefined') lTemp[0] = '';
		this.fServer = lTemp[0];

		this.fQuery = lTemp[1];
		
		var lTemp = this.fQuery.split('#', 2);
		if(typeof(lTemp[1]) == 'undefined') lTemp[1] = '';
		if(typeof(lTemp[0]) == 'undefined') lTemp[0] = '';
		this.fAnchor = lTemp[1];
		this.fQuery = lTemp[0];
		
//		this.fQuery = this.fQuery.split('&');
		this.fQuery = this.fQuery.split('&');
//this.fQueryArray
	  }
	  
	  
	  
	this.ReplaceQueryParam = function(aParamName, aNewValue)
		{
		var x = this.FindValueName(aParamName);
		if(x == -1) x = this.fQuery.length;
		this.fQuery[x] = escape(aParamName)+'='+escape(aNewValue);
		}



	this.FindValueName = function(aValueName)
	  {
	  var lRegEx = new RegExp('^'+aValueName+'(=(.*))?$');
	  for(var i=0;i<this.fQuery.length;++i)
	    {
			if(this.fQuery[i].search(lRegEx) != -1) return i;
	    }
	  return -1;
	  }

	this.GetQueryString = function()
	  {
	  return this.fUrl;
	  }

	  
	this.toString = function()
	  {
	  var lQueryString = this.fQuery.join('&');
	  var lResult = this.fServer;
		if(lQueryString != '') lResult += '?'+lQueryString;
		if(this.fAnchor != '') lResult += '#'+this.fAnchor;
	  return lResult;
	  }



	this.Redirect = function(aUrl)
	  {
  	if(typeof(aUrl) == 'undefined') aUrl = this.toString();
	  location.href = aUrl;
	  }





	this.Constructor(aUrl);
	}



