function VerificaDados(form) {
	for (i = 0; i < requiredfields.length; i++) {
		obj = form[requiredfields[i]];
		if (obj.value == "") return erro(requireddescs[i],requiredfields[i],obj);
	}
	return true;
}

function erro(desc,campo,obj) {
	alert("O Campo '" + desc + "' tem que ser preenchido!");
	obj.focus();
	return false;
}

function ExcluirDados(form) {
	form.S_action.value = "3";
	form.submit();
}

function verificaEmail(obj)
{
	if (obj.value == "") return true;
	var filtro = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	if (filtro.test(obj.value) == false) return erroForm(obj, 'E-mail');
	else return true;
}

function verificaCPF (obj) {
	
	if (obj.value == "") return true;
	
	var soma1, soma2, s1, s2;

	var form = obj.form;
	var cpf  = obj.value;

	var str_cpf = "";
	var verifzero = 0;

	for (i = 0; i <= cpf.length - 1; i++)
	if ((cpf.charAt(i)).match(/\d/)) {
		str_cpf += cpf.charAt(i);
		verifzero+=cpf.charAt(i);
	}
	else if (!(cpf.charAt(i)).match(/[\.\-]/)) return erroForm(obj, 'CPF');

	if (str_cpf.length != 11) return erroForm(obj, 'CPF');

	if (verifzero==0) return erroForm(obj, 'CPF');

	if (str_cpf==11111111111 || str_cpf==22222222222 || str_cpf==33333333333 || str_cpf==44444444444 || str_cpf==55555555555 || str_cpf==66666666666 || str_cpf==77777777777 || str_cpf==88888888888 || str_cpf==99999999999) return erroForm(obj, 'CPF');

	soma1 = soma2 = 0;
	for (i = 0; i <= 8; i++) {
		soma1 += str_cpf.charAt(i) * (10-i);
		soma2 += str_cpf.charAt(i) * (11-i);
	}
	s1 = ((soma1 * 10) % 11) % 10;
	s2 = (((soma2 + (s1 * 2)) * 10) % 11) % 10;

	if ((s1 != str_cpf.charAt(9)) || (s2 != str_cpf.charAt(10))) return erroForm(obj, 'CPF');

	return true;
}

function verificaCEP(obj)
{
	cep = obj.value;
	cepDesformatado = cep.substr(0,2)+cep.substr(3,3)+cep.substr(7,3);

	if (cep != "")
	{
		if (cep.length < 10) return erroForm(obj, 'CEP');
		else if (cepDesformatado.length != 8) return erroForm(obj, 'CEP');
		else if ((cepDesformatado / 1) == 0) return erroForm(obj, 'CEP');
		else if ((cepDesformatado.substr(2,6)/1) == 0) return erroForm(obj, 'CEP');
		else if ((cepDesformatado == "11111111") || (cepDesformatado == "22222222") || (cepDesformatado == "33333333") || (cepDesformatado == "44444444") || (cepDesformatado == "55555555") || (cepDesformatado == "66666666") || (cepDesformatado == "77777777") || (cepDesformatado == "88888888") || (cepDesformatado == "99999999")) return erroForm(obj, 'CEP');
	}
	return true;
}

function verificaChassi(obj)
{
	if (obj.value == "") return true;
	
	form = obj.form;
	obj2 = eval("document." + form.name + ".AV_S_chassi");
	if (obj.value.length < 17) return erroForm(obj, 'CHASSI');
	else if (obj2.value.toLowerCase() != obj.value.toLowerCase()) return erroForm(obj, 'Confirmação de Chassi');
	else return true;
}

function verificaPlaca(obj)
{
	if (obj.value == "") return true;
	
	form  = obj.form;
	obj2  = eval("document." + form.name + ".AV_S_placa");
	
	var er = /[a-z]{3}-?\d{4}/gim;
	er.lastIndex = 0;

	if (obj.value.length < 8)     return erroForm(obj, 'PLACA');
	else if (!er.test(obj.value)) return erroForm(obj, 'PLACA');
	else if (obj2.value.toLowerCase() != obj.value.toLowerCase()) return erroForm(obj, 'Confirmação de Placa');
	else return true;
}

function VerificaData(obj)
{
	data = obj.value;
	if (data.length == 6) data = data.substr(0,2) + '/' + data.substr(2,2) + '/' + '20'  + data.substr(4,2);

	if (data != "")
	{
		erro     = 0;
        hoje     = new Date();
        anoAtual = hoje.getFullYear();
        barras   = data.split("/");
        if (barras.length == 3)
		{
			dia = barras[0];
			mes = barras[1];
			ano = barras[2];
			//resultado = (!isNaN(dia) && (dia > 0) && (dia < 32)) && (!isNaN(mes) && (mes > 0) && (mes < 13)) && (!isNaN(ano) && (ano.length == 4) && (ano <= anoAtual && ano >= 1900));
			resultado = (!isNaN(dia) && (dia > 0) && (dia < 32)) && (!isNaN(mes) && (mes > 0) && (mes < 13)) && (!isNaN(ano) && (ano.length == 4));
			if (!resultado)	return erroForm(obj, 'Data');
		} else return erroForm(obj, 'Data');
	}
}

