function EstateWeb_Objects_MessageManager(){
	this.TitleContainerClassName = "messagemanager-title";
	this.MessageContainerClassName = "messagemanager-message";
	this.RightShadowClassName = "messagemanager-shadow-right";
	this.BottomShadowClassName = "messagemanager-shadow-bottom";
	this.Show = __EstateWeb_Objects_MessageManager_Show;
	this.OutputContainer;
	this.Timer = null;
	this.AutoResize = __EstateWeb_Objects_MessageManager_AutoResize;
	this.Hide = __EstateWeb_Objects_MessageManager_Hide;
}


function __EstateWeb_Objects_MessageManager_Hide(){
	//hides the messagebox
	HttpManager.Document.GetObject("messagemanager-outercontainer").style.visibility = "hidden";
}


function __EstateWeb_Objects_MessageManager_AutoResize(obj,ocontainerx){
	var itop = 0;
	var ileft = 0;
	
	var ileft = ( (HttpManager.Browser.ViewableDimensions()[0] - ocontainerx.offsetWidth) / 2 ) + HttpManager.Browser.ScrollOffset()[0];	
	var itop = ( (HttpManager.Browser.ViewableDimensions()[1] - ocontainerx.offsetHeight) / 2) + HttpManager.Browser.ScrollOffset()[1];
	if ( obj.OutputContainer ){
		var outputcontainer = HttpManager.Document.GetObject(obj.OutputContainer);
		ileft = outputcontainer.offsetLeft
		ileft += ( outputcontainer.offsetWidth - ocontainer.offsetWidth ) / 2
	}

	ocontainerx.style.left = ileft;
	ocontainerx.style.top = itop;
}

function __EstateWeb_Objects_MessageManager_Show(title,message){
	if ( this.Timer ){
		clearInterval(this.Timer);
	}
	//create the message box in DOM
	var ooutercontainer = document.createElement("div");
	var ocontainer = document.createElement("div");
	var otitlecontainer = document.createElement("div");
	var omessagecontainer = document.createElement("div");
	var oshadowrightcontainer = document.createElement("div");
	var oshadowbottomcontainer = document.createElement("div");
	
	//
	ooutercontainer.id = "messagemanager-outercontainer";
	ooutercontainer.style.visibility = "hidden";
	ooutercontainer.style.position = "absolute";
	//
	ocontainer.id = "messagemanager-container";
	//
	otitlecontainer.className = this.TitleContainerClassName;
	otitlecontainer.innerHTML = title;
	//
	omessagecontainer.className = this.MessageContainerClassName;
	omessagecontainer.innerHTML = message;
	//
	oshadowrightcontainer.className = this.RightShadowClassName;
	//
	oshadowbottomcontainer.className = this.BottomShadowClassName;
	
	ocontainer.appendChild( otitlecontainer );
	ocontainer.appendChild( omessagecontainer );
	ooutercontainer.appendChild( ocontainer );
	ooutercontainer.appendChild( oshadowrightcontainer );
	ooutercontainer.appendChild( oshadowbottomcontainer );
	
	var ooutputcontainer;
	ooutputcontainer = document.getElementsByTagName("body")[0];
	if ( HttpManager.Document.GetObject( ooutercontainer.id ) ){
		ooutputcontainer.removeChild( HttpManager.Document.GetObject( ooutercontainer.id ) );
	}
	//initially output to the document in hidden state so we can retrieve the offset dimensions
	ooutputcontainer.appendChild( ooutercontainer );
	this.AutoResize(this, ooutercontainer);
	ooutercontainer.style.visibility = "visible";
	var oreference = this;
	this.Timer = setInterval( function(){ __EstateWeb_Objects_MessageManager_AutoResize(oreference, ooutercontainer); }, 10);
}