function textoNulo(campo)
{
	if (campo.value == null || (campo.value != null && campo.value.length == 0))
	{
        return true;
	}
	
	return false;
}

function validarTextoNulo(campo, texto)
{
	if (campo.value == null || (campo.value != null && campo.value.length == 0))
	{
		alert("No has introducido un valor para campo " + texto + ", que es de introducción obligatoria en este formulario");
        return false;
	}
	
	return true;
}

function validarFecha(campo, texto)
{
	if (!validarTextoNulo(campo, texto))
		return false;
		
	if (campo.value.length != 10 || campo.value.substr(2, 1) != "/" || campo.value.substr(5, 1) != "/")
	{
		alert("El valor que has introducido para " + texto + " no se corresponde al formato de fecha (dd/mm/aaaa)");
		return false;
	}

	var dias;	
	var fecha;
	var dia;
	var mes;
	var anyo;

	dia	= parseInt(campo.value.substr(0, 2), 10);
	mes	= parseInt(campo.value.substr(3, 2), 10);
	anyo	= parseInt(campo.value.substr(6, 4), 10);
	sAnyo 	= new String(anyo);
	
	fecha	= new Date(anyo, mes - 1, dia);

	if (fecha == null)
	{
		alert("El valor que has introducido para " + texto + " no es una fecha válida en formato (dd/mm/aaaa)");
		return false;
	}
	
	if (fecha.getDate() != dia || fecha.getMonth() != (mes - 1) || (fecha.getYear() != anyo && fecha.getYear() != sAnyo.substr(2,2)))
	{
		alert("El valor que has introducido para " + texto + " no es una fecha válida en formato (dd/mm/aaaa)");
		return false;
	}
	
	return true;
}

function validarHora(campo, texto)
{
	if (!validarTextoNulo(campo, texto))
		return false;
		
	if (campo.value.length != 5 || campo.value.substr(2, 1) != ":")
	{
		alert("El valor que has introducido para " + texto + " no se corresponde al formato de de hora (hh:mm)");
		return false;
	}
	
	var hora;
	var minutos;

	hora		= parseInt(campo.value.substr(0, 2));
	minutos		= parseInt(campo.value.substr(3, 2));
	
	if (hora < 0 || hora > 23 || minutos < 0 || minutos > 59)
	{
		alert("El valor que has introducido para " + texto + " no es una hora válida en formato hh:mm");
		return false;
	}
	
	return true;
}

function validarURL(campo, texto)
{
	var tester;
	tester = new RegExp("^([h][t][t][p][:][/][/])([A-Za-z0-9_-]+[.])*[A-Za-z0-9_-]+([:][0-9]+)?([/]|[/]([A-Za-z0-9_-]+[/])*[A-Za-z0-9_-]+)?$", "i");

	if (!tester.test(campo.value))
	{
		alert("Error en la dirección URL correspondiente a " + texto);
		return false;
	}
	
	return true;
}

function validarEmail(campo, texto)
{
	var tester;
	tester = new RegExp("^([A-Za-z0-9_-]+[.])*[A-Za-z0-9_-]+[@]([A-Za-z0-9_-]+[.])*[A-Za-z0-9_-]+$", "i");

	if (!tester.test(campo.value))
	{
		alert("Error en la dirección de correo correspondiente a " + texto);
		return false;
	}
	
	return true;
}