
function ValidaDataPosterior(campo1, campo2) {
	if ( !ComparaDatas(campo2, campo1) ) {
		alert("Atenção: o campo "+ campo1.alt +" não pode ser posterior a data de hoje !");
		campo1.focus();
		return false;
	}
	return true;	
}

function ValidarCaixaTexto(campo) {
	if ( campo.length != undefined )
		campo = campo[campo.length-1];		/* Tratamento para botão Incluir */

	if (arguments.length == 2)
		minCaracter = arguments[1];
	else
		minCaracter = "1";
	if ( campo.value.length < minCaracter || campo.value == " " || campo.value == "  " || campo.value == "   " || campo.value == "   ") {
		alert("Favor, preencha o campo "+ campo.alt +" corretamente !");
		campo.focus();
		return false;
	}
	return true;
}  

function RemoverItens(mObj) {
	while ( mObj.length > 1) mObj.remove(1);
}
  
function AdicionarItem(mValue, mItem, mObj, mDocument) {
	var oOption   = mDocument.createElement("OPTION");	
	oOption.text  = mItem;
	oOption.value = mValue;
	mObj.add(oOption);		
}  

function ValidarCaixaSelect(campo) {

     if ( campo[0].name != undefined) {	   /* Se for um array, executar o loop para contar quantos elementos há */	

	     var mTotalObjetos = 0;
	     qt_objeto = document.getElementsByTagName("select").length;

	     for(id_objeto = 0; id_objeto < qt_objeto; id_objeto++) {

	     	objeto = document.getElementsByTagName("select").item(id_objeto);

		if ( objeto.name == campo[0].name )  mTotalObjetos++;

	     }
	     campo = campo[mTotalObjetos-1];		/* Tratamento para botão Incluir */

     }
 
     if (!campo.selectedIndex) {
	   alert("Favor, selecione um item do campo "+ campo.alt +" !");
	   campo.focus();
	   return false;
     }
     return true;
}

function BuscaLC(aArray, mCodigo) {
	var i = 0;
	aArray[aArray.length][0] = mCodigo;
	aArray[aArray.length][1] = 'Não encontrado';		
	while(aArray[i][0] != mCodigo) i++;
	return aArray[i][1];
}

function Matrix(n) { 
      this.length = n;
      for (var i = 0 ; i <= n ; i++)
          this[i] = "";
}




// -------- Converte os valores para Maiúsculo no onChange()
function Upper(campo) {
	campo.value = campo.value.toUpperCase()
}


function TruncarLimite(campo,limite) {
	var msg
	msg = campo.value;	
	campo.value = msg.substring(0,limite);
}

	
function TamMaximo(campo, limite) {
	if (campo.value.length > limite-1)
		return false;
	else
		return true;
}


// ------------------------------- Validar Vários Tipos de Campos
// Paramentro tipo  define qual tipo de dado vai validar
//  1 - function Num [somente numeros]
//  2 - function Num [+ validacoes de moeda]
//  3 - function Num [+ validacoes de data]

// Como Usar: onKeyPress="return ValidaTecla(this, event, 1)

function ValidaString(campo, event) {
    var key;
    var tecla;
    if (navigator.appName.indexOf("Netscape") != -1 )
 	tecla = event.which;
    else
	tecla = event.keyCode;
    key = String.fromCharCode(tecla);    
    if (tecla == 34 || tecla == 39 || tecla == 96)
	return false;
    else
        return(key);
}


function ValidaTecla(campo, event, tipo) {
    var BACKSPACE = 8;
    var key;
    var tecla;
    if (navigator.appName.indexOf("Netscape") != -1 )
 	tecla = event.which;
    else
	tecla = event.keyCode;
    key = String.fromCharCode(tecla);

	if (tecla == 13)
		return false;

	if(tecla == BACKSPACE)
		return true;
	
	if(tipo == 1)
		return(Num(key));

	if(tipo == 2){
		if(Num(key)){
			FormataMoedaAperta(campo);
			return true;
		}else return false;
	}
	
	if(tipo == 3)
            { return Num(key); 	}
}
 
// ------------------------------- Validar Caracter Numerico - Complementar de: ValidaTecla(campo, event, tipo)
function Num(caractere)
     {
     var strValidos = "0123456789";
     if (strValidos.indexOf(caractere)  == -1)
	return false; 
     return true;
     }


