var jessevdk = {
	flash: null,
	showing: null,
	hiding: null
};

jessevdk.show_flash = function(contents)
{
	if (jessevdk.flash != null)
	{
		jessevdk.flash.update(contents);
		return;
	}
	
	if (jessevdk.hiding)
	{
		jessevdk.hiding.cancel();
		jessevdk.hiding = null;
	}
	
	jessevdk.flash = $(document.createElement('div'));
	jessevdk.flash.id = 'flash';
	jessevdk.flash.update(contents);
	jessevdk.flash.style.left = (($(document.body).getWidth() - parseInt(jessevdk.flash.getStyle('width'))) / 2) + 'px';

	document.body.appendChild(jessevdk.flash);
	
	jessevdk.showing = new Effect.Opacity('flash', {
		duration: 1,
		to: 0.8,

		beforeStart: function() {
			jessevdk.flash.style.display = 'block';
		},
		
		afterFinish: function() {
			setTimeout(jessevdk.hide_flash, 3000);
		}
	});
}

jessevdk.hide_flash = function()
{
	if (jessevdk.flash == null || jessevdk.hiding != null)
		return;
	
	if (jessevdk.showing)
	{
		jessevdk.showing.cancel();
		jessevdk.showing = null;
	}
	
	jessevdk.hiding = new Effect.Opacity('flash', {
		to: 0,
		duration: 1,
		
		afterFinish: function() {
			document.body.removeChild(jessevdk.flash);
			jessevdk.flash = null;
		}
	});
}

jessevdk.opacity = function(item, options)
{
	if (options.to == 1)
	{
		options.afterFinish = function()
		{
			$(item).setOpacity(1);
		};
	}
		
	new Effect.Opacity(item, options);
}
