//<script language="JavaScript" src="lib.js" type="text/JavaScript"></script>

//<!--

/*

# FUNÇÕES
	poupUP(theURL,winName,features)

# VALIDAÇÕES
	isEmpty(pStrText)
	isEmail(text)
	isCPFCNPJ(campo,pType)
	  checkCPF(vCPF)
	  checkCPF(vCNPJ)
	isData(campo)
	isHora(campo)

# MASCARAS
    FormataData(this,event) // usar com o evendo onkeyup=""
	FormataHora(this,event) // usar com o evendo onkeyup=""
	FormataCPF(this,event)  // usar com o evendo onkeyup="" // problema, limitar n. de caracteres
    FormataCNPJ(this,event) // usar com o evendo onkeyup="" // problema, limitar n. de caracteres

falta mascaras
    FormataCEP()
    FormataTelefone()
*/

/* ABRE POUPUP --> chamada da função:
   poupUP('pg.html','Publicidade','scrollbars=yes,width=200,height=200')">
   retorna true ou false no nome da função
*/

function poupUP(theURL,winName,features) { 
   window.open(theURL,winName,features);
} 

/* VERIFICA SE O CAMPO FOI PREENCHIDO --> chamada da função
   isEmpty(document.frm.campo.value);
   retorna true ou false no nome da função
*/

function isEmpty(pStrText){
   var len = pStrText.length;
   var pos;
   var vStrnewtext = "";

   for (pos=0; pos<len; pos++){
      if (pStrText.substring(pos, (pos+1)) != " "){
         vStrnewtext = vStrnewtext + pStrText.substring(pos, (pos+1));
      }
   }

   if (vStrnewtext.length > 0)
      return false;
   else
      return true;
}

/* VALIDA E-MAIL --> chmada dafunção
   isEmail(document.frm.email.value);
   retorna true ou false no nome da função
*/

function isEmail(text){
   var arroba = "@", ponto = ".", posponto = 0, posarroba = 0;

   if (text =="") return false;
   
   for (var indice = 0; indice < text.length; indice++) {
      if (text.charAt(indice) == arroba) {
         posarroba = indice;
         break;
      }
   }
   
   for (var indice = posarroba; indice < text.length; indice++) {
      if (text.charAt(indice) == ponto) {
         posponto = indice;
         break;
      }
   }

   if (posponto == 0 || posarroba == 0) return false;
   if (posponto == (posarroba + 1)) return false;
   if ((posponto + 1) == text.length) return false;
   
   return true;
} 

/* VALIDA CPF ou CNPJ --> 
   
   Dependencias --> isEmpty(campo), checkCNPJ(vCNPJ), checkCPF(vCPF)

   chamada da função --> CNPJ
   isCPFCNPJ(document.frm.cpfcnpj.value,0) 

   chamada da função --> CPF
   isCPFCNPJ(document.frm.cpfcnpj.value,1)

   retorna true ou false
*/

function isCPFCNPJ(campo,pType){
   if( isEmpty( campo ) ){return false;}

   var campo_filtrado = "", valor_1 = " ", valor_2 = " ", ch = "";
   var valido = false;
        
   for (i = 0; i < campo.length; i++){
      ch = campo.substring(i, i + 1);
      if (ch >= "0" && ch <= "9"){
         campo_filtrado = campo_filtrado.toString() + ch.toString()
         valor_1 = valor_2;
         valor_2 = ch;
      }
      if ((valor_1 != " ") && (!valido)) valido = !(valor_1 == valor_2);
   }
   if (!valido) campo_filtrado = "12345678912";

   if (campo_filtrado.length < 11){
      for (i = 1; i <= (11 - campo_filtrado.length); i++){campo_filtrado = "0" + campo_filtrado;}
   }

   if(pType <= 1){
      if ( ( campo_filtrado.substring(9,11) == checkCPF( campo_filtrado.substring(0,9) ) ) && ( campo_filtrado.substring(11,12)=="") ){return true;}
   }

   if((pType == 2) || (pType == 0)){
      if (campo_filtrado.length >= 14){
         if ( campo_filtrado.substring(12,14) == checkCNPJ( campo_filtrado.substring(0,12) ) ){ return true;}
      }
   }
   
   return false;
}

/* VALIDA CNPJ --> chmada dafunção
   checkCNPJ(vCNPJ);
   retorna true ou false no nome da função
*/

function checkCNPJ(vCNPJ){
   var mControle = "";
   var aTabCNPJ = new Array(5,4,3,2,9,8,7,6,5,4,3,2);
   for (i = 1 ; i <= 2 ; i++){
      mSoma = 0;
      for (j = 0 ; j < vCNPJ.length ; j++)
         mSoma = mSoma + (vCNPJ.substring(j,j+1) * aTabCNPJ[j]);
      if (i == 2 ) mSoma = mSoma + ( 2 * mDigito );
      mDigito = ( mSoma * 10 ) % 11;
      if (mDigito == 10 ) mDigito = 0;
      mControle1 = mControle ;
      mControle = mDigito;
      aTabCNPJ = new Array(6,5,4,3,2,9,8,7,6,5,4,3);
   }
   return( (mControle1 * 10) + mControle );
}

