//<!-- 


/*************************************************
	Função que permitir digitar AlfaNumerico e Ponto
	Sem os caracteres especiais 
**************************************************/
function EntradaAlfaNumericoPuro(input, e) {
  var k;

	// e.which: explorer, e.keyCode: mozilla
	if (e && e.which)
		k = e.which;
	else
		k = e.keyCode;	
				
	// No IE não essa função não consegue cancelar tabs, BS, DEL, etc, mas no mozilla sim,
	// por isso precisamos deixar passar as teclas de edição.
	// Somente aceita os caracteres 0-9, tab, enter, del e BS

	if (((k<48)||(k>57)) && ((k<65)||(k>90)) && ((k<97)||(k>122)) && k!= 8 && k!= 9 && k != 127 && k != 13 && k != 46 && k != 37 && k != 39 && ((k>34)&&(k<41)))
        {
		if(e.ctrlKey && (k == 118 ||k == 99)) {
	            return true;
        	}	
        	else
        	{
	            e.returnValue = false;
		    return false;
        	}	       
	}
			
	/*if (((k<48)||(k>57)) && ((k<65)||(k>90)) && ((k<97)||(k>122)) && k != 8 && k != 9 && k != 127 && k != 13 && !((k>34)&&(k<41)) && k != 46) {
        if(e.ctrlKey && (k == 118 ||k == 99)) {
            return true;
        }	
        else
        {
            e.returnValue = false;
		    return false;
        }	
	}*/

	return true;
}

/*************************************************
	Função que permitir digitar numeros 
**************************************************/
function EntradaNumerico(input, e) {
    var k;

	// e.which: explorer, e.keyCode: mozilla
	if (e && e.which)
		k = e.which;
	else
		k = e.keyCode;	
				
	// No IE não essa função não consegue cancelar tabs, BS, DEL, etc, mas no mozilla sim,
	// por isso precisamos deixar passar as teclas de edição.
	// Somente aceita os caracteres 0-9, tab, enter, del e BS
	if ( ((k<48)||(k>57)) && k != 8 && k != 9 && k != 127 && k != 13 && k != 46) 
        {
        	if(e.ctrlKey && (k == 118 ||k == 99)) 
		{
	            return true;
        	}	
        	else
        	{
            		e.returnValue = false;
		    	return false;
        	}	
	}

	return true;
}


/////////////////////////////////////////////////////////////////
	
function FormataCPF(Campo, teclapres)
{
	var tecla = teclapres.keyCode;
	var vr = new String(Campo.value);
	vr = vr.replace(".", "");
	vr = vr.replace(".", "");
	vr = vr.replace("-", "");

	tam = vr.length + 1;
	
	if (tecla != 9 && tecla != 8)
		{
		if (tam > 3 && tam < 7)
			Campo.value = vr.substr(0, 3) + '.' + vr.substr(3, tam);
		if (tam >= 7 && tam <10)
			Campo.value = vr.substr(0,3) + '.' + vr.substr(3,3) + '.' + vr.substr(6,tam-6);
		if (tam >= 10 && tam < 12)
			Campo.value = vr.substr(0,3) + '.' + vr.substr(3,3) + '.' + vr.substr(6,3) + '-' + vr.substr(9,tam-9);
		}
		
}
/////////////////////////////////////////////////////////////////

function FormataControle(Campo, teclapres)
{
	var tecla = teclapres.keyCode;
	
	
	var vr = new String(Campo.value);
	vr = vr.replace(".", "");
	vr = vr.replace(".", "");
	vr = vr.replace(".", "");
	tam = vr.length + 1;
	
 if (tecla != 0x9 && tecla !=0x8 && tecla !=0xd)
		if (tam > 7)
			{
			if (tam > 4 && tam < 9)
				Campo.value = vr.substr(0, 4) + '.' + vr.substr(4, tam);
			if (tam >= 9 && tam <13)
				Campo.value = vr.substr(0,4) + '.' + vr.substr(4,4) + '.' + vr.substr(8,tam-8);
			if (tam >= 13 && tam < 17)
				Campo.value = vr.substr(0,4) + '.' + vr.substr(4,4) + '.' + vr.substr(8,4) + '.' + vr.substr(12,tam-12);
			}
		else
			{
			if (tam > 1 && tam < 5)
				Campo.value = vr.substr(0, 1) + '.' + vr.substr(1, tam);
			if (tam >= 5 && tam < 8)
				Campo.value = vr.substr(0,1) + '.' + vr.substr(1,3) + '.' + vr.substr(4,tam-4);
			}
		
}

