(function($) {
    $.fn.overlabel = function() {
        this.filter('label[for]').each(function() {
            var $label = $(this);
            var $field = $('input[id="' + $(this).attr('for') + '"]');
 
            if(!$field) return;
 
            var hide_label = function() { 
            	if ($field.val() == $label.html() || $field.val() == "")
            	{
            		$field.val(""); 
            		$field.removeClass('overlabel_shown');
            	}
            };
            var show_label = function() {
            	if ($field.val() == $label.html() || $field.val() == "")
            	{
            		$field.val($label.html());
            		$field.addClass('overlabel_shown') 
            	}
            };
 
            $label.hide();
 
            $field.focus(hide_label).blur(show_label).each(show_label);
 
            return;
        });
    };
})(jQuery);
