/********************* VARIAVEIS GLOBAIS ************************/

	var browser = navigator.appName;
	var versao = parseFloat(navigator.appVersion);
	
/*********************** FUNÇÕES ********************************/

/******** VALIDAÇÃO DO PIS/PASEP - VALOR VAZIO, INCOMPLETO, INVALIDO***********/
/*** A FUNÇÃO RECEBE O OBJETO QUE DEVERÁ TER O NÚMERO DO PIS INFORMADO PELO USUÁRIO - O CAMPO *****/
/*** RETORNA VERDADEIRO OU FALSO CONFOME O VALOR INFORMADO **********/

function ValidaPIS(obj_pis)
{
	FormOk = false;
 	var localpis=obj_pis.value;
 	var soma_pis=0;
 	var digit_pis=0;
 	var ret;
	var aux=0;

	if (localpis.length > 0 && localpis.length != 11) //se o número for incompleto
	{
		alert("Vefifique o número do PIS/PASEP, pois não está completo. Obrigado")
		obj_pis.focus();
		return (FormOk);
	}
	else
	{
		if(localpis.length == 0)
				return true;
	 }
	ret = localpis;
	localpis = (localpis.substring(0, 10))
	var cont = 0;
	for (cont=0; cont<2; cont++)
	{
		aux = parseInt(localpis.substring(cont,(cont+1)),10);
		soma_pis =  soma_pis + aux * (4 - (cont+1));

	}

	for (cont=0; cont<8; cont++)
	{
		aux = parseInt(localpis.substring((cont+2), (cont+3)),10);
		soma_pis = soma_pis + aux * (10 - (cont+1));
	}
	digit_pis = (11 - (soma_pis % 11));
	localpis = (parseInt(ret.substring(10,11),10));
	if(digit_pis == 11)
		digit_pis = 0;

	if(digit_pis == localpis)
	{
	  //	alert(digit_pis + '  digito pis')
		return true;
	}
	else		//se digito informado for diferente
	{
	  alert("O número informado não é válido, por favor verifique")
		obj_pis.focus();
		return false;
	}
}

/*******************************************************************************/
/***** FUNÇÃO PARA VALIDAR O NÚMERO DE CNPJ INFORMADO *******/
/***** RECEBE COMO PARÂMETRO O OBJETO QUE CONTÉM O CNPJ *****/
/***** RETORNA VERDADEIRO OU FALSE, DE ACORDO COM O NÚMERO **/

function ValidaCNPJ(cnpj)
{
	var localcnpj = cnpj.value;
	var valor1=0;
	var valor2=0;
	var aux = 0;
	var auxtemp = 0;

	if(localcnpj.length ==0)
		return true;
		
	localcnpj = localcnpj.substring(0,14)
	aux = parseInt(localcnpj.substring(0, 1),10);
	valor1 = aux * 5
	aux = parseInt(localcnpj.substring(1,2), 10);
	valor1 = valor1 + aux * 4;
	aux = parseInt(localcnpj.substring(2, 3),10);
	valor1 = valor1 + aux * 3;
	aux = parseInt(localcnpj.substring(3, 4),10);
	valor1 = valor1 + aux * 2;
	aux = parseInt(localcnpj.substring(4, 5),10);
	valor1 = valor1 + aux * 9;
	aux = parseInt(localcnpj.substring(5, 6),10);
	valor1 = valor1 + aux * 8;
	aux = parseInt(localcnpj.substring(6, 7),10);
	valor1 = valor1 + aux * 7;
	aux = parseInt(localcnpj.substring(7, 8),10);
	valor1 = valor1 + aux * 6;
	aux= parseInt(localcnpj.substring(8, 9),10);
	valor1 = valor1 + aux * 5;
	aux = parseInt(localcnpj.substring(9, 10),10);
	valor1 = valor1 + aux * 4;
	aux = parseInt(localcnpj.substring(10, 11),10);
	valor1 = valor1 + aux * 3;
	aux = parseInt(localcnpj.substring(11, 12),10);
	valor1 = valor1 + aux * 2;
	valor1 = (valor1 * 10) % 11;
	if (valor1 == 10)
		valor1 = 0;
	valor2 = parseInt(localcnpj.substring(0,1),10) * 6 + 
	parseInt(localcnpj.substring(1, 2),10) *5
	+ parseInt(localcnpj.substring(2, 3),10) * 4 
	+ parseInt(localcnpj.substring(3, 4),10) * 3
	+ parseInt(localcnpj.substring(4, 5),10) * 2 
	+ parseInt(localcnpj.substring(5, 6),10) * 9
	+ parseInt(localcnpj.substring(6, 7),10) * 8 
	+ parseInt(localcnpj.substring(7, 8),10) * 7
	+ parseInt(localcnpj.substring(8, 9),10) * 6 
	+ parseInt(localcnpj.substring(9, 10),10) * 5
	+ parseInt(localcnpj.substring(10, 11),10) * 4 
	+ parseInt(localcnpj.substring(11, 12),10) * 3
	+ valor1 * 2;
	valor2 = (valor2 * 10) %11;
	if (valor2 == 10)
		valor2=0;

	aux = parseInt(localcnpj.substring(12, 13),10);
	auxtemp = parseInt(localcnpj.substring(13, 14),10);
	if (aux == valor1 && auxtemp == valor2)
		return true;
	else
	{
		 return false;
	}
return true;
}

