/*!

 * 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);

    });

  };

}
