(function($) {
	// plugin definition
	$.fn.formlabels = function(options) {
	 	var opts = $.extend({}, $.fn.formlabels.defaults, options);
	 	return this.each(function() {
			var label = $(this).prev();
			var field = $(this);
	   	$this = $(this);
	   	var o = $.meta ? $.extend({}, opts, $this.data()) : opts;		
			$this.focus(function(){
					$.fn.formlabels.fx[0](field, 100, o.max_opacity, o.min_opacity);				
			}).keyup(function(){
					$.fn.formlabels.fx[0](field, 100, o.max_opacity, o.min_opacity);
			}).blur(function(){
					$.fn.formlabels.fx[0](field, 100, o.max_opacity, o.min_opacity);
			});	
		});
	};
	// plugin defaults
	$.fn.formlabels.defaults = {
		time: '1000',
		min_opacity: '0',
		max_opacity: '1'
	};
	$.fn.formlabels.fx = {
		fade: function(obj, time, max_opacity, min_opacity) {
						if(obj.val() === ""){						
						obj.prev().fadeTo(time, max_opacity);
						}else{
						obj.prev().fadeTo(time, min_opacity);
						}
	  				return obj;
					},
		slide: function(obj, time){
					   if(obj.val() === ""){						
						obj.prev().slideUp(time);
						}else{
						obj.prev().slideDown(time);
						}
	  				return obj;
					 }
	};
})(jQuery);