/* VALIDA CNPJ --> chmada dafunção
   checkCNPJ(vCPF);
   retorna true ou false no nome da função
*/

function checkCPF(vCPF){
   var mControle = ""
   var mContIni = 2, mContFim = 10, mDigito = 0;
   for (j = 1 ; j <= 2 ; j++){
      mSoma = 0;
      for (i = mContIni ; i <= mContFim ; i++)
         mSoma = mSoma + (vCPF.substring((i-j-1),(i-j)) * (mContFim + 1 + j - i));
      if (j == 2 ) mSoma = mSoma + ( 2 * mDigito );
      mDigito = ( mSoma * 10 ) % 11;
      if (mDigito == 10) mDigito = 0;
      mControle1 = mControle;
      mControle = mDigito;
      mContIni = 3;
      mContFim = 11;
   }
   return( (mControle1 * 10) + mControle );
}

////

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 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 FormataCNPJ(Campo, teclapres){

	var tecla = teclapres.keyCode;

	var vr = new String(Campo.value);
	vr = vr.replace(".", "");
	vr = vr.replace(".", "");
	vr = vr.replace("/", "");
	vr = vr.replace("-", "");

	tam = vr.length + 1 ;

	
	if (tecla != 9 && tecla != 8){
		if (tam > 2 && tam < 6)
			Campo.value = vr.substr(0, 2) + '.' + vr.substr(2, tam);
		if (tam >= 6 && tam < 9)
			Campo.value = vr.substr(0,2) + '.' + vr.substr(2,3) + '.' + vr.substr(5,tam-5);
		if (tam >= 9 && tam < 13)
			Campo.value = vr.substr(0,2) + '.' + vr.substr(2,3) + '.' + vr.substr(5,3) + '/' + vr.substr(8,tam-8);
		if (tam >= 13 && tam < 15)
			Campo.value = vr.substr(0,2) + '.' + vr.substr(2,3) + '.' + vr.substr(5,3) + '/' + vr.substr(8,4)+ '-' + vr.substr(12,tam-12);
		}
}


function isHora(cHora){
	var hora; 
	hora = LimpaCampo(cHora.value,10);
	var tam = hora.length;
	if	(tam != 6){
		//alert('A hora 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 está incorreta');
		cHora.value = "";
		cHora.focus();
		return(false);
		}
	return(true);
}

function isData(cData){
	var data; 
	data = LimpaCampo(cData.value,10);
	var tam = data.length;
	if	(tam != 8){
		//alert('A data 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 está incorreta');
		cData.value = "";
		cData.focus();
		return(false);
		}

	switch (mes){
		case '01':
			if  (dia > 31){
				//alert('A data está incorreta');
				cData.value = "";
				cData.focus();
				return(false);
				}
			break;
		case '02':
			if  (dia > 29){
				//alert('A data está incorreta');
				cData.value = "";
				cData.focus();
				return(false);
				}
			break;
		case '03':
			if  (dia <= 31){
				//alert('A data está incorreta');
				cData.value = "";
				cData.focus();
				return(false);
				}
			break;
		case '04':
			if  (dia <= 30){
				//alert('A data está incorreta');
				cData.value = "";
				cData.focus();
				return(false);
				}
			break;
		case '05':
			if  (dia <= 31){
				//alert('A data está incorreta');
				cData.value = "";
				cData.focus();
				return(false);
				}
			break;
		case '06':
			if  (dia <= 30) {
				//alert('A data está incorreta');
				cData.value = "";
				cData.focus();
				return(false);
				}
			break;
		case '07':
			if  (dia <= 31){
				//alert('A data está incorreta');
				cData.value = "";
				cData.focus();
				return(false);
				}
			break;
		case '08':
			if  (dia <= 31){
				//alert('A data está incorreta');
				cData.value = "";
				cData.focus();
				return(false);
				}
			break;
		case '09':
			if  (dia <= 30){
				//alert('A data está incorreta');
				cData.value = "";
				cData.focus();
				return(false);
				}
			break;
		case '10':
			if  (dia <= 31){
				//alert('A data está incorreta');
				cData.value = "";
				cData.focus();
				return(false);
				}
			break;
		case '11':
			if  (dia <= 30) {
				//alert('A data está incorreta');
				cData.value = "";
				cData.focus();
				return(false);
				}
			break;
		case '12':
			if  (dia <= 31){
				//alert('A data está incorreta');
				cData.value = "";
				cData.focus();
				return(false);
				}
			break;
		}	

	return(true); 
	}

//-->