﻿/*********************************************************************************
 *		autoTxt v0.3 basado en jQuery
 *
 *		10/12/2010
 *		Autor: Set Pamplona
 *			settini@gmail.com
 *
 *	 Función jQuery que facilita la utilicacion de cajas de texto para busquedas,
 *	o formularios de datos,  permitiendo texto por defecto, clase por defecto, 
 *	clase al escribir y la captura del evento al pulsar intro.
 *
 *	Ejemplo de utilización:
 
 ////////////////////////////////////////////////////////////////////////////
 <html>
 <head>
 	<script type="text/javascript" src="jquery-1.4.2.js"></script>
    <script type="text/javascript" src="autoTxt.js"></script>
    <script type="text/javascript">
		$(document).ready(function(){
	           $("#caja").autoTxt({
	                classDefault: "txtBuscarDefault",
		            classTexto: "txtBuscar",
		            txtDefault: "Buscar...",
		            onEnterPress: function(){
		                if($("#caja").val().length < 3){
                            alert("Las busquedas deben ser de un mínimo de 3 carácteres");
                        }else{
                            document.location = "/web/Busqueda.aspx?cad=" + $("#caja").val();
                        }
		            },
		            cancelEnterEvent : true
                });
	        });
	</script>
	<style type="text/css">
	    .txtDefault {
            font-style:italic;
            color: Gray;
        }
	</style>
 </head>

 <body>
	    Buscar: <input type="text" id="caja" />
 </body>
 </html>
 //////////////////////////////////////////////////////////////////////////////
 *
 *	$({1}).autoTxt({2});
 *
 *	{1} -> elemento seleccionado por jQuery
 *	{2} -> opciones: (valores por defecto)
 *			{
 *              classDefault: "",       		// Clase que tiene por defecto
 *              classTexto: "",                 // Clase que tiene al escribir
 *              txtDefault: "",                 // Texto que tiene por defecto
                onEnterPress: function(){},     // Función que se ejecuta al pulsar intro
                cancelEnterEvent : true         // Establece si se debe cancelar el evento por defecto al pultar intro
 *          }
 *               
 *
 ********************************************************************************/
 
(function($) {
	$.fn.autoTxt = function(opciones_user){
		
		//Variables
		
		var opciones = $.extend({},$.fn.autoTxt.opciones_default, opciones_user);
		
		// Leo la lista de objetos jQuery
		$(this).each(function(){
		    
		    //Cargo el elemento
		    var contenedor = this;
			
			if (opciones.classDefault != "")
				$(contenedor).attr("class", opciones.classDefault);
		    
		    $(contenedor).val(opciones.txtDefault);
		    
		    //Cuando el elemento tiene coge el foco
		    $(contenedor).focus(function(){
		        if ($(contenedor).val()==opciones.txtDefault){
		            $(contenedor).val("");
					if (opciones.classTexto != "")
		            	$(contenedor).attr("class", opciones.classTexto);
		        }
		    });
		    
		    //Cuando el elemento pierde el foco
		    $(contenedor).blur(function(){
		        if ($(contenedor).val()==""){
					if (opciones.classDefault != "")
		            	$(contenedor).attr("class", opciones.classDefault);
		            $(contenedor).val(opciones.txtDefault);
		        }
		    });
		    
		    //Cuando se presiona enter
		    $(contenedor).keypress(function(e){
                var code= (e.keyCode ? e.keyCode : e.which);
                if (code == 13){
                    opciones.onEnterPress();
                    if (opciones.cancelEnterEvent)
                        e.preventDefault();
                }
            }); 
		    
		});		
				  
	};
	
	//Opciones por defecto
	$.fn.autoTxt.opciones_default = {
		classDefault: "",
		classTexto: "",
		txtDefault: "",
		onEnterPress: function(){},
		cancelEnterEvent : true
	};
})(jQuery);
