function EstateWeb_Objects_HTTPManager(){
	this.Request = new EstateWeb_Objects_HTTPManager_Request();
	this.Browser = new EstateWeb_Objects_HTTPManager_Browser();
	this.Document = new EstateWeb_Objects_HTTPManager_Document();
}



//####################################################################
//####################################################################
// Request Object and supporting functions
//####################################################################
//####################################################################

function EstateWeb_Objects_HTTPManager_Request(){
	this.QueryString = EstateWeb_Objects_HTTPManager_Request_QueryString;
}
//####################################################################
// -> Functions  follow
//####################################################################

function EstateWeb_Objects_HTTPManager_Request_QueryString(){
	//returns the querystring value of the key provided
	var queryString;
	queryString = document.location.href;
	if (queryString.toUpperCase().indexOf(arguments[0].toUpperCase()) >= 0 && queryString.indexOf("?") >= 0 ){
		var queryParams = queryString.split("?");
		var queryStringParams = queryParams[1].split("&");
		for (i=0;i<queryStringParams.length;i++){
			var queryParam = queryStringParams[i].split("=");
			if (queryParam[0].toUpperCase() == arguments[0].toUpperCase()){
				var oStringManager = new EstateWeb_Objects_HTTPManager_Strings();
				return oStringManager.Unescape(queryParam[1]);
			}
		}
	}
	return "";
}

//####################################################################
//####################################################################
// BrowserObject and supporting functions
//####################################################################
//####################################################################

function EstateWeb_Objects_HTTPManager_Browser(){
	this.Type = EstateWeb_Objects_HTTPManager_Browser_Type;
	this.Types = new EstateWeb_Objects_HTTPManager_Browser_Types();
	this.HighCompatability = EstateWeb_Objects_HTTPManager_Browser_HighCompatability;
	this.Window = new EstateWeb_Objects_HTTPManager_Browser_Window();
}

function EstateWeb_Objects_HTTPManager_Browser_HighCompatability(){
	if ( this.Type() > 2 ){ return true }else{ return false}
}

function EstateWeb_Objects_HTTPManager_Browser_Type(){
	var oTypes = new EstateWeb_Objects_HTTPManager_Browser_Types();
	if ( document.getElementById && document.all ) { return oTypes.InternetExplorer5Plus }
	if ( document.getElementById && !document.all ) { return oTypes.Mozilla }
	if ( window.opera ) { return oTypes.Opera }
	if ( document.all & !document.getElementById ) { return oTypes.InternetExplorer4Plus }
	if ( document.layers ){ return oTypes.Netscape4 }
	
}

function EstateWeb_Objects_HTTPManager_Browser_Window(){
	this.Open = EstateWeb_Objects_HTTPManager_Browser_Window_Open;
}

function EstateWeb_Objects_HTTPManager_Browser_Window_Open(){
	window.open(arguments[0], arguments[1], arguments[2]);
}

function EstateWeb_Objects_HTTPManager_Browser_Types(){
	this.Netscape4 = 0;
	this.InternetExplorer4Plus = 1;
	this.Opera = 2;
	this.InternetExplorer5Plus = 3;
	this.Mozilla = 4;
}

//####################################################################
//####################################################################
// StringObject and supporting functions
//####################################################################
//####################################################################

function EstateWeb_Objects_HTTPManager_Strings(){
	this.Unescape = EstateWeb_Objects_HTTPManager_Strings_Unescape;
}

function EstateWeb_Objects_HTTPManager_Strings_Unescape(){
	if ( arguments.length > 0 ){
		// unescapes a string
		var val = arguments[0];
		val = val.replace("+", " ");
		return val;
	}
	return "";
}

//####################################################################
//####################################################################
// DocumentObject and supporting functions
//####################################################################
//####################################################################

function EstateWeb_Objects_HTTPManager_Document(){
	this.GetObject = EstateWeb_Objects_HTTPManager_Document_GetObject;
}

function EstateWeb_Objects_HTTPManager_Document_GetObject(){
	var oBrowser = new EstateWeb_Objects_HTTPManager_Browser_Type();
	var oBrowserTypes = new EstateWeb_Objects_HTTPManager_Browser_Types();
	switch ( oBrowser ){
		case oBrowserTypes.Netscape4:
			return document.all[arguments[0]];
			break;
		case oBrowserTypes.InternetExplorer4Plus:
			return document.all[arguments[0]];
			break;
		case oBrowserTypes.Opera:
			return document.getElementById(arguments[0]);
			break;
		case oBrowserTypes.InternetExplorer5Plus:
			return document.getElementById(arguments[0]);
			break;
		case oBrowserTypes.Mozilla:
			return document.getElementById(arguments[0]);
			break;
		default:
			return document.getElementById(arguments[0]);
			break;
	}
}