// ------------------------------- MoedaAperta- Complementar de: ValidaTecla(campo, event, tipo)
function FormataMoedaAperta(campo)
     {
	Dados = campo.value;
	for(i=0;i<Dados.length;i++)Dados = Dados.replace(",", "");
	for(i=0;i<Dados.length;i++)Dados = Dados.replace(".", "");	
	tam = campo.value.length;
	if (tam >= 1)
     	   campo.value = Dados.substr( 0, tam - 2 ) + ',' + Dados.substr( tam - 2, tam );
     }


// ------------------------------- Formata Moeda - Complementar de: ValidaTecla(campo, event, tipo)
function FormataMoeda(campo)
      {
	Dados = campo.value;
	for(i=0;i<Dados.length;i++)Dados = Dados.replace(",", "");
	for(i=0;i<Dados.length;i++)Dados = Dados.replace(".", "");
	var tam = Dados.length;
	if (tam == 0)
          { Dados = "0,00";
	    campo.value=Dados; }

	if (tam == 1)
          { Dados="0,0"+Dados;
	    campo.value=Dados; }

	if (parseInt(tam) == 2)
          { Dados = '0,'+ Dados;
	    campo.value=Dados; }

	if (tam >2)
	    Dados = Dados.substr( 0, tam - 2 ) + ',' + Dados.substr( tam - 2, tam ) ; 
	    tam++;

	if(tam >5)
           {
	   i=6;
	   while(i<tam)
              {
	      Dados = Dados.substr( 0, tam - i ) + '.' + Dados.substr( tam - i, tam ) ; 
	      i=i+4;
	      tam++;
	      }
	}
	campo.value=Dados;
      }




function FormatNumber(number)
   {   
   var num = new String (number);
   if (num.indexOf (".") == -1) {
      intLen = num.length;
      toEnd = intLen;
      var strLeft = new String (num.substring (0, toEnd));
      var strRight = new String ("00");
      }
   else {
      pos = eval (num.indexOf ("."));
      var strLeft = new String (num.substring (0, pos));
	  
      intToEnd = num.length;
      intThing = pos + 1;
      var strRight = new String (num.substring (intThing, intToEnd));
	  
      if (strRight.length > 2) {
         nextInt = strRight.charAt(2);
         strRight = new String (strRight.substring (0, 2));
         }
      else {
         if (strRight.length != 2)
            strRight = strRight + "0";
         }
      }
	  
   if (strLeft.length > 3)
      {
      var curPos = (strLeft.length - 3);
	  
      while (curPos > 0)
         {
         var remainingLeft = new String (strLeft.substring (0, curPos));
         var strLeftLeft = new String (strLeft.substring (0, curPos));
         var strLeftRight = new String (strLeft.substring (curPos, strLeft.length));		 
         strLeft = new String (strLeftLeft + "." + strLeftRight);
         curPos = (remainingLeft.length - 3);
         }
      }

   strWhole = strLeft + "," + strRight;
   return (strWhole);
   }


function Desformatar(Valor)
   {
   var temp,z;
   temp = Valor.value;
   z = 0;     
   Valor.value = "";   
   for (var n = 0; n < temp.length; n++)
       {
        if ( temp.charAt(n) == ".")
           {
            Valor.value = Valor.value + temp.substring(z,n);
            z = n + 1;
           } 
        if ( temp.charAt(n) == ",")
           Valor.value = Valor.value + temp.substring(n-3,n) + "." + temp.substring(n+1,n+3);
       }  
   }


