/**
 * Uni-Form jQuery Plugin without Validation
 * 
 * @see http://sprawsm.com/uni-form/
 * @license MIT http://www.opensource.org/licenses/mit-license.php
 * @ISDC changes to allow input text to be the same as the default data text by
 *       adding spaces
 */
jQuery.fn.uniform = function(settings) {
  settings = jQuery.extend({
    valid_class : 'valid',
    invalid_class : 'invalid',
    error_class : 'error',
    focused_class : 'focused',
    holder_class : 'ctrlHolder',
    field_selector : 'input, textarea, select',
    default_value_color : "#6d6e71"
  }, settings);
  return this.each(function() {
    var form = jQuery(this), validate = function($input, valid, text) {
      var $p = $input.closest('div.' + settings.holder_class).andSelf()
          .toggleClass(settings.invalid_class, !valid).toggleClass(
              settings.error_class, !valid).toggleClass(settings.valid_class,
              valid).find('p.formHint');
      if (!valid && !$p.data('info-text')) {
        $p.data('info-text', $p.html());
      } else if (valid) {
        text = $p.data('info-text');
      }
      if (text) {
        $p.html(text);
      }
    };
    form.find("input").each(function() {
      var data = $(this).data('default-value');
      if (data) {
        data = data + "      ";
        $(this).data('default-value', data);
      }
    });
    form.submit(function() {
      form.find(settings.field_selector).each(function() {
        if ($(this).val() == $(this).data('default-value'))
          $(this).val("");
      });
    });
    form.find(settings.field_selector).each(function() {
      var $input = $(this), value = $input.val();
      $input.data('default-color', $input.css('color'));
      if (value == $input.data('default-value') || !value) {
        $input.not('select').css("color", settings.default_value_color);
        $input.val($input.data('default-value'));
      }
    });
    form.delegate(settings.field_selector, 'focus', function() {
      form.find('.' + settings.focused_class).removeClass(
          settings.focused_class);
      var $input = $(this);
      $input.parents().filter('.' + settings.holder_class + ':first').addClass(
          settings.focused_class);
      if ($input.val() == $input.data('default-value')) {
        $input.val("");
      }
      $input.not('select').css('color', $input.data('default-color'));
    });
    form.delegate(settings.field_selector, 'blur', function() {
      var $input = $(this);
      form.find('.' + settings.focused_class).removeClass(
          settings.focused_class);
      if ($input.val() == "" || $input.val() == $input.data('default-value')) {
        $input.not('select').css("color", settings.default_value_color);
        $input.val($input.data('default-value'));
      } else {
        $input.css('color', $input.data('default-color'));
        $input.data("default-value", "");
      }
    });
    form.delegate(settings.field_selector, 'error', function(e, text) {
      validate($(this), false, text);
    });
    form.delegate(settings.field_selector, 'success', function(e, text) {
      validate($(this), true);
    });
    form.bind('uniformReset', function() {
      form.find(settings.field_selector).each(function() {
        var $input = $(this);
        if ($input.val() == "" || $input.val() == $input.data('default-value')) {
          $input.not('select').css("color", settings.default_value_color);
          $input.val($input.data('default-value'));
        } else {
          $input.css('color', $input.data('default-color'));
          $input.data("default-value", "");
        }
      });  
    });
    
  });
};
