/*
 dialog messages
 
 takes a messages object formatted the same way drupal messages are, ex:
	var my_messages = {
		status: [
			"message 1",
			"message 2"
		],
		error: [
			"error 1"
		]
	}
 and an optional options object which can extend the default jquery dialog options for messages,
 as well as an auto_close parameter which, if set to a numeric value > 0, will auto close the
 messages dialog after auto_close seconds IF there aren't any error messages. ex:
	var my_options = {
		modal: true,
		auto_close: 3
	}
	
	dialog_messages.create(my_messages, my_options)
*/

var dialog_messages = {};

$(document).ready(function()
{
	dialog_messages.create = function(messages, options)
	{
		if (typeof options == "undefined")
		{
			options = {};
		}
		
		var messages_dialog = $("<div id='dialog_messages'></div>").prependTo("body");
		var auto_close = parseInt(options.auto_close);
		var messages_html = "";
		
		if (typeof messages.status != "undefined")
		{
			messages_html += "<div class='dialog_messages messages_status'><ul>";
			$.each(messages.status, function(i, message)
			{
				messages_html += "<li>"+message+"</li>";
			});
			messages_html += "</ul></div>";
		}
		
		if (typeof messages.error != "undefined")
		{
			messages_html += "<div class='dialog_messages messages_error'><ul>";
			$.each(messages.error, function(i, message)
			{
				messages_html += "<li>"+message+"</li>";
			});
			messages_html += "</ul></div>";
		}
		
		if (typeof messages.error == "undefined" && !isNaN(auto_close) && auto_close > 0)
		{
			setTimeout(dialog_messages.destroy, auto_close*1000);
		}
		
		var dialog_options = $.extend({
			resizeable: false,
			width: 500,
			maxHeight: 300,
			close: function()
			{
				$(this)
					.dialog("destroy")
					.remove();
			}
		}, options);
		
		messages_dialog
			.html(messages_html)
			.dialog(dialog_options);
	}
	
	dialog_messages.destroy = function()
	{
		$("#dialog_messages").dialog("close");
	}
});