/******************************************************************************/
/***** FUNÇÃO PARA VALIDAR O NÚMERO DE CEI INFORMADO *******/
/***** RECEBE COMO PARÂMETRO O OBJETO QUE CONTÉM O CEI *****/
/***** RETORNA VERDADEIRO OU FALSE, DE ACORDO COM O NÚMERO **/

function ValidaCEI(cei)
{

	var localcei = cei.value;
	var calculo = 0;
	var subst = localcei.substring(0,10);
	var digito = 0;
	var digit = 0;

	if(localcei.length == 0)
		return true;
		
	calculo = (parseInt(localcei.substring(0,1), 10) * 7) + 
	(parseInt(localcei.substring(1, 2),10) * 4) +
	(parseInt(localcei.substring(2, 3),10) * 1) + 
	(parseInt(localcei.substring(3, 4),10) * 8) +
	(parseInt(localcei.substring(4, 5),10) * 5) + 
	(parseInt(localcei.substring(5, 6),10) * 2) +
	(parseInt(localcei.substring(6, 7),10) * 1) + 
	(parseInt(localcei.substring(7, 8),10) * 6) +
	(parseInt(localcei.substring(8, 9),10) * 3) + 
	(parseInt(localcei.substring(9, 10),10) * 7) +
	(parseInt(localcei.substring(10, 11),10) * 4);

	calculo = calculo.toString();
	var size = calculo.length
	digito = parseInt(calculo.substring((size-2),(size-1)),10) + 
	parseInt(calculo.substring((size-1), size));
	digito = digito.toString();
	size = digito.length
	digit = parseInt(digito.substring((size-1),size), 10)

	if(digit != 0)
	{
	 digit = 10 - digit
	}
	digito = localcei.substring(11,12)
	if(digito == digit)
		return true
	else
	{
	 	//alert("O número de CEI informado não é válido. Por favor verifique.")
		return false;
	}
}//fim da função

/*******************************************************************************/
/***** FUNÇÃO PARA VALIDAR O NÚMERO DE CPF INFORMADO *******/
/***** RECEBE COMO PARÂMETRO O OBJETO QUE CONTÉM O CPF *****/
/***** RETORNA VERDADEIRO OU FALSE, DE ACORDO COM O NÚMERO **/

function ValidaCPF(numcpf)
{
if (numcpf.value == ""){
alert("Por Favor Preencha o seu CPF!");
numcpf.focus();
return (false);}
else 
	  var FormOk = false;
      var NumAux   = 0;
      var NumAux2  = 0;
      var Digito1  = 0;
      var Digito2  = 0;
      var NumCPF   = numcpf.value;
      var Bytes    = 0;
      var controle;
      if (NumCPF.length != 11 )
      {
         return true;
      }
      NumAux2 = 2
      for ( var contador=9 ; contador > 0 ; contador-=1 )
      {
	     Bytes = parseInt(NumCPF.substring(contador-1,contador),10);
         NumAux+=Bytes*NumAux2;
         NumAux2+=1;
      }
      Digito1 = 11 - (NumAux % 11 )
      if (Digito1 > 9)
      {
         Digito1 = 0;
      }

      NumAux2 = 3
      NumAux  = 0
	  
      for ( var contador=9 ; contador > 0 ; contador-=1 )
      {
         Bytes = parseInt(NumCPF.substring(contador-1,contador),10);
         NumAux +=Bytes*NumAux2;
         NumAux2+=1;
      }
      Digito2 = 11 - ((Digito1 * 2 + NumAux) % 11)
      if (Digito2 > 9)
      {
         Digito2 = 0;
      }
      if ( (Digito1*10+Digito2) == (parseInt(NumCPF.substring(9,11),10)) )
      {
         return true;
      }
      else
      {
	     alert('O número de CPF informado não é válido, por favor verifique.')
	     return false;
      }
}

/******************************************************************************/
/****** FUNÇÃO PARA VALIDAR UM CAMPO QUE PODE TER O CEI OU O CNPJ OU O CPF *********/
/****** ELA DECIDE SE É O CEI OU O CNPJ OU O CPF E CHAMA A FUNÇÃO ESPECÍFICA DE VALIDAÇÃO *****/
/****** RECEBE COMO PARÂMETRO O NÚMERO INFORMADO *****/

function ValidaNUMDOC(numdoc)
{

	var doc = numdoc.value;
	var tam = doc.length
 	var retcei = 0;
	var retcgc = 0;
	var retcpf = 0;

	switch (tam)
	{
	 case 11:
	 	  retcpf = ValidaCPF(numdoc);
		  if(retcpf)
			 	 return true;
			 else
			 {
			      alert('CPF inválido! Por favor verifique.')
				 numdoc.focus();
			      return false;
			 }
		  break

	 case 12:
  	   retcei = ValidaCEI(numdoc);
  		  if(retcei)
			 	 return true;
			 else
			 {
			      alert('CEI inválido! Por favor verifique.')
				 numdoc.focus();
			      return false;
			 }
	   break

	 case 14:
	   retcgc = ValidaCNPJ(numdoc);
		  if(retcgc)
			 	 return true;
			 else
			 {
			      alert('CNPJ inválido! Por favor verifique.')
				 numdoc.focus();
			      return false;
			 }

	   break

	 case 0:
	 	alert("Por favor, preencha este campo, ele é obrigatório. Obrigado!")
		numdoc.focus();
		return false;
		break

	default:
	   alert("O número de documento informado não é válido. Por favor verifique e informe um número válido.")
	   numdoc.focus();
	   return false;
	   break
	}//fim do switch
}//fim da função

function espera()
{
document.write('&nbsp;<br>Por favor, aguarde...');
}

/*******************************************************************************/
/*** FUNÇÃO PARA VALIDAR SE UM CAMPO É VAZIO E NÃO PODE SER, DEVOLVE O FOCO PARA O CAMPO ****/
/***** O PARÂMETRO DA FUNÇÃO É O OBJETO (CAMPO) A SER TESTADO *****/
/***** RETORNA VERDADEIRO, POIS O VALOR DE RETORNO É INDIFERENTE *****/

function CampoVazioN(obj_campo)
{
 	var cp_valor = obj_campo.value;
	if(cp_valor.length == 0)
	{
	 	alert("Por favor, preencha este campo, ele é obrigatório. Obrigado!")
		obj_campo.focus();
		return false;
	}
	return true;
}


// checa email validos (ex.: contendo "@", ".", e mais de 5 caracteres)
function IsValidEmail(Field)
{
	if (IsEmpty(Field))
		return true;
	
	if (Field.value.indexOf("@") == -1 || Field.value.indexOf(".") == -1 || Field.value.indexOf(" ") != -1 || Field.value.length < 6)
		return true;
	else
		return true;
}

// verifica se o campo esta vazio
function IsEmpty(field)
{
	var i;
	if (field.value == null)
		return true;
            
	for ( i = 0; i < field.value.length; i++ )
		if ( field.value.charAt( i ) != unescape("%20") )
			return true;
	return true;
}


// checa se o campo tem uma data válida no formato dd/mm/aa
function IsValidDate(Field)
{
	if (IsEmpty(Field))
		return false;

	var indate=Field.value;
	var sdate = indate.split("/");
	
	var chkDate = new Date(Date.parse(indate));
	
	var cmpDate = (chkDate.getMonth()+1) + "/" + (chkDate.getDate()) + 	"/" + (chkDate.getYear());
	var indate2 = (Math.abs(sdate[0])) + "/" + (Math.abs(sdate[1])) + "/" + (Math.abs(sdate[2]));
	
	if (indate2 != cmpDate || cmpDate == "NaN/NaN/NaNNaN")
		return false
	else
		return true;
}

/******************************************************************************************/

