// ******* Mascara para campos numéricos
function mascara(form, format) {
 
 var input = form.value;
 
 if(input.length > 0) { //do not perform if empty input
 
  var numbers = ""; //store all the numbers here
 
  //Remover outros caracteres e espaços
 
  for(var i = 0; i < input.length; i++) {
   var char = input.charAt(i);
   if(!(isNaN(char) || char == " ")) numbers += char;
  }
 
  var output = ""; //assign numbers here
 
  //Aplicar a máscara
 
  var n = 0, i = 0;
  while(i < format.length && n < numbers.length) {
   var char = format.charAt(i);
   if(char == "#") {
    output += numbers.charAt(n++)
   } else {
    output += char;
   }
   i++;
  }
 
  form.value = output; //output to form
 }
}

//////////////////Validaçao de CPF e/ou CNPJ

function validar(Form) {
	var invalid, s;
	invalid = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/;

	var s;


// inicio de verificacao de cnpj ou cpf
	if (Form.cnpj.value.length == 0) {
		alert("O CPF / CNPJ é um campo obrigatório!");
		Form.cnpj.focus();
		return false;	}
		
	s = limpa_string(Form.cnpj.value);
	
	
	// checa se é cpf	
	if (s.length == 11) {
		if (valida_CPF(Form.cnpj.value) == false ) {
			alert("O CPF não é válido !");
			Form.cnpj.focus();
			return false;	}
     }
     
     // checa se é cgc
	else if (s.length == 14) {
		if (valida_CGC(Form.cnpj.value) == false ) {
			alert("O CNPJ não é válido !");
			Form.cnpj.focus();
			return false;	}
			}
		else {
			alert("O CPF/CNPJ não é válido !");
			Form.cnpj.focus();
			return false;
		}

// final da verificacao de cnpj ou cpf


	// verifica o cep
	// primeiro deixa somente numeros no cep
	// obs.:a chamada abaixo tambem pode ser utilizada para checar telefones
	
}
// fim da funcao validar()


function limpa_string(S){
	// Deixa so' os digitos no numero
	var Digitos = "0123456789";
	var temp = "";
	var digito = "";

	for (var i=0; i<S.length; i++)	{
		digito = S.charAt(i);
		if (Digitos.indexOf(digito)>=0)	{
			temp=temp+digito	}
	} //for

	return temp
}
// fim da funcao


function valida_CPF(s)	{
	var i;
	s = limpa_string(s);
	var c = s.substr(0,9);
	var dv = s.substr(9,2);
	var d1 = 0;
	for (i = 0; i < 9; i++)
	{
		d1 += c.charAt(i)*(10-i);
	}
        if (d1 == 0) return false;
	d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(0) != d1)
	{
		return false;
	}

	d1 *= 2;
	for (i = 0; i < 9; i++)
	{
		d1 += c.charAt(i)*(11-i);
	}
	d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(1) != d1)
	{
		return false;
	}
        return true;
}

function valida_CGC(s)
{
	var i;
	s = limpa_string(s);
	var c = s.substr(0,12);
	var dv = s.substr(12,2);
	var d1 = 0;
	for (i = 0; i < 12; i++)
	{
		d1 += c.charAt(11-i)*(2+(i % 8));
	}
        if (d1 == 0) return false;
        d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(0) != d1)
	{
		return false;
	}

	d1 *= 2;
	for (i = 0; i < 12; i++)
	{
		d1 += c.charAt(11-i)*(2+((i+1) % 8));
	}
	d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(1) != d1)
	{
		return false;
	}
	return true;
}