/**
///////////////////////////////////////////EXEMPLOS/////////////////////////////////////

PULA CAMPO:
CPF: <input type="text" name="cpf" id="cpf" onKeyUp="pula(11,this.id,rg.id);" size="15"><br>
RG : <input type="text" name="rg" id="rg" onKeyUp="pula(14,this.id,cep.id);" size="15"><br>
CEP: <input type="text" name="cep" id="cep" onKeyUp="pula(8,this.id,tel.id);" size="15"><br>
TEL: <input type="text" name="tel" id="tel" onKeyUp="pula(8,this.id,enviar.id);" size="15"><br> 

NÚMEROS:
<input type="text" name="numero" onKeyPress="return v_NR(event)" onKeyDown="return v_NR(event)" maxlength="10" size="20">

CPF:
<input type="text" name="cpf" onKeyPress="m_CPF(this,11); return v_NR(event)" onKeyDown="return v_NR(event)" onchange="m_CPF(this,11)" maxlength="14" size="20">

CNPJ:
<input type="text" name="cnpj" onKeyPress="m_CNPJ(this,14); return v_NR(event)" onKeyDown="return v_NR(event)" onchange="m_CNPJ(this,14)" maxlength="18" size="20">

CEP:
<input type="text" name="cep" onKeyPress="m_CEP(this,8); return v_NR(event)" onKeyDown="return v_NR(event)" onchange="m_CEP(this,8)" maxlength="10" size="20">

FONE:
<input type="text" name="fone" onKeyPress="m_FONE(this,8); return v_NR(event)" onKeyDown="return v_NR(event)" onchange="m_FONE(this,8)" maxlength="9">

**/
/////////////////////////MÁSCARAS PARA O FORMULÁRIO/////////////////////////////////////


//PULA CAMPO AUTOMATICO
//Parâmetros : maxlength => tamanho máximo do campo
//             idObj     => id do campo em que a função está sendo executada
//             idNext    => id do campo que receberá o foco
function pula(maxlength, idObj, idNext){
  var next = document.getElementById(idNext);
  var obj = document.getElementById(idObj);
  if (next.type.toLowerCase() == "text" || next.type.toLowerCase() == "password"){
     if(obj.value.length >= maxlength){
        next.select();
     }
  }else if (next.type.toLowerCase() == "select-one"){
      if(obj.value.length >= maxlength){
           next.focus();
         next.selectedIndex=0;
      }
  }else if (next.type.toLowerCase() == "submit"){
     if(obj.value.length >= maxlength){
         if (navigator.appName == "Microsoft Internet Explorer"){
             next.select();
         }else{
             next.focus();
         }
     }
  }
} 

//-----> somente números:
function v_NR(tecla)
{
	if(typeof(tecla) == 'undefined')
	var tecla = window.event;
	var codigo = (tecla.which ? tecla.which : tecla.keyCode ? tecla.keyCode : tecla.charCode);
	// permite números, 8=backspace, 46=del e 9=tab
	if ( (codigo >= 48 && codigo <= 57) || (codigo >= 96 && codigo <= 105) || codigo == 8 || codigo == 46 || codigo == 9 )
	{ 
		return true; 
	}
	else
	{ 
		return false; 
	}
}

//Formata número tipo moeda usando o evento onKeyDown */

function Formata(campo,tammax,teclapres,decimal) {
 
var tecla = teclapres.keyCode; 
vr = Limpar(campo.value,"0123456789"); 
tam = vr.length; 
dec=decimal 

if (tam < tammax && tecla != 8){ tam = vr.length + 1 ; } 

if (tecla == 8 ) 
{ tam = tam - 1 ; } 

if ( tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 ) 
{ 

if ( tam <= dec ) 
{ campo.value = vr ; } 

if ( (tam > dec) && (tam <= 5) ){ 
campo.value = vr.substr( 0, tam - 2 ) + "." + vr.substr( tam - dec, tam ) ; } 
if ( (tam >= 6) && (tam <= 8) ){ 
campo.value = vr.substr( 0, tam - 5 ) + "." + vr.substr( tam - 5, 3 ) + "." + vr.substr( tam - dec, tam ) ; 
} 
if ( (tam >= 9) && (tam <= 11) ){ 
campo.value = vr.substr( 0, tam - 8 ) + "." + vr.substr( tam - 8, 3 ) + "." + vr.substr( tam - 5, 3 ) + "." + vr.substr( tam - dec, tam ) ; } 
if ( (tam >= 12) && (tam <= 14) ){ 
campo.value = vr.substr( 0, tam - 11 ) + "." + vr.substr( tam - 11, 3 ) + "." + vr.substr( tam - 8, 3 ) + "." + vr.substr( tam - 5, 3 ) + "." + vr.substr( tam - dec, tam ) ; } 
if ( (tam >= 15) && (tam <= 17) ){ 
campo.value = vr.substr( 0, tam - 14 ) + "." + vr.substr( tam - 14, 3 ) + "." + vr.substr( tam - 11, 3 ) + "." + vr.substr( tam - 8, 3 ) + "." + vr.substr( tam - 5, 3 ) + "." + vr.substr( tam - 2, tam ) ;} 
} 


}

function Limpar(valor, validos) { 
// retira caracteres invalidos da string 
var result = ""; 
var aux; 
for (var i=0; i < valor.length; i++) { 
aux = validos.indexOf(valor.substring(i, i+1)); 
if (aux>=0) { 
result += aux; 
} 
} 
return result; 
} 
/**/

function somente_numero_ponto(campo){
var digits="0123456789."
var campo_temp 
for (var i=0;i<campo.value.length;i++){
  campo_temp=campo.value.substring(i,i+1) 
  if (digits.indexOf(campo_temp)==-1){
     campo.value = campo.value.substring(0,i);
     break;
   }
}
}