// Função de validação de CPF
function isCPF(st) {
if (st == "")
  return (false);
l = st.length;

//Aleterado para se usuário não digitar os zeros na frente do CPF, completar sozinho
if ((l == 9) || (l == 8))
{
            for (i = l ; i < 10; i++)
            {
                        st = '0' + st
            }
}
l = st.length;
st2 = "";
for (i = 0; i < l; i++) {
  caracter = st.substring(i,i+1);
  if ((caracter >= '0') && (caracter <= '9'));
     st2 = st2 + caracter;
}
if ((st2.length > 11) || (st2.length < 10))
   return (false);
if (st2.length==10)
   st2 = '0' + st2;
digito1 = st2.substring(9,10);
digito2 = st2.substring(10,11);
digito1 = parseInt(digito1,10);
digito2 = parseInt(digito2,10);
sum = 0; mul = 10;
for (i = 0; i < 9 ; i++) {
    digit = st2.substring(i,i+1);
    tproduct = parseInt(digit ,10) * mul;
    sum += tproduct;
    mul--;
}
dig1 = ( sum % 11 );
if ( dig1==0 || dig1==1 )
   dig1=0;
else
  dig1 = 11 - dig1;
if (dig1!=digito1)
  return (false);
sum = 0;
mul = 11;
for (i = 0; i < 10 ; i++) {
    digit = st2.substring(i,i+1);
    tproduct = parseInt(digit ,10)*mul;
    sum += tproduct;
    mul--;
}
dig2 = (sum % 11);
if ( dig2==0 || dig2==1 )
  dig2=0;
else
  dig2 = 11 - dig2;
if (dig2 != digito2)
  return (false);
return (true);
}

