var app = {
  hideSuperfluousLabels: function() {
    if (Modernizr.input.placeholder) {
      $('form.mailing-list')
        .find('label').css('display', 'none').end()
        .find('input[type="email"]').css('width', '12em');
    }
  },

  autoFocusInLegacyBrowsers: function() {
    $('input[type=text][autofocus]').each(function(i, input) {
      if (! ("autofocus" in document.createElement("input"))) {
        $(input).focus();
      }
    });
  },
  
  loader: function() {
    return $('<img/>', { id: 'loader', src: '/images/big-ajax-loader.gif' })
      .css({ verticalAlign: 'middle' });
  },
  
  removeLoader: function() {
    $('#loader').fadeOut('slow', function() { $(this).remove(); });
  }
};

var coding = {
  setupAjaxHandlers: function() {
    $('body.coding div.tags form[action*=tags]:first').submit(coding.addTags);
  },
  
  addTags: function(event) {
    event.preventDefault();
    var $form = $(this);
    $form.find('p:first').append(app.loader());
    var form_fields = $form.serialize() + '&ajax';
    $.post($form.attr('action'), form_fields, function(data) {
      app.removeLoader();
      $form.parents('div.tags').find('p.none')
        .after('<ol class="tags">')
        .remove();
      $(data).filter('li').appendTo('div.tags ol.tags').hide().fadeIn();
      $form.find('input[type=text]').select();
    });
  }
};

$(document).ready(function() {
  app.hideSuperfluousLabels();
  app.autoFocusInLegacyBrowsers();
  
  coding.setupAjaxHandlers();
});

