//Área privada

function habilita_textfield_associados(form)
{
  form.nome_cpf.disabled = true;
  form.anuidade.disabled = true;
  form.data_inicio.disabled = true;
  form.data_fim.disabled = true;
  if ((form.tipo[3].checked) || (form.tipo[4].checked))
  {
    form.nome_cpf.disabled = false;
	form.anuidade.disabled = true;
    form.data_inicio.disabled = true;
	form.data_fim.disabled = true;
//	form.nome_cpf.value = "";
  }
  if ((form.tipo[5].checked) || (form.tipo[6].checked))
  {
    form.nome_cpf.disabled = true;
	form.anuidade.disabled = false;
    form.data_inicio.disabled = true;
	form.data_fim.disabled = true;
//	form.nome_cpf.value = "";
  }
  if (form.tipo[7].checked)
  {
    form.nome_cpf.disabled = true;
	form.anuidade.disabled = true;
    form.data_inicio.disabled = false;
	form.data_fim.disabled = false;
//	form.data_fim.value = "";
//	form.data_inicio.value = "";
  }
  return(true);
}

function valida_sel_associados(form)
{
  if (form.tipo[3].checked)
  {
    if (form.nome_cpf.value == "")
    {
      alert("Por favor digite o número do CPF ou CNPJ.");
      form.nome_cpf.focus();
      return (false);
    }
    else
    {
	   if ((form.nome_cpf.value.length == 11) && (!isNaN(form.nome_cpf.value)))
	   {
         if (!isCPFCNPJ(form.nome_cpf.value,1))
	     {
            alert("Este CPF não é válido. Por favor redigite-o corretamente.");
            form.nome_cpf.focus();
	        return (false);
	     }
	     else
	        FormataCPF(form.nome_cpf);	  
	   }
	   if ((form.nome_cpf.value.length == 14) && (!isNaN(form.nome_cpf.value)))
	   {
         if (!isCPFCNPJ(form.nome_cpf.value,2))
	     {
            alert("Este CNPJ não é válido. Por favor redigite-o corretamente.");
            form.nome_cpf.focus();
	        return (false);
	     }
	     else
	        FormataCNPJ(form.nome_cpf);	  
	   }	   
    }
  }
  if (form.tipo[4].checked)
  {
    if (form.nome_cpf.value == "")
    {
      alert("Por favor digite um nome/razão social.");
      form.nome_cpf.focus();
      return (false);
    }
  }
  if (form.tipo[6].checked)
  {
     alert("Opção não implementada.");
     return (false);	  
  }
  if (form.tipo[7].checked)
  {
	if (form.data_inicio.value == "")
    {
      alert("Por favor selecione uma data de início.");
      form.data_inicio.focus();
      return (false);
    }
	if (form.data_fim.value == "")
    {
      alert("Por favor selecione uma data final.");
      form.data_fim.focus();
      return (false);
    }
  }
  return(true);
}

function valida_pagamento(form)
{
  if (form.data_pagto.value == "")
  {
    alert('O campo data deve ser preenchido.');
	form.data_pagto.focus();
	return(false);  
  }
  if (form.valor_pagto.value == "")
  {
    alert('O campo valor deve ser preenchido.');
	form.valor_pagto.focus();
	return(false);  
  }
  else
  {
    if (isNaN(form.valor_pagto.value))
    {
      alert('O campo valor do pagamento deve ser numérico.');
	  form.valor_pagto.focus();
	  return(false);
    }
  }
  if (confirm('Confirma os valores alterados ?'))
    return(true);
  else
    return(false);
}

function validar_extensao()
{
   if (document.getElementById('arquivo').value != "")
   {
      validformFile = /(.ret|.RET)$/;
      if(!validformFile.test(document.getElementById('arquivo').value))
      {
        alert("É suportado somente arquivo com extensão RET. Volte e tente novamente.");
        document.getElementById('arquivo').focus();
        return(false);
      }
   }
   else
   {
      alert("Selecione um arquivo.");
      document.getElementById('arquivo').focus();
      return(false);	
   }
}

function apagar_arquivo(file_name,form)
{
  if (confirm('Você deseja realmente apagar o arquivo "'+file_name+'"?'))
  {
    form.action = '';
	form.apaga.value = '1';
	form.submit();
	return(true);
  }
  else
    return(false);
}

//Área pública

function confirma(texto)
{
  if (confirm(texto))
	return(true);
  else
	return(false);
}

function auto_envia(form)
{
   form.action = "";
   form.submit();
}