function SaltaCampo(campo,prox,tammax,teclapres)
{
	var tecla = teclapres.keyCode;
	vr = document.forms[0].elements[campo].value;
	
		
	if( tecla == 109 || tecla == 188 || tecla == 110 || tecla == 111 || tecla == 223 || tecla == 108){
	   document.forms[0].elements[campo].value = vr.substr(0, vr.length - 1); }
	else
		{
		vr = vr.replace("-","");
		vr = vr.replace("/","");
		vr = vr.replace("/","");
		vr = vr.replace(",","");
		vr = vr.replace(".","");
		vr = vr.replace(".","");
		vr = vr.replace(".","");
		vr = vr.replace(".","");
		tam = vr.length;

		if (tecla != 0 && tecla != 9 && tecla != 16 )
			if ( tam == tammax )
				document.forms[0].elements[prox].focus();
		}

}
//////////////////////////////////////////////////////////////////

function CalcularDV(sCampo, iPeso)
{
	
	var iTamCampo;
	var iPosicao, iDigito;
	var iSoma1 = 0;
	var iSoma2=0;
	var iDV1, iDV2;
		
	iTamCampo = sCampo.length;
		

	for (iPosicao=1; iPosicao<=iTamCampo; iPosicao++){
		iDigito = sCampo.substr(iPosicao-1, 1);
		iSoma1 = parseInt(iSoma1,10) + parseInt((iDigito * Calcular_Peso(iTamCampo - iPosicao, iPeso)),10);
		iSoma2 = parseInt(iSoma2,10) + parseInt((iDigito * Calcular_Peso(iTamCampo - iPosicao + 1, iPeso)),10);
		}

	iDV1 = 11 - (iSoma1 % 11);
	if (iDV1 > 9)
		iDV1 = 0;

	iSoma2 = iSoma2 + (iDV1 * 2);
	iDV2 = 11 - (iSoma2 % 11);
	if (iDV2 > 9)
		iDV2 = 0;

	Ret = (parseInt(iDV1 * 10,10) + parseInt(iDV2));

	Ret = "0" + Ret;
	Ret = Ret.substr(Ret.length - 2,Ret.length);
		
	return(Ret);
	
}

//////////////////////////////////////////////////////////////////		

function Calcular_Peso(iPosicao, iPeso)
{

//Pesos
//CPF 11
//CNPJ 9

return (iPosicao % (iPeso - 1)) + 2;
}
	
/////////////////////////////////////////////////////////////////

function LimpaCampo(sValor,iBase)
{
var tam = sValor.length
var saida = new String
for (i=0;i<tam;i++)
{
	if (!isNaN(parseInt(sValor.substr(i,1),iBase)))
		saida = saida + String(sValor.substr(i,1));
}
return (saida);	
}
/////////////////////////////////////////////////////////////////

function TestaForm(theForm,iTipo)
{
if (!(TestaNI (theForm.NI,iTipo)))
	return (false);
	
if (!(TestaControle (theForm.Controle)))  
	return (false);

var controle = LimpaCampo(theForm.Controle.value,16);
var tam = controle.length;

if	(tam == 16)
{ 
	if (!(TestaData(theForm.Data)))
		return (false);
	
	if (!(TestaHora(theForm.Hora)))
		return (false);		

	if (!(TestaDV(theForm.DigitoVerificador)))
		return (false);		
}		
else	
{
	if (theForm.Data.value != "")
	{
		alert('Só preencher data da emissão para certidão emitida pela Internet');
		theForm.Data.value = "";
		theForm.Data.focus();
		return(false);
	}
	if (theForm.Hora.value != "")
	{	
		alert('Só preencher hora da emissão para certidão emitida pela Internet');
		theForm.Hora.value = "";
		theForm.Hora.focus();
		return(false);
	}
}		
return (true);
	
}
/////////////////////////////////////////////////////////////////

