//Converte acentuação
function RemoveAcentos(TextoAcentuado)
	{
	 var contador=0;
	 var acentos="ÀÁÃÂÄÈÉÊËÌÍÎÏÒÓÕÔÖÙÚÛÜÇçàáãâäèéêëìíîïòóõöùúûü'";
	 var novosac="AAAAAEEEEIIIIOOOOOUUUUCcaaaaaeeeeiiiioooouuuu ";
	 var sstr;
	 for (contador=0; contador<acentos.length; contador++)
	     {
	      sstr = '/' + acentos.substr(contador,1) + '/g';
	      TextoAcentuado=TextoAcentuado.replace(eval(sstr),novosac.substr(contador,1));
	     }
	 return encodeURI(TextoAcentuado);    
	}

//Cria objeto AJAX
function createAjaxObj()
	{
	 var httprequest=false
	 if (window.XMLHttpRequest)
		{
		 // Se Mozilla, Safari etc.
		 httprequest=new XMLHttpRequest()
		 if (httprequest.overrideMimeType)
		     httprequest.overrideMimeType('text/xml')
		}
	 else if (window.ActiveXObject)
		{
		 //Se IE
		try 
			{
			 httprequest=new ActiveXObject("Msxml2.XMLHTTP");
			} 
		catch (e)
			{
			 try
				{
				 httprequest=new ActiveXObject("Microsoft.XMLHTTP");
				}
			catch (e)
				{
				}
			}
		}
	 return httprequest
	}
			
//Abre URL utilizando AJAX
function ObtemURL(URL)
	{
	 //Coleta retorno
	 ajax=createAjaxObj();
	 ajax.open('GET', URL, false);
	 ajax.send(null);
				 
	 //Arma trap para mudanças de estado
     return ajax.responseText;
    }

//Conexão ativa?
function ConexaoAtiva()
	{
	 if (ObtemURL('conexao.asp')=='true')
	    {
		 return true;
		}
	 else
	 	{
		 return false;
		}	
	}

//Abre URL utilizando AJAX
function PostaURL(URL,PostData)
	{
	 //Remete os dados
	 ajax=createAjaxObj();
	 ajax.open('POST', URL, false);
     ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	 ajax.send(PostData);
				 
	 //Arma trap para mudanças de estado
     return ajax.responseText;
    }

function v_cnpj(CNPJ)
   {
    //Verifica a validade do CNPJ
    CNPJTR = ""
    CNPJDG = CNPJ
    for (contador=0; contador<=CNPJDG.length; contador++)
        {
         if (CNPJDG.charCodeAt(contador)>47 && CNPJDG.charCodeAt(contador)<58)
            CNPJTR=CNPJTR+CNPJDG.substr(contador,1)
        }    
   
    //Verifica o tamanho depois de removida a barra e os pontos
    if (CNPJTR.length!=14)
       return false
    else
       CNPJTR=CNPJTR.substr(0,14)        

    var CNPJ1=0, CNPJ2=0, CNPJ3=0, CNPJ4=0, CNPJ5=0, CNPJ6=0
    var CNPJ7=0, CNPJ8=0, CNPJ9=0, CNPJ10=0, CNPJ11=0, CNPJ12=0
    CNPJ1=parseInt(CNPJTR.substr(0,1))
    CNPJ2=parseInt(CNPJTR.substr(1,1))
    CNPJ3=parseInt(CNPJTR.substr(2,1))
    CNPJ4=parseInt(CNPJTR.substr(3,1))
    CNPJ5=parseInt(CNPJTR.substr(4,1))
    CNPJ6=parseInt(CNPJTR.substr(5,1))
    CNPJ7=parseInt(CNPJTR.substr(6,1))
    CNPJ8=parseInt(CNPJTR.substr(7,1))
    CNPJ9=parseInt(CNPJTR.substr(8,1))
    CNPJ10=parseInt(CNPJTR.substr(9,1))
    CNPJ11=parseInt(CNPJTR.substr(10,1))
    CNPJ12=parseInt(CNPJTR.substr(11,1))
   
    Tot=((CNPJ1+CNPJ9)*5)+((CNPJ2+CNPJ10)*4)+((CNPJ3+CNPJ11)*3)+((CNPJ4+CNPJ12)*2)+(CNPJ5*9)+(CNPJ6*8)+(CNPJ7*7)+(CNPJ8*6)
    nNum=11-(Tot%11)
    if (nNum > 9)
       nNum=0
   
    mDigito1=""
    mDigito1=nNum

    //'Segundo dígito
    Tot=((CNPJ1+CNPJ9)*6)+((CNPJ2+CNPJ10)*5)+((CNPJ3+CNPJ11)*4)+((CNPJ4+CNPJ12)*3)+((CNPJ5+nNum)*2)+((CNPJ6*9)+(CNPJ7*8)+(CNPJ8*7))
    nNum=11-(Tot%11)
    if (nNum > 9)
       nNum=0
   
    mDigito2="" 
    mDigito2=nNum
   
    //Reune os dígitos
    dg_orig=CNPJTR.substr(12,1)+CNPJTR.substr(13,1)
    dg_ver=mDigito1.toString()+mDigito2.toString()
    
    //Efetua a verificação CNPJ
    if (dg_orig==dg_ver)
       return true
    else
       return false
   }

