// JavaScript Document

//************** VALIDAR CAMPOS *********************
//Definimos una matriz con todas las validaciones que vamos a realizar
//indicando el campo a validar y las comprobaciones que se llevarán a cabo
//La variable errores contendrá todos los errores que se produzcan
//para luego mostrarlos en un mensaje de alerta al usuario

//R - Requerido, L - Literal, N - Numerico, E - Email, T - Minimo requerido

	var requeridos=''; literales=''; cadena=''; numericos=''; direccion=''; minimos=''; hayErrores=false;
	var validaciones = new Array();
	validaciones[0]=["document.miForm.txt_Usuario","R"];
	validaciones[1]=["document.miForm.txt_Password","R"];
	validaciones[2]=["",""];
	
function validarCampos(){
var msg1=''; msg2=''; msg3=''; msg4=''; msg5=''; hayErrores=false;
	for (var i=0; i<validaciones.length; i++){
		campo=eval(validaciones[i][0]);
		evaluar=validaciones[i][1];
		for (var j=0; j<evaluar.length; j++){
			comprueba=evaluar.charAt(j);
			switch (comprueba){
				case "R": esRequerido(campo); break;
				case "T": minimoRequerido(campo); break;
			}
		}
	}

	//Mostramos todos los errores
	if (requeridos.length>0){ 
		msg1="Los siguientes campos son obligatorios:\n" + requeridos + "\n";
		//reinicializamos requeridos, por si la pagina no se actualiza y vuelve a tener errores
		requeridos=''; hayErrores=true;
	}

	if (minimos.length>0){ 
		msg5="Los siguientes campos no son válidos:\n" + minimos + "\n";
		//reinicializamos requeridos, por si la pagina no se actualiza y vuelve a tener errores
		minimos=''; hayErrores=true;
	}

	if (hayErrores){
		alert(msg1 + msg5 + "Aparecerán resaltados para que pueda rellenarlos con mas comodidad.");
		return false;
	}
	return true;
}

function resaltarCampo(c){
			//Verificamos si alguna funcion no lo habia resaltado previamente
			if (c.style.color != 'red'){
					c.style.borderColor='red';
					c.style.color='red';
			}
}
function reiniciarCampo(c){
			//Verificamos si alguna funcion no lo habia reiniciado previamente
			if (c.style.color != '#403c78') {
					c.style.borderColor='#403c78';
					c.style.color='#403c78';
			}
}


//Funcion para validar campos requeridos, es decir, que no pueden quedar vacíos
//cambiaremos el color del borde para resaltar lo que se debe completar obligatoriamente
function esRequerido(contenido){
		if ((estaVacia(contenido.value)) && (contenido.disabled==false)){
			requeridos += "- " + contenido.id + "\n";
			resaltarCampo(contenido);
		}else{
			//si el campo despues rellenarlo ya correctamente, modficamos su estilo
			reiniciarCampo(contenido);
		}
}

//Esta función verifica si esta vacio el campo o si se usan espacios en blanco
//para engañar al formulario. Para ello definimos los caracteres de espacio en blanco, saltos, tabuladores 
//y pequeños trucos javascript que podria introducir el usuario.Buscamos en la cadena a ver si hay caracteres 
//que NO sean espacios o trucos javascript
function estaVacia(c){
	var trucos=" \t\n\r";
	if ((c == null) || (c.length == 0))	return true;
	for (var i=0; i<c.length; i++){
		if (trucos.indexOf(c.charAt(i))==-1) return false;
	}
	return true;
}


function minimoRequerido(contenido){
var valor=contenido.value
var c=contenido.name;
var digitos=0;
	switch (c){
		case 'txt_Usuario': digitos=6; break;
		case 'txt_Password': digitos=6; break;
	}
	//si no esta vacio el campo o si esta desactivado
	if (valor.length > 0){
			if (valor.length < digitos){ 
				minimos += "- El campo " + contenido.id + " debe tener " + digitos + " digitos.\n";
				resaltarCampo(contenido);
			}else{
				reiniciarCampo(contenido);
			}
	}
}