//-----> máscara cnpj:
function m_CNPJ(campo,tammax) 
{
	var vr = campo.value;
vr = vr.replace( "-", "" );
vr = vr.replace( "/", "" );
vr = vr.replace( ".", "" );
vr = vr.replace( ".", "" );
var tam = vr.length;



if (tam < tammax) { tam = vr.length + 1 ; }

tam = tam - 1;
if ( (tam > 2) && (tam <= 5) ) {
vr = vr.substr( 0, tam - 1 ) + '-' + vr.substr( tam - 1, tam ) ; }
if ( (tam >= 6) && (tam <= 8) ) {
vr = vr.substr( 0, tam - 5 ) + '/' + vr.substr( tam - 5, 4 ) + '-' + vr.substr( tam - 1, tam ) ; }
if ( (tam >= 9) && (tam <= 11) ) {
vr = vr.substr( 0, tam - 8 ) + '.' + vr.substr( tam - 8, 3 ) + '/' + vr.substr( tam - 5, 4 ) + '-' + vr.substr( tam - 1, tam ) ; }

if ( (tam >= 12) && (tam < 14) ) {

vr = vr.substr( 0, tam - 11 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '/' + vr.substr( tam - 5, 4 ) + '-' + vr.substr( tam - 1, tam ) ; 
}
campo.value = vr; 
}

//-----> máscara cpf:
function m_CPF(campo,tammax) 
{
	var vr = campo.value;
	vr = vr.replace( "-", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	var tam = vr.length;
	if (tam < tammax) 
	{ 
		tam = vr.length + 1; 
	}
	tam = tam - 1;

	if ( (tam > 2) && (tam <= 11) ) 
	{
		vr = vr.substr( 0, tam - 1 ) + '-' + vr.substr( tam - 1, tam ); 
	}
	if ( (tam == 10) ) 
	{
		vr = vr.substr( 0, tam - 7 ) + '.' + vr.substr( tam - 7, 3 ) + '.' + vr.substr( tam - 4, tam ); 
	}
	campo.value = vr;
}

//-----> máscara cep:
function m_CEP(campo,tammax) 
{
	var vr = campo.value;
	vr = vr.replace( "-", "" );
	vr = vr.replace( ".", "" );
	var tam = vr.length;
	if (tam < tammax) 
	{ 
		tam = vr.length + 1; 
	}
	tam = tam - 1;
	if ( (tam > 2) && (tam <= 8) ) 
	{
		vr = vr.substr( 0, tam - 2 ) + '-' + vr.substr( tam - 2, tam ); 
	}
	if ( (tam == 7) ) 
	{
		vr = vr.substr( 0, tam - 5 ) + '.' + vr.substr( tam - 5, tam ); 
	}
	campo.value = vr;
}

function m_FONE(campo,tammax) 
{
	var vr = campo.value;
	//vr = vr.replace( "(", "" );
	//vr = vr.replace( ")", "" );
	//vr = vr.replace( "-", "" );
	var tam = vr.length;
	if (tam < tammax) 
	{ 
		tam = vr.length + 1; 
		//alert(tam);
	}
	tam = tam - 1;
	//alert(tam);
	
	if ( (tam == 4) ) 
	{
		vr = vr.substr( 0, tam + 2 ) + '-' + vr.substr( tam + 2, tam ); 
	}
	campo.value = vr;
}

function backspace(obj,event){
/*
Essa função basicamente altera o  backspace nos input com máscara reais para os navegadores IE e opera.
O IE não detecta o keycode 8 no evento keypress, por isso, tratamos no keydown.
Como o opera suporta o infame document.all, tratamos dele na mesma parte do código.
*/

var whichCode = (window.Event) ? event.which : event.keyCode;
if (whichCode == 8 && documentall) {	
	var valor = obj.value;
	var x = valor.substring(0,valor.length-1);
	var y = demaskvalue(x,true).formatCurrency();

	obj.value =""; //necessário para o opera
	obj.value += y;
	
	if (event.preventDefault){ //standart browsers
			event.preventDefault();
		}else{ // internet explorer
			event.returnValue = false;
	}
	return false;

	}// end if		
}// end backspace
/*VALIDA DATA*/

function VerificaData(diaa, mesa, anoa) 
{
        var bissexto = 0;
		var dia = diaa
		var mes = mesa
		var ano = anoa
		if ((ano > 1900)||(ano < 2100))
		{
				switch (mes) 
				{
						case '01':
						case '03':
						case '05':
						case '07':
						case '08':
						case '10':
						case '12':
								if  (dia <= 31) 
								{
										return true;
								}
								break
						
						case '04':              
						case '06':
						case '09':
						case '11':
								if  (dia <= 30) 
								{
										return true;
								}
								break
						case '02':
								/* Validando ano Bissexto / fevereiro / dia */ 
								if ((ano % 4 == 0) || (ano % 100 == 0) || (ano % 400 == 0)) 
								{ 
										bissexto = 1; 
								} 
								if ((bissexto == 1) && (dia <= 29)) 
								{ 
										return true;                             
								} 
								if ((bissexto != 1) && (dia <= 28)) 
								{ 
										return true; 
								}                       
								break                                           
				}
		}      
        return false;
}


/*  
valida se é telefone 
*/
function ValidaFone(campoFone)
{
	var a = campoFone; 
	c1 = campoFone.substr(0, 1); // (
	c2 = campoFone.substr(1, 2); // so numeros								  
	c3 = campoFone.substr(3, 1); // )
	c4 = campoFone.substr(4, 4); // so numeros
	c5 = campoFone.substr(8, 1); //-
	c6 = campoFone.substr(9, 4); // so numeros
	
	var charposnum1 = c2.search("[^0-9]"); 
	var charposnum2 = c4.search("[^0-9]"); 
	var charposnum3 = c6.search("[^0-9]");
	
	if((c2.length > 0 &&  charposnum1 >= 0)||(c4.length > 0 &&  charposnum2 >= 0)||(c6.length > 0 &&  charposnum3 >= 0))
	{ 
		return (false); 
	}
	else
	{	
		if((c1.length > 0 &&  c1 != "(")|| (c3.length > 0 &&  c3 != ")") || (c5.length > 0 &&  c5 != "-"))
		{ 			
			return (false); 
		}
		else
		{ 
			return(true);
		}
	}
}

/*  
valida se é hora 
*/
function ValidaHora(campoHora)
{
	var a = campoHora; 
	c1 = campoHora.substr(0, 2); // so numeros
	c2 = campoHora.substr(2, 1); // :								  
	c3 = campoHora.substr(3, 2); // so numeros
	
	var charposnum1 = c1.search("[^0-9]"); 
	var charposnum2 = c3.search("[^0-9]"); 

	
	if((c1.length > 0 &&  charposnum1 >= 0)||(c3.length > 0 &&  charposnum2 >= 0))
	{ 
		return (false); 
	}
	else
	{	
		if(c2.length > 0 &&  c2 != ":")
		{ 			
			return (false); 
		}
		else
		{ 
			return(true);
		}
	}
}

/*
Valida posicoes para o CPF
ex: 045.896.965-89
*/
function ValidaCpf(campoCPF)
{
	var a = campoCPF; 
	c1 = campoCPF.substr(0, 3); // numeros
	c2 = campoCPF.substr(3, 1); // .
	c3 = campoCPF.substr(4, 3); // numeros
	c4 = campoCPF.substr(7, 1); // .
	c5 = campoCPF.substr(8, 3); // numeros
	c6 = campoCPF.substr(11, 1); // -
	c7 = campoCPF.substr(12, 2); // numeros
	c8 = c1 + c3 + c5 + c7;
	
	var charposnum =  c8.search("[^0-9]"); 
	
	if(c8.length > 0 &&  charposnum >= 0)
	{ 
		return (false); 
	}
	else
	{	
		if((c2.length > 0 &&  c2 != ".")|| (c4.length > 0 &&  c4 != ".") || (c6.length > 0 &&  c6 != "-"))
		{ 
			return (false); 
		}
		else
		{ 
			return(true);
		}
	}
}

/*
Valida posicoes para o CNPJ
ex: 03.232.323/3332-35
*/
function ValidaCNPJ(campoCNPJ)
{
	var a = campoCNPJ; 
	c1 = campoCNPJ.substr(0, 2);  // numeros
	c2 = campoCNPJ.substr(2, 1);  // .
	c3 = campoCNPJ.substr(3, 3);  // numeros
	c4 = campoCNPJ.substr(6, 1);  // .
	c5 = campoCNPJ.substr(7, 3);  // numeros
	c6 = campoCNPJ.substr(10, 1); // /
	c7 = campoCNPJ.substr(11, 4); // numeros
	c8 = campoCNPJ.substr(15, 1); // -
	c9 = campoCNPJ.substr(16, 2); // numeros
	c10 = c1 + c3 + c5 + c7 + c9;
	
	var charposnum =  c10.search("[^0-9]"); 
	
	if(c10.length > 0 &&  charposnum >= 0)
	{ 
		return (false); 
	}
	else
	{	
		if((c2.length > 0 &&  c2 != ".")|| (c4.length > 0 &&  c4 != ".") || (c6.length > 0 &&  c6 != "/") || (c8.length > 0 &&  c8 != "-"))
		{ 
			return (false); 
		}
		else
		{ 
			return(true);
		}
	}
}

/*
Valida posicoes para o Cep
ex: 84.260-000
*/
function ValidaCEP(campoCEP)
{
	var a = campoCEP; 
	c1 = campoCEP.substr(0, 2);  // numeros
	c2 = campoCEP.substr(2, 1);  // .
	c3 = campoCEP.substr(3, 3);  // numeros
	c4 = campoCEP.substr(6, 1);  // -
	c5 = campoCEP.substr(7, 3);  // numeros
	
	c10 = c1 + c3 + c5;
	
	var charposnum =  c10.search("[^0-9]"); 
	
	if(c10.length > 0 &&  charposnum >= 0)
	{ 
		return (false);
	}
	else
	{	
		if((c2.length > 0 &&  c2 != ".")|| (c4.length > 0 &&  c4 != "-"))
		{ 
			return (false); 
			
		}
		else
		{ 
			return(true);
		}
	}
}

/*
aceita somente numeros
*/
function ValidaNumero(campoNum)
{
	var a = campoNum; 
	var charposnum =  campoNum.search("[^0-9]"); 
	
	if(campoNum.length > 0 &&  charposnum >= 0)
	{ 
		return (false); 
	}
	else
	{
		return(true);
	}
}

//Testa se email é valido
function emailValido(email)
{
	//não pode ser vazop, tem que conter "@", "." e não pode conter espaços
	if(email == null || email.lenght == 0 || email.indexOf(".") == -1 || email.indexOf("@") == -1 || email.indexOf(" ") != -1)
	{
		return false;
	}
	
	//testa os caracteres antes do "@"
	//não pode começar nem terminar com ponto
	// deve ter ao menos dois caracteres word (letras, números, underline)
	//opcionalmente com um ponto entre eles
	expressao=/(^\w{1,}\.?\w{1,})@/;
	confere = expressao.exec(email);
	if(!confere) { return false; }
	
	//testa os caracteres depois do "@"
	// deve ter ao menos dois caracteres seguido por um ponto
	//seguido por zero ou mais ocorrências de ao menos 2
	//caracteres ( terminando com um  ponto), seguidos por 2 ou 3 caracteres
	//expressao=/@(\w{2,}\.(\w{2,}\.)?[a-zA-Z]{2,3})$/;
	//confere=expressao.exec(email);
	if(!confere) { return false; }
		
	return true;	
}
/****************************************************************************************/
//Valida Inscrição Estadual

var OrdZero = '0'.charCodeAt(0);

function CharToInt(ch)
{
return ch.charCodeAt(0) - OrdZero;
}


function IntToChar(intt)
{
return String.fromCharCode(intt + OrdZero);
}


function CheckIEAC(ie){
if (ie.length != 13)
return false;
var b = 4, soma = 0;

for (var i = 0; i <= 10; i++)
{
soma += CharToInt(ie.charAt(i)) * b;
--b;
if (b == 1) { b = 9; }
}
dig = 11 - (soma % 11);
if (dig >= 10) { dig = 0; }
resultado = (IntToChar(dig) == ie.charAt(11));
if (!resultado) { return false; }

b = 5;
soma = 0;
for (var i = 0; i <= 11; i++)
{
soma += CharToInt(ie.charAt(i)) * b;
--b;
if (b == 1) { b = 9; }
}
dig = 11 - (soma % 11);
if (dig >= 10) { dig = 0; }
if (IntToChar(dig) == ie.charAt(12)) { return true; } else { return false; }
} //AC


function CheckIEAL(ie)
{
if (ie.length != 9)
  return false;
var b = 9, soma = 0;
for (var i = 0; i <= 7; i++)
{
   soma += CharToInt(ie.charAt(i)) * b;
   --b;
}
soma *= 10;
dig = soma - Math.floor(soma / 11) * 11;
if (dig == 10) { dig = 0; }
return (IntToChar(dig) == ie.charAt(8));
} //AL


function CheckIEAM(ie)
{
if (ie.length != 9)
  return false;
var b = 9, soma = 0;
for (var i = 0; i <= 7; i++)
{
  soma += CharToInt(ie.charAt(i)) * b;
  b--;
}
if (soma < 11) { dig = 11 - soma; }
else {
   i = soma % 11;
   if (i <= 1) { dig = 0; } else { dig = 11 - i; }
}
return (IntToChar(dig) == ie.charAt(8));
} //am


function CheckIEAP(ie)
{
if (ie.length != 9)
  return false;
var p = 0, d = 0, i = ie.substring(1, 8);
if ((i >= 3000001) && (i <= 3017000))
{
  p =5;
  d = 0;
}
else if ((i >= 3017001) && (i <= 3019022))
{
  p = 9;
  d = 1;
}
b = 9;
soma = p;
for (var i = 0; i <= 7; i++)
{
  soma += CharToInt(ie.charAt(i)) * b;
  b--;
}
dig = 11 - (soma % 11);
if (dig == 10)
{
   dig = 0;
}
else if (dig == 11)
{
   dig = d;
}
return (IntToChar(dig) == ie.charAt(8));
} //ap


function CheckIEBA(ie)
{
if (ie.length != 8)
  return false;
die = ie.substring(0, 8);
var nro = new Array(8);
var dig = -1;
for (var i = 0; i <= 7; i++)
{
  nro = CharToInt(die.charAt(i));
}
var NumMod = 0;
if (String(nro[0]).match(/[0123458]/))
   NumMod = 10;
else
   NumMod = 11;
b = 7;
soma = 0;
for (i = 0; i <= 5; i++)
{
  soma += nro * b;
  b--;
}
i = soma % NumMod;
if (NumMod == 10)
{
  if (i == 0) { dig = 0; } else { dig = NumMod - i; }
}
else
{
  if (i <= 1) { dig = 0; } else { dig = NumMod - i; }
}
resultado = (dig == nro[7]);
if (!resultado) { return false; }
b = 8;
soma = 0;
for (i = 0; i <= 5; i++)
{
  soma += nro * b;
  b--;
}
soma += nro[7] * 2;
i = soma % NumMod;
if (NumMod == 10)
{
  if (i == 0) { dig = 0; } else { dig = NumMod - i; }
}
else
{
  if (i <= 1) { dig = 0; } else { dig = NumMod - i; }
}
return (dig == nro[6]);
} //ba


function CheckIECE(ie)
{
if (ie.length > 9)
  return false;
die = ie;
if (ie.length < 9)
{
  while (die.length <= 8)
   die = '0' + die;
}
var nro = Array(9);
for (var i = 0; i <= 8; i++)
  nro = CharToInt(die);
b = 9;
soma = 0;
for (i = 0; i <= 7; i++)
{
  soma += nro * b;
  b--;
}
dig = 11 - (soma % 11);
if (dig >= 10)
  dig = 0;
return (dig == nro[8]);
} //ce


function CheckIEDF(ie)
{
if (ie.length != 13)
  return false;
var nro = new Array(13);
for (var i = 0; i <= 12; i++)
  nro = CharToInt(ie.charAt(i));
b = 4;
soma = 0;
for (i = 0; i <= 10; i++)
{
  soma += nro * b;
  b--;
  if (b == 1)
   b = 9;
}
dig = 11 - (soma % 11);
if (dig >= 10)
  dig = 0;
resultado = (dig == nro[11]);
if (!resultado)
  return false;  
b = 5;
soma = 0;
for (i = 0; i <= 11; i++)
{
  soma += nro * b;
  b--;
  if (b == 1)
   b = 9;
}
dig = 11 - (soma % 11);
if (dig >= 10)
  dig = 0;
return (dig == nro[12]);
}


// CHRISTOPHE T. C. <wG @ codingz.info>
function CheckIEES(ie)
{
if (ie.length != 9)
  return false;
var nro = new Array(9);
for (var i = 0; i <= 8; i++)
  nro = CharToInt(ie.charAt(i));
b = 9;
soma = 0;
for (i = 0; i <= 7; i++)
{
  soma += nro * b;
  b--;
}

i = soma % 11;
if (i < 2)
  dig = 0;
else
  dig = 11 - i;
return (dig == nro[8]);
}


function CheckIEGO(ie)
{
if (ie.length != 9)
  return false;
s = ie.substring(0, 2);
if ((s == '10') || (s == '11') || (s == '15'))
{
  var nro = new Array(9);
  for (var i = 0; i <= 8; i++)
   nro = CharToInt(ie.charAt(i));
  n = Math.floor(ie / 10);
  if (n = 11094402)
  {
   if ((nro[8] == 0) || (nro[8] == 1))
return true;
  }
  b = 9;
  soma = 0;
  for (i = 0; i <= 7; i++)
  {
   soma += nro * b;
   b--;
  }
  i = soma % 11;
  if (i == 0)
   dig = 0;
  else
  {
   if (i == 1)
   {
if ((n >= 10103105) && (n <= 10119997))
  dig = 1;
else
  dig = 0;
   }
   else
dig = 11 - i;
  }
  return (dig == nro[8]);
}
}


function CheckIEMA(ie)
{
if (ie.length != 9)
  return false;
var nro = new Array(9);
for (var i = 0; i <= 8; i++)
  nro = CharToInt(ie.charAt(i));
b = 9;
soma = 0;
for (i = 0; i <= 7; i++)
{
  soma += nro * b;
  b--;
}
i = soma % 11;
if (i <= 1)
  dig = 0;
else
  dig = 11 - i;
return (dig == nro[8]);
}


function CheckIEMT(ie)
{
if (ie.length < 9)
  return false;
die = ie;
if (die.length < 11)
{
  while (die.length <= 10)
   die = '0' + die;
  var nro = new Array(11);
  for (var i = 0; i <= 10; i++)
   nro = CharToInt(die);
  b = 3;
  soma = 0;
  for (i = 0; i <= 9; i++)
  {
   soma += nro * b;
   b--;
   if (b == 1)
b = 9;
  }
  i = soma % 11;
  if (i <= 1)
   dig = 0;
  else
   dig = 11 - i;
  return (dig == nro[10]);
}
} //muito


function CheckIEMS(ie)
{
if (ie.length != 9)
  return false;
if (ie.substring(0,2) != '28')
  return false;
var nro = new Array(9);
for (var i = 0; i <= 8; i++)
  nro = CharToInt(ie.charAt(i));
b = 9;
soma = 0;
for (i = 0; i <= 7; i++)
{
  soma += nro * b;
  b--;
}
i = soma % 11;
if (i <= 1)
  dig = 0;
else
  dig = 11 - i;
return (dig == nro[8]);
} //ms


function CheckIEPA(ie)
{
if (ie.length != 9)
  return false;
if (ie.substring(0, 2) != '15')
  return false;
var nro = new Array(9);
for (var i = 0; i <= 8; i++)
  nro = CharToInt(ie.charAt(i));
b = 9;
soma = 0;
for (i = 0; i <= 7; i++)
{
  soma += nro * b;
  b--;
}
i = soma % 11;
if (i <= 1)
  dig = 0;
else
  dig = 11 - i;
return (dig == nro[8]);
} //pra


function CheckIEPB(ie)
{
if (ie.length != 9)
  return false;
var nro = new Array(9);
for (var i = 0; i <= 8; i++)
  nro = CharToInt(ie.charAt(i));
b = 9;
soma = 0;
for (i = 0; i <= 7; i++)
{
  soma += nro * b;
  b--;  
}
i = soma % 11;
if (i <= 1)
  dig = 0;
else
  dig = 11 - i;
return (dig == nro[8]);
} //pb


function CheckIEPR(ie)
{
if (ie.length != 10)
  return false;
var nro = new Array(10);
for (var i = 0; i <= 9; i++)
  nro = CharToInt(ie.charAt(i));
b = 3;
soma = 0;
for (i = 0; i <= 7; i++)
{
  soma += nro * b;
  b--;
  if (b == 1)
   b = 7;
}
i = soma % 11;
if (i <= 1)
  dig = 0;
else
  dig = 11 - i;
resultado = (dig == nro[8]);
if (!resultado)
  return false;
b = 4;
soma = 0;
for (i = 0; i <= 8; i++)
{
  soma += nro * b;
  b--;
  if (b == 1)
   b = 7;
}
i = soma % 11;
if (i <= 1)
  dig = 0;
else
  dig = 11 - i;
return (dig == nro[9]);
} //pr


function CheckIEPE(ie)
{
if (ie.length != 14)
  return false;
var nro = new Array(14);
for (var i = 0; i <= 13; i++)
  nro = CharToInt(ie.charAt(i));
b = 5;
soma = 0;
for (i = 0; i <= 12; i++)
{
  soma += nro * b;
  b--;
  if (b == 0)
   b = 9;
}
dig = 11 - (soma % 11);
if (dig > 9)
  dig = dig - 10;
return (dig == nro[13]);
} //pe


function CheckIEPI(ie)
{
if (ie.length != 9)
  return false;
var nro = new Array(9);
for (var i = 0; i <= 8; i++)
  nro = CharToInt(ie.charAt(i));
b = 9;
soma = 0;
for (i = 0; i <= 7; i++)
{
  soma += nro * b;
  b--;
}
i = soma % 11;
if (i <= 1)
  dig = 0;
else
  dig = 11 - i;
return (dig == nro[8]);
} //pi


function CheckIERJ(ie)
{
if (ie.length != 8)
  return false;
var nro = new Array(8);
for (var i = 0; i <= 7; i++)
  nro = CharToInt(ie.charAt(i));
b = 2;
soma = 0;
for (i = 0; i <= 6; i++)
{
  soma += nro * b;
  b--;
  if (b == 1)
   b = 7;
}
i = soma % 11;
if (i <= 1)
  dig = 0;
else
  dig = 11 - i;
return (dig == nro[7]);
} //rj


// CHRISTOPHE T. C. <wG @ codingz.info>
function CheckIERN(ie)
{
if (ie.length != 9)
  return false;
var nro = new Array(9);
for (var i = 0; i <= 8; i++)
  nro = CharToInt(ie.charAt(i));
b = 9;
soma = 0;
for (i = 0; i <= 7; i++)
{
  soma += nro * b;
  b--;
}
soma *= 10;
dig = soma % 11;
if (dig == 10)
  dig = 0;
return (dig == nro[8]);
} //rn


function CheckIERS(ie)
{
if (ie.length != 10)
  return false;
i = ie.substring(0, 3);
if ((i >= 1) && (i <= 467))
{
  var nro = new Array(10);
  for (var i = 0; i <= 9; i++)
   nro = CharToInt(ie.charAt(i));
  b = 2;
  soma = 0;
  for (i = 0; i <= 8; i++)
  {
   soma += nro * b;
   b--;
   if (b == 1)
b = 9;
  }
  dig = 11 - (soma % 11);
  if (dig >= 10)
   dig = 0;
  return (dig == nro[9]);
} //if i&&i
} //rs


function CheckIEROantigo(ie)
{
if (ie.length != 9) {
return false;
}

var nro = new Array(9);
b=6;
soma =0;

for( var i = 3; i <= 8; i++) {

    nro = CharToInt(ie.charAt(i));

        if( i != 8 ) {
            soma = soma + ( nro * b );
            b--;
        }

}

dig = 11 - (soma % 11);
if (dig >= 10)
  dig = dig - 10;

return (dig == nro[8]);

} //ro-antiga


function CheckIERO(ie)
{

if (ie.length != 14) {
return false;
}

var nro = new Array(14);
b=6;
soma=0;

        for(var i=0; i <= 4; i++) {
    
            nro = CharToInt(ie.charAt(i));

        
                soma = soma + ( nro * b );
                b--;

        }

        b=9;
        for(var i=5; i <= 13; i++) {
    
            nro = CharToInt(ie.charAt(i));

                if ( i != 13 ) {        
                soma = soma + ( nro * b );
                b--;
                }

        }

                        dig = 11 - ( soma % 11);
                            
                            if (dig >= 10)
                                  dig = dig - 10;

                                    return(dig == nro[13]);
                        
} //ro nova


function CheckIERR(ie)
{
if (ie.length != 9)
  return false;
if (ie.substring(0,2) != '24')
  return false;
var nro = new Array(9);
for (var i = 0; i <= 8; i++)
  nro = CharToInt(ie.charAt(i));
var soma = 0;
var n = 0;
for (i = 0; i <= 7; i++)
  soma += nro * ++n;
dig = soma % 9;
return (dig == nro[8]);
} //rr


function CheckIESC(ie)
{
if (ie.length != 9)
  return false;
var nro = new Array(9);
for (var i = 0; i <= 8; i++)
  nro = CharToInt(ie.charAt(i));
b = 9;
soma = 0;
for (i = 0; i <= 7; i++)
{
  soma += nro * b;
  b--;
}
i = soma % 11;
if (i <= 1)
  dig = 0;
else
  dig = 11 - i;
return (dig == nro[8]);
} //sc


// CHRISTOPHE T. C. <wG @ codingz.info>
function CheckIESP(ie)
{
if (((ie.substring(0,1)).toUpperCase()) == 'P')
{
  s = ie.substring(1, 9);
  var nro = new Array(12);
  for (var i = 0; i <= 7; i++)
   nro = CharToInt(s);
  soma = (nro[0] * 1) + (nro[1] * 3) + (nro[2] * 4) + (nro[3] * 5) +
   (nro[4] * 6) + (nro[5] * 7) + (nro[6] * 8) + (nro[7] * 10);
  dig = soma % 11;
  if (dig >= 10)
   dig = 0;
  resultado = (dig == nro[8]);
  if (!resultado)
   return false;
}
else
{
  if (ie.length < 12)
   return false;
  var nro = new Array(12);
  for (var i = 0; i <= 11; i++)
   nro = CharToInt(ie.charAt(i));
  soma = (nro[0] * 1) + (nro[1] * 3) + (nro[2] * 4) + (nro[3] * 5) +
   (nro[4] * 6) + (nro[5] * 7) + (nro[6] * 8) + (nro[7] * 10);
  dig = soma % 11;
  if (dig >= 10)
   dig = 0;
  resultado = (dig == nro[8]);
  if (!resultado)
   return false;
  soma = (nro[0] * 3) + (nro[1] * 2) + (nro[2] * 10) + (nro[3] * 9) +
   (nro[4] * 8) + (nro[5] * 7) + (nro[6] * 6)  + (nro[7] * 5) +
   (nro[8] * 4) + (nro[9] * 3) + (nro[10] * 2);
  dig = soma % 11;
  if (dig >= 10)
   dig = 0;
  return (dig == nro[11]);
}
} //sp


function CheckIESE(ie)
{
if (ie.length != 9)
  return false;
var nro = new Array(9);
for (var i = 0; i <= 8; i++)
  nro = CharToInt(ie.charAt(i));
b = 9;
soma = 0;
for (i = 0; i <= 7; i++)
{
  soma += nro * b;
  b--;
}
dig = 11 - (soma % 11);
if (dig >= 10)
  dig = 0;
return (dig == nro[8]);
} //se


function CheckIETO(ie)
{
if (ie.length != 9) {
return false;
}

var nro = new Array(9);
b=9;
soma=0;

for (var i=0; i <= 8; i++ ) {

nro = CharToInt(ie.charAt(i));

if(i != 8) {
soma = soma + ( nro * b );
b--;
}


}

ver = soma % 11;

if ( ver < 2 )

dig=0;

if ( ver >= 2 )
dig = 11 - ver;

return(dig == nro[8]);
} //to


//inscrição estadual antiga
function CheckIETOantigo(ie)
{

if ( ie.length != 11 ) {
    return false;

}


var nro = new Array(11);
b=9;
soma=0;

s = ie.substring(2, 4);

    if( s != '01' || s != '02' || s != '03' || s != '99' ) {


        for ( var i=0; i <= 10; i++)
        {

            nro = CharToInt(ie.charAt(i));    

            if( i != 3 || i != 4) {

            soma = soma + ( nro * b );
            b--;
            
            } // if ( i != 3 || i != 4 )

        } //fecha for


            resto = soma % 11;        
            
                if( resto < 2 ) {    

                    dig = 0;

                }


                if ( resto >= 2 ) {

                    dig = 11 - resto;

                }            

                return (dig == nro[10]);

    } // fecha if


}//fecha função CheckIETOantiga


function CheckIEMG(ie)
{
if (ie.substring(0,2) == 'PR')
  return true;
if (ie.substring(0,5) == 'ISENT')
  return true;
if (ie.length != 13)
  return false;
dig1 = ie.substring(11, 12);
dig2 = ie.substring(12, 13);
inscC = ie.substring(0, 3) + '0' + ie.substring(3, 11);
insc=inscC.split('');
npos = 11;
i = 1;
ptotal = 0;
psoma = 0;
while (npos >= 0)
{
  i++;
  psoma = CharToInt(insc[npos]) * i;  
  if (psoma >= 10)
   psoma -= 9;
  ptotal += psoma;
  if (i == 2)
   i = 0;
  npos--;
}
nresto = ptotal % 10;
if (nresto == 0)
  nresto = 10;
nresto = 10 - nresto;
if (nresto != CharToInt(dig1))
  return false;
npos = 11;
i = 1;
ptotal = 0;
is=ie.split('');
while (npos >= 0)
{
  i++;
  if (i == 12)
   i = 2;
  ptotal += CharToInt(is[npos]) * i;
  npos--;
}
nresto = ptotal % 11;
if ((nresto == 0) || (nresto == 1))
  nresto = 11;
nresto = 11 - nresto;  
return (nresto == CharToInt(dig2));
}


function CheckIE(ie, estado)
{
ie = ie.replace(/\./g, '');
ie = ie.replace(/\\/g, '');
ie = ie.replace(/\-/g, '');
ie = ie.replace(/\//g, '');
if ( ie == 'ISENTO')
  return true;
switch (estado)
{
  case 'MG': return CheckIEMG(ie); break;
  case 'AC': return CheckIEAC(ie); break;
  case 'AL': return CheckIEAL(ie); break;
  case 'AM': return CheckIEAM(ie); break;
  case 'AP': return CheckIEAP(ie); break;
  case 'BA': return CheckIEBA(ie); break;
  case 'CE': return CheckIECE(ie); break;
  case 'DF': return CheckIEDF(ie); break;
  case 'ES': return CheckIEES(ie); break;
  case 'GO': return CheckIEGO(ie); break;
  case 'MA': return CheckIEMA(ie); break;
  case 'muito': return CheckIEMT(ie); break;
  case 'MS': return CheckIEMS(ie); break;
  case 'pra': return CheckIEPA(ie); break;
  case 'PB': return CheckIEPB(ie); break;
  case 'PR': return CheckIEPR(ie); break;
  case 'PE': return CheckIEPE(ie); break;
  case 'PI': return CheckIEPI(ie); break;
  case 'RJ': return CheckIERJ(ie); break;
  case 'RN': return CheckIERN(ie); break;
  case 'RS': return CheckIERS(ie); break;
  case 'RO': return ((CheckIERO(ie)) || (CheckIEROantigo(ie))); break;
  case 'RR': return CheckIERR(ie); break;
  case 'SC': return CheckIESC(ie); break;
  case 'SP': return CheckIESP(ie); break;
  case 'SE': return CheckIESE(ie); break;
  case 'TO': return ((CheckIETO(ie)) || (CheckIETOantigo(ie))); break;//return CheckIETO(ie); break;        
}
}


function MM_formtCep(e,src,mask) {
        if(window.event) { _TXT = e.keyCode; }
        else if(e.which) { _TXT = e.which; }
        if(_TXT > 47 && _TXT < 58) {
 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); }
        return true; } else { if (_TXT != 8) { return false; }
 else { return true; }
        }
}


/****************************************************************************************/
function valida()
{
	if (document.frmAjax.pessoa[0].checked)
	{
		if(document.frmAjax.cpf.value=="")
		{
			alert("Informe o CPF do Fornecedor.");
			document.frmAjax.cpf.focus();
			return(false);
		}
		if (document.frmAjax.nome.value=="")
		{
			alert("Informe o Nome do Fornecedor.");
			document.frmAjax.nome.focus();
			return(false);
		}
				
	}
	if (document.frmAjax.pessoa[1].checked)
	{
		
		if (document.frmAjax.cnpj.value=="")
		{
			alert("Informe a CNPJ do Fornecedor.");
			document.frmAjax.cnpj.focus();
			return(false);
		}
		if (document.frmAjax.razao_social.value=="")
		{
			alert("Informe a Razão Social do Fornecedor.");
			document.frmAjax.razao_social.focus();
			return(false);
		}		
	}
	if(document.frmAjax.endereco.value=="")
	{
		alert("Informe o Endereço do Fornecedor.");
		document.frmAjax.endereco.focus();
		return(false);
	}
	if(document.frmAjax.endereco.value=="")
	{
		alert("Informe o Endereço do Fornecedor.");
		document.frmAjax.endereco.focus();
		return(false);
	}
	if(document.frmAjax.numero.value=="")
	{
		alert("Informe o Número do Fornecedor.");
		document.frmAjax.numero.focus();
		return(false);
	}
	if(document.frmAjax.bairro.value=="")
	{
		alert("Informe o Bairro do Fornecedor.");
		document.frmAjax.bairro.focus();
		return(false);
	}
	if(document.frmAjax.cep.value=="")
	{
		alert("Informe o CEP do Fornecedor.");
		document.frmAjax.cep.focus();
		return(false);
	}
	if(document.frmAjax.cod_estados.value=="")
	{
		alert("Informe o Estado do Fornecedor.");
		document.frmAjax.cod_estados.focus();
		return(false);
	}
	if(document.frmAjax.cod_cidades.value==0)
	{
		alert("Informe a Cidade do Fornecedor.");
		document.frmAjax.cod_cidades.focus();
		return(false);
	}
	
	if(document.frmAjax.email.value=="")
	{
		alert("Informe o Email do Fornecedor.");
		document.frmAjax.email.focus();
		return(false);
	}
	else
	{		
		if(document.frmAjax.email.value.indexOf('@',0) == -1)
		{
			alert("Email inválido.");
			document.frmAjax.email.focus();
			return(false);
		}		
		/*if(!emailValido(document.frmAjax.email.value))
		{
			alert("Email inválido.");
			document.frmAjax.email.focus();
			return(false);
		}*/			
	}
	return(true);
}
function valida_fornecedor()
{
	
	if (document.frmAjax.cnpj.value=="")
	{
		alert("Informe a CNPJ do Fornecedor.");
		document.frmAjax.cnpj.focus();
		return(false);
	}
	if (document.frmAjax.razao_social.value=="")
	{
		alert("Informe a Razão Social do Fornecedor.");
		document.frmAjax.razao_social.focus();
		return(false);
	}	
	if(document.frmAjax.endereco.value=="")
	{
		alert("Informe o Endereço do Fornecedor.");
		document.frmAjax.endereco.focus();
		return(false);
	}
	
	if(document.frmAjax.bairro.value=="")
	{
		alert("Informe o Bairro do Fornecedor.");
		document.frmAjax.bairro.focus();
		return(false);
	}
	if(document.frmAjax.cep.value=="")
	{
		alert("Informe o CEP do Fornecedor.");
		document.frmAjax.cep.focus();
		return(false);
	}
	if(document.frmAjax.cod_estados.value=="")
	{
		alert("Informe o Estado do Fornecedor.");
		document.frmAjax.cod_estados.focus();
		return(false);
	}
	if(document.frmAjax.cod_cidades.value=="")
	{
		alert("Informe a Cidade do Fornecedor.");
		document.frmAjax.cod_cidades.focus();
		return(false);
	}
	
	if(document.frmAjax.email.value=="")
	{
		alert("Informe o Email do Fornecedor.");
		document.frmAjax.email.focus();
		return(false);
	}
	else
	{		
		if(document.frmAjax.email.value.indexOf('@',0) == -1)
		{
			alert("Email inválido.");
			document.frmAjax.email.focus();
			return(false);
		}		
		/*if(!emailValido(document.frmAjax.email.value))
		{
			alert("Email inválido.");
			document.frmAjax.email.focus();
			return(false);
		}*/			
	}
	return(true);
}

function valida_docs()
{
	if(document.frmAjax.fd_nome_fantasia.value=="")
	{
		alert("Informe o Nome Fantasia.");
		document.frmAjax.nome_fantasia.focus();
		return(false);
	}	
	if(document.frmAjax.fd_reg_num.value=="")
	{
		alert("Informe o Registro na Junta Comercial.");
		document.frmAjax.fd_reg_num.focus();
		return(false);
	}
	
	if(document.frmAjax.fd_reg_uf.value=="")
	{
		alert("Informe o Estado do Registro.");
		document.frmAjax.fd_reg_uf.focus();
		return(false);
	}
	if(document.frmAjax.fd_reg_dia.value=="" || document.frmAjax.fd_reg_mes.value=="" || document.frmAjax.fd_reg_ano.value=="")
	{
		alert("Informe a Data do Registro.");
		document.frmAjax.fd_reg_dia.focus();
		return(false);
	}
	else
	{
		if (!VerificaData(document.frmAjax.fd_reg_dia.value,document.frmAjax.fd_reg_mes.value,document.frmAjax.fd_reg_ano.value))
		{
			alert("A data é inválida.");
			document.frmAjax.fd_reg_dia.focus();
			return(false);
		}
	}	
		
	if(document.frmAjax.fd_capital.value=="")
	{
		alert("Informe o Capital Social.");
		document.frmAjax.fd_capital.focus();
		return(false);
	}	
	if(document.frmAjax.fd_nat_mercantil.value==0)
	{
		alert("Selecione a Natureza Mercantil.");
		document.frmAjax.fd_nat_mercantil.focus();
		return(false);
	}
	if(document.frmAjax.fd_materiais.value=="")
	{
		alert("Informe os Materiais.");
		document.frmAjax.fd_materiais.focus();
		return(false);
	}		
	return(true);
}

function Prosseguir_licitante()
{
	if (valida(this))
	{
		if(document.frmAjax.c_email.value=="")
		{
			alert("Digite o Email de Confirmação.");
			document.frmAjax.c_email.focus();
			return(false);
		}
		if(document.frmAjax.c_email.value != document.frmAjax.email.value)
		{
			alert("Email e Email de Confirmação não podem ser diferentes.");
			document.frmAjax.email.focus();
			return(false);
		}	
		document.frmAjax.action="licitante.php?passo=2";
		document.frmAjax.submit(); 
	}
}
function Prosseguir_alterar_licitante()
{
	if (valida(this))
	{
		document.frmAjax.action="alt_licitante.php?passo=2";
		document.frmAjax.submit(); 
	}
}
function Prosseguir_Fornecedor()
{
	if (valida_fornecedor(this))
	{
		
			document.frmAjax.action="cad_passo3.php";
			document.frmAjax.submit();	 
	}
}

function Salvar_Fornecedor()
{
	document.frmAjax.action="bd_fornecedor.php";
	document.frmAjax.submit(); 

}
function Salvar_licitante()
{
	document.frmAjax2.action="bd_licitante.php";
	document.frmAjax2.submit(); 

}
function Alterar_licitante()
{
	document.frmAjax2.action="bd_alt_licitante.php";
	document.frmAjax2.submit(); 

}
