	/************************************* Expresiones reculares *****************************************/
	/**/
	/**/   var NIF= /^([0-9]{8}[a-zA-Z])$/;        // Valído el número del NIF
	/**/   var NIE= /^\X([0-9]{7}[a-zA-Z]{1})$/;   // Valído el número del NIE
	/**/   var Email = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
	/**/ 
	
	function validar_campo( nombre, val )
		{
				var valor;
				valor=val.value;

				switch (nombre)
					{
					/*********************************************************************************/
					case 'nif':
								valor = val.value.toUpperCase();
								if (valor == 0) {
									return true;
								} else {
									if ( !NIF.exec(valor) ) {
										NoValido(val);
										return false;	
									}else{
										dni="1"+valor.substring(0,valor.length-1);
										dni=parseInt(dni)%100000000; //Quitamos el 1 de delante.
	
										tmp = (dni % 23);
										LetraNIF = dimeLetra (dni % 23);
	
										if (valor.substring(valor.length-1,valor.length)==LetraNIF) 				                                                return true;
										else	return false;
									}
								}
								break;
							
							
							
					/*********************************************************************************/
					case 'nie':
								valor = val.value.toUpperCase();
								if ( !NIE.exec(valor) ) {
									NoValido(val);	
									return false;
								}else{
									dni="1"+valor.substring(1,valor.length-1);
									dni=parseInt(dni)%10000000; //Quitamos el 1 de delante.
									tmp = (dni % 23);
									LetraNIE = dimeLetra (dni % 23);
	
									if (valor.substring(valor.length-1,valor.length)==LetraNIE) return true;
									else return false;
								}
								break;


					
					case 'email':
								if ( !Email.exec(val.value) ) { 
									NoValido(val);
									return false;	
								} else 
									return true;
								break;
								

}
		}
	
	function dimeLetra (tmp)
		{
			switch (tmp) {
			  case 0: LetraNIF = "T"; break;
			  case 1: LetraNIF = "R"; break;
			  case 2: LetraNIF = "W"; break;
			  case 3: LetraNIF = "A"; break;
			  case 4: LetraNIF = "G"; break;
			  case 5: LetraNIF = "M"; break;
			  case 6: LetraNIF = "Y"; break;
			  case 7: LetraNIF = "F"; break;
			  case 8: LetraNIF = "P"; break;
			  case 9: LetraNIF = "D"; break;
			  case 10: LetraNIF = "X"; break;
			  case 11: LetraNIF = "B"; break;
			  case 12: LetraNIF = "N"; break;
			  case 13: LetraNIF = "J"; break;
			  case 14: LetraNIF = "Z"; break;
			  case 15: LetraNIF = "S"; break;
			  case 16: LetraNIF = "Q"; break;
			  case 17: LetraNIF = "V"; break;
			  case 18: LetraNIF = "H"; break;
			  case 19: LetraNIF = "L"; break;
			  case 20: LetraNIF = "C"; break;
			  case 21: LetraNIF = "K"; break;
			  case 22: LetraNIF = "E"; break;
			  case 23: LetraNIF = "T"; break;
			  default: LetraNIF = "Error"; break;
			}
			return LetraNIF;
		}
	
	function NoValido(val) {
		val.style.color = '#FF0000';
	}
