// Procedimientos para facilitar la validación
// Escrito por Luis A. Garcia

function validarmail(str) {
	var filtro=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	if (!filtro.test(str)) return false
	return true
}

// Valida la fecha en 'dd/mm/aaaa'
function validarfecha(str) {
	var filtro=/^[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{4}$/i
	if (!filtro.test(str)) return false
	return true
}

function isNumeric(cadena) {
	var permitidos = "0123456789";
	var valido = true;
	var actual;
	for (i = 0; i < cadena.length && valido == true; i++) { 
		actual = cadena.charAt(i); 
		if (permitidos.indexOf(actual) == -1) {
			valido = false;
		}
	}
	return valido;
}

function tieneEspacio(cadena) {
	cadena = trim(cadena)
	var pos = cadena.indexOf(' ')
	if (pos>=0)
		return true
	return false
}

function trim(cadena) {
    return cadena.replace(/^[\s]+/,'').replace(/[\s]+$/,'').replace(/[\s]{2,}/,' ')
}

// ----------- Inician las Validaciones  -----------

function validar_contacto(frm) {
	if (frm.nombre.value.length<5) {
		alert("Porfavor escribe tu nombre completo.")
		frm.nombre.focus()
		return false
	}
	if ((!frm.email.value)||(!validarmail(document.contacto.email.value))) {
		alert("Escribe una dirección de correo electrónico válida y que esté activa.")
		frm.email.focus()
		return false
	}
	if (frm.telefono.value) {
		if ((frm.telefono.value.length<10)||(!isNumeric(frm.telefono.value))||(frm.telefono.value=="0")) {
			alert("Debes escribir tu número telefónico donde podamos localizarte en horarios de oficina, incluyendo la clave Lada.")
			frm.telefono.focus()
			return false
		}
	}
	if (!frm.estado.value) {
		alert("Debes seleccionar tu Estado de residencia antes de continuar.")
		frm.estado.focus()
		return false
	}
	if (!frm.comentario.value) {
		alert("Para poder atenderte mejor, es necesario que escribas tu comentario detallado.")
		frm.comentario.focus()
		return false
	}
	return true
}

function validar_login(frm) {
	if (!frm.usr.value) {
		alert("Escriba su nombre de usuario.")
		frm.usr.focus()
		return false
	}
	if (!frm.pwd.value) {
		alert("Escriba su contraseña para iniciar sesión.")
		frm.pwd.focus()
		return false
	}
	return true
}

function modificar_usuario(frm) {
	if ((frm.usr.value.length<4) || (tieneEspacio(frm.usr.value))) {
		alert("Escriba un nombre de usuario entre 4 y 20 carácteres y que no tenga espacios.")
		frm.usr.focus()
		return false
	}
	if ((frm.pwd.value) || (frm.pwd2.value)) {
		if (frm.pwd.value.length<6) {
			alert("Escribe una contraseña que tenga entre 6 y 12 carácteres, o déjelo en blanco si no desea modificarla.")
			frm.pwd.focus()
			return false
		}
		if (frm.pwd.value!=frm.pwd2.value) {
			alert("Las contraseñas que ha escrito no coinciden. Inténtelo de nuevo.")
			frm.pwd.value = ""
			frm.pwd2.value = ""
			frm.pwd.focus()
			return false
		}
	}
	if (frm.nombre.value.length<5) {
		alert("Porfavor escriba un nombre completo del usuario.")
		frm.nombre.focus()
		return false
	}
	if ((!frm.email.value)||(!validarmail(document.usuario.email.value))) {
		alert("Es importante que escriba una dirección de correo electrónico válida y que esté activa.")
		frm.email.focus()
		return false
	}
	if ((frm.habil.value==0) && (frm.mostrarAviso.value==1)) {
		if (!confirm("Ha marcado a este usuario como Deshabilitado.\nNo podrá accesar al Panel la próxima vez que intente iniciar sesión.\n¿Realmente desea continuar?")) {
			frm.habil.focus()
			return false
		}
	}
	return true
}

function agregar_usuario(frm) {
	if ((frm.usr.value.length<4) || (tieneEspacio(frm.usr.value))) {
		alert("Escriba un nombre de usuario entre 4 y 20 carácteres y que no tenga espacios.")
		frm.usr.focus()
		return false
	}
	if ((frm.pwd.value) || (frm.pwd2.value)) {
		if (frm.pwd.value.length<6) {
			alert("Escribe una contraseña que tenga entre 6 y 12 carácteres, o déjelo en blanco si no desea modificarla.")
			frm.pwd.focus()
			return false
		}
		if (frm.pwd.value!=frm.pwd2.value) {
			alert("Las contraseñas que ha escrito no coinciden. Inténtelo de nuevo.")
			frm.pwd.value = ""
			frm.pwd2.value = ""
			frm.pwd.focus()
			return false
		}
	}
	if (frm.nombre.value.length<5) {
		alert("Porfavor escriba un nombre completo del usuario.")
		frm.nombre.focus()
		return false
	}
	if ((!frm.email.value)||(!validarmail(document.usuario.email.value))) {
		alert("Es importante que escriba una dirección de correo electrónico válida y que esté activa.")
		frm.email.focus()
		return false
	}
	return true
}

function validar_noticia(frm) {
	if (frm.titulo.value.length<4) {
		alert("Escriba el título de la noticia.")
		frm.titulo.focus()
		return false
	}
	if (!validarfecha(frm.fecha.value)) {
		alert("Escriba un fecha válida en formato 'DD/MM/YYYY'.\nPor ejemplo: 24/12/2007.")
		frm.fecha.focus()
		return false
	}
	if (!frm.texto.value) {
		alert("Escriba el texto de la noticia.")
		frm.texto.focus()
		return false
	}
	return true
}

