Spinner = {
  hidden_html: '<img class="spinner" src="/images/loading.gif" alt="Please wait..." style="display:none;">',
  show_within: function(within) {
    $(within).find('img.spinner').show();
  },
  hide_within: function(within) {
    $(within).find('img.spinner').hide();
  },
  remove: function() {
    $(within).find('img.spinner').remove();
  }
}

ContactForms = {
  form_ids: '#clientrequestform, #contactform',
  success_id: "#success-message",
  failure_id: "#failure-message",
  
  attach_callbacks: function() {
    $(ContactForms.form_ids).each(function(index, form) {
      $(form).bind('submit', function() {
        $(form).find(':submit').attr('disabled', true);
        Spinner.show_within(form);

        $(ContactForms.failure_id).hide();
        $(ContactForms.success_id).hide();

        $.post('/incoming_contacts/create', $(form).serialize(), function(response) {
          if (response == 'success') {
            form.reset();
            $(ContactForms.success_id).slideDown();
          } else {
            $(ContactForms.failure_id).slideDown();
          }
          $(form).find(':submit').removeAttr('disabled');
          Spinner.hide_within(form);
        }, 'text');
        
        return false;
      });
    });
  },
  
  init: function() {
    var loc = location.href;
    var success_param = loc.match(/[\?|&]success=(true|false)/);

    $(ContactForms.form_ids).each(function(index, form) {
      $(form).find('li#actionButtons').append(Spinner.hidden_html);
      $(form).find(':submit').removeAttr('disabled');
    });

    if (success_param != null) {
      if (success_param[1] == 'true') {
        $(ContactForms.success_id).fadeIn(1000);
      } else if (success_param[1] == 'false') {
        $(ContactForms.failure_id).fadeIn(1000);
      }
    }
  } // init:
}

$(document).ready(function() {
  ContactForms.init();
  ContactForms.attach_callbacks();
});