

function Validador(titulo)

{



	var reDigits = /^\d+$/;

	var reDate1 = /^\d{1,2}\/\d{1,2}\/\d{1,4}$/;

	var reDate2 = /^[0-3]?\d\/[01]?\d\/(\d{2}|\d{4})$/;

	var reDate3 = /^(0?[1-9]|[12]\d|3[01])\/(0?[1-9]|1[0-2])\/(19|20)?\d{2}$/;

	var reDate4 = /^((0?[1-9]|[12]\d)\/(0?[1-9]|1[0-2])|30\/(0?[13-9]|1[0-2])|31\/(0?[13578]|1[02]))\/(19|20)?\d{2}$/;

	var reDate5 = /^((0[1-9]|[12]\d)\/(0[1-9]|1[0-2])|30\/(0[13-9]|1[0-2])|31\/(0[13578]|1[02]))\/\d{4}$/;

	var reDate = reDate4;

	

	var reDecimalPt = /^[+-]?((\d+|\d{1,3}(\.\d{3})+)(\,\d*)?|\,\d+)$/;

	var reDecimalEn = /^[+-]?((\d+|\d{1,3}(\,\d{3})+)(\.\d*)?|\.\d+)$/;

	var reDecimal = reDecimalPt;	

	

	var reMoeda = /^\d{1,3}(\.\d{3})*\,\d{2}$/;

	

	var reTime1 = /^\d{2}:\d{2}$/;

	var reTime2 = /^([0-1]\d|2[0-3]):[0-5]\d$/;

	var reTime3 = /^(0[1-9]|1[0-2]):[0-5]\d$/;

	var reTime4 = /^\d+:[0-5]\d:[0-5]\d$/;

	var reTime5 = /^\d+:[0-5]\d:[0-5]\.\d{3}\d$/;

	var reEmail1 = /^[\w!#$%&'*+\/=?^`{|}~-]+(\.[\w!#$%&'*+\/=?^`{|}~-]+)*@(([\w-]+\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;

	var reEmail2 = /^[\w-]+(\.[\w-]+)*@(([\w-]{2,63}\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;

	var reEmail3 = /^[\w-]+(\.[\w-]+)*@(([A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;

	var reEmail = reEmail3;

	this.idDisplayResposta ="Validado";

	this.validado = "Ok";

	this.estado=false;

	this.campos = new Array(10);

	this.obrigatorio = true;

	this.habilite = "";

	this.tamMinimo=1;

	this.isTipo = function(pVal,tipo)

	{		

		return tipo.test(pVal);

	}

	this.Resposta= function(msg)

	{

		if(this.idDisplayResposta =="")

		{

			alert(msg);			

		}

		else

		{

			dpl = document.getElementById(this.idDisplayResposta);

			if(dpl == null)

			{

				alert(msg);				

			}

			else

			{

				

				dpl.innerHTML = msg;

			}

			

		}

	}

	this.Numero = function(id)

	{		

		val = document.getElementById(id).value

		if(this.isTipo(val,reDigits))

		{

			this.Resposta(this.validado);

		}

		else

		{

			this.Resposta("Não é um número válido.");

		}

	}



	this.Decimal = function(id)

	{		

		val = document.getElementById(id).value

		if(this.isTipo(val,reDecimal))

		{

			this.Resposta(this.validado);

			this.verificaNavegacao(id,true);

			return true;

		}				

		if(val != "")

		{

			this.Resposta("Não é um número válido. (ex: 74 ou 85,00)");

			this.verificaNavegacao(id,false);

			return false;

		}

		if(this.obrigatorio)

		{				

			this.Resposta("Campo Obrigatório.");

			this.verificaNavegacao(id,false);

			return false;

		}					

		this.verificaNavegacao(id,true);

		return true;			

		

	}

	

	this.Email=function(id)

	{

		val = document.getElementById(id).value;

		if(this.isTipo(val,reEmail))

		{

			this.Resposta(this.validado);

			this.verificaNavegacao(id,true);

			return true;

		}				

		if(val != "")

		{

			this.Resposta("inválido");

			this.verificaNavegacao(id,false);

			return false;

		}

		if(this.obrigatorio)

		{				

			this.Resposta("Obrigatório.");

			this.verificaNavegacao(id,false);

			return false;

		}

		this.verificaNavegacao(id,true);

		

		return true;			

	

	}

	this.verificaNavegacao = function(id,estado)

	{

		

		if(this.habilite != "")

		{

			this.habilite.navegacao = estado;

		}

		this.estado = estado;

		

	

	}

	this.NotNull= function(id)

	{

		val = document.getElementById(id).value;

		if(val.length < this.tamMinimo)

		{

			this.Resposta("Obrigatório.");

			this.verificaNavegacao(id,false);

			return false;

		}

		else

			this.Resposta(this.validado);

		this.verificaNavegacao(id,true);

		return true;

	}

};

vali  = new Validador();