function TestaFormITR(theForm,iTipo)
{
if (!(TestaNI (theForm.NI,iTipo)))
	return (false);
	
if (!(TestaControleITR (theForm.Controle)))  
	return (false);
return (true);

}
/////////////////////////////////////////////////////////////////

function TestaNI(cNI,iTipo)
{
var NI 
NI = LimpaCampo(cNI.value,10);
switch (iTipo) {
	case 1:
		if (NI.length != 14){
			alert('O número do CNPJ informado está incorreto');
			cNI.value = "";
			cNI.focus();
			return(false);
			}

		if (NI.substr(12,2) != CalcularDV(NI.substr(0,12), 9)){
			alert('O número do CNPJ informado está incorreto');
			cNI.value = "";
			cNI.focus();
			return(false);
			}
		break;

	case 2:
		if (NI.length != 11){
			alert('O número do CPF informado está incorreto');
			cNI.value = "";
			cNI.focus();
			return(false);
			}

		if (NI.substr(9,2) != CalcularDV(NI.substr(0,9), 11)){
			alert('O número do CPF informado está incorreto');
			cNI.value = "";
			cNI.focus();
			return(false);
			}
		break;
	case 3:
		if (NI.length != 8){
			alert('O número do ITR informado está incorreto');
			cNI.value = "";
			cNI.focus();
			return(false);
			}
		var dv = new String(); 
		dv = CalcularDV(NI.substr(0,7), 9);
		dv = dv.substr(0,1);
		if (NI.substr(7,1) != dv){
			alert('O número do ITR informado está incorreto');
			cNI.value = "";
			cNI.focus();
			return(false);
			}
		break;

	default:
		return(false);
	}
return (true);	
}  
/////////////////////////////////////////////////////////////////

function TestaControle(cControle)
{
var controle; 
controle = LimpaCampo(cControle.value,16);
var tam = controle.length;
if	(tam != 7 && tam != 16)
	{
	alert('O  Número/Código de Controle informado está incorreto');
	cControle.value = "";
	cControle.focus();
	return(false);
	}
return(true); 
}
/////////////////////////////////////////////////////////////////
function TestaControleITR(cControle)
{
var controle; 
controle = LimpaCampo(cControle.value,10);
var tam = controle.length;
if	(tam != 7)
	{
	alert('O  Número da Certidão informado está incorreto');
	cControle.value = "";
	cControle.focus();
	return(false);
	}
return(true); 
}
/////////////////////////////////////////////////////////////////

function VerAlfaNumerico(pInd)
{
 var pValor = document.forms[0].elements[pInd].value
 var AuxTam = pValor.length  
  for(var j=0;j<AuxTam;j++)
   if ((!IndAlfaNumerico(pValor.charAt(j))) || (pValor.charAt(j) == " ")){
     document.forms[0].elements[pInd].focus();  
     document.forms[0].elements[pInd].value = pValor = pValor.substring(0,j)           
   } 
  }
////////////////////////////////////////////////////////////////////

function IndAlfaNumerico(N)
{
 for(var i=0;i<10;i++)
	if(N == i)
		return true;
 return false;    
}

/////////////////////////////////////////////////////////////////

function FormataData(Campo, teclapres)
{
	var tecla = teclapres.keyCode;
	var vr = new String(Campo.value);
	vr = vr.replace("/", "");
	vr = vr.replace("/", "");
	tam = vr.length + 1;
	
	if (tecla != 9 && tecla != 8) 
 		{
		if (tam > 2 && tam < 5)
			Campo.value = vr.substr(0, 2) + '/' + vr.substr(2, tam);
		if (tam >= 5 && tam <=10)
			Campo.value = vr.substr(0,2) + '/' + vr.substr(2,2) + '/' + vr.substr(4,4);
		
		}
}
/////////////////////////////////////////////////////////////////
	
function FormataHora(Campo, teclapres) 
{
	var tecla = teclapres.keyCode;
	
	var vr = new String(Campo.value);
	vr = vr.replace(":", "");
	vr = vr.replace(":", "");

	tam = vr.length + 1;
	
	if (tecla != 9 && tecla != 8) {
		if (tam > 2 && tam < 5)
			Campo.value = vr.substr(0, 2) + ':' + vr.substr(2, tam);
		if (tam >= 5 && tam < 9)
			Campo.value = vr.substr(0,2) + ':' + vr.substr(2,2) + ':' + vr.substr(4,2);
		}
	}