function VerifyCNPJ(pcgc) {
	// verifica o tamanho
	if (pcgc.length != 14) {
		sim=false
		alert ("Tamanho Inválido de CNPJ")
		return false;
	}else {
		sim=true
	}
	if (sim ){ // verifica se e numero
		for (i=0;((i<=(pcgc.length-1))&& sim); i++){
			val = pcgc.charAt(i)
			// alert (val)
			if((val!="9")&&(val!="0")&&(val!="1")&&(val!="2")&&(val!="3")&&(val!="4") &&(val!="5")&&(val!="6")&&(val!="7")&&(val!="8")) {
				sim=false
			}
		}
		if (sim){ // se for numero continua
			m2 = 2
			soma1 = 0
			soma2 = 0
			for (i=11;i>=0;i--){
				val = eval(pcgc.charAt(i))
				m1 = m2
				if (m2<9) { 
					m2 = m2+1
				}else {
					m2 = 2
				}
				soma1 = soma1 + (val * m1)
				soma2 = soma2 + (val * m2)
			} // fim do for de soma
			soma1 = soma1 % 11
			if (soma1 < 2) { 
				d1 = 0
			}else { 
				d1 = 11- soma1
			}
			soma2 = (soma2 + (2 * d1)) % 11
			if (soma2 < 2) {
				d2 = 0
			}else { 
				d2 = 11- soma2
			}
			// alert (d1)
			// alert (d2)
			if ((d1==pcgc.charAt(12)) && (d2==pcgc.charAt(13))){
				return true;
			}else
				alert("CNPJ inválido, digite novamente!")
				return false;
		}
	}
}
  
 
function FormataCgc(campo,tammax,teclapres) {
	var tecla = teclapres.keyCode;
	// vr = document.form[campo].value;
	vr = event.srcElement.value;
	vr = vr.replace( "/", "" );
	vr = vr.replace( "/", "" );
	vr = vr.replace( "/", "" );
	vr = vr.replace( ",", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	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 (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 <= 2 ){ 
	 		event.srcElement.value = vr ; }
	 	if ( (tam > 2) && (tam <= 6) ){
	 		event.srcElement.value = vr.substr( 0, tam - 2 ) + '-' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 7) && (tam <= 9) ){
	 		event.srcElement.value = vr.substr( 0, tam - 6 ) + '/' + vr.substr( tam - 6, 4 ) + '-' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 10) && (tam <= 12) ){
	 		event.srcElement.value = vr.substr( 0, tam - 9 ) + '.' + vr.substr( tam - 9, 3 ) + '/' + vr.substr( tam - 6, 4 ) + '-' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 13) && (tam <= 14) ){
	 		event.srcElement.value = vr.substr( 0, tam - 12 ) + '.' + vr.substr( tam - 12, 3 ) + '.' + vr.substr( tam - 9, 3 ) + '/' + vr.substr( tam - 6, 4 ) + '-' + vr.substr( tam - 2, tam ) ; }
	 	if ( (tam >= 15) && (tam <= 17) ){
	 		event.srcElement.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 PrencherHora(campo, event) {
	var key;
	var tecla;
	if (navigator.appName.indexOf("Netscape") != -1 )
		tecla = event.which;
	else
		tecla = event.keyCode;
	key = String.fromCharCode(tecla); 
	if (Num(key))
		return FormatarHora(campo);		
	else
		return false;
}

function ComparaDatas(campo1, campo2)  // Compara se campo1 é maior que campo2, se for: retorna true
   {
   d1 = eval(campo1.value.substring(0,2));
   m1 = eval(campo1.value.substring(3,5));
   a1 = eval(campo1.value.substring(6,10));   
   d2 = eval(campo2.value.substring(0,2));
   m2 = eval(campo2.value.substring(3,5));
   a2 = eval(campo2.value.substring(6,10));   
   if (a1 > a2) {
	   	return true;
   }
   else if ((a1 == a2 && m1 > m2) || (a1 == a2 && m1 == m2 && d1 >= d2)) {
	   return true;
   }
   else{
	   return false;
	}
   
}

function FormatarHora(campo) {
	Dados = campo.value;
	for(var i=0; i<Dados.length; i++) Dados = Dados.replace(":", "");
	tam = Dados.length;
	campo.value = Dados.substr(0, 2) + ":" + Dados.substr(2, tam)	
	if (eval(Dados.substr(0, 2)) > 24) return false;
	if (eval(Dados.substr(2)) > 5) return false;
}

function ValidarHora(campo) {
	if (campo.value.length < 5) return false;	
	if (eval(campo.value.substr(0, 2)) > 24) return false;
	if (eval(campo.value.substr(3, 5)) > 59) return false;
	return true;
}
 
 
function AdicionarComboList(mObj, mDocumento, mDescricao, mValor) {
	var oOption   = mDocumento.createElement("OPTION");
	oOption.text  = mDescricao;
	oOption.value = mValor;
	mObj.add(oOption);
}

function PrencherData(campo, event) {
	var key;
	var tecla;
	if (navigator.appName.indexOf("Netscape") != -1 )
		tecla = event.which;
	else
		tecla = event.keyCode;
	key = String.fromCharCode(tecla); 
	if (Num(key))
		return FormatarData(campo, eval(key));		
	else
		return false;
}

function FormatarData(campo, key) {
	Dados = campo.value;
	for(var i=0; i < Dados.length; i++) Dados = Dados.replace("/", "");
	if ((tam = Dados.length) > 1) campo.value = Dados.substr(0, 2) + "/" + Dados.substr(2, 2);
	if (tam > 3) campo.value = campo.value + "/" + Dados.substr(4, tam);		
	if (tam == 0 && key > 3) return false;
	if (tam == 1 && eval(Dados.substr(0)) * 10 + key > 31) return false;
	if (tam == 2 && key > 1) return false;
	if (tam == 3 && (eval(Dados.substr(2)) * 10 + key > 12 || eval(Dados.substr(2)) * 10 + key < 1)) return false;
	if (tam == 4 && (key < 1 || key > 2)) return false;
	if (tam == 5 && eval(Dados.substr(4)) * 10 + key < 19) return false;
}
 
function ValidaEmail(e_mail, Mensagem) {
	email = e_mail.value 
	email = email + "|"
	if (email.length > 6)
		for (var i=0; i<= email.length; i++)
			if (email.charAt(i) == "@")
				for (var j=0; j<=email.length; j++)
					if (email.indexOf(".com.br|") > -1 || email.indexOf(".com|") > -1 || email.indexOf(".ind|") > -1 || email.indexOf(".ind.br|") > -1 || email.indexOf(".net.br|") > -1 || email.indexOf(".br|") > -1 || email.indexOf(".net|") > -1 || email.indexOf(".nom.br|") > -1 || email.indexOf(".org.br|") > -1 || email.indexOf(".org|") > -1 || email.indexOf(".srv.br|") > -1 || email.indexOf(".psi.br|") > -1 || email.indexOf(".adm.br|") > -1 || email.indexOf(".eng.br|") > -1 || email.indexOf(".adv.br|") > -1 ) {
					    return true; 
					}
					else if ( email.charAt(j) >= "Ç" & email.charAt(j) <= "ú" )
					    break;					 
					else if ( email.charAt(j) >= "[" & email.charAt(j) < "^" )
				  	    break;
					else if ( email.charAt(j) == " " )
					    break;
			else if ( email.charAt(i) >= "Ç" & email.charAt(i) < "ú" )
			       break;
			else if ( email.charAt(i) >= "[" & email.charAt(i) < "^" )
			       break;
			else if ( email.charAt(i) == " " )
			       break;
	alert(Mensagem);
	e_mail.focus();
	return false;
} 