/*!
 * jQuery Placeholder Plugin
 *
 * Copyright (c) 2011 Dmitriy Kubyshkin (http://kubyshkin.ru)
 * Licensed under the MIT license
 */
if(jQuery) // Check if jQuery is loaded
{
  jQuery.fn.placeholder = function(_options){
    var options = jQuery.extend({
      className: "placeholded"
    },options);

    return this.each(function(){
      var hold = $(this);
      var text = this.defaultValue;
      var form = hold.closest('form');

      // If there's no default value then there's nothing to do here
      if(!text) return;

      // Function to clear input value
      var clearValue = function(){
        if(hold.hasClass(options.className))
        {
          hold.val("");
          hold.removeClass(options.className);
        }
      };

      // Function to restore default value if field is empty
      var restoreValue = function(){
        if(hold.val() == "")
        {
          hold.val(text);
          hold.addClass(options.className);
        }
      };

      // Adding placeholded class name
      hold.addClass(options.className);

      // We need to remove default values before we submit
      form.submit(function(){
        clearValue();
        // But if submitting failed for example if other event
        // handler prevented default submit behavior then we need
        // to put placeholders back into the form
        setTimeout(restoreValue); 
      });

      // On focus we clear placeholded value
      hold.focus(clearValue);

      // On blur we put it back if field is empty
      hold.blur(restoreValue);
    });
  };
}
