Event.addBehavior({
  '#quickie_register_link:click': function(event){
    event.stop();
    $('quickie_login').hide();
	  $('quickie_register').show();
  },
  '#quickie_login_link:click': function(event) {
    event.stop();
    $('quickie_register').hide();
  	$('quickie_login').show();
  },
  'a.add_new_card:click': function(event) {
    var form = this.up('form');
    form.select('input[type=radio]').each(function(e){ e.checked=false});
    form.down('div.add_new_card').toggle();
    form.down('p.outside').toggle();
    event.stop();
  }, 
  /* hide 'add new card' div when billing record is selected */
  '.billing_record_selection input[type=radio]:click': function(event) {
    var form = this.up('form');
    form.down('div.add_new_card').hide();
    form.down('p.outside').show();
  },
  '#membership_amount:change': function(event) {
    var membershipAmount = parseInt(event.element().value.gsub(/[^0-9\.]/, ''));
    if (isNaN(membershipAmount) || membershipAmount < 1) {
      alert('Please enter a whole number greater than zero.');
      return false;
    }

    event.element().value = membershipAmount;

    if (formattedAmountExt = $('formatted_amount_ext')) {
      formattedAmountExt.innerHTML = '$' + (membershipAmount * unitValue);
    }

    if (unitAmount = $('unit_amount')) {
      unitAmount.innerHTML = membershipAmount;
    }
  }
});

// default to check the first credit card radio; and keep 'new card' form open if errors
document.observe('dom:loaded', function(){
  var credit_card_radios = $$('.billing_record_selection input[type=radio]');
  var add_new_card_div = $$('div.add_new_card').first()
  var errors = $$('ul.form_errors').first();
  if(credit_card_radios.length > 0 && add_new_card_div != null){
    if(errors){
      add_new_card_div.show();
      $$('p.outside').first().hide();
      // we don't want to default to the previous cc when you're entering a new card and seeing errors
      for(var i=0; i<credit_card_radios.length;i++){credit_card_radios[i].checked=false;}
    }else{
      // check the first one if none of the others are checked
      var already_checked = false;
      for(var i=0; i<credit_card_radios.length;i++){
        if(credit_card_radios[i].checked){already_checked = true;break;}
      }
      if(already_checked == false){
        credit_card_radios.first().checked = true;  
      }
    }
  }
  
  if(credit_card_radios.length == 0 && add_new_card_div != null){
    add_new_card_div.show();
    $$('p.outside').first().hide();
  }
});