DRY up multiple calls link_to_remote?

I have the following code that will be repeated many times in a
single .rthml page.

<%=link_to_remote("Test AJAX",
    :update => 'chart',
    :url => url_for(:controller => 'chart', :action =>
    :loading => "Element.show('loading'); ",
    :complete => "Element.hide('loading')",
    :before => "this.parentNode.className = 'myclass';") %>

What is the best way to DRY this up so
the :loading, :complete:, :before: and :update callbacks are reused? I
want to avoid changing all instances of this call when I update the
code. The only parameter that will change is :url

I use something like the following:

in application_helper.rb:
  def showing_progress(opts={}, hide_div = nil)
    opts.merge :loading => update_page{|p| p[hide_div].hide if
hide_div; p[:progress].visual_effect(:appear, :duration => 0.5); },
    :complete => update_page{|p| p[:progress].hide; p[hide_div].show
if hide_div; }

in my view.rhtml:
<%= link_to_remote(h(email.subject), showing_progress({:url =>
{:action => 'display_email', :id => email}}, 'email_content')) %>