var latest_popup = undefined;

$('.popup .close').live('click', function(event) {
    event.preventDefault();
    latest_popup = undefined;
    $('.popup').hide('fade', 'fast');
});

function hidePopups(event){
    var prev_popup = latest_popup;
    if (latest_popup) {
        if ((!$(event.target).closest('#' + latest_popup).length &&
                        !$(event.target).attr('rel') != latest_popup ||
                        $(event.target).attr('rel') == latest_popup)) {
            $('#' + latest_popup).hide('fade', 'fast');
            latest_popup = undefined;
        }
    }
    if ($(event.target).attr('rel') != undefined &&
            $('#' +  $(event.target).attr('rel')).hasClass('popup') &&
            prev_popup != $(event.target).attr('rel')) {
        latest_popup = $(event.target).attr('rel');
        $('#' + latest_popup).show('fade', 'fast');
        $('#' + latest_popup).trigger('popup');
    }
    $('.dialog').hide('fade', 'fast');
}

$('body').live('click', function(event) {
    hidePopups(event);
});

$('body').live('keyup', function(event) {
    if (event.keyCode == 27){
        hidePopups(event);
    }
});

$('.dialog .close').live ('click', function(event) {
    event.preventDefault();
    $('.dialog').hide('fade', 'fast');
});

$('.ajax-button').live('click', function(event){
    event.preventDefault();
    var rel = $(this).attr('rel');
    $('#' + rel + '-header').addClass('loading-marker');
    var form = $('#' + rel + '-form');
    $.ajax({
        url: form.attr('action'),
        type: form.attr('method'),
        data: form.serialize(),
        dataType: 'json',
        success: function(json) {
            if (json['redirect']) {
                location = json['redirect'];
            }

            if (json['error']) {
                if (json['error']['warning']) {
                    $('#error .content').html(json['error']['warning']);
                    var error = $('#error');
                    error.css("margin-top", -(error.outerHeight() / 2) + "px");
                    error.css("margin-left", -(error.outerWidth() / 2) + "px");
                    $('#error').show('fade', 'fast');
                    latest_popup = undefined;
                    $('.popup').hide('fade', 'fast');
                }
            }

        },
        complete: function(){
            $('#' + rel + '-header').removeClass('loading-marker');
        }
    });
});