function verificaCNPJ(obj) {
	if (obj.value == "") return true;
	
	CNPJ = obj.value;
	erro = new String;
	if (CNPJ.length < 18) return erroForm(obj, 'CNPJ');
	if ((CNPJ.charAt(2) != ".") || (CNPJ.charAt(6) != ".") || (CNPJ.charAt(10) != "/") || (CNPJ.charAt(15) != "-")) {
		if (erro.length == 0) return erroForm(obj, 'CNPJ');
	}
	//substituir os caracteres que não são números
	if(document.layers && parseInt(navigator.appVersion) == 4){
		x = CNPJ.substring(0,2);
		x += CNPJ. substring (3,6);
		x += CNPJ. substring (7,10);
		x += CNPJ. substring (11,15);
		x += CNPJ. substring (16,18);
		CNPJ = x;
	} else {
		CNPJ = CNPJ. replace (".","");
		CNPJ = CNPJ. replace (".","");
		CNPJ = CNPJ. replace ("-","");
		CNPJ = CNPJ. replace ("/","");
	}
	var nonNumbers = /\D/;
	if (nonNumbers.test(CNPJ)) return erroForm(obj, 'CNPJ');
	var a = [];
	var b = new Number;
	var c = [6,5,4,3,2,9,8,7,6,5,4,3,2];
	for (i=0; i<12; i++){
		a[i] = CNPJ.charAt(i);
		b += a[i] * c[i+1];
	}
	if ((x = b % 11) < 2) { a[12] = 0 } else { a[12] = 11-x }
	b = 0;
	for (y=0; y<13; y++) {
		b += (a[y] * c[y]);
	}
	if ((x = b % 11) < 2) { a[13] = 0; } else { a[13] = 11-x; }
	if ((CNPJ.charAt(12) != a[12]) || (CNPJ.charAt(13) != a[13])) return erroForm(obj, 'CNPJ');
	if (erro.length > 0) return erroForm(obj, 'CNPJ');
	else return true;
	return true;
}

anoInicial = 0;
anoFinal   = 0;

function SelecionaModelo(obj)
{
	anoInicial = eval('anosIniciais[' + obj.value + ']');
	anoFinal   = eval('anosFinais[' + obj.value + ']');	
}

function VerificaAnoModFab(objanoFab, objanoMod, form)
{
	anoFab = objanoFab.value;
	anoMod = objanoMod.value;
	if (anoFab == "" || anoMod == "") return true;

	erroMsg   = 0;
	anoFabi   = parseInt(anoFab);
	anoModi   = parseInt(anoMod);
	anoModLim = anoFabi + 1;

	if (anoModi < anoFabi) erroMsg = 1;
	else if (anoModi > anoModLim) erroMsg = 1;
	else if ((anoMod.length < 4) || (anoFab.length < 4)) erroMsg = 1;
	
	if (anoInicial != 0 && anoInicial != "" && anoFinal != 0 && anoFinal != "")
	{
		  	 if (anoFab < anoInicial || anoFab > anoFinal) erroMsg = 3;
		else if (anoMod < anoInicial || anoMod > anoFinal) erroMsg = 2;
	}

	     if (erroMsg == 1) erroMsg = "Erro! Ano Fabricação/Modelo inválidos.";
	else if (erroMsg == 2) erroMsg = "Erro! Ano do Modelo está fora do intervalo de Fabricação deste modelo";
	else if (erroMsg == 2) erroMsg = "Erro! Ano de Fabricação está fora do intervalo de Fabricação deste modelo";

	if (erroMsg != 0)
	{
		alert(erroMsg);
		objanoMod.focus();
		return false;
	}
	return true;
}

function VerificaInicioVigencia(obj)
{
	newData = new Date();
	
	diaHj = newData.getDate();
	mesHj = newData.getMonth();
	anoHj = newData.getYear();
	
	diaInic = Number(obj.value.substr(0, 2));
	mesInic = Number(obj.value.substr(3, 2)) - 1;
	anoInic = Number(obj.value.substr(6, 4));
	
	dataInic = new Date(anoInic, mesInic, diaInic);
	dataMin  = new Date(anoHj, mesHj, (diaHj - 30));
	dataMax  = new Date(anoHj, mesHj, (diaHj + 30));
	
	if (dataInic > dataMax || dataInic < dataMin)
	{
		alert("Atenção!\r\nInterval entre Data de Início da Vigência e Data Atual é superior a 30 dias.\r\n")
	}
	
	obj.form.dataFim.value = calculaData(obj.value, 365);
}

function VerificaFimVigencia(objFim, objInicio)
{
	form = objFim.form;

	diaInic  = Number(objInicio.value.substr(0, 2));
	mesInic  = Number(objInicio.value.substr(3, 2)) - 1;
	anoInic  = Number(objInicio.value.substr(6, 4));
	dataInic = new Date(anoInic, mesInic, diaInic);

	diaFim  = Number(objFim.value.substr(0, 2));
	mesFim  = Number(objFim.value.substr(3, 2)) - 1;
	anoFim  = Number(objFim.value.substr(6, 4));
	dataFim = new Date(anoFim, mesFim, diaFim);
	
	dataMin  = new Date(anoInic, mesInic, diaInic);
	dataMax  = new Date(anoInic, mesInic, (diaInic + 365));
	
	erro = 0;
	if (dataFim > dataMax && form.pluriAnual.value == "0") erro = 1;
	else if (dataFim < dataMin) erro = 1;
		

	if (erro == 1) {
		alert("Erro!\r\Campo 'Fim de Vigência' inválido.\r\n")
		return false;
	}
	return true;
}

function erroForm(obj, descricao)
{
	alert('Desculpe, o valor para o campo "' + descricao + '" digitado é inválido!');
	//obj.value = '';
	obj.focus();
	return false;
}

