/*
Autor: Nahuel José
http://www.nahueljose.com.ar
nahuel(at)nahueljose(dot)com(dot)ar
*/

(function($){
	$.fn.incrustar = function(opciones){
		//valores por defecto
		var defaults = {  
  		 izquierda : 0,
  		 arriba : 0,
  		 efecto : 'desvanecer',
  		 velocidad: 'fast'
	  	};  		
		var opciones = $.extend(defaults, opciones); 
		var objEtiqConten = $(this);
		var objEtiqueta = objEtiqConten.children('label');
		var objInput = objEtiqConten.children('input');
		
		//aplicar estilos basicos		
		objEtiqConten.css({
			position: 'relative'
		});
		objEtiqueta.css({
			position: 'absolute',
			left: opciones.izquierda,
			top: opciones.arriba	
		});
		 return this.each(function() {
		//eventos focusin, focusout
		objInput.focusin(function(){
			var vacio = $(this).val() == '';
			switch(opciones.efecto){
					case 'desvanecer':
					if(vacio){
							$(this).siblings(objEtiqueta).fadeOut(opciones.velocidad);						
						}
					break;	
					
					case 'deslizarVert':
					if(vacio){
							$(this).siblings(objEtiqueta).slideUp(opciones.velocidad);						
						}
					break;	
					
					case 'deslizarHor':
					if(vacio){
							var currEtiqueta = $(this).siblings(objEtiqueta);
							var anchoCurrEtiqueta = currEtiqueta.width();
							currEtiqueta.animate({
								left: -1*(anchoCurrEtiqueta + opciones.izquierda)
							}, opciones.velocidad);						
						}
					break;
					
					default: break;		
				}
		});
		objInput.focusout(function(){
			var vacio = $(this).val() == '';
			switch(opciones.efecto){
					case 'desvanecer':
					if(vacio){
							$(this).siblings(objEtiqueta).fadeIn(opciones.velocidad);						
						}
					break;		
					
					case 'deslizarVert':
					if(vacio){
							$(this).siblings(objEtiqueta).slideDown(opciones.velocidad);						
						}
					break;	
					
					case 'deslizarHor':
					if(vacio){
							var currEtiqueta = $(this).siblings(objEtiqueta);
							var anchoCurrEtiqueta = currEtiqueta.width();
							currEtiqueta.animate({
								left: opciones.izquierda	
							}, opciones.velocidad);						
						}
					break;	
					default: break;			
				}
		});
		return false;
		});
	};	
})(jQuery);
