function ajax_form_submit(ev) {
    var f = Event.element(ev);
    new Ajax.Updater(f.up(".ajax_form_target"), f.action, {
            parameters: f.serialize(),
            asynchronous: true,
            evalScripts: false,
            onComplete: globtrex_reload_observers,
            onLoading: function(request, json) {
                $($(f.select('.button'))[0]).hide();
                $($(f.select('.form_loading'))[0]).show();
            }
        }
    );
    ev.stop();
    return false;
};

function ajax_link_click(ev) {
    var a = Event.element(ev);
    new Ajax.Updater(a.up(".ajax_link_target"), a.href, {
            method: "get",
            asynchronous: true,
            evalScripts: false,
            onComplete: globtrex_reload_observers
        }
    );
    ev.stop();
    return false;
};

globtrex_observers.push(function () {
        $$('form.ajax_form').invoke('stopObserving', 'submit', ajax_form_submit);
        $$('form.ajax_form').invoke('observe', 'submit', ajax_form_submit);

        $$('a.ajax_link').invoke('stopObserving', 'click', ajax_link_click);
        $$('a.ajax_link').invoke('observe', 'click', ajax_link_click);
    }
);

