// Função para Validar CEP
function validacep(pvalor) {
	var valid9 = "0123456789-";
	var valid8 = "01234568"
	var hyphencount = 0;

if (pvalor.length!=9 && pvalor.length!=8) {
	alert("Entre com os oito ou nove números do cep!");
	return false;
}
for (var i=0; i < pvalor.length; i++) {
	temp = "" + pvalor.substring(i, i+1);
	if (pvalor.length == 9){
    	if (valid9.indexOf(temp) == "-1") {
	     		alert("Você informou caracteres inválidos para o CEP!");
	        	return false;
    	}else{
    		 if (pvalor.charAt(5) != "-") {
    		 	alert("O caractere '-' não está na posição correta ! ");
	        	return false;
    		 }else{
    		 	varposicao1 = pvalor.substring(0,5) + "";
    		 	varposicao2 = pvalor.substring(6,9) + "";
    		 	document.getElementById("cep").value = varposicao1 + varposicao2;
    		 	return true;
    		 }
    	}
	}
	if (pvalor.length == 8){
		if (valid8.indexOf(temp) == "-1") {
	     		alert("Você informou caracteres inválidos para o CEP!");
	        	return false;
    	}else{
    	   return pvalor;
    	}
	}
}

}


// Função para Validar Senha
function validaconfirmasenha(pVal1,pVal2)
{
	for(i = 0; i < (pVal2.all ? pVal2.all.length : pVal2.elements? pVal2.elements.length:0); i++){

		vobj = (pVal2.all ? pVal2.all(i) : pVal2.elements[i]);

		if(vobj.attributes["vpwd2"] != undefined){
			if (vobj.value != pVal1){
				return false;
			}else{
				return true;
			}
		}
    }
}
// Função para Validar decimal
function validadecimal(pVal)
{
	var reTipo = /^[+-]?((\d+|\d{1,3}(\.\d{3})+)(\,\d*)?|\,\d+)$/;
	return reTipo.test(pVal);
}
// Função para validar o CPF
function valida_cpf(cpf)
      {
      var numeros, digitos, soma, i, resultado, digitos_iguais;
      digitos_iguais = 1;
      if (cpf.length < 11)
            return false;
      for (i = 0; i < cpf.length - 1; i++)
            if (cpf.charAt(i) != cpf.charAt(i + 1))
                  {
                  digitos_iguais = 0;
                  break;
                  }
      if (!digitos_iguais)
            {
            numeros = cpf.substring(0,9);
            digitos = cpf.substring(9);
            soma = 0;
            for (i = 10; i > 1; i--)
                  soma += numeros.charAt(10 - i) * i;
            resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
            if (resultado != digitos.charAt(0))
                  return false;
            numeros = cpf.substring(0,10);
            soma = 0;
            for (i = 11; i > 1; i--)
                  soma += numeros.charAt(11 - i) * i;
            resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
            if (resultado != digitos.charAt(1))
                  return false;
            return true;
            }
      else
            return false;
      }
//Função para validar o CNPJ
function valida_cnpj(cnpj)
      {
      var numeros, digitos, soma, i, resultado, pos, tamanho, digitos_iguais;
      digitos_iguais = 1;
      if (cnpj.length < 14 && cnpj.length < 15)
            return false;
      for (i = 0; i < cnpj.length - 1; i++)
            if (cnpj.charAt(i) != cnpj.charAt(i + 1))
                  {
                  digitos_iguais = 0;
                  break;
                  }
      if (!digitos_iguais)
            {
            tamanho = cnpj.length - 2
            numeros = cnpj.substring(0,tamanho);
            digitos = cnpj.substring(tamanho);
            soma = 0;
            pos = tamanho - 7;
            for (i = tamanho; i >= 1; i--)
                  {
                  soma += numeros.charAt(tamanho - i) * pos--;
                  if (pos < 2)
                        pos = 9;
                  }
            resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
            if (resultado != digitos.charAt(0))
                  return false;
            tamanho = tamanho + 1;
            numeros = cnpj.substring(0,tamanho);
            soma = 0;
            pos = tamanho - 7;
            for (i = tamanho; i >= 1; i--)
                  {
                  soma += numeros.charAt(tamanho - i) * pos--;
                  if (pos < 2)
                        pos = 9;
                  }
            resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
            if (resultado != digitos.charAt(1))
                  return false;
            return true;
            }
      else
            return false;
      }
