/*
* clearingInput: a jQuery plugin
* For usage and examples, visit:
* http://github.com/alexrabarts/jquery-clearinginput
* Licensed under the MIT: http://www.opensource.org/licenses/mit-license.php
* Copyright (c) 2008 Stateless Systems (http://statelesssystems.com)
* @author Alex Rabarts (alexrabarts -at- gmail -dawt- com)
* @requires jQuery v1.2 or later
* @version 0.1
*/
(function ($) {
  $.extend($.fn, {
    clearingInput: function (options) {
      var defaults = {blurClass: 'blur'};
      options = $.extend(defaults, options);
      return this.each(function () {
        var input = $(this).addClass(options.blurClass);
        var form = input.parents('form:first()');
        var label, text;
        text = options.text || textFromLabel() || input.val();
        if (text) {
          input.val(text);
          input.blur(function () {
            if (input.val() === '') {
              input.val(text).addClass(options.blurClass);
            }
          }).focus(function () {
            if (input.val() === text) {
              input.val('');
            }
            input.removeClass(options.blurClass);
          });
          form.submit(function() {
            if (input.hasClass(options.blurClass)) {
              input.val('');
            }
          });
          input.blur();
        }
        function textFromLabel() {
          label = form.find('label[for=' + input.attr('id') + ']');
          // Position label off screen and use it for the input text
          return label ? label.css({position: 'absolute', left: '-9999px'}).text() : '';
        }
      });
    }
  });
})(jQuery);