function Trim(campo) { // Tira os espaços em branco antes e depois da string campo
	var i = 0
	var j = campo.length-1
	var digitos = " "
	
	while (i < campo.length && digitos.indexOf(campo.charAt(i)) == 0 ) 
		// Enquanto o caractere for branco, avanca o indice do inicio 
		i++;
	while (j > i && digitos.indexOf(campo.charAt(j)) == 0 ) 
		// Enquanto o caractere for branco, retrocede o indice do fim
		j--;
	return campo.substring(i,j+1); // Retorna a string sem os espacos em branco no inicio e no fim
}

function Email(elm){

	var dev;
	dev = elm.value;
	var str_em;
	str_em = "";

	if (dev.length == 0) {
		return false;
	}

	for (i = 0; i <= dev.length - 1; i++) {
		if ((dev.charAt(i)).match(/[0-9a-z@_]/)) {
			str_em = str_em + dev.charAt(i);
		} else {
			if (!(dev.charAt(i)).match(/[\.\-]/)) {
				return false;
			}
		}
	
		var mt;
		mt = dev.charAt(i).match('@');

		for (j = i+1; j <= dev.length; j++) {
			if (dev.charAt(j).match(mt) ||
				dev.substring(0,2) == "_-" ||
				dev.substring(0,2) == "-_" ||
				dev.charAt(dev.length-1) == ('@') ||
				dev.charAt(dev.length-1) == ('-') ||
				dev.charAt(dev.length-1) == ('_') ||
				dev.charAt(dev.length-1) == ('.') ||
				dev.charAt(0) == ('@') ||
				dev.indexOf('@') == -1 ||
				dev.indexOf('.') == -1 ||
				dev.indexOf('@_') != -1 ||
				dev.indexOf('@-._') != -1 ||
				dev.indexOf('@_.-') != -1 ||
				dev.indexOf('@-') != -1 ||
				dev.indexOf('@.') != -1 ||
				dev.indexOf('..') != -1 ||
				dev.indexOf('.@') != -1){
					return false;
			}
		}
	}

	return true;
}


function isEmpty(text){
   var enter1 = "\n",
       enter2 = "\r",
       espaco = " ",
       tab = "\t";

   if (text == "") return true;

   //A verifica se o caracter selecionada possui valor vahlido
   for (var indice = 0; indice < text.length; indice++){
      if (text.charAt(indice) != espaco && 
         text.charAt(indice) != tab &&
         text.charAt(indice) != enter1 && 
         text.charAt(indice) != enter2 )
         return false;
   }
   return true;
}

function splitstr(str, strdiv)
{

	var vetret, vetpos, ocorr, i, i2, ini, fim;
	ocorr = 0;
	
	for (i=0; i < str.length; i++)
	{
		if ( str.charAt(i) == strdiv)
		{
			ocorr++;
		}
	}

	vetret = new Array(ocorr);
	vetpos = new Array(ocorr);
	i2=0;
	
	for (i=0; i < str.length; i++)
	{
		if ( str.charAt(i) == strdiv)
		{
			vetpos[i2]=i;
			i2++;
		}
	}

	i2=0; ini=0; fim=0;
	
	for (i=0; i<ocorr+1; i++)
	{
		if(i == vetpos.length)
			fim = str.length;
		else
			fim = vetpos[i];
			
		vetret[i]=str.substring(ini, fim);
		ini = vetpos[i]+1;
	}

	return vetret;
}

function replace( texto, procurar, novo ){
   len = procurar.length;
   pos = texto.indexOf(procurar);
   while (pos > -1){
      parte1 = texto.substring(0, pos);
      parte2 = texto.substring(pos + len , texto.length);
      texto = parte1 + novo + parte2;
      pos = texto.indexOf(procurar);
   }
   return texto;
}

function isNumber(numero)
{
   var CaractereInvalido = false;
   for (i=0; i < numero.length; i++){
      var Caractere = numero.charAt(i);
      if(Caractere != "." && Caractere != "," && Caractere != "-"){
         if (isNaN(parseInt(Caractere))) CaractereInvalido = true;
      }
   }

   return !CaractereInvalido;
}

function isEmpty(text){
   var enter1 = "\n",
       enter2 = "\r",
       espaco = " ",
       tab = "\t";

   if (text == "") return true;

   //A verifica se o caracter selecionada possui valor vahlido
   for (var indice = 0; indice < text.length; indice++){
      if (text.charAt(indice) != espaco && 
         text.charAt(indice) != tab &&
         text.charAt(indice) != enter1 && 
         text.charAt(indice) != enter2 )
         return false;
   }
   return true;
}

