var _MensajeGlobal = '';

function MostrarMensajeGlobal(texto, onShow, onHide)
{
	var mG = new MensajeGlobal();
	
	if (typeof(onShow) != 'undefined')
	{
		mG.addListener('show', onShow);
	}
	
	if (typeof(onHide) != 'undefined')
	{
		mG.addListener('hide', onHide);
	}
	
	mG.SetTexto(texto);
	mG.Show();
	
	_MensajeGlobal = mG;
}

function OcultarMensajeGlobal()
{
	if (_MensajeGlobal != '')
	{
		_MensajeGlobal.Hide();
	}
}

var MensajeGlobal = function()
{
	var events 			= ['show', 'hide'];
	var eventListeners 	= [];
	var texto 			= '';
	var me				= this;
	var divDeMensajes	= '';
		
	this.addListener = function(eventName, callbackFunc)
	{
		if (eventListeners[eventName] != undefined)
		{
			eventListeners[eventName][eventListeners[eventName].length] = callbackFunc;
		}
		else
		{
			eventListeners[eventName] = new Array();
			
			this.addListener(eventName, callbackFunc);
		}
	};
	
	var fire = function(eventName)
	{
		if (eventListeners[eventName] != undefined)
		{
			for (i = 0; i < eventListeners[eventName].length; i++)
			{
				eventListeners[eventName][i]();
			}
		}
	};
	
	this.SetTexto = function(selTexto)
	{
		texto = selTexto;
	};
	
	this.Show = function()
	{
		divDeMensajes.dom.innerHTML = texto + '&nbsp;&nbsp;<a href="javascript: OcultarMensajeGlobal()">Ocultar</a>';
		
		divDeMensajes.show(true);
		
		fire('show');
		
		setTimeout(me.Hide, 10000);
	};
	
	this.Hide = function ()
	{
		if (divDeMensajes.dom.style.display != 'none')
		{
			divDeMensajes.hide({callback: function(){ divDeMensajes.dom.style.display = 'none'; fire('hide');}});
		}
	};
	
	var divDeMensajes = Ext.get('mensajeGlobalDiv');
	divDeMensajes.setVisibilityMode(divDeMensajes.DISPLAY);
};
