(function($) {
var native_support = ('placeholder' in document.createElement('input'));
$.fn.placeholder = function(command) {
if(!native_support) {
if(command) {
switch(command) {
case 'clear':
this.each(function() {
var el = $(this)
if(el.data('isEmpty') || el.val() == el.attr('placeholder')) {
el.val('');
}
});
break;
}
return this;
}

this.each(function() {
if(!$(this).data('gotPlaceholder')) {
$(this).focus(function() {
var el = $(this);
if(el.data('isEmpty')) {
el.val('').removeClass('placeholder');
}
}).blur(function() {
var el = $(this);
if(el.data('isEmpty') || !el.val().length) {
el.val(el.attr('placeholder')).addClass('placeholder');
}
}).keyup(function() {
var el = $(this);
el.data('isEmpty', (el.val().length == 0));
}).data('gotPlaceholder', true);

if(!$(this).val().length || $(this).val() == $(this).attr('placeholder')) {
$(this).val($(this).attr('placeholder')).addClass('placeholder').data('isEmpty', true);
}
}
});
}

return this;
}
})(jQuery);