var SignUp = Class.create(); 
SignUp.prototype = { 
	initialize: function() {	
		Event.observe(window, 'load', function() {
      SignUp.toggleSignupSubmit();
      Event.observe('user_terms_of_service', 'click', SignUp.toggleSignupSubmit.bindAsEventListener(SignUp));

      $$("input[type='submit']").each(function(e) {
          Event.observe(e, 'click', SignUp.replaceSubmit.bindAsEventListener(SignUp));
          Event.observe(e, 'click', SignUp.fixCardExpiration.bindAsEventListener(SignUp));
        });
      $$("form").each(function(e) {
          Event.observe(e, 'submit', SignUp.greySubmits.bindAsEventListener(SignUp));
        });
		});
	},
	toggleSignupSubmit: function() {
    // alert($F('user_terms_of_service'));
		$$("input[type='submit']").each(function(v) {
      v.disabled = !$F('user_terms_of_service');
    });
	},
  replaceSubmit: function(e) {
    var el = e.element();
    Element.insert(el, { 'before': '<input type="hidden" name="commit" value="' + el.getValue() +'" />'});
  },
  greySubmits: function(e) {
    $$("input[type='submit']").each(function(v) {
      v.disabled = true;
      v.value = "Processing your request...";
    })
  },
  fixCardExpiration: function() {
    var month = $('ccexp_expiration_2i');
    var year  = $('ccexp_expiration_1i');
    
    if (month && year) {
      var padded_month = '0' + $F(month);
      $('ccexp').value = padded_month.substr(-2, 2) + '/' + $F(year).substr(-2, 2);
      // alert($('ccexp').value);
      
      $('ccexp_expiration_1i').disable();
      $('ccexp_expiration_2i').disable();
      $('ccexp_expiration_3i').disable();
    }
  }
}
var SignUp = new SignUp();