/*
	Biblioteca de Validacão de strings, utilizando expressões regulares
	Autor: Jony

	Ultima Atualização: 15/11/2002

*/

// Função para verificar se a string asData é uma data válida, no formato MM/DD/AAAA
function ValidaData()
{
	var er = /^((([0-2][0-9])|(3[01]))[\/]?(((0[13578])|(1[02])))*|((([0-2][0-9])|(30))[\/]?((0[469])|(11)))*|([0-2][0-9][\/]?02))[\/]?\d{4}$/;

	var sData = arguments[0];

	// Verifico se o ano não é bisexto e se o mês é fevereiro e  se o dia > 29
	if ( ValidaExpressao(er, sData) )
	{
		er = /(29\/02)/i;
		// Verifico se a a data é 29/02, se for, verifico se o ano é bisexto
		if ( !sData.search(er) )
		{

			// Busco o ano
			var sAno = sData.substr(6,4);
			var iAno = parseInt(sAno);

			// Verifico se o ano é valido se o mesmo é divisível por 4
			var sResultado = String(iAno / 4 );
			if ( sResultado.indexOf(".") > 0 )
			{
				return false;
			}
			else
			{
				return true;
			}
		}
	   else return true;

	}
	return false;
}


// Função para verificar se a string asEmail é um email válido
function ValidaEmail()
{
	var er = /[A-Za-z0-9_.-]+@([A-Za-z0-9_]+\.)+[A-Za-z]{2,3}/;

	return ValidaExpressao(er, arguments[0])

}

// Função que valida data no formato mm/yyyy
function ValidaMesAno()
{
	var er = /^((0[1-9])|(1[0-2]))\/(\d{4})$/;

	return ValidaExpressao(er, arguments[0]);
}

// Função que valida hora no formato HH:MM
function ValidaHora()
{
	var er = /^([0-1][0-9]|2[0-3]):[0-5][0-9]$/;

	return ValidaExpressao(er, arguments[0]);
}

// Função que valida chave de usuário da petrobras( 4 caracteres)
function ValidaChave( )
{
	var er = /^([A-Za-z0-9]){4}$/;

	return ValidaExpressao(er, arguments[0]);
}

// Função que valida CEP - permite Validar CEP Brasileiro
//com 8 posicoes podendo usar mascara . e - ou somente numeros
function ValidaCEP()
{
	var er = /(^\d{5}-\d{3}|^\d{2}.\d{3}-\d{3}|\d{8})$/;

	return ValidaExpressao(er, arguments[0]);

}

// Função que valida telefone
// Exemplos:  [(12) 123 1234], [(01512) 123-1234], [(0xx12) 1234-1234]
function ValidaTelefone()
{
	var er = /^\(([0-9]{2}|0{1}((X|x|[0-9]){2}[0-9]{2}))\)\s*[0-9]{3,4}[- ]{1}[0-9]{4}$/;

	return ValidaExpressao(er, arguments[0]);

}

// Função que valida estados brasileiros
function ValidaEstado()
{
	var er = /^(ac|AC|al|AL|am|AM|ap|AP|ba|BA|ce|CE|df|DF|es|ES|go|GO|ma|MA|mg|MG|ms|MS|mt|MT|pa|PA|pb|PB|pe|PE|pi|PI|pr|PR|rj|RJ|rn|RN|ro|RO|rr|RR|rs|RS|sc|SC|se|SE|sp|SP|to|TO)$/;

	return ValidaExpressao(er, arguments[0]);

}

// Função que verifica se a string é vazia(execetuando os espaços)
///(^\s+)|(\s+$)/g
function ValidaTexto()
{
	var er = /(^\s+)/;
	return ValidaExpressao(er, arguments[0]);
}

// Função que valida inteiro
function ValidaInteiro()
{
	//var er = /^(^[A-Z]^[a-z][0-9])$/; está errado
	// para teste
	var er = /^\d*$/;
	return ValidaExpressao(er, arguments[0]);
}

// função que valida um float
function ValidaFloat()
{
	var er = /^\d*\.?\d*$/;
	return ValidaExpressao(er, arguments[0]);
}

// função que verifica a existência de tags no html
function ValidaTags()
{
	var er = /(^\s+)|(\s+$)/;
	return ValidaExpressao(er, arguments[0]);
}

// Função que verifica a string asValor atende a expressão regular asER
function ValidaExpressao(asER, asValor)
{
	if ( asER.test( asValor ) )
	{
		return true;
	}
	else
	{
		return false;
	}

}