//////////////////////////////////////////////////////
//Número decimal, sin separador de miles, con coma como separador decimal, con parte decimal opcional
//Permite coma sin dígitos decimales
//////////////////////////////////////////////////////
function esDecimal(str_cadena)
{
	var patDecimal = /^[0-9]+,?[0-9]*$/
	return(patDecimal.exec(str_cadena))
}

//////////////////////////////////////////////////////
//Número decimal con un máximo de dos decimales
function esEuros(str_cadena)
//////////////////////////////////////////////////////
{
	var patDecimal = /^[0-9]+,?[0-9]{0,2}$/
	return(patDecimal.exec(str_cadena))
}

//////////////////////////////////////////////////////
//Dirección de correo electrónico
//////////////////////////////////////////////////////
function esEmail(str_cadena)
{
	var patEmail = /^[a-zA-Z0-9_]+[\.\-a-zA-Z0-9_]*@([\-a-zA-Z0-9_]+\.)+[a-zA-Z]{2,3}$/
	return(patEmail.exec(str_cadena))
}

//////////////////////////////////////////////////////
//Lista de direcciones de correo electrónico, 
//separadas por punto y coma
//////////////////////////////////////////////////////
function esListaEmails(str_cadena)
{
	var patEmail = /^[a-zA-Z0-9_]+[\.\-a-zA-Z0-9_]*@([\-a-zA-Z0-9_]+\.)+[a-zA-Z]{2,3}(\s*\;\s*[a-zA-Z0-9_]+[\.\-a-zA-Z0-9_]*@([\-a-zA-Z0-9_]+\.)+[a-zA-Z]{2,3})*$/
	return(patEmail.exec(str_cadena))
}

//////////////////////////////////////////////////////
//Fecha con el año con cuatro dígitos, y el mes y el día con uno o dos dígitos.
//Como separador admite "/" y "-"
//Y que sea una fecha sensata, claro: nada de 33s de diciembres; controla además
//la guasa de los años bisiestos y los 29s de febreros
//////////////////////////////////////////////////////
function esFecha(str_cadena)
{
	var int_ano
	var patFecha = /^([0-9]{1,2})[ \/\-]([0-9]{1,2})[ \/\-]([0-9][0-9]([0-9][0-9]))$/
	if(patFecha.exec(str_cadena))
	{
		tbl_resultado = patFecha.exec(str_cadena);
		int_ano = comprobarFecha(tbl_resultado[1],tbl_resultado[2],tbl_resultado[3]);
		if (int_ano == 0)
		{
			return(false);
		}
		else
		{
			return(true);
		}
	}
	else	
	{	
		return(false);
	}
}

//////////////////////////////////////////////////////
//Devuelve 0 si la fecha no es correcta; el año, si es correcta
//////////////////////////////////////////////////////
function comprobarFecha(intDia, intMes, intAnio)
{
	arrDuraciones = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	if(esBisiesto(intAnio))
		arrDuraciones[1]=29;
	if ((intMes>12 || intMes<1) || (intDia>arrDuraciones[intMes-1] || intDia<1))
		return 0;
	else	
		return intAnio;
}
//////////////////////////////////////////////////////
//Se le pasa un año y nos dice si el año es bisiesto o no
//////////////////////////////////////////////////////
function esBisiesto(intAnio)
{
	return(intAnio%4==0 && (intAnio%100!=0 ||intAnio%400==0));
}