function v_cpf(CPF)
   {

    //Verifica se o tamanho do CPF está correto
    CPFL=""
    for (contador=0; contador<=CPF.length; contador++)
        {
         if (CPF.charCodeAt(contador)>47 && CPF.charCodeAt(contador)<58)
            CPFL=CPFL+CPF.substr(contador,1)
        } 
        
    if (CPFL.length!=11)
       return false

    lngSoma = 0
    intNumero = 0
    intMais = 0
    strcampo = CPFL.substr(0, 9)

    //Inicia calculos do digito 1
    for (i=2; i<11; i++)
        {
         intNumero = parseInt(strcampo.substr(10-i,1))
         intMais = intNumero * i
         lngSoma = lngSoma + intMais
        }

    intResto = lngSoma%11

    if (intResto==0 || intResto==1)
       intDig1 = 0
    else
       intDig1 = 11 - intResto

    //Concatena o CPF com o primeiro digito verificador
    strcampo = strcampo + intDig1.toString()
    lngSoma = 0
    intNumero = 0
    intMais = 0
    
    //Inicia cálculos do 2º dígito
    for (i=2; i<12; i++)
        {
         intNumero = parseInt(strcampo.substr(11-i,1))
         intMais = intNumero * i
         lngSoma = lngSoma + intMais
        }
    intResto = lngSoma%11
    if (intResto==0 || intResto==1)
       intDig2 = 0
    else
       intDig2 = 11 - intResto

    strConf = intDig1.toString() + intDig2.toString()
    
    //Caso o CPF esteja errado dispara a mensagem
    if (strConf != CPFL.substr(9, 2))
       return false
    else
       return true
   }

function v_email(email)        
{
 //Localiza primeira posição do arroba
 var arroba=email.indexOf("@",0)
 
 //O arroba foi encontrado?
 //O arroba está no primeiro caracter da linha?
 if (arroba<0 || arroba==0)
    {
     //O e-mail é inválido porque não existe 
     //separador (@) ou username
     return false
    }
 
 //Existe texto após o arroba?
 if (arroba<email.length)
    {
     
     //Existe mais de um arroba no endereço?
     if (email.indexOf("@",arroba+1)>-1)
        {
         //O e-email é inválido porque não existe
         //nome de provedor após a arroba
         return false
        } //Separa conteúdo antes da arroba
     var usuario=email.substr(0,arroba)
     if (usuario.length<1)
        {
         //É requerido um username de pelo menos 3 caracteres
         //O e-mail é inválido
         return false
        }
     
     //Separa conteúdo após a arroba
     var provedor=email.substr(arroba+1,email.length-(arroba+1))
     //Separa nomes do provedor
     var contador=0
     var partesidx=0
     var partes=new Array(10)
     
     //Inicializa array
     for (contador=0;contador<=10;contador++)
         {
          partes[contador]=""
         } 
         
     for (contador=0;contador<=provedor.length;contador++)
         {
          
          //Seprador ou parte de um nome?
          if (provedor.substr(contador,1)!=".")
             {
              
              //Une caracter ao resto do nome
              partes[partesidx]=partes[partesidx]+provedor.substr(contador,1)
             }
          else
             {
              
              //Avança para próximo nome
              partesidx++
             }
         }
     
     //Achou ao menos um separador?
     if (partesidx<1)
        {
         //Não há separador (.) no nome do provedor
         return false
        }
         
     //Verifica tamanhos das partes encontradas
     for (contador=0;contador<=partesidx;contador++)
         {
          if (partes[contador].length<2)
             {
              //Menos de dois caracteres na parte = email inválido
              return false
             }
         }
     
     //O e-mail é valido!
     return true         
    }
 else
    {
     
     //Não existe nada após a arroba!
     //O email não é valido!
     return false
    }        
}

