function rate_control(rate_control, url) {
  refresh_rate_list = function(rate_control, val) {
    $('.' + rate_control).find('.rate_group').hide('fast');
    $('.' + rate_control).find('.rate_group_' + val).show('fast');
  };
  
  refresh_rate_list(rate_control, 0); 

  // events for the rate_control
  $('.' + rate_control).find('#rate_type').change(function(e) { 
    refresh_rate_list(rate_control, this.value); 
  });

  $('.' + rate_control).find('.rate_group_0 a, .rate_group_1 a,.rate_group_2 a,.rate_group_3 a').click(function (e) {
    e.preventDefault();
    p = (e.target.id + '_' + $('.' + rate_control).find('.rate_np_checkbox:checked').size()).substr(5);
    document.location = url + p ;   
  });
  
  $('.' + rate_control).find('.rate_custom').click(function(e) { 
    show_custom_rate_dialog(function (result) {
      if (result['from'] == 0)
      {
        result['from'] ='1';
      }
      p = result['type'] + '_' + result['from'] + '_' + result['to'] + '_' + result['nonprof'];
      document.location = url + p ; 
    });
  });
}