﻿//Copyright WebMail Wou3, Inc. 2007-2010
Type.registerNamespace('WebMail2');
///////////////////////////////////////////////////////////////////////////////////////////////////////////
//Status Object
///////////////////////////////////////////////////////////////////////////////////////////////////////////
WebMail2.Status=function(ErrorMain, ErrorText, StatusMain, StatusText, InitialErrorObject, InitialStatusObject)
{
	
	this._ErrorInterval=null;
	this._StatusInterval=null;
	
	this._ErrorMain=ErrorMain;
	this._ErrorText=ErrorText;
	this._StatusMain=StatusMain;
	this._StatusText=StatusText;
	this._InitialStatusObject=InitialStatusObject;
	this._InitialErrorObject=InitialErrorObject;
	page.set_StatusControl(this);
}
WebMail2.Status.prototype=
{
	///////////////////////////////////////////////////////////////////////////////////////////////////////////
	//clearTimers
	//Clears the timers whenever a redirect is expected.
	///////////////////////////////////////////////////////////////////////////////////////////////////////////
	clearTimers:function()
	{
		if(this._ErrorInterval !=null)
		{
			try{clearInterval(this._ErrorInterval);}
			catch(e){}
			this._ErrorInterval=null;
		}
		if(this._StatusInterval !=null)
		{
			try{clearInterval(this._StatusInterval);}
			catch(e){}
			this._StatusInterval=null;
		}
	},
	///////////////////////////////////////////////////////////////////////////////////////////////////////////
	///////////////////////////////////////////////////////////////////////////////////////////////////////////
	//set ErrorMessage
	///////////////////////////////////////////////////////////////////////////////////////////////////////////
	set_ErrorMessage:function(ErrorMessage)
	{
		if((ErrorMessage==null) || (ErrorMessage=='undefined') || (ErrorMessage.length==0))
			return;
		var intID=this._ErrorInterval;
		this._ErrorInterval=null;
		
		try
		{
			var divError=document.getElementById(this._ErrorMain);
			var divErrorText=document.getElementById(this._ErrorText);
			if ((divError==null) || (divErrorText==null))
				return;
			
			if(divErrorText.innerHTML.length==0)
				divErrorText.innerHTML="&nbsp;&nbsp;&nbsp;" + ErrorMessage;
			else
				divErrorText.innerHTML="&nbsp;&nbsp;&nbsp;" + ErrorMessage + "<br/>" + divErrorText.innerHTML;
				
			//divError.style.visibility="visible";
			divError.style.display="block";
		}
		catch(e){}
		finally
		{        
			if(intID !=null)
			{
				try{clearInterval(intID);}
				catch(e){}
			}
		}
		
		//just in case two are created almost simultaneously
		if(this._ErrorInterval==null)
			this._ErrorInterval=setInterval("page.Status.ClearErrorMessage()", 10000);
	},
	///////////////////////////////////////////////////////////////////////////////////////////////////////////
	///////////////////////////////////////////////////////////////////////////////////////////////////////////
	//set StatusMessage
	///////////////////////////////////////////////////////////////////////////////////////////////////////////
	set_StatusMessage:function(StatusMessage)
	{
		if((StatusMessage==null) || (StatusMessage=='undefined') || (StatusMessage.length==0))
			return;
			
		var intID=this._StatusInterval;
		this._StatusInterval=null;
		
		try
		{
			var divStatus=document.getElementById(this._StatusMain);
			var divStatusText=document.getElementById(this._StatusText);
			if ((divStatus==null) || (divStatusText==null))
				return;
			
			if(divStatusText.innerHTML.length==0)
				divStatusText.innerHTML="&nbsp;&nbsp;&nbsp;" + StatusMessage;
			else
				divStatusText.innerHTML="&nbsp;&nbsp;&nbsp;" + StatusMessage + "<br/>" + divStatusText.innerHTML ;
			divStatus.style.display="block";
		}
		catch(e){}
		finally
		{        
			if(intID !=null)
			{
				try{clearInterval(intID);}
				catch(e){}
			}
		}
		
		
		//just in case two are created almost simultaneously
		if(this._StatusInterval==null)
			this._StatusInterval=setInterval("page.Status.ClearStatusMessage()", 10000);
	},
	///////////////////////////////////////////////////////////////////////////////////////////////////////////
	
	///////////////////////////////////////////////////////////////////////////////////////////////////////////
	//set ErrorMessage
	///////////////////////////////////////////////////////////////////////////////////////////////////////////
	ClearErrorMessage:function()
	{
		var intID=this._ErrorInterval;
		this._ErrorInterval=null;
		try
		{
			var divErrorText=document.getElementById(this._ErrorText);
			if(divErrorText!=null)
			{
				divErrorText.innerHTML="";
			}
			var divError=document.getElementById(this._ErrorMain);
			if(divError!=null)
			{
				//divError.style.visibility="hidden";
				divError.style.display="none";
			}
			
			if(intID!=null)
			{
				try{clearInterval(intID);}
				catch(e){}
			}
		}
		catch(e){}
	},
	///////////////////////////////////////////////////////////////////////////////////////////////////////////
	
	///////////////////////////////////////////////////////////////////////////////////////////////////////////
	//set StatusMessage
	///////////////////////////////////////////////////////////////////////////////////////////////////////////
	ClearStatusMessage:function()
	{
		var intID=this._StatusInterval;
		this._StatusInterval=null;
		
		try
		{
			var divStatusText=document.getElementById(this._StatusText);
			divStatusText.innerHTML="";
			
			var divStatus=document.getElementById(this._StatusMain);
			
			//divStatus.style.visibility="hidden";
			divStatus.style.display="none";
		}
		catch(e){}
		finally
		{
			try
			{
				if(intID!=null)
					clearInterval(intID);
			}
			catch(e1){}
		}
	},
	///////////////////////////////////////////////////////////////////////////////////////////////////////////
	///////////////////////////////////////////////////////////////////////////////////////////////////////////
	ShowInitialMessages:function()
	{
		var ctlStatus=document.getElementById(this._InitialStatusObject);
		var ctlErrors=document.getElementById(this._InitialErrorObject);
		if(ctlErrors!=null)
		{
			if(ctlErrors.value.length>0)
			{
				this.set_ErrorMessage(ctlErrors.value);
				ctlErrors.value="";
			}
		}
		if(ctlStatus!=null)
		{
			if(ctlStatus.value.length>0)
			{
				this.set_StatusMessage(ctlStatus.value);
				ctlStatus.value="";
			}
		}
	},
	///////////////////////////////////////////////////////////////////////////////////////////////////////////
	//if the user clicks on 
	close:function()
	{
		this.ClearStatusMessage();
		this.ClearErrorMessage();
	}
}
WebMail2.Status.registerClass("WebMail2.Status");
///////////////////////////////////////////////////////////////////////////////////////////////////////////
//End Status Object
///////////////////////////////////////////////////////////////////////////////////////////////////////////

