// JavaScript Document
(function($){
	$.fn.extend({
		obligar: function(texto,activeColor,disabledColor){
				/*Recorre todos los elementos encapsulados*/
				this.each(function(){
					/*Aqui se cambia el contexto, por lo que 'this' se refiere al elemento
					DOM por el que se esta pasando*/
					var $this = $(this); //Convertimos a jQuery
					/*Esto es para la primera vez*/
					$this.val(texto);
					$this.css("color","#CCC");
					/*Cuando recibe el foco, si esta el texto por defecto, lo borra y cambia el color*/
					$this.focus(function(){
						if($this.val() == texto){
							$this.val("").css("background-color",activeColor);
							$this.val("").css("color","#000");
						}
					});
					/*Cuando pierde el foco, si esta vacio, pone el texto por defecto y cambia el color*/
					$this.blur(function(){
						if($.trim($this.val()).length==0){
							$this.css("background-color",activeColor);
							$this.val("").css("color",disabledColor).val(texto);
						}
					});
				});
		},
		email:function(){
			var $this = $(this);//convertimos ajquery
			//cuando pierde el foco
			$this.keyup(function(){
				if(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test($this.val())){
					$this.css("color","#000");
				}else{
					$this.css("color","#F00");
				}
			});
		},
		permitir: function(perm){
				var $this = $(this); //Convertimos a jQuery
				$this.keypress(function(e){
					var numeros = "0123456789";
					var caracteres = " abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ";
					var numeros_caracteres = numeros + caracteres;
					var teclas_especiales = [8, 9, 37, 39, 46];
					// 8 = BackSpace, 9 = Tab, 46 = Supr, 37 = flecha izquierda, 39 = flecha derecha
					// Seleccionar los caracteres a partir del parametro de la funcion
					switch(perm) {
						case 'num':
									permitidos = numeros;
									break;
						case 'car':
									permitidos = caracteres;
									break;
						case 'num_car':
									permitidos = numeros_caracteres;
									break;
					}
					// Obtener la tecla pulsada 
					var codigoCaracter = e.keyCode ? e.keyCode : e.which;
					var caracter = String.fromCharCode(codigoCaracter);
					// Comprobar si la tecla pulsada es alguna de las teclas especiales
					// (teclas de borrado y flechas horizontales)
					var tecla_especial = false;
					for(var i in teclas_especiales) {
						if(codigoCaracter == teclas_especiales[i]) {
							tecla_especial = true;
							break;
						}
					}
					// Comprobar si la tecla pulsada se encuentra en los caracteres permitidos
					// o si es una tecla especial
					return permitidos.indexOf(caracter) != -1 || tecla_especial;
				});
		}
	})
})(jQuery);
