function Alert()
{
	
	jQuery('.mess div').bind('open',function() {
		open(jQuery(this));
	});
	
	jQuery('.mess div').bind('close',function() {
		close(jQuery(this));
	});
	
	function open(jQ)
	{
		var mess = jQ.parent('div');

		if(mess.children('div:visible').length)
		{
			mess.children('ul').children('li.'+jQ.attr('class')).show();
			if(mess.children('div:visible').attr('class') != jQ.attr('class'))
			{

				mess.slideUp('slow',function() {
					mess.children('div').hide();	
					jQ.show();
					mess.slideDown('slow',function() { });
					

				});
			}
		}
		else
		{

			mess.children('ul').children('li.'+jQ.attr('class')).show();
			mess.children('div').hide();
			jQ.show();
			mess.slideDown('slow',function() { });
			
		}
	}

	jQuery('.mess div').bind('addMessage',function(event, url)
	{
		that = this;
		this.ajax = jQuery.ajax({
			dataType: "html", 
			url:'alerte/'+url,
			success: function(msg) {
				if(jQuery(that).children('ul').html() == null)
				{
					jQuery(that).html('<ul></ul>');
				}
				jQuery(that).children('ul').prepend('<li>' + msg + '</li>');
				jQuery(that).trigger('open');
			},
			error: function(header,msg) {
			}
		});
	});

	
	function close(jQ)
	{
		jQ.show();
		jQ.parent('div').slideUp('slow',function() {});
	}
	
	jQuery('.mess > ul li').mouseup(function()
	{
		var type = jQuery(this).attr('class');
		var mess = jQuery(this).parent('ul').parent('div');

		if(mess.children('div.'+ type +':visible').html() == null)
		{
			mess.children('div.'+ type).trigger('open');
		}
		else
		{
			mess.children('div.'+ type +':visible').trigger('close');
		}
	});
	
	
	this.init = function ()
	{
		var size = jQuery('.mess').length;
		var alreadyOpened = false;
		for(var i = 0; i < size; i++)
		{
			var type = new Array('error','moderate','good','info','alert');
			for(j = 0; j < 5; j++)
			{
				jQuery('.mess:eq('+i+') > div.'+type[j]).hide();
				if(jQuery('.mess:eq('+i+') > div.'+type[j]).html() == '')
				{
					jQuery('.mess:eq('+i+') > ul li.'+type[j]).css('display','none');
					jQuery('.mess:eq('+i+') > div.'+type[j]).css('display','none');
				}
				else if(alreadyOpened)
				{
					jQuery('.mess:eq('+i+') > div.'+type[j]).css('display','none');
				}
				else
				{
					jQuery('.mess:eq('+i+') > div.'+type[j]).css('display','none');
					jQuery('.mess:eq('+i+') > div.'+type[j]).trigger('open');
					alreadyOpened = true;
				}
			}
			alreadyOpened = false;
		}
	}
}


jQuery(document).ready(function() {
	var alerte = new Alert();
	alerte.init();
});

