<%

////////////////////////////////////////////////////////////////////////
//
// EhData
// Retorna se uma data eh valida ou nao
//
////////////////////////////////////////////////////////////////////////
function EhData(texto)
{
	var strTexto = new String(texto);
	
	if (strTexto.length == 8 || strTexto.length == 10)
	{
		var strDia = strTexto.substring(0, 2);
		var strMes = strTexto.substring(3, 5);
		var strAno = strTexto.substring(6, strTexto.length);
		
	
		if (!EhNumero(strDia) || !EhNumero(strMes) || !EhNumero(strAno))
			return false;		
	
		if (strTexto.length == 8)
		{
			var nAno = parseInt(strAno);
			
			if (nAno <= 26)
			{
				strAno = "19" + strAno;
			}
			else
			{
				strAno = "20" + strAno;
			}
		}

		return DataOk(strDia, strMes, strAno);
	}


	return false;
}


////////////////////////////////////////////////////////////////////////
//
// DataOk
// Retorna os valores de dia, mes e ano estao corretos
// A funcao nao verifica se os mesmos sao numeros
//
////////////////////////////////////////////////////////////////////////
function DataOk(strDia, strMes, strAno)
{
	var nDia = new Number(strDia);
	var nMes = new Number(strMes);
	var nAno = new Number(strAno);
	
	if (nMes < 1 || nMes > 12)
	{
		return false;
	}
		
	
	
	var aDiaMes = new Array();
	aDiaMes[0]  = 31;
	aDiaMes[1]  = 28;	
	aDiaMes[2]  = 31;
	aDiaMes[3]  = 30;
	aDiaMes[4]  = 31;
	aDiaMes[5]  = 30;
	aDiaMes[6]  = 31;
	aDiaMes[7]  = 31;
	aDiaMes[8]  = 30;
	aDiaMes[9]  = 31;
	aDiaMes[10] = 30;
	aDiaMes[11] = 31;
	
	if ((nAno % 4) == 0)
	{
		aDiaMes[1] = 29;
	}
	
	
	if (nDia < 1 || nDia > aDiaMes[nMes-1])
		return false;
		
	return (nAno > 0);
}

////////////////////////////////////////////////////////////////////////
//
// DataEhMenorIgual
// Retorna se uma data eh menor que a outra
//
////////////////////////////////////////////////////////////////////////
function DataEhMenorIgual(dataMenor, dataMaior)
{
	var strDataMenor = new String(dataMenor);
	var strMenor = new String("");
	if (strDataMenor.length == 10)
	{
		strMenor = strDataMenor.substring(6, 10);
		strMenor += strDataMenor.substring(3, 5);
		strMenor += strDataMenor.substring(0, 2);
	}
	else if (strDataMenor.length == 8)
	{
		strMenor = strDataMenor.substring(6, 8);
		strMenor += strDataMenor.substring(3, 5);
		strMenor += strDataMenor.substring(0, 2);
	}
	
	
	var strDataMaior = new String(dataMaior);
	var strMaior = new String("");
	if (strDataMaior.length == 10)
	{
		strMaior = strDataMaior.substring(6, 10);
		strMaior += strDataMaior.substring(3, 5);
		strMaior += strDataMaior.substring(0, 2);
	}
	else if (strDataMaior.length == 8)
	{
		strMaior = strDataMaior.substring(6, 8);
		strMaior += strDataMaior.substring(3, 5);
		strMaior += strDataMaior.substring(0, 2);
	}	

	return (strMenor <= strMaior);
}

////////////////////////////////////////////////////////////////////////
//
// EhNumero
// Retorna uma string eh um numero inteiro
//
////////////////////////////////////////////////////////////////////////
function EhNumero(texto)
{
	var strNumero = new String(texto);
	var i;
	for (i=0; i < strNumero.length; i++)
	{
		if (isNaN(parseInt(strNumero.charAt(i))))
			return false;
	}
	
	return (strNumero.length > 0);
}


////////////////////////////////////////////////////////////////////////
//
// EhMesAno
// Retorna uma string eh um mes ano valido
//
////////////////////////////////////////////////////////////////////////
function EhMesAno(texto)
{
	var strTexto = new String(texto);
	
	if (strTexto.length == 5 || strTexto.length == 7)
	{
		var strMes = strTexto.substring(0, 2);
		var strAno = strTexto.substring(3, strTexto.length);
		
		if (!EhNumero(strMes) || !EhNumero(strAno))
			return false;
			
		var nMes = new Number(strMes);
		var nAno = new Number(strAno);
		
		return ((nMes > 0 && nMes < 13) && (nAno > 0));
		
	}
	
	return false;
}





////////////////////////////////////////////////////////////////////////
//
// EhValor
// Retorna se uma string eh um valor valido
//
////////////////////////////////////////////////////////////////////////
function EhValor(texto)
{
	var nQtdVirgulas = 0;
	var nQtdPontos   = 0;
	var strNumero = new String(texto);
	var i;
	
	for (i=0; i < strNumero.length; i++)
	{
		if (isNaN(parseInt(strNumero.charAt(i))))
		{
			if (strNumero.charAt(i) == ',')
			{
				if (nQtdVirgulas > 0)
					return false;
				
				if (i == (strNumero.length-1))
					return false;
				
				nQtdVirgulas++;
			}
			else if (strNumero.charAt(i) == '.')
			{
				if (nQtdPontos > 0)
					return false;
					
				if (i == (strNumero.length-1))
					return false;
					
					
				nQtdPontos++;
			}				
			else
			{
				return false;
			}
		}							
	}
	
	if (nQtdPontos > 0 && nQtdVirgulas > 0)
		return false;

	return (strNumero.length > 0);
}




////////////////////////////////////////////////////////////////////////
//
// DataNoPeriodo
// Retorna se uma data estah dentro do periodo determinado
//
////////////////////////////////////////////////////////////////////////
function DataNoPeriodo(DataInicial, DataFinal, DataAtual)
{
	var strDataAtual = new String(DataAtual);

	var AnoInicial = DataInicial.substring(6,8);
	if (AnoInicial<70)
	{
		AnoInicial = "20"+AnoInicial;
	}
	else
	{
		AnoInicial = "19"+AnoInicial;
	}

	var AnoFinal = DataFinal.substring(6,8);
	if (AnoFinal<70)
	{
		AnoFinal = "20"+AnoFinal;
	}
	else
	{
		AnoFinal = "19"+AnoFinal;
	}
	var AnoAtual = strDataAtual.substring(6,8);
	if (AnoAtual<70)
	{
		AnoAtual = "20" + AnoAtual;
	}
	else
	{
		AnoAtual = "19" + AnoAtual;
	}


	var MesInicial = DataInicial.substring(3,5);
	var MesFinal = DataFinal.substring(3,5);
	var MesAtual = strDataAtual.substring(3,5);

	var DiaInicial = DataInicial.substring(0,2);
	var DiaFinal = DataFinal.substring(0,2);
	var DiaAtual = strDataAtual.substring(0,2);

	var nDataAtual = new Date (AnoAtual,MesAtual,DiaAtual );
	var nDataFinal = new Date (AnoFinal,MesFinal,DiaFinal );
	var nDataInicial = new Date (AnoInicial,MesInicial,DiaInicial);
	
	if (nDataAtual < nDataInicial )
	{
		return false;
	}
	
	if (nDataAtual > nDataFinal)
	{
			return false;
	}

	return true;
}
%>