jQuery.extend(jQuery.fn, {
	watermark: function(text){
		this.parent().css("position","relative");
		
		
		// TODO: clonar o elemento ao invés de criar um SPAN
		var watermark = document.createElement("span");
		jQuery(watermark).addClass("watermark");
		
		if(jQuery.browser.msie){
			jQuery(watermark).width(this.width()-8);
			jQuery(watermark).height(this.height()-12);
		} else {
			jQuery(watermark).width(this.width()-4);
			jQuery(watermark).height(this.height()-4);	
			jQuery(watermark).css("padding","2px");
		}

		jQuery(watermark).css("left",(this.offset().left+2) + "px");
		jQuery(watermark).css("top",(this.offset().top+1) + "px");			
		
		jQuery(watermark).css("position","absolute");

		jQuery(watermark).text(text);
		
		jQuery(watermark).addClass("relativeTo_" + this[0].id);
		jQuery(watermark).data("relativeTo",this[0].id);
	
		jQuery("body").append(watermark);
		
		jQuery(watermark)[0].onclick = function(){
			jQuery(this).hide(1,function(){
				var relative = jQuery(this).data("relativeTo");
				jQuery("#"+ relative).focus();
			});
		}
		
		if(this.val().length<=0)
			jQuery(watermark).show();
		else
			jQuery(watermark).hide();
		
		this[0].onfocus = function(){
			jQuery(".relativeTo_" + this.id).hide();
		}
		
		this[0].onchange = function(){
			jQuery(".relativeTo_" + this.id).hide();
		}
		
		this[0].onblur = function(){
			if(this.value.length<=0){
				var watermark = jQuery(".relativeTo_" + this.id)
				jQuery(".relativeTo_" + this.id).show();
			}
		}
		
		jQuery("body").bind("keyup, focusin, focusout, click",function(){
			jQuery.watermark.reset();
		});
		
		jQuery(window).bind("resize", function(){
			jQuery.watermark.reset();
		})
	}
	
});	

jQuery.extend(jQuery, {
	watermark: {
		reset: function(){
			jQuery(".watermark").each(function(){
				var relative = jQuery("#" + jQuery(this).data("relativeTo"));
				try{
					jQuery(this).css("left",(relative.offset().left+2) + "px");
					jQuery(this).css("top",(relative.offset().top+1) + "px");
				}catch(e){}
				
			});	
		}
	}
});

