function ValidarCampo(campo, tipovalidacion, obligatorio, texto1, texto2) {
	if (obligatorio==true){
		if (campo.value == "") {
			alert(texto1); 
			campo.select() 
			campo.focus() 
			return false; 
		}
	}
	else {
		if (campo.value == "") {
			return true; 
		}	
	}
	switch (tipovalidacion) { 
    case 1:  // solo números
			var validos = '0123456789';
			if (CompruebaCaracteres(campo, validos, texto2)==false) return false;
			break
/*
			valor = parseInt(campo.value);
			if (isNaN(valor)) { 
				alert(texto2); 
				campo.select() 
				campo.select() 
				campo.focus() 
  	    return false;
    	}
			else { 
				campo.value=valor;
       	return true;
	    } 
*/
			break 
		case 2: // sin restricción
       break 
		case 3: // emilio
			var texto
			var posicionArroba
			var posicionPunto
			var posicionEspacio
			var arrobamasuno

			texto=campo.value;

			// buscamso la arroba.
			posicionArroba = texto.indexOf("@", 1);
			if (posicionArroba==-1 || posicionArroba==1 || posicionArroba==texto.length-1) {
				devolucionFalse(campo, 'no es una dirección de e-mail correcta');
				return false;
			}
		
			arrobamasuno=posicionArroba+1
			//buscamos el punto después de la arroba			
			posicionPunto = texto.indexOf(".", arrobamasuno);
			if (posicionPunto==-1 || posicionPunto==arrobamasuno || posicionPunto==texto.length-1) {
				devolucionFalse(campo, 'no es una dirección de e-mail correcta');
				return false;
			}
			
			posicionEspacio = texto.indexOf(" ", 1);
			if (posicionEspacio!=-1) {
				devolucionFalse(campo, 'no es una dirección de e-mail correcta');
				return false;
			}

			return true;
      break 
		case 4: // solo letras
			var validos = 'abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ';
			if (CompruebaCaracteres(campo, validos, texto2)==false) return false;
			break
		case 5: // sin espacios
			var texto
			var posicionEspacio

			texto=campo.value;

			// buscamso la arroba.
			posicionEspacio = texto.indexOf(" ", 1);

			if (posicionEspacio!=-1) {
				devolucionFalse(campo, 'el campo no admite espacios');
				return false;
			}
		
			return true;
      break 
		case 6: // validar contraseña
			//debe tener un minimo de 8 caracteres
			if (campo.value.length < 8) {
				devolucionFalse(campo, 'el campo debe tener una logintud mínima de 8 caracteres');
				return false;
			}
			//debe contener mayusculas
			var validos = 'ABCDEFGHIJKLMNÑOPQRSTUVWXYZ';
			if (compruebaCaracteresContrasenia(campo, validos)==false) {
				devolucionFalse(campo, 'el campo debe contener mayusculas');
				return false;
			}

			//debe contener minusculas
			var validos = 'abcdefghijklmnñopqrstuvwxyz';
			if (compruebaCaracteresContrasenia(campo, validos)==false) {
				devolucionFalse(campo, 'el campo debe contener minusculas');
				return false;
			}

			//debe contener numeros
			var validos = '0123456789';
			if (compruebaCaracteresContrasenia(campo, validos)==false) {
				devolucionFalse(campo, 'el campo debe contener números');
				return false;
			}
			return true;
      break 
    case 7:  // numeros con decimales
			var validos = '0123456789.,';
			if (CompruebaCaracteres(campo, validos, texto2)==false) return false;
			break			
    default: 
	} 
}
function ValidarFecha(campodia, campomes, campoanio, testo1) {
var dia=campodia.value;
var mes=campomes.value;
var anio=campoanio.value;

	if (ValidarCampo(campodia, 1, false, '', 'este campo solo admite valorers numéricos')==false) return false;
	if (ValidarCampo(campomes, 1, false, '', 'este campo solo admite valorers numéricos')==false) return false;
	if (ValidarCampo(campoanio, 1, false, '', 'este campo solo admite valorers numéricos')==false) return false;

	if (dia==''&&mes==''&&anio=='') return true;

	if ((dia!=''||mes!=''||anio!='')&&(dia==''||mes==''||anio=='')) {
		alert(testo1);
		campodia.focus();
		campodia.select();
		return false; 
	}

	if (anio.length!=4) {
		alert('Introduzca el año con 4 dígitos');
		campoanio.select();
		campoanio.focus();
		return false; 
	}

	if (mes>12) {
		alert('El campo mes no puede ser superior a 12');
		campomes.select() 
		campomes.focus() 
		return false;
	}

	if (mes==1||mes==3||mes==5||mes==7||mes==8||mes==10||mes==12) {
		if (dia>31) {
			alert('El campo día no puede ser superior a 31');
			campodia.select() 
			campodia.focus() 
			return false;
		}
	}
	if (mes==4||mes==6||mes==9||mes==11) {
		if (dia>30) {
			alert('El campo día no puede ser superior a 30');
			campodia.select() 
			campodia.focus() 
			return false;
		}
	}
	if (mes==2) {
		if (dia>29) {
			alert('El campo día no puede ser superior a 29');
			campodia.select() 
			campodia.focus() 
			return false;
		}
	}
}

function devolucionFalse(campo, mensaje) {
	alert(mensaje); 
	campo.select() 
	campo.focus() 
	return false;
}
function  CompruebaCaracteres(campo, validos, mensaje) {
	var res = 1;
	var temp;
	
	for (var i=0; i<campo.value.length; i++) {
		temp = '' + campo.value.substring(i, i+1);
		if (validos.indexOf(temp) == -1) res = 0;
	}
	
	if (res == 0) {
		alert(mensaje); 
		campo.select();
		campo.focus(); 
		return false;
	}
	return true;	
}
function  compruebaCaracteresContrasenia(campo, validos) {
	var res = 0;
	var temp;

	for (var i=0; i<validos.length; i++) {
		temp=validos.substring(i, i+1);

		if (campo.value.indexOf(temp)!= -1) {
			res=1;
			break;
		}
	}
	return res;	
}