function CPFFilter(field)
{
   if (!isCPFCNPJ(field.value,1))
   {
	 alert("Este CPF não é válido. Por favor redigite-o corretamente.");
	 field.focus();
	 return (false);
   }
   else
   {
	  FormataCPF(field);	
	  return (true);
   }
}

function CNPJFilter(field)
{
   if ((!isCPFCNPJ(field.value,2)) && (field.value != ''))
   {
	 alert("Este CNPJ não é válido. Por favor redigite-o corretamente.");
	 field.focus();
	 return (false);
   }
   else
   {
	  if (field.value != '') 
	     FormataCNPJ(field);	
	  return (true);
   }

}

function phoneFilter(form) {
	var input = form.value;
	if(input.length > 0) { //do not perform if empty input
		var numbers = ""; //store all the numbers here
		//process to remove non-numbers and spaces
		for(var i = 0; i < input.length; i++) {
			var char = input.charAt(i);
			if(!(isNaN(char) || char == " ")) numbers += char;
		}
		//remove country code, if any
//		if(numbers.substring(0, 2) == "47") numbers = numbers.substring(2, numbers.length);
		var output = ""; //assign numbers here
		//assign numbers to chosen format
		var n = 0, i = 0;
		if (numbers.length == 10)
		{
		  format = "(##)####-####";		
  		  while(i < format.length && n < numbers.length) {
			  var char = format.charAt(i);
			  if(char == "#") {
			  	  output += numbers.charAt(n++)
			  } else {
				  output += char;
			  }
			  i++;
		  }
		}
		if (numbers.length == 9)
		{
		  format = "(##)###-####";
  		  while(i < format.length && n < numbers.length) {
			  var char = format.charAt(i);
			  if(char == "#") {
			  	  output += numbers.charAt(n++)
			  } else {
				  output += char;
			  }
			  i++;
		  }
		}
		//give alert if length is less than 8.
		if ((numbers.length != 9) && (numbers.length != 10)) {
			alert("O seu número de telefone deve conter somente 9 ou 10 números (incluindo o DDD).");
			form.focus();
		}

		form.value = output; //output to form
	}
}

function cepFilter(form) 
{
	var input = form.value;
	if(input.length > 0) 
	{ //do not perform if empty input
		var numbers = ""; //store all the numbers here
		//process to remove non-numbers and spaces
		for(var i = 0; i < input.length; i++) 
		{
			var char = input.charAt(i);
			if(!(isNaN(char) || char == " ")) 
			   numbers += char;
		}
		//remove country code, if any
//		if(numbers.substring(0, 2) == "47") numbers = numbers.substring(2, numbers.length);
		var output = ""; //assign numbers here
		//assign numbers to chosen format
		var n = 0, i = 0;
		if (numbers.length == 8)
		{
		  format = "#####-###";		
  		  while(i < format.length && n < numbers.length) 
		  {
			  var char = format.charAt(i);
			  if(char == "#") 
			  	  output += numbers.charAt(n++)
			  else 
				  output += char;
			  i++;
		  }
		}
		//give alert if length is less than 8.
		if (numbers.length != 8) 
		{
			alert("O seu número de CEP não é válido. O Seu CEP deve conter somente números (8 dígitos).");
			form.focus();
		}

		form.value = output; //output to form
	}
}

//Validar CNPJ
function isEmpty(pStrText){ 
   var   len = pStrText.length; 
   var pos; 
   var vStrnewtext = ""; 

   for (pos=0; pos<len; pos++){ 
      if (pStrText.substring(pos, (pos+1)) != " "){ 
         vStrnewtext = vStrnewtext + pStrText.substring(pos, (pos+1)); 
      } 
   } 

   if (vStrnewtext.length > 0) 
      return false; 
   else 
      return true; 
}

function isCPFCNPJ(campo,pType){
   if( isEmpty( campo ) ){return false;}
   var campo_filtrado = "", valor_1 = " ", valor_2 = " ", ch = "";
   var valido = false;
        
   for (i = 0; i < campo.length; i++){
      ch = campo.substring(i, i + 1);
      if (ch >= "0" && ch <= "9"){
         campo_filtrado = campo_filtrado.toString() + ch.toString()
         valor_1 = valor_2;
         valor_2 = ch;
      }
      if ((valor_1 != " ") && (!valido)) valido = !(valor_1 == valor_2);
   }
   if (!valido) campo_filtrado = "12345678912";

   if (campo_filtrado.length < 11){
//      for (i = 1; i <= (11 - campo_filtrado.length); i++){campo_filtrado = "0" + campo_filtrado;}
//     alert("CPF deve possuir 11 dígitos numéricos");
	 return(false);
   }
	if(pType <= 1){
		if ( ( campo_filtrado.substring(9,11) == checkCPF( campo_filtrado.substring(0,9) ) ) && ( campo_filtrado.substring(11,12)=="") ){return true;}
	}

	if((pType == 2) || (pType == 0)){
		if (campo_filtrado.length >= 14){
			if ( campo_filtrado.substring(12,14) == checkCNPJ( campo_filtrado.substring(0,12) ) ){ return true;}
		}
	}
	
	return false;
}