function isDate2( data ){
   var tdate, ad, rd, dm, tmpstr;
   dm = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
   data = replace(data, "-", "/");
   ad = splitstr(data, '/');
   if (ad.length != 3) return false;
   if((ad[1]>=1 && ad[1]<=12)==false) return false;	
   if(Math.floor(ad[2]/4)*4==ad[2]) dm[1] = 29;
   if(ad[2].toString().length != 4) return false;
   dia_ok = ad[0]>=1 && ad[0]<=dm[ad[1]-1];
   if(dia_ok == false) return false;
   for(i=0; i<ad.length; i++) {
   if ((isEmpty(ad[i])) || (!isNumber(ad[i])) || ((ad[i]<0))) return false;
   }
   return true;
}


function EhIgual(campo) { // Verifica se todos os valores são iguais
	var i = 0
	var j = 1
	var igual = true;
	// Todos os caracteres devem ser diferentes
	while (i < campo.length-1 && igual == true) {
		while (j < campo.length && igual == true) {
			if (campo.charAt(i) != campo.charAt(j)) {
				igual = false;
			}
			else j++;
		}
		i++;
	}
	return igual;
}

function EhNumero(campo) { // Verifica se o valor é númerico e diferente de zero e não é tudo igual
	var i
	var digitos = "0123456789"
	var zero = "0"	

	// Todos os caracteres devem ser digitos
	for (i=0; i < campo.length; i++) {
		if (digitos.indexOf(campo.charAt(i)) < 0 ) {
			return false;	
		}
	}
	return true;
}

//Verifia a consistencia do CPF
function check_cpf (numcpf) {
	if (EhIgual(numcpf)==true) { 
		//alert ("Numero do CPF invalido!"); 
		return false; 
	}
	x=0; soma=0; dig1=0; dig2=0; texto=""; numcpf1="";
	len = numcpf.length; x = len -1;
	for (var i=0; i <= len - 3; i++) {
		y = numcpf.substring(i,i+1); soma = soma + ( y * x);
		x = x - 1; texto = texto + y;
	}
	dig1 = 11 - (soma % 11);
	if (dig1 == 10) dig1=0 ; if (dig1 == 11) dig1=0 ;
	numcpf1 = numcpf.substring(0,len - 2) + dig1 ;
	x = 11; soma=0;
	for (var i=0; i <= len - 2; i++) {
		soma = soma + (numcpf1.substring(i,i+1) * x); x = x - 1;
	}
	dig2= 11 - (soma % 11);
	if (dig2 == 10) dig2=0; if (dig2 == 11) dig2=0;
	if ((dig1 + "" + dig2) == numcpf.substring(len,len-2)) {
		return true;
	}
//	alert ("Numero do CPF invalido!");
	return false;
}

//Verifica a consistencia do CGC
function check_cgc(cgc) 
{
	if (EhIgual(cgc)==true) { 
		// alert ("Numero do CNPJ invalido!"); 
		return false; 
	}
	dac1 = 0; dac2 = 0; dac = ""; dact = ""; sum = 0;
	dac = cgc.substring(cgc.length-2, cgc.length);
	cgc = cgc.substring(0,cgc.length-2);
	for (i=cgc.length-1, j=2; i >= 0 ; i--, j++)
		{	j = (j == 10) ? 2 : j; sum += (cgc.substring(i, i+1) * j); }
	dac1 = ((sum * 10) % 11); dac1 = (dac1 == 10) ? 0 : dac1; sum = 0;
	for (i=cgc.length-1, j=3; i >= 0 ; i--, j++)
		{	j = (j == 10) ? 2 : j; sum += (cgc.substring(i, i+1) * j); }
	sum  += (dac1 * 2); dac2 = ((sum * 10) % 11); 
	dac2 = (dac2 == 10) ? 0 : dac2; dact = dac1+""+dac2;
	if (dact == dac) { 
		return true;
	} else {	
			//alert ("Número do CNPJ inválido !!!"); 
			return false; 
	}
}

function Verifica_Acentos(campo){
	var acentos = 'áàâãäéèêëíìîïóòôõöúùûüçÁÀÂÃÄÉÈÊÍÌÎÏÓÒÔÕÖÚÙÛÜÇñÑ ';
	var acentos1 = 48;
	var tamanho = 0;
	tamanho = campo.length;
	for (x1=0; x1 <tamanho;x1++){
		for (j=0;j<acentos1;j++){
			if (campo.substring(x1,x1+1) == acentos.substring(j,j+1)){
				return false;
			}
		}
	}
	return true;
}