/////////////////////////////////////////////////////////////////

function TestaData(cData)
{
	var data; 
	data = LimpaCampo(cData.value,10);
	var tam = data.length;

	if	(tam != 8)
	{
		alert('A data da emissão está incorreta');
		cData.value = "";
		cData.focus();
		return(false);
	}
	var dia = data.substr(0,2)
	var mes = data.substr (2,2)
	var ano = data.substr (4,4)	
	if (ano < 1994)
	{
		alert('A data da emissão está incorreta');
		cData.value = "";
		cData.focus();
		return(false);
	}

	switch (mes)
	{
	case '01':
		if  (dia <= 31) 
			return (true);
		break;
	case '02':
		if  (dia <= 29) 
			return (true);
		break;
	case '03':
		if  (dia <= 31) 
			return (true);
		break;
	case '04':
		if  (dia <= 30) 
			return (true);
		break;
	case '05':
		if  (dia <= 31) 
			return (true);
		break;
	case '06':
		if  (dia <= 30) 
			return (true);
		break;
	case '07':
		if  (dia <= 31) 
			return (true);
		break;
	case '08':
		if  (dia <= 31) 
			return (true);
		break;
	case '09':
		if  (dia <= 30) 
			return (true);
		break;
	case '10':
		if  (dia <= 31) 
			return (true);
		break;
	case '11':
		if  (dia <= 30) 
			return (true);
		break;
	case '12':
		if  (dia <= 31) 
			return (true);
		break;
	}	

	{
	alert('A data está incorreta');
	cData.value = "";
	cData.focus();
	return(false);
	}


return(true); 

}
///////////////////////////////////////////////////////////////////
function TestaHora(cHora)
{
var hora; 
hora = LimpaCampo(cHora.value,10);
var tam = hora.length;
if	(tam != 6)
	{
	alert('A hora da emissão está incorreta');
	cHora.value = "";
	cHora.focus();
	return(false);
	}
	
var hr = hora.substr(0,2)
var min = hora.substr (2,2)
var seg = hora.substr (4,2)	
if ((hr > 23) || (min > 59) || (seg > 59))
	{
	alert('A hora da emissão está incorreta');
	cHora.value = "";
	cHora.focus();
	return(false);
	}
return(true);
 
}
/////////////////////////////////////////////////////////////////

function TestaDV(cDV)
{
var dv;
dv = LimpaCampo(cDV.value,10);
var tam = dv.length;
if	(tam != 2)
	{
	alert('O Digito Verificador está incorreto.');
	cDV.value = "";
	cDV.focus();
	return(false);
	}
	
return(true);
 
}
/////////////////////////////////////////////////////////////////
	


/*************************************************
	Função que permitir digitar apenas letras a-z / A-Z
	Sem os caracteres especiais 
**************************************************/
function EntradaLetras(input, e) {
  var k;

	// e.which: explorer, e.keyCode: mozilla
	if (e && e.which)
		k = e.which;
	else
		k = e.keyCode;	
				
	// No IE essa função não consegue cancelar tabs, BS, DEL, etc, mas no mozilla sim,
	// por isso precisamos deixar passar as teclas de edição.
	// Somente aceita os caracteres 0-9, tab, enter, del e BS

//alert(k);

	if (((k>96)&&(k<123)) || ((k>64)&&(k<91)) || (k == 8) || (k == 9) || (k == 13) || (k == 46) || (k == 32) || ((k>34)&&(k<40)))
        {
       		return true;
	}
	else
	{
		e.returnValue = false;
		return false;
	}
			
	/*if (((k<48)||(k>57)) && ((k<65)||(k>90)) && ((k<97)||(k>122)) && k != 8 && k != 9 && k != 127 && k != 13 && !((k>34)&&(k<41)) && k != 46) {
        if(e.ctrlKey && (k == 118 ||k == 99)) {
            return true;
        }	
        else
        {
            e.returnValue = false;
	    return false;
        }	
	}*/

	return true;
}


//-->

