function formatDialogContent(dialog, resp)
{
    // установить контент для диалога
    dialog.html(resp);

    // заголовок окна
    title = dialog.find('h1').hide().html();
    $(dialog).dialog('option', 'title', title);

    // событие на сабмит формы
    dialog.find('form').submit(function() {
        form = $(this);
        $.ajax({
            url: form.attr('action'),
            data: form.serialize(),
            type: form.attr('method'),
            success: function(data) {
                if (data == 'refresh') {
                    location.reload(true);
                }
                else formatDialogContent(dialog, data);
            }
        });
    
        return false;
    });
    
    // событие на перезагрузку формы
    dialog.find('a.ajax-link').click(function() {
        $.get($(this).attr('href'), function(data) {
            formatDialogContent(dialog, data); 
        });
        return false;
    });
    
    // событие на перепозиционирование
    dialog.find('span.ajax-link').click(function() {
        $(dialog).dialog('option', 'position', 'center'); 
    });
    
    // действия
    var buttons = new Array;
    var hasCancelBtn = false;
    dialog.find('#buttons input').each(function() {
        var button = $(this);
        button.hide();
        type = button.attr('type');
        value = button.attr('value');
        id = button.attr('id');
        
        if (id == 'cancel') {
            buttons.push({text: value, click: function() {$(this).dialog('close');}})
            hasCancelBtn = true;
            return;
        }
                
        if (id == 'reload') {
            buttons.push({text: value, click: function() {$(this).dialog('close'); location.reload();}})
            $(dialog).bind('dialogClose', function() {location.reload();});
            return;
        }
        
        if ((type != 'submit') || ((type == 'submit') && button.attr('onclick')))
            buttons.push({text: value, click: function() {$(button).click()}});
        else {
            buttons.push({text: value, click: function() {dialog.find('form').submit()}});
        }
    });
   
    $(dialog).dialog('option', 'buttons', buttons);
    
    dialog.find('button:submit').click(function() {
        name = $(this).attr('name');
        value = $(this).val();
        $('input[name="' + name + '"]').val(value);
    });
    
    // центрирование
    $(dialog).dialog('option', 'position', 'center');
}

function openDialogContent(url)
{
    var dialog = $('<div>').attr('id', 'dialog').appendTo('body');

    // создать диалог, но не показывать
    dialog.dialog({
        modal: true,
        resizable: false,
        minWidth: 450,
        maxWidth: 600,
        autoOpen: false,
        dialogClass: 'popup',
        closeText: 'закрыть',
        close: function() {($(this).remove())},
        open: function() {
            $(this).find('.date').datepicker('enable');
        }
    });

    // загрузить контент
    $.get(url, function(resp) {
        formatDialogContent(dialog, resp);
        dialog.find('.date').datepicker('disable');
        $(dialog).dialog('open');
    });        
}

function openDialogMessage(title, message)
{
    var dialog = $('<div>').attr('id', 'dialog').html(message).appendTo('body');

    // создать диалог, но не показывать
    dialog.dialog({
        modal: true,
        resizable: false,
        minWidth: 450,
        maxWidth: 600,
        buttons: [{text: 'OK', click: function() {$(this).dialog('close');}}],
        autoOpen: true,
        title: title,
        dialogClass: 'popup',
        closeText: 'закрыть',
        close: function() {($(this).remove())},
    });
}
            
    
$(document).ready(function() {        
    $('a.ajax-dialog').live('click', function() {
        openDialogContent($(this).attr('href'));
        return false;
    });
});