function v_data(data)
{
 //* Requisita verificação de data
 mensagem=ObtemURL("_vdata.asp?data="+data,false);
 if (mensagem=="true")
    {
     return true
    }
 else
    {
     return false
    }     
}

function v_data_menor(datainicial,datafinal)
{
 //* Requisita verificação de data
 mensagem=ObtemURL("_vdata_menor.asp?datainicial="+datainicial+"&datafinal="+datafinal,false);
 if (mensagem=="true")
    {
     return true
    }
 else
    {
     return false
    }     
}

function numerico(codigo)
    { 
	 //Evita caracteres não numéricos
	 if (codigo<48 || codigo>57)
	    {
	     event.keyCode=null;
	    }
	}
				
//Evita não numéricos
function formata(tipo,id)
	{
	 //Dimensionamento de variáveis
	 var texto="";
	 var res="";
	 var postxt=0;
	 var posmsc=0;
	 var contador=0;
	 var mascara="";
	 var localizar=".,:/-"
				 
	 //Filtra texto
	 texto=eval(id + ".value")
	 
	 for (contador=0;contador<localizar.length;contador++)
	     {
	      while (texto.indexOf(localizar.substr(contador,1))>-1)
	            {
	             texto=texto.replace(localizar.substr(contador,1),"")
	            }
	     }
	     
	 //Define formato da máscara
	 switch (tipo)
			{
			 case "cep" :
			      mascara="@@@@@-@@@";
			      break;
			 case "fone" :
			      mascara="@@@@-@@@@";
			      break;
			 case "cpf" :
			      mascara="@@@.@@@.@@@-@@";
			      break;
			 case "cnpj" :
				  mascara="@@.@@@.@@@/@@@@-@@";
			      break;
			 case "data" :
			      mascara="@@@@/@@/@@@@";
			      break;
			 case "hora" :
			      mascara="@@:@@";
			      break;
			 case "valor" :
			      mascara="@.@@@.@@@,@@";
			      break;
			 case "beneficio" :
			      mascara="@@@.@@@.@@@-@";
			      break;
			}
				 
	 //Define posição da máscara e do texto
	 postxt=texto.length;
	 posmsc=mascara.length;

	 //Enquadra texto na máscara
	 while (postxt>=0)
	       {
	        //Copia caractere atual do texto
	        res=texto.substr(postxt,1) + res;
				      
	        if (mascara.substr(posmsc,1)!="@")
	           {
	            //Copia separador
	            res=mascara.substr(posmsc,1) + res;
				          
	            //Decrementa posição na máscara
	            if (posmsc>0)
				   {
				    posmsc--;
				   } 
	           }
				      
	        //Decrementa posição do texto e da máscara
	        postxt--;
            if (posmsc>0)
               {
  	            posmsc--;   
			   } 
	       }
				 
	 //Filtra pontuação antes do valor
	 for (contador=0;contador<localizar.length;contador++)
	     {
	      if (res.substr(0,1)==localizar.substr(contador,1))
             {
              res=res.substr(1,res.length-1)
             }
	     }

	 //Salva texto
	 eval(id + ".value='" + res + "'")
	 res="";    
	}
