﻿//************************************************************************************
//	Funções Genéricas
//************************************************************************************

function mascararString(src, mask) {
	var i = src.value.length;
	var saida = mask.substring(0,1);
	var texto = mask.substring(i);
	if (texto.substring(0,1) != saida) 
		src.value += texto.substring(0,1);
}


function ano_bissexto(ano){
   return ( ( ano % 4 == 0 ) && ( (ano % 100 != 0) || (ano % 400 == 0) ) )
}

function data_valida(data)
{
var dia1, mes1, ano1, tmp, dia_max, tmp_num
   tmp = data;
   dia1 = 0; mes1 =0; ano1 = 0;
   dia1 = tmp.substring(0, tmp.indexOf("/"));
   mes1 = tmp.substring(tmp.indexOf("/")+1, tmp.lastIndexOf("/"));
   ano1 = tmp.substring(tmp.lastIndexOf("/")+1, tmp.length);


  if ( (mes1 == 1) || (mes1 == 3) || (mes1 == 5) || (mes1 == 7) || (mes1 == 8) || (mes1 == 10) || (mes1 == 12) )
     {
	    dia_max = 31;
	 }
  else
     {
	    if (mes1 == 2)
		   {
		      if ( ano_bissexto(ano1) )
			     { dia_max = 29; }
			  else
			     { dia_max = 28; }
		   }
		else
		   { dia_max = 30; }
	 }

if (ano1 < 1900) {return false}

if ( mes1 > 12 ) {return false}

tmp_num = dia1 % 1;
if ( tmp_num != 0 ) {return false}

tmp_num = mes1 % 1;
if ( tmp_num != 0 ) {return false}

tmp_num = ano1 % 1;
if ( tmp_num != 0 ) {return false}

 if ( ( dia1 < 1 ) || ( dia1 > dia_max ) )
    { return false; }
 else
    { return true; }
}

function inverte_dia_mes(data) 
/*Pega a funcao em formato d/m/a em converte em formato yyyy-mm-aa*/
{
var tmp
var dia1, mes1, ano1
   tmp = data;
   dia1 = tmp.substring(0, tmp.indexOf("/"));
   mes1 = tmp.substring(tmp.indexOf("/")+1, tmp.lastIndexOf("/"));
   ano1 = tmp.substring(tmp.lastIndexOf("/")+1, tmp.length);
   
   if (dia1.length == 1)
      { dia1 = "0" + dia1; }
   if (mes1.length == 1)
      { mes1 = "0" + mes1; }
   if (ano1.length == 2)
      { ano1 = "20"+ano1; }
    
   tmp =  ano1 + "-" + mes1 + "-" + dia1;
   return tmp;
}

function mascara_data(Campo) 
{
   if (Campo.value.length < Campo.maxLength)
   {

		var tecla = window.event.keyCode;
		vr = Campo.value;
		vr = vr.replace(".","").replace("/","").replace("/","").replace("/","");
		tam = vr.length + 1;
		if ( tecla != 9 && tecla != 8 )
		{
			if ( tam > 2 && tam < 5 )
				Campo.value = vr.substr( 0, tam - 2  ) + '/' + vr.substr( tam - 2, tam );
			if ( tam >= 5 && tam <= 10 )
				Campo.value = vr.substr( 0, 2 ) + '/' + vr.substr( 2, 2 ) + '/' + vr.substr( 4, 4 );
		}
   }
}


//---------------------------------------------------------------------------------------
function eh_letra(campo)
{
	var alfabeto = "ABCDEFGHIJKLWMNOPQRSTUVXYZ";
	var cont;
	var parte_campo;
	var campo_maiusculo = campo.toUpperCase()
	
	for (cont = 0; cont < campo_maiusculo.length; cont++ )
	{
		parte_campo = campo_maiusculo.charAt(cont);
	 	if ( alfabeto.indexOf(parte_campo) == -1 )
		{
			return false;
		}
	}
	return true;
}
//---------------------------------------------------------------------------------------
function replace(s, t, u) {
   /*
   **  Replace a token in a string
   **    s  string to be processed
   **    t  token to be found and removed
   **    u  token to be inserted
   **  returns new String
   */
   i = s.indexOf(t);
   r = "";
   if (i == -1) return s;
   r += s.substring(0,i) + u;
   if ( i + t.length <  s.length)
     r += replace(s.substring(i + t.length, s.length), t, u);
   return r;
   }
//---------------------------------------------------------------------------------------
//VERIFICA DÍGITO DO CNPJ
function Valida_NumCNPJ(lNumCNPJ) {

	var i;
	var j; 
	var controle;
	var Mult;
	var LLdigito;
	var Lsoma;  
	var CNPJ1;
	var CNPJ2; 
	//alert(lNumCNPJ)
	   lNumCNPJ = PreencheZeros( lNumCNPJ , 14 );
	  // alert(lNumCNPJ)
	   if ( lNumCNPJ == null ) {
	      return(false);
	   }

	   if ( lNumCNPJ.length != 14 ) {
	      return(false);
	   }

   	   CNPJ1 = lNumCNPJ.substr(0,12);
       CNPJ2 = lNumCNPJ.substr(12, 13);
	   
       Mult = "543298765432";

	   controle = "";

	   for ( j = 1; j < 3; j ++ ) {
	      Lsoma = 0
	      for ( i = 1; i < 13; i++){
	        Lsoma = Lsoma + ( parseInt(CNPJ1.charAt(i-1)) *  parseInt(Mult.charAt(i-1)) );
	      } 

	      if ( j == 2 ) Lsoma = (Lsoma + (2 * LLdigito));
		        
	      LLdigito = ((Lsoma * 10) % 11);
	      
	      if ( LLdigito == 10 ) LLdigito = 0;
	      
	      controle = controle + parseInt(LLdigito);
	      
	      // Seqüência de multiplicadores para o cálculo do segundo LLdigito
	      Mult = "654329876543";
	   } 

	   if ( controle !=  CNPJ2 )  {
	  	   return(false); 
	   }
	   
	   return(true);
	}
