jQuery.fn.placeholder = function() {

  // See if natively supported
  var i = document.createElement('input');
  if(typeof(i.placeholder) !== 'undefined') {
    return false;
  }
  
  
  function inputFocusHandler() {
    var p = jQuery(this).attr('placeholder');

    // Remove placeholder class
    jQuery(this).removeClass('jq-placeholder');

    // If still placeholder
    if(jQuery(this).val() == p) {
      jQuery(this).val('');
    }
  }

  function inputBlurHandler() {
    var p = jQuery(this).attr('placeholder');
    
    if(jQuery(this).val() == '') {
      jQuery(this).val(p).addClass('jq-placeholder');
    }
  }

  return this.each(function(){

    // Input field
    var inputField = this;

    // Placeholder text
    var p = jQuery(inputField).attr('placeholder');

    if(p != '') {

      // Initially set placeholder value
      if(jQuery(inputField).val() == '') {
        jQuery(inputField).val(p);
        jQuery(inputField).addClass('jq-placeholder');
      }

      // Focus handler
      jQuery(inputField).focus(inputFocusHandler);
      jQuery(inputField).keyup(inputFocusHandler);

      // Blur handler
      jQuery(inputField).blur(inputBlurHandler)

      // Form submit handler
      jQuery(inputField).parents('form').submit(function() {

        // If still placeholder text, submit blank
        if(jQuery(inputField).val() == p)
          jQuery(inputField).val('');
      })


    }
  });

}
