/**
 * jQuery ti.restore_form_values plug-in 0.1
 *
 * http://www.trilogyinteractive.com
 *
 * Copyright (c) 2010 Trilogy Interactive
 *
**/

jQuery.fn.restore_form_values = function(options) {

  var form = this;
  var settings = jQuery.extend({
    error_class: 'error'
  }, options);

  $(form).bind('submit',function(){
    var form = this;
    $(form).find(":text").each( function(){
      var field = $(this);
      var field_data = field.data('restore_form_values');

      if (field.val() == field_data['restore']) field.val('');
    });
  });

  init(form.find(":text"));
  init(form.find("textarea"));

  function init( fields ){

    fields.each( function(){
      var field = $(this);
      if ( field.attr('restore') ){

        field.data('restore_form_values',{
          initial: field.attr('value'),
          restore: field.attr('restore'),
          blank:   field.attr('blank') || ''
        });

        field.bind('focus',function(){
          var field = $(this);
          var current = field.val();
          var field_data = field.data('restore_form_values');

          if (settings.error_class) field.removeClass( settings.error_class );

          if      (current == field_data['initial']) field.val( field_data['blank'] );
          else if (current == field_data['restore']) field.val( field_data['blank'] );
        });

        field.bind('blur',function(){
          var field = $(this);
          var current = field.val();
          var field_data = field.data('restore_form_values');

          if (current == field_data['blank']) field.val(field_data['restore']);
        });

      }
    });

  }

  return this;
};

