/*
 * jQuery Form Example Plugin 1.4.2
 * Populate form inputs with example text that disappears on focus.
 *
 * e.g.
 *  $('input#name').example('Bob Smith');
 *  $('input[@title]').example(function() {
 *    return $(this).attr('title');
 *  });
 *  $('textarea#message').example('Type your message here', {
 *    className: 'example_text'
 *  });
 *
 * Copyright (c) Paul Mucur (http://mucur.name), 2007-2008.
 * Dual-licensed under the BSD (BSD-LICENSE.txt) and GPL (GPL-LICENSE.txt)
 * licenses.
 */
(function($) {
  $.fn.example = function(text, args) {
    var isCallback = $.isFunction(text);
    var options = $.extend({}, args, {example: text});
    return this.each(function() {
      var $this = $(this);
      if ($.metadata) {        
        var o = $.extend({}, $.fn.example.defaults, $this.metadata(), options);
      } else {
        var o = $.extend({}, $.fn.example.defaults, options);
      }
      if (!$.fn.example.boundClassNames[o.className]) {
        $(window).unload(function() {
          $('.' + o.className).val('');
        });
      
        $('form').submit(function() {    
          $(this).find('.' + o.className).val('');
        });
        $.fn.example.boundClassNames[o.className] = true;
      }
      if ($.browser.msie && !$this.attr('defaultValue') && (isCallback || $this.val() == o.example))
        $this.val('');
            if ($this.val() == '' && this != document.activeElement) {
        $this.addClass(o.className);
        $this.val(isCallback ? o.example.call(this) : o.example);
      }
      $this.focus(function() {
        if ($(this).is('.' + o.className)) {
          $(this).val('');
          $(this).removeClass(o.className);
        }
      });
      $this.change(function() {
        if ($(this).is('.' + o.className)) {$(this).removeClass(o.className);}
      });
      $this.blur(function() {
        if ($(this).val() == '') {
          $(this).addClass(o.className);
          $(this).val(isCallback ? o.example.call(this) : o.example);
        }
      });
    });
  };
  $.fn.example.defaults = {
    className: 'example'
  };
  $.fn.example.boundClassNames = [];
})(jQuery);