<!--

/*
	COMO USAR?
	
	Para que todos os campos tenham a mesma verificação digite o codigo de verificação
	no ID do FORM.
	Ex.: <form name="NomeQualquer" id="'',IdUnica" action="PaginaDeEnvio" method="MetodoDeEnvio" >
	
	Para que um campo seja verifica digite o codigo de verificação no ID do CAMPO.
	Ex.: <input name="NomeQualquer" id="'',IdUnica" type="text" value="" />
	
	A mensagem de alerta exibira o texto contido no TITLE do campo.
	Ex.: <input name="NomeQualquer" id="'',IdUnica" type="text" value="" title="Nome" />
	
	Codigos:
	
	## = Verifica se o valor do campo esta vazio.
	NUM# = Verifica se o valor do campo contem apenas números.
	STR# = Verifica se o valor do campo não contem apenas números.
	DAT# = Verifica se o valor do campo é uma data valida.
	HOR# = Verifica se o valor do campo é uma hora valida.
	MOE# = Verifica se o valor do campo é um valor financeiro valida.
	@# = Verifica se o valor do campo é um valor e-mail valida.
	CPF# = Verifica se o valor do campo é um valor CPF valida.
	CNPJ# = Verifica se o valor do campo é um valor CNPJ valida.
	REP# = Verifica se os caracteres digitados não são todos iguais.
	
	Excessões de campos: File, Hidden, Button, Submit, Image, Reset
*/

var count_frms_ids = 0;
//Função que captura verificações da campos.
function $vrf(frm){
	for (var i=0;i<frm.elements.length;i++){
		var elem = frm.elements[i];
		if(elem.id.match(',')){
			var $ArrId = elem.id.split(',');
			for(var j=0;j<$ArrId.length;j++){
				if(elem.type.match('text') || elem.type == 'password'){
					if(elem.id.match("##")){
						if(!$v.vazio(elem)){return false;break;}
					}
					if(elem.id.match("NUM#")){
						if(!$v.numerico(elem)){return false;break;}
					}
					if(elem.id.match("STR#")){
						if(!$v.string(elem)){return false;break;}
					}
					if(elem.id.match("DAT#")){
						if(!$v.data(elem)){return false;break;}
					}
					if(elem.id.match("HOR#")){
						if(!$v.hora(elem)){return false;break;}
					}
					if(elem.id.match("MOE#")){
						if(!$v.moeda_real(elem)){return false;break;}
					}
					if(elem.id.match("@#")){
						if(!$v.email(elem)){return false;break;}
					}
					if(elem.id.match("CPF#")){
						if(!$v.cpf(elem)){return false;break;}
					}
					if(elem.id.match("CNPJ#")){
						if(!$v.cnpj(elem)){return false;break;}
					}
					if(elem.id.match("REP#")){
						if(!$v.repeticao(elem)){return false;break;}
					}
				}
				else if(elem.type == 'radio'){
					if(elem.id.match("##")){
						if(!$v.unradio(elem)){return false;break;}
					}
				}
				else if(elem.type == 'checkbox'){
					if(elem.id.match("##")){
						if(!$v.uncheckbox(elem)){return false;break;}
					}
				}
				else if(elem.type.match('select')){
					if(elem.id.match("##")){
						if(!$v.vazio(elem)){return false;break;}
					}
				}
			}
		}
	}
	return true;
}

var $v = {
	//Verifica se valor do campo está vazio.
	vazio: function(elem){
		if (elem.value == ""){
			alert("O campo "+ elem.title +" é de preenchimento obrigatório!");
			elem.style.background = "#ffffcc";
			elem.focus();
			return false;
		}
		else{
			elem.style.background = "#ffffff";
			return true;
		}
	},
	//Verifica se campo contem apenas números.
	numerico: function(elem){
		if(isNaN(elem.value)){
			alert("O campo "+ elem.title +" deve conter apenas números!");
			elem.style.background = "#ffffcc";
			elem.focus();
			return false;
		}
		else{
			elem.style.background = "#ffffff";
			return true;
		}
	},
	//Verifica se campo não contem números.
	string: function(elem){
		if(!isNaN(elem.value)){
			alert("O campo "+ elem.title +" não deve conter números!");
			elem.style.background = "#ffffcc";
			elem.focus();
			return false;
		}
		else{
			elem.style.background = "#ffffff";
			return true;
		}
	},
	//Verifica se campo radio está checado.
	unradio: function(elem){
		var test = false;
		for(var i=0;i<document.getElementsByName(elem.name).length;i++){
			if(document.getElementsByName(elem.name)[i].checked){
				test = true;
				break;
			}
		}
		if(!test){
			alert("Selecione uma opção no campo "+ elem.title +"!");
			elem.focus();
			return false;
		}
		else return true;
	},
	//Verifica se campo checkbox está checado.
	uncheckbox: function(elem){
		if(!elem.checked){
			alert("Selecione o campo "+ elem.title +"!");
			elem.focus();
			return false;
		}
		else return true;
	},
	//Verifica se data está no formato correto.
	data: function(elem){
		var teste = /^((0?[1-9]|[12]\d)\/(0?[1-9]|1[0-2])|30\/(0?[13-9]|1[0-2])|31\/(0?[13578]|1[02]))\/(\d{2}|\d{4})$/;
		if(!teste.test(elem.value)){
			alert("O valor digitado no campo "+ elem.title +" não está em um formado de data(dd/mm/aaaa) valido!");
			elem.style.background = "#ffffcc";
			elem.focus();
			return false;
		}
		else{
			elem.style.background = "#ffffff";
			return true;
		}
	},
	//Verifica se hora está no formato correto.
	hora: function(elem){
		var teste = /^([0-1]\d?|2[0-3]):[0-5]\d$/;
		if(!teste.test(elem.value)){
			alert("O valor digitado no campo "+ elem.title +" não está em um formado de hora(hh:mm) valido!");
			elem.style.background = "#ffffcc";
			elem.focus();
			return false;
		}
		else{
			elem.style.background = "#ffffff";
			return true;
		}
	},
	//Verifica se Valor financeiro Brasilero está no formato correto.
	moeda_real: function(elem){
		var teste = /^\d{1,3}(\.?\d{3})*\,\d{2}$/;
		if(!teste.test(elem.value)){
			alert("O valor digitado no campo "+ elem.title +" não está em um formado financeiro($,$$) valido!");
			elem.style.background = "#ffffcc";
			elem.focus();
			return false;
		}
		else{
			elem.style.background = "#ffffff";
			return true;
		}
	},
	//Verifica se Valor financeiro Brasilero está no formato correto.
	email: function(elem){
		var teste = /^[\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}\])$/;
		if(!teste.test(elem.value)){
			alert("O valor digitado no campo "+ elem.title +" não está em um formado e-mail valido!");
			elem.style.background = "#ffffcc";
			elem.focus();
			return false;
		}
		else{
			elem.style.background = "#ffffff";
			return true;
		}
	},
	//Verifica se Valor do CPF é valido.
	cpf: function(elem){
		if(!$v.vazio(elem))return false;
		if(!$v.repeticao(elem))return false;
		var VetCPF = new Array(12);
		var DG1, DG2, Tot1, Tot2, I, X, CPF;
		CPF = elem.value;
		if(isNaN(CPF)) CPF = CPF.replace('.','').replace('.','').replace('-','');
		while (CPF.length < 11)CPF = '0' + CPF;
		for (I=1;I<12;I++)VetCPF[I] = CPF.substr(I-1,1);
		Tot1 = 0;Tot2 = 0;X = 1;
		for (I=10;I>=2;I--){Tot1 = Tot1 + VetCPF[X] * I;X++;}
		X = 1;
		for (I=11;I>=2;I--){Tot2 = Tot2 + VetCPF[X] * I;X++;}
		DG1 = Tot1 % 11;DG2 = Tot2 % 11;
		if (DG1 == 0 || DG1 == 1) DG1 = 0;
		else DG1 = 11 - DG1;
		if (DG2 == 0 || DG2 == 1) DG2 = 0;
		else DG2 = 11 - DG2;
		if (parseInt(DG1,10) == parseInt(VetCPF[10],10) && parseInt(DG2,10) == parseInt(VetCPF[11],10) && Tot1 > 0 && Tot2 > 0){
			elem.style.background = "#ffffff";
			return true;
		}
		else{
			alert("O valor digitado no campo "+ elem.title +" não é um CPF valido!");
			elem.style.background = "#ffffcc";
			elem.focus();
			return false;
		}
	},
	//Verifica se Valor do CNPJ é valido.
	cnpj: function(elem){
		if(!$v.vazio(elem))return false;
		if(!$v.repeticao(elem))return false;
		VetCNPJ = new Array(16);
		var DG1, DG2, Tot1, Tot2, I, X;
		var Peso1 = "543298765432";
		var Peso2 = "6543298765432";
		var CNPJ = elem.value;
		if(isNaN(CNPJ))CNPJ = CNPJ.replace('.','').replace('.','').replace('/','').replace('-','');
		while (CNPJ.length < 14) CNPJ = '0' + CNPJ;
		for (I=1;I<=14;I++) VetCNPJ[I] = CNPJ.substr(I-1,1);
		Tot1 = 0;Tot2 = 0;	
		for (I=1;I<=12;I++)	Tot1 = Tot1 + VetCNPJ[I] * parseInt(Peso1.substr(I - 1,1),10);
		for (I=1;I<=13;I++)	Tot2 = Tot2 + VetCNPJ[I] * parseInt(Peso2.substr(I - 1,1),10);
		DG1 = Tot1 % 11;DG2 = Tot2 % 11;
		if (DG1 == 0 || DG1 == 1) DG1 = 0;
		else DG1 = 11 - DG1;
		if (DG2 == 0 || DG2 == 1) DG2 = 0;
		else DG2 = 11 - DG2;
		if (parseInt(DG1,10) == parseInt(VetCNPJ[13],10) && parseInt(DG2,10) == parseInt(VetCNPJ[14],10) && Tot1 > 0 && Tot2 > 0){
			elem.style.background = "#ffffff";
			return true;
		}
		else{
			alert("O valor digitado no campo "+ elem.title +" não é um CNPJ valido!");
			elem.style.background = "#ffffcc";
			elem.focus();
			return false;
		}
	},
	//Verifica se todos os caracteres são iguais
	repeticao: function(elem){
		var texto = elem.value;
		var pri = texto.substr(0,1);
		var x = 0;
		for(var i=1;i<texto.length;i++) if(pri==texto.substr(i,1)) x++;
		if(x==(texto.length-1)){
			alert("O valor digitado no campo "+ elem.title +" não pode conter todos os caracteres iguais!");
			elem.style.background = "#ffffcc";
			elem.focus();
			return false;
		}
		else{
			elem.style.background = "#ffffff";
			return true;
		}
	}
}

//Função que verifica todos os FORMS existentes na pagina.
function $init_vrf(){
	for(var i=0;i<document.forms.length;i++){
		addEvent(document.forms[i], "submit", function(){return $vrf(this);});
		if(document.forms[i].id.match(',')){
			var vrf_global = document.forms[i].id.split(',');
			for(var x=0;x<vrf_global.length;x++){
				for(var j=0;j<document.forms[i].elements.length;j++){
					var $t = document.forms[i].elements[j].type;
					if($t.match('text') || $t == 'password' || $t == 'radio' || $t == 'checkbox' || $t.match('select')){
						if(document.forms[i].elements[j].id) document.forms[i].elements[j].id = vrf_global[x]+','+document.forms[i].elements[j].id;
						else{document.forms[i].elements[j].id = vrf_global[x]+','+count_frms_ids;count_frms_ids++;}
					}
				}
				document.forms[i].id = vrf_global[vrf_global.length-1];
			}
		}
	}
	if(document.forms.length>0)document.forms[0].elements[0].focus();
}

//Insere função inicial no load da pagina.
addEvent(window, "load", $init_vrf);

-->