//VERIFICA DÍGITO DO CNPJ

//FUNÇÃO PREENCHE ZEROS
function PreencheZeros(numero,tam)
{
var tam_numero;
tam_numero = numero.length
//alert(numero)
//alert(numero.length)

if (tam <= tam_numero)
{
	return(numero)
}
else
{ 
	for (i=0; i < (tam - tam_numero) ; i++)
	{
		numero = "0" + numero
		//alert(numero)
	}
	return(numero)		
}

}
//FIM DA FUNÇÃO PREENCHE ZEROS

//FUNÇÃO QUE VERIFICA DÍGITO DO CPF
function Valida_CPF(src, args) {
    
        var i; 
	    var cont; 
	    var Valor; 
	    var Resto; 
	    var digito2; 
	    var digito1; 
	    var numtemp; 
	    
	    
	    
	    //'* Se CPF é nulo
	    if ( args.Value == null ) {
	        args.IsValid=false;
	    }
	    
	    args.Value = PreencheZeros(args.Value,11);    
	    //'* Cálculo do primeiro dígito
	    Valor = 0;
	    cont = 2;

	    for (i = args.Value.length - 2; i >= 1; i --) {
	        Valor = Valor + (parseInt(args.Value.charAt(i-1)) * cont);
	        cont ++;
	    } 
	    
	    if ( Valor < 11 ) 
	        Resto = Valor;
	    else
	        Resto = Valor % 11;
	    
	    if ( (Resto == 0 ) || ( Resto == 1 ) )
	        digito1 = 0;
	    else
	        digito1 = 11 - Resto;
	        
	    if  ( digito1 != parseInt(args.Value.charAt(9)) ){ 
	        args.IsValid= false;
	    }
		
	    //'* Cálculo do segundo dígito
	    Valor = 0;
	    cont = 2;

	    var numtemp = args.Value.substr(0, 9) +  digito1;
	    
	    for ( i = numtemp.length; i >= 1; i --) {
	        Valor = Valor + (parseInt(numtemp.charAt(i-1)) * cont);
	        cont++;
	    } 

	    if ( Valor < 11 ) 
	        Resto = Valor;
	    else
	        Resto = Valor % 11;

	    if ( ( Resto == 0 ) || ( Resto == 1 ) )
	        digito2 = 0;
	    else
	        digito2 = 11 - Resto;
	   
	    if ( digito2 != parseInt( args.Value.charAt(10) ) ) 
	        args.IsValid=false;
	args.IsValid=true;

	}
//FIM DA FUNÇÃO QUE VERIFICA DíGITO DO CPF


//---------------------------------------------------------------------------------------

function isnumeric(campo)
{
	var numeros = "1234567890";
	var cont;
	var parte_campo;
	
	for (cont = 0; cont < campo.length; cont++ )
	{
		parte_campo = campo.charAt(cont);
	 	if ( numeros.indexOf(parte_campo) == -1 )
		{
			return false;
		}
	}
	return true;
}

//---------------------------------------------------------------------------------------


//---------------------------------------------------------------------------------------

function MarcaDesmarca(obj, objParametro)
{
	if(objParametro.value == obj.value && objParametro.value != "")
	{
		obj.checked = false;
		objParametro.value = "";
	}
	else
	{
		objParametro.value = obj.value;
	}	
}

//---------------------------------------------------------------------------------------

function MarcaTodosCheckbox(f, obj)
{
	var elementos, nome, tamNome;
	
	nome = obj.name;
	tamNome = obj.name.length;
	elementos = f.elements.length;
	
	for(i = 0; i < elementos; i++)
	{
		if(f.elements[i].type.toUpperCase() == "CHECKBOX" && f.elements[i].name != obj.name && f.elements[i].name.substring(0,tamNome).toUpperCase() == nome.toUpperCase())
		{	
			f.elements[i].checked = obj.checked;
		}
	}
}

//---------------------------------------------------------------------------------------

function ExcluirDados(f)
{
	var elementos, checado, tamNome, nome;

	elementos = f.elements.length;
	checado = false;
	tamNome = f.chk_codigo.name.length;
	nome = f.chk_codigo.name;
	
	for(i = 0; i < elementos; i++)
	{
		if(f.elements[i].type.toUpperCase() == "CHECKBOX" && f.elements[i].checked && f.elements[i].name != f.chk_codigo.name && f.elements[i].name.substring(0,tamNome).toUpperCase() == nome.toUpperCase())
		{
			checado = true;
			break;
		}
	}
	
	if(!checado)
	{
		alert("Nenhum objeto selecionado.");
		return;
	}
	else
	{
		if(confirm("Deseja realmente excluir o(s) objetos(s) selecionado(s)?"))
		{
			f.operacao.value = "E";
			f.submit();
		}
	}
}
