// (c) José Sánchez Moreno - Oxigenow E-Solutions
// www.oxigenow.com

var campoRojo = "";	// En esta variable almacenamos el campo que actualmente está rojo.
// Comprueba que todos los campos que se le pasan como parámetros.

function form(formulario) {
	// Expresiones regulares para controlar los valores del formulario.
	var f = formulario;
	var re_numerico = /^\d*$/;
	var re_float = /^\d*(\.\d*)?$/;
	var re_telefono = /^[\d\s]*$/;
	var re_fecha    = /^(\d{1,2})\/(\d{1,2})\/(\d{2,4})$|^$/;
	var re_email 	 = /^[\w\-\_\.\d]+@[\w\-\_\.\d]+\.[\w\-\_\.\d]+$|^$/;
	var re_image = /(\.(gif|jpg)|^)$/i;
	var fechas = new Array();
	var valido = true;

	for(var i = 0; i < f.elements.length; i++) {
	 	var campo = f.elements[i];
	 	if (campo.id.indexOf("not null") > -1) 		{ valido = campo.value != ""; msg = "Debe introducir un valor para el campo."; }
		if (campo.id.indexOf("number") > -1)		{ valido = valido & re_numerico.test(campo.value); msg = "El valor del campo debe ser numérico.";}
		if (campo.id.indexOf("email") > -1)		{ valido = valido & re_email.test(campo.value); msg = "No es un formato de e-mail válido.";}
	 	if (campo.id.indexOf("date") > -1)		{ fechas.push(campo); valido = valido & re_fecha.test(campo.value); msg = "El formato de fecha no es válido\nEl formato correcto es dd/mm/yy.";}
	 	if (campo.id.indexOf("float")  > -1)    { valido = valido & re_float.test(campo.value); msg = "El campo es un campo númerico con decimales. Debe expresarlo de la forma 123.45";}
	 	if (campo.id.indexOf("image")  > -1)    { valido = valido & re_image.test(campo.value); msg = "El fichero debe ser una imagen en jpg o gif.";}

	 	/*if (func == "telefono") 	{ valido = re_telefono.test(campo.value);	}*/
	 	if (!valido) {
			alert(msg);
			setFocus(campo);
			return false;
	 	}

	}
	for(var i = 0; i < fechas.length; i++) {
		if(re_fecha.exec(fechas[i].value) && fechas[i].value != "") {
			fechas[i].value = RegExp.$3 + "-" + RegExp.$2 + "-" + RegExp.$1;
		}
	}
	return true;
}
function setFocus(campo) {
	campo.style.borderColor="red";
	campo.style.borderWidth="2px";
	campo.style.borderStyle="dashed";
	campoRojo = campo;
	campo.focus();
}

function quitarRojo() {
	if(campoRojo) {
		campoRojo.style.borderColor="";
		campoRojo.style.borderStyle="inset";
		campoRojo ="";
		//if(typeof(cerrarMensaje) == "function") { cerrarMensaje(); }

	}
}

function verTecla(e) {
	if(window.event) {
		if(window.event.srcElement == campoRojo) quitarRojo();
	} else {
		if(e.target == campoRojo) quitarRojo();
	}
}

function check_campos_blur(campo, event)
{
	name = campo ? getItemName(campo.name) : "";
	if(name == "llamada_hora" || name == "entrevista_hora")
	{
		hora = eval("document.f_module_llamadas." + name);
								
		hora_value = hora.value.replace(/(\d{2})$/, ":$1");
		// Ahora comprobamos la hora.		

		if(hora_correcta(hora_value))  {
			hora.value = hora_value;
		
		} else {	
			alert("La El format de hora no es correcta");
			setFocus(campo);			
			return false;
		}
	}
	return true;
}



document.onkeydown = verTecla;