
	var $ajax_dialog;

	function ajax_ui_alert(_msg, _title) {
		ajax_init_dialog();
		$ajax_dialog.dialog({
			autoOpen: false,
			title: (_title != undefined) ? _title : 'Ошибка',
			resizable: false,
			modal: true,
			buttons: {}
		}).html(_msg).dialog("open");
	}
	
	function ajax_init_dialog() {
		if ($ajax_dialog != undefined) {
			$ajax_dialog.dialog('close');
		} else {
			$ajax_dialog = $('<div></div>');
		}
	}

	function ajax_ui_form(_form, _params) {
		ajax_init_dialog();
		$ajax_dialog.dialog({
			autoOpen: _params.autoOpen != undefined? _params.autoOpen: false,
			title: _params.title? _params.title: '',
			width: _params.width? _params.width: 'auto',
			resizable: _params.resizable != undefined? _params.resizable: false,
			modal: true,
			buttons: _params.no_burrons? {}: {
				"Отмена": function() {$ajax_dialog.dialog("close");},
				"Ok": function() {$(this).children('form').submit();}
			}
		}).html(_form).dialog("open");
	}
	
	function ajax_load_form(_id, _keys, _javascript)
	{
		_javascript = _javascript && _javascript != undefined? _javascript: '';
		
		$.getJSON('/shell/ajax/',
			{
				plugin: 'form',
				action: 'form',
				form_id: _id,
				keys: _keys,
				javascript: _javascript
			},
			function(data) {
				if (data.error)
				{
					ajax_ui_alert(data.error);
				}
				else
				{
					form_id = 'form_' + _id;
					ajax_ui_form(data.form, data.params);
					var ajax_operation = {
						url: '/shell/ajax/?plugin=form&action=save&form_id=' + _id + '&keys=' + _keys + '&javascript=' + _javascript,
						beforeSubmit: function() {},
						type: 'POST',
						dataType: 'json',
						success: function(data) {
							ajax_init_dialog();
							if (data.script) {
								eval(data.script);
							} else if (data.message) {
								ajax_ui_alert(data.message.msg, data.message.title);
							} else if (data.form) {
								ajax_ui_form(data.form, data.params);
								$('#' + form_id).ajaxForm(ajax_operation);
							}
						},
						error: function() {
							ajax_ui_alert('500. Server error.');
						}
					};
					$('#' + form_id).ajaxForm(ajax_operation);
				}
			}
		); 
	}
	

