function getFechaActual() {
	var fechaActual = new Date();
	var strDate = "";
	strDate += (fechaActual.getDate()<10) ? "0" + fechaActual.getDate() : fechaActual.getDate();
	strDate += "-";
	strDate += ((fechaActual.getMonth()+1)<10) ? "0" + (fechaActual.getMonth() + 1) : (fechaActual.getMonth() + 1);
	strDate += "-";
	strDate += (fechaActual.getFullYear()<10) ? "0" + fechaActual.getFullYear() : fechaActual.getFullYear();
	
	return strDate;
}

function mostrarFecha() {
	var strDate = getFechaActual();
	return (strDate=="") ? "(?)" : strDate;
}

function applyErrorMessage(campo, nombreCampo, tipoError) {
	campo.focus();
	errorMsg = "";
	switch(tipoError) {
		case 1 :
			errorMsg = messages["error_01"];
			break;
		case 2 :
			errorMsg = messages["error_02"];
			break;
		case 3 :
			errorMsg = messages["error_03"];
			break;
		default :
			errorMsg = messages["gen_1"] + " '" + nombreCampo + "' " + messages["gen_2"];	
	}
	alert(errorMsg);
	return false;
} 

/* Validaciones de formulario de modificación */
function validaFormRqtPass(formulario) {
	if(formulario.login.value=="")
		return applyErrorMessage(formulario.login, "Login", 0);
	else if(validaEmail(formulario.mail.value)==false) 
		return applyErrorMessage(formulario.mail, "mail", 0);
	return true;
}

/* Validaciones de formulario de modificación */
function validaFormUser(formulario) {
	if(validaDNI(formulario.CIF.value)==false)
		return applyErrorMessage(formulario.CIF, "CIF", 0);
	else if(validaEmail(formulario.mail.value)==false)
		return applyErrorMessage(formulario.mail, "mail", 0);
	else if(validaEmpresa(formulario.empresa.value)==false)
		return applyErrorMessage(formulario.empresa, "empresa", 0);
	else if(validaTelefono(formulario.telefono.value)==false)
		return applyErrorMessage(formulario.telefono, "telefono", 0);
	return true;
}
/* Valida formulario de alta o modificación de usuario (lista de usuarios)*/
function validaFormListUser(form, isNew) {
	var passAuto = (form.genPassword==null) ? false : form.genPassword.checked;
	
	if(isNew && form.login.value=="")
		return applyErrorMessage(form.login, null, 1);
	else if(!passAuto && form.passwordNew1.value=="")
		return applyErrorMessage(form.passwordNew1, null, 2);
	else if(!passAuto && form.passwordNew1.value!=form.passwordNew2.value)
		return applyErrorMessage(form.passwordNew1, null, 3);
	else if(form.nombre.value=="")
		return applyErrorMessage(form.nombre, "nombre", 0);	
	else if(form.apellidos.value=="")
		return applyErrorMessage(form.apellidos, "apellidos", 0);
	else if(validaCIF(form.CIF.value)==false)
		return applyErrorMessage(form.CIF, "CIF", 0);
	else if(validaEmail(form.mail.value)==false)
		return applyErrorMessage(form.mail, "mail", 0);
	else if(validaEmpresa(form.empresa.value)==false)
		return applyErrorMessage(form.empresa, "empresa", 0);
	else if(validaTelefono(form.telefono.value)==false)
		return applyErrorMessage(form.telefono, "teléfono", 0);
        else if(validarEntero(form.reports.value)==false)
                return applyErrorMessage(form.reports, "informes", 0);
	return true;
}
/* Valida formulario de cambio de password*/
function validaFormPasswords(form) {
	var pNew1 = form.passwordNew1.value;
	var pNew2 = form.passwordNew2.value;
	
	if(pNew1=="") {
		/*
		alert("Debe introducir el password nuevo.");
		form.passwordNew1.focus();
		return false;
		*/
		return applyErrorMessage(form.passwordNew1, null, 2);
	}
	else if(pNew1!=pNew2) {
		/*
		alert("Debe repetir correctamente el password.");
		form.passwordNew1.focus();
		return false;
		*/
		return applyErrorMessage(form.passwordNew1, null, 3);
	}
	return true;
}
function validaCIF(cif) {
	if(cif=="")
		return false;
	else 
		return true;
}
function validaDNI(dni) {
	if(dni==null || dni==""|| dni.length!=9)
		return false;
	
	var dni=dni.substring(0,dni.length-1);
	var letra=dni.charAt(dni.length-1);
	var cadena = "TRWAGMYFPDXBNJZSQVHLCKET";
	var posicion = dni % 23;
	var letra = cadena.substring(posicion,posicion+1);
	if (letra!=letra.toUpperCase())
		return false;
	else 
		return true;
}
function validaEmpresa(empresa) {
	if(empresa==null || empresa=="") 
		return false;
	else
		return true;
}
function validaTelefono(tlf) {
    var stripped = tlf.replace(/[\(\)\.\-\ ]/g, '');    

   if (tlf.value == "") {
        return false;
    } else if (isNaN(parseInt(stripped))) {
        return false;
    }
    /* else if (!(stripped.length == 9)) {
        return false;
    }*/
    return true;
}
function validaEmail(mail) {
    var tmail = mail.replace(/^\s+|\s+$/, '');           // value of field with whitespace trimmed off
    var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
   
    if (mail.value == "") {
        return false;
    } else if (!emailFilter.test(tmail)) {              //test email for illegal characters
        return false;
    } else if (mail.match(illegalChars)) {
        return false;
    }
	
	return true;
}

// Cambia el estado de los campos password (nuevo usuario)
function cambiaEstado(form) {
	form.passwordNew1.disabled = form.genPassword.checked;
	form.passwordNew2.disabled = form.genPassword.checked;
}
// Cambia el estado de los campos password (modificaci�n de usuario)
function cambiaEstadoMod(form) {
	form.passwordNew1.disabled = !form.genPassword.checked;
	form.passwordNew2.disabled = !form.genPassword.checked;
}

// Valida un número entero
function validarEntero(valor){
     pattern = /^([0-9])*$/;
     return pattern.test(valor);
}