function checkCNPJ(vCNPJ){
   var mControle = "";
   var aTabCNPJ = new Array(5,4,3,2,9,8,7,6,5,4,3,2);
   for (i = 1 ; i <= 2 ; i++){
      mSoma = 0;
      for (j = 0 ; j < vCNPJ.length ; j++)
         mSoma = mSoma + (vCNPJ.substring(j,j+1) * aTabCNPJ[j]);
      if (i == 2 ) mSoma = mSoma + ( 2 * mDigito );
      mDigito = ( mSoma * 10 ) % 11;
      if (mDigito == 10 ) mDigito = 0;
      mControle1 = mControle ;
      mControle = mDigito;
      aTabCNPJ = new Array(6,5,4,3,2,9,8,7,6,5,4,3);
   }
   return( (mControle1 * 10) + mControle );
}

function checkCPF(vCPF){
   var mControle = ""
   var mContIni = 2, mContFim = 10, mDigito = 0;
   for (j = 1 ; j <= 2 ; j++){
      mSoma = 0;
      for (i = mContIni ; i <= mContFim ; i++)
         mSoma = mSoma + (vCPF.substring((i-j-1),(i-j)) * (mContFim + 1 + j - i));
      if (j == 2 ) mSoma = mSoma + ( 2 * mDigito );
      mDigito = ( mSoma * 10 ) % 11;
      if (mDigito == 10) mDigito = 0;
      mControle1 = mControle;
      mControle = mDigito;
      mContIni = 3;
      mContFim = 11;
   }
   return( (mControle1 * 10) + mControle );
}

function FormataCNPJ(el) 
{ 
  vr = el.value; 
  tam = vr.length; 
  
  vr = vr.replace(".", "");
  vr = vr.replace(".", "");
  vr = vr.replace("/", "");
  vr = vr.replace("-", "");

  if ((vr.indexOf(".") == -1)  && (vr.indexOf("/") == -1)  && (vr.indexOf("-") == -1))
  { 
    if (tam == 14)
       el.value = vr.substr(0,2) + '.' + vr.substr(2,3) + '.' + vr.substr(5,3) + '/' + vr.substr(8,4) + '-' + vr.substr(12,2); 
	else
	{
	   if (tam != 18)
	   {
	     alert('Tamanho inválido do CNPJ');
	     return(false);
	   }
	}
   } 
  return(el); 
}

/*function EliminaCaracteresCPF(el)
{
  vr = el.value; 
  vr = vr.replace(".", "");
  vr = vr.replace(".", "");
  vr = vr.replace("-", "");
  return(vr);	
}
*/
function FormataCPF(el) 
{ 
  vr = el.value; 
  tam = vr.length; 
  
  vr = vr.replace(".", "");
  vr = vr.replace(".", "");
  vr = vr.replace("-", "");
  if ((vr.indexOf(".") == -1) && (vr.indexOf("-") == -1))
  { 
     if (tam == 11)
       el.value = vr.substr(0,3) + '.' + vr.substr(3,3) + '.' + vr.substr(6,3) + '-' + vr.substr(9,2); 
	 else
	 {
	   if (tam != 14)
	   {
	     alert('Tamanho inválido do CPF');
	     return(false);
	   }
	 }
   } 
  return(el); 
}

function openWindow(pagina,target,width,height)
{
  var newWidth;
  var newHeight;
  var win;
  if ((width == 0) && (height == 0))
    win = window.open(pagina,target);	
  else
  {
    newWidth = (screen.availWidth-10 - width) / 2;
    newHeight = (screen.availHeight-20 - height) / 2;    
    win = window.open(pagina,target,"width="+width+",height="+height+",location=no,scrollbars=yes,menubars=no,directores=no,copyhistory=no,toolbars=no,resizable=no,left=" + newWidth + ",top=" + newHeight);
    win.moveTo(newWidth, newHeight);
    win.focus();
  }
  return(true);
}

function ir(arquivo)
{
//   if (tipo == 2)
   if (arquivo == 'principal.php')
     window.open(arquivo,"_parent");	
   else
     window.open(arquivo,"_self");	
}

function sel_tipo(nacionalidade, field)
{
  if (nacionalidade == 0) 
     CPFFilter(field);
  return(true);
}