/*
 * params: {
 * 		title || obj.title
 * 		src || obj.href
 * 		shiftX, shiftY, targetX, targetY center - deprecated
 * 		todo: eval(eval)
 * 		todo: local
 * }
 */

var Dialog = {
	open: function(obj, params)
	{
		params = params || {};

		options = {
		    modal: true,
			resizable: false,
		    overlay: {
		        opacity: 0.5,
		        background: "black"
		    },
			height: 100,
		    title: params.title || obj.title
		};

		$("#dialog_wait").remove();
		$("#dialog_box").remove();
		$(".ui-dialog").remove();
		$("<div id='dialog_box' style='display:none'>" +
		  "<div id='dialog_box_cnt' style='padding:30px;'></div></div>").appendTo("body");

		$('select.bad').hide();

		if(params.local)
		{
			$("#dialog_box_cnt").html($('#' + params.local).html());
			Dialog.set_data("#dialog_box", params, options);
			return false;
		}

		$("<div id='dialog_wait' style='width:200px; height:80px'>" +
		  "<img src='/img/v4/special/indicator.gif' alt='Loading...' /> Loading...</div>").appendTo("body");
		Dialog.set_data("#dialog_wait", {}, options);

		$("#dialog_box_cnt").load(params.src || obj.href, {}, function(){ Dialog.set_data("#dialog_box", params, options); });

		return false;
	},
	set_data: function(objname, params, options)
	{
		if (params.width)
			var width = params.width;
		else
			var width = $(objname).width() + 0;
		var height = $(objname).height() + 50;
		options.width = width;
		options.height = height;
		if(objname != "#dialog_wait")
			$("#dialog_wait").dialog("close");
		$(objname).show();
		if(objname != "#dialog_wait")
			$(objname).bind('dialogclose', function(){ $('select.bad').show(); });
		$(objname).dialog(options);

		// Handle rounded corners
		$('.ui-dialog-container').prepend($('<span class="corner_lt"/>'));
		$('.ui-dialog-container').prepend($('<span class="corner_rt"/>'));
		$(objname).prepend($('<span class="corner_lb"/>'));
		$(objname).prepend($('<span class="corner_rb"/>'));

		if(params.eval)
			eval(params.eval);
	},
	close: function()
	{
		$("#dialog_box").dialog("close");
		return false;
	}
};
