function Notifier()
{
	this.root;
	this.height = new Array();
	this.increment = new Array();
	this.messages = new Array();
	this.draw = function()
	{
		this.root = createElement('div','notifier');
		return this.root;
	}
	
	this.update = function()
	{
	
	}
	this.notify = function(type, msg)
	{
		var i = this.messages.length;
		this.messages[i] = createElement('div',type);
		this.messages[i].innerHTML = msg;
		var tmp = this;
		this.messages[i].onclick = function()
		{
			tmp.acknowledge(i);
		}
		var close = createElement('div','close');
		close.innerHTML = 'Click to hide';
		this.messages[i].appendChild(close);
		this.root.appendChild(this.messages[i]);
		setTimeout('notifier.acknowledge('+i+')',10000);
	}
	
	this.acknowledge = function(i)
	{
		this.height[i] = this.messages[i].clientHeight-10;
		this.increment[i] = 1;
		this.hide(i);
	}
	
	this.hide = function(i)
	{
		if(this.height[i]>0)
		{
			this.height[i]-=this.increment[i];
			if(this.increment[i]<5)
			{
				if(this.height[i]<6)
				{
					this.increment[i]--;
				}
				else
				{
					this.increment[i]++;
				}
			}
			this.messages[i].style.height = this.height[i]+'px';
			setTimeout('notifier.hide('+i+')',10);
		}
		else
		{
			if(this.messages[i].parentNode == this.root)
			{
				this.root.removeChild(this.messages[i]);
			}
		}
	}
}