/**
 *
 * Text inputs with class="default-text" can have default text that displays in grey until the input gets focus or the form gets submitted.
 *
 * Author: 2V
 *
 * Adapted from sam eubank's default-text.js 
 *
 */
var DefaultText = {

  className: 'default-text',
  titleName: 'js-default-title',

  addObservers: function(field) {

    $j(field.form).submit(function() {
      DefaultText.focus(field);
    });

    $j(field).blur(function() {
      DefaultText.onBlur(field);
    });

    $j(field).focus(function() {
      DefaultText.focus(field);
    });

    Log.debug('Initial set up');
    DefaultText.onBlur(field);
  },

  onBlur: function(field) {
    Log.debug('DefaultText.blur');
    if (!field.value) {
      field.value = field.title;
      $j(field).addClass(DefaultText.className);
      field.isDefaultText = true;
    }
    else {
      field.isDefaultText = false;
    }
  },

  focus: function(field) {

    Log.debug('DefaultText.focus');

    if ($j(field).hasClass(DefaultText.className)) {
      field.value = '';
      $j(field).removeClass(DefaultText.className);
    }
    field.isDefaultText = false;
  },
  
  setup: function() {
    var defaultText = DefaultText;
    // get all fields with the right class name
    $j('input').each(function(i, input) {
      var className = input.className;
      if (className.has(defaultText.titleName)) {
        var match = new RegExp(defaultText.titleName + "-([^ ]*)").exec(className);
        input.title = match[1].replace(/\-/g, ' ');
        defaultText.addObservers(input);
      }
    });
  }
};

Finish.addTask(DefaultText.setup, 'DefaultText.setup');