var campos = new Array();
var corCampoAtual = '';

function validacao(campo,tipo,label,min,max,req){
	var i = 0;
	var aux = '';
	var msg = '';
	var msgCab = 'O seguinte erro foi encontrado no formulário:\n\n';
	var valor = campo.value;
	if (campo.style.color == "rgb(255,0,0)") campo.style.color = corCampoAtual;
	tipo = tipo.toUpperCase();
	if (tipo == 'TIT') { 
		aux = validatit(valor,req);
		if (aux != '') {
			msg = 'O campo '+label+' '+aux+'\n';
		}else {
			campo.value = mascara(campo,'###.###.###-##');
		}
	}else if (tipo == 'CPF') {
		aux = validacpf(valor,req);
		if (aux != '') {
			msg = '* O campo '+label+' é '+aux+'\n';
		}else {
			campo.value = mascara(campo,'###.###.###-##');
		}
	}else if (tipo == 'CNPJ') {
		aux = validacnpj(valor,req);
		if (aux != '') {
			msg += '* O campo '+label+' é '+aux+'\n';
		}else {
			if (campo.value.length == 14)	campo.value = mascara(campo,'##.###.###/####-##')
			else campo.value = mascara(campo,'###.###.###/####-##');
		}
	}else if (tipo == 'DATA') {
		aux = formataData(campo,req);
		if (aux != '') {
			msg += '* O campo '+label+' '+aux+'\n';
		}
	}else if (tipo == 'NUMERO') {
		aux = validaNumero(campo,req);
		if (aux != '') {
			msg += '* O campo '+label+' '+aux+'\n';
		}
	}else if (tipo == 'HORA') {
		aux = formataHora(campo,req);
		if (aux != '') {
			msg += '* O campo '+label+' '+aux+'\n';
		}
	}else if (tipo == 'EMAIL') {
		aux = validaemail(valor,req);
		if (aux != '') {
			msg += '* O campo '+label+' é '+aux+'\n';
		}
	}else if (tipo == 'CEP') {
		aux = validacep(valor,min,max,req);
		if (aux != '') {
			if (aux == max) {
				msg += '* '+aux+'\n';
			}else {
				msg += '* O campo '+label+' é '+aux+'\n';
			}
		}else {
			campo.value = mascara(campo,'#####-###');
		}
	}
	if (msg != '') {
		corCampoAtual = campo.style.color;
		alert(msgCab+msg+"\n");
		campo.style.color = "rgb(255,0,0)";
		return false;
	}
	return true;
}

function tiraSimb (valorFormatado){
	var numero = '0123456789';
	var tam = valorFormatado.length;
	var aux = '';
	var ret = '';
	for (var i = 0; i < tam; i++){
		aux = valorFormatado.charAt(i);
		if (numero.indexOf(aux) != -1){
			ret += aux;
		}
	}
	return (ret);
}

function validacaoReq(){
	var i = 0;
	var aux = 0;
	var msg = '';
	var msgCab = 'O formulário tem os seguintes erros:\n\n';
	for (i = 0; i < campos.length; i++){
		label = campos[i].label;
		tipo = campos[i].tipo;
		req = campos[i].req;
		campo	= campos[i].form;
		valor = campo.value;
		min = campos[i].min;
		max = campos[i].max;
		if ((req) && (valor =="")) {
			msg += "- O campo "+label+" é de preenchimento obrigatório;\n";
			if (aux == 0) aux = i;
		}else
		if (tipo == 'TIT') { 
			aux = validatit(valor,req);
			if (aux != '') {
				msg += '- O campo '+label+' é inválido;\n';
			}else {
				campo.value = mascara(campo,'###.###.###-##');
			}
		}else if (tipo == 'CPF') {
			aux = validacpf(valor,req);
			if (aux != '') {
				msg += '- O campo '+label+' é inválido;\n';
			}else {
				campo.value = mascara(campo,'###.###.###-##');
			}
		}else if (tipo == 'CNPJ') {
			aux = validacnpj(valor,req);
			if (aux != '') {
				msg += '- O campo '+label+' é inválido;\n';
			}else {
				if (campo.value.length == 14)	campo.value = mascara(campo,'##.###.###/####-##')
				else campo.value = mascara(campo,'###.###.###/####-##');
			}
		}else if (tipo == 'DATA') {
			aux = formataData(campo,req);
			if (aux != '') {
				msg += '- O campo '+label+' é inválido;\n';
			}
		}else if (tipo == 'NUMERO') {
			/*aux = validaNumero(campo,req);
			if (aux != '') {
				msg += '- O campo '+label+' é inválido;\n';
			}*/
		}else if (tipo == 'HORA') {
			aux = formataHora(campo,req);
			if (aux != '') {
				msg += '- O campo '+label+' é inválido\n';
			}
		}else if (tipo == 'EMAIL') {
			aux = validaemail(valor,req);
			if (aux != '') {
				msg += '- O campo '+label+' é inválido\n';
			}
		}else if (tipo == 'CEP') {
			aux = validacep(valor,min,max,req);
			if (aux != '') {
				if (aux == max) {
					msg += '- O campo '+label+' é inválido\n';
				}else {
					msg += '- O campo '+label+' é inválido\n';
				}
			}else {
				campo.value = mascara(campo,'#####-###');
			}
		}else { 
			if ((req) && (valor=="")) {
				msg = '* O campo '+label+' é obrigatório\n';
			}	
		}
	}
	if (msg != '') {
		alert(msgCab+msg+'\n\nPreencha os dados para continuar !');
		return false;
	}
}
