(function($) {

  var Placeholder = {
   
     _PLACEHOLDERS : [],
   
    _p : function( $field ) {
    
       this.fieldObject = $field; 
       this.placeholderText = $field.val();
       var placeholderText = $field.val();
     
       $field.addClass('ph');
     
       $field.blur(function() {
         if ( $(this).val() == '' ) {
           $(this).val( placeholderText );
           $(this).addClass('ph');
         }
       });
     
       $field.focus(function() {
         $(this).removeClass('ph');
         if ( $(this).val() == placeholderText ) {
           $(this).val('');
         } else {
           $(this)[0].select();
         }
       });
     
     },
   
     add : function( $field ) {
       Placeholder._PLACEHOLDERS.push( new Placeholder._p( $field ) );
     },
   
     clearAll: function() {
       for ( var i=0; i < Placeholder._PLACEHOLDERS.length; i++ ) {
         if ( Placeholder._PLACEHOLDERS[i].fieldObject.val() == 
              Placeholder._PLACEHOLDERS[i].placeholderText ) {
           Placeholder._PLACEHOLDERS[i].fieldObject.val('');
         }
       }
     },
   
     exists : function() {
       return ( _PLACEHOLDERS.length );
     }
   
 };
 
 $.GollumPlaceholder = Placeholder;
 
})(jQuery);