// Função para Validar email
function validaemail(pVal)
{
	var reTipo = /^[\w!#$%&'*+\/=?^`{|}~-]+(\.[\w!#$%&'*+\/=?^`{|}~-]+)*@(([\w-]+\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
	return reTipo.test(pVal);
}
// Função para Validar moeda
function validamoeda(pVal)
{
	var reTipo =  /^\d{1,3}(\.\d{3})*\,\d{2}$/;
	return reTipo.test(pVal);
}
// Função para Validar data
function validadata(pVal)
{
	var reTipo = /^((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}$/;
	return reTipo.test(pVal);
}
// Função para Validar número
function validanumero(pVal)
{
	var reTipo = /^\d+$/;
	return reTipo.test(pVal);
}
// Função para Validar Texto
function validaalfa(pVal)
{
	var reTipo = /^\w+$/;
	return reTipo.test(pVal);
}
//  Função para validar campos de formularios. A variavel sempre espera uma colecao
function submit1(inobj){

    // Testa se o objeto de Formulario veio informado e valido
    if((inobj == false) || (inobj == undefined)){
		alert("A coleção de objetos é inválida!");
		return false;
	}

	for(i = 0; i < inobj.length; i++){
		vobj = inobj[i];
		//alert(vobj.name + ': ' + vobj.attributes["vnulo"]);

		if(vobj.attributes["vnulo"] != undefined){// vnulo - o campo não pode ser nulo
			if (vobj.value == ""){
			    vobj.style.backgroundColor = "#ccffcc";
				vobj.focus();
				alert("Este campo é obrigatório, e precisa ser informado!");
				vobj.style.backgroundColor = "";
				return false;
			}
		}

		if(vobj.attributes["vnumero"] != undefined){// vnumero - verifica se o campo é número inteiro
			if (validanumero(vobj.value) == false){
				vobj.style.backgroundColor = "#ccffcc";
			    vobj.focus();
		        alert("O valor informado não é NÚMERO válido: " + vobj.value);
				vobj.style.backgroundColor = "";
			    return false;
		    }
		}
		if(vobj.attributes["valfa"] != undefined){// valfa - verifica se o campo possui somente caracteres a-z A-Z 0-9 _
			if (validaalfa(vobj.value) == false){
				vobj.style.backgroundColor = "#ccffcc";
			    vobj.focus();
		        alert("O valor informado possui caracteres inválidos: " + vobj.value);
				vobj.style.backgroundColor = "";
			    return false;
		    }
		}
		// vdata - propriedade que verificar se o campo é data
		if((vobj.attributes["vdata"] != undefined) && (vobj.value != "")){
			if (validadata(vobj.value) == false){
				vobj.style.backgroundColor = "#ccffcc";
			    vobj.focus();
		        alert("O valor informado não é uma DATA válida: " + vobj.value + "   (Formato Válido : 'DD/MM/AAAA')");
				vobj.style.backgroundColor = "";
			    return false;
		    }
		}
		// vcnpj - propriedade que verificar se o campo é CNPF válido
		if(vobj.attributes["vcnpj"] != undefined){
			if (valida_cnpj(vobj.value) == false){
				vobj.style.backgroundColor = "#ccffcc";
			    vobj.focus();
		        alert("O CNPJ informado não é Válido: " + vobj.value);
				vobj.style.backgroundColor = "";
			    return false;
		    }
		}
		// vcpf - propriedade que verificar se o campo é CNPF válido
		if(vobj.attributes["vcpf"] != undefined){
			if (valida_cpf(vobj.value) == false){
				vobj.style.backgroundColor = "#ccffcc";
			    vobj.focus();
		        alert("O CPF informado não é Válido: " + vobj.value);
				vobj.style.backgroundColor = "";
			    return false;
		    }
		}
		// vemail - propriedade que verificar se o campo é email válido
		if(vobj.attributes["vemail"] != undefined){
			if (validaemail(vobj.value) == false){
				vobj.style.backgroundColor = "#ccffcc";
			    vobj.focus();
		        alert("O EMAIL informado não válido: " + vobj.value );
				vobj.style.backgroundColor = "";
			    return false;
		    }
		}
		// vmoeda - propriedade para verificar se o campo é moeda
		if(vobj.attributes["vmoeda"] != undefined){
			if (validamoeda(vobj.value) == false){
				vobj.style.backgroundColor = "#ccffcc";
			    vobj.focus();




		        alert("Este não é um valor de Moeda Válido - " + vobj.value);
				vobj.style.backgroundColor = "";
			    return false;
		    }
	    }
			// vmoeda - propriedade para verificar se o campo é moeda
		if(vobj.attributes["vdecimal"] != undefined){
			if (validadecimal(vobj.value) == false){
				vobj.style.backgroundColor = "#ccffcc";
			    vobj.focus();
		        alert("Este não é um valor Válido - " + vobj.value);
				vobj.style.backgroundColor = "";
			    return false;
		    }
		}
		if(vobj.attributes["vpwd1"] != undefined){
			if (validaconfirmasenha(vobj.value,vobj.form) == false){
				vobj.style.backgroundColor = "#ccffcc";
			    vobj.focus();
		        alert("Os campos SENHA e CONFIRMAÇÃO DE SENHA informados são diferentes! Informe o mesmo valor para os 2 campos.");
				vobj.style.backgroundColor = "";
			    return false;
		    }
		}
		
	}
	return true;
}

