function createRequestObject() {
   var ro;
   var browser = navigator.appName;
   if(browser == "Microsoft Internet Explorer"){
       ro = new ActiveXObject("Microsoft.XMLHTTP");
   }else{
       ro = new XMLHttpRequest();
   }
   return ro;
}
var http = createRequestObject();

function soNums(e,args)
{		
/* onKeyPress="return(soNums(event,args)) args é os chars permitidos.*/

	if (document.all){var evt=event.keyCode;} // caso seja IE
	else{var evt = e.charCode;}	// do contrário deve ser Mozilla
	var chr= String.fromCharCode(evt);	// pegando a tecla digitada
	// Se o código for menor que 20 é porque deve ser caracteres de controle
	// ex.: <ENTER>, <TAB>, <BACKSPACE> portanto devemos permitir
	// as teclas numéricas vão de 48 a 57
	if (evt <20 || (evt >47 && evt<58) || (args.indexOf(chr)>-1 ) ){return true;}
	return false;
}

function validarCep(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 funcaowebservicecep() 
{
	document.getElementById("rua").value = 'Buscando dados...';
	http.open("GET", 'buscarendereco.php?cep='+document.getElementById("cep").value, true);
	http.onreadystatechange = handleHttpResponse;
	http.send(null);

	var arr; //array com os dados retornados
	function handleHttpResponse() 
	{
		if (http.readyState == 4) 
		{
			var response = http.responseText;
			eval("var arr = "+response); //cria objeto com o resultado
			document.getElementById("rua").value = arr.rua;
			document.getElementById("bairro").value = arr.bairro;
			document.getElementById("cidade").value = arr.cidade;
			document.getElementById("uf").value = arr.uf;
		}
	}
}

function funcaowebservicecep2() 
{
	document.getElementById("prua").value = 'Buscando dados...';
	http.open("GET", 'buscarendereco.php?cep='+document.getElementById("pcep").value, true);
	http.onreadystatechange = handleHttpResponse;
	http.send(null);

	var arr; //array com os dados retornados
	function handleHttpResponse() 
	{
		if (http.readyState == 4) 
		{
			var response = http.responseText;
			eval("var arr = "+response); //cria objeto com o resultado
			document.getElementById("prua").value = arr.rua;
			document.getElementById("pbairro").value = arr.bairro;
			document.getElementById("pcidade").value = arr.cidade;
			document.getElementById("puf").value = arr.uf;
		}
	}
}

function valida_cnpj(cnpj)
{
var numeros, digitos, soma, i, resultado, pos, tamanho, digitos_iguais;
digitos_iguais = 1;
if (cnpj.length < 14 && cnpj.length < 15)
	return false;
for (i = 0; i < cnpj.length - 1; i++)
	if (cnpj.charAt(i) != cnpj.charAt(i + 1))
		  {
		  digitos_iguais = 0;
		  break;
		  }
if (!digitos_iguais)
	{
	tamanho = cnpj.length - 2
	numeros = cnpj.substring(0,tamanho);
	digitos = cnpj.substring(tamanho);
	soma = 0;
	pos = tamanho - 7;
	for (i = tamanho; i >= 1; i--)
		  {
		  soma += numeros.charAt(tamanho - i) * pos--;
		  if (pos < 2)
				pos = 9;
		  }
	resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
	if (resultado != digitos.charAt(0))
		  return false;
	tamanho = tamanho + 1;
	numeros = cnpj.substring(0,tamanho);
	soma = 0;
	pos = tamanho - 7;
	for (i = tamanho; i >= 1; i--)
		  {
		  soma += numeros.charAt(tamanho - i) * pos--;
		  if (pos < 2)
				pos = 9;
		  }
	resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
	if (resultado != digitos.charAt(1))
		  return false;
	return true;
	}
else
	return false;
}

function valida_cpf(cpf)
{
var numeros, digitos, soma, i, resultado, digitos_iguais;
digitos_iguais = 1;
if (cpf.length < 11)
	return false;
for (i = 0; i < cpf.length - 1; i++)
	if (cpf.charAt(i) != cpf.charAt(i + 1))
		  {
		  digitos_iguais = 0;
		  break;
		  }
if (!digitos_iguais)
	{
	numeros = cpf.substring(0,9);
	digitos = cpf.substring(9);
	soma = 0;
	for (i = 10; i > 1; i--)
		  soma += numeros.charAt(10 - i) * i;
	resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
	if (resultado != digitos.charAt(0))
		  return false;
	numeros = cpf.substring(0,10);
	soma = 0;
	for (i = 11; i > 1; i--)
		  soma += numeros.charAt(11 - i) * i;
	resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
	if (resultado != digitos.charAt(1))
		  return false;
	return true;
	}
else
	return false;
}
	  
function validarcpf()
{
	document.getElementById("cpf").value=document.getElementById("cpf").value.replace(' ','');
	document.getElementById("cpf").value=document.getElementById("cpf").value.replace('-','');
	document.getElementById("cpf").value=document.getElementById("cpf").value.replace('/','');
	document.getElementById("cpf").value=document.getElementById("cpf").value.replace('.','');
	document.getElementById("cpf").value=document.getElementById("cpf").value.replace('.','');
	document.getElementById("cpf").value=document.getElementById("cpf").value.replace('.','');
	if (valida_cnpj(document.getElementById("cpf").value)){}
	else if (valida_cpf(document.getElementById("cpf").value)){}
	else if (document.getElementById("cpf").value=='00000001000'){}
	else { alertamsg+=':: CPF\n' }
}

function validarcampo(nome, id)
{
	if (document.getElementById(id).value=='')
	{ 
		alertamsg+=':: '+nome+'\n';
	}
}

function validaremail()
{
	if (((/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{1,3})+$/.test(document.getElementById("email").value)))==false)
	{ 
		alertamsg+=':: E-mail\n';
	}
}

function txtBoxFormat(objeto, sMask, evtKeyPress) {
    var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;

  if(document.all) { // Internet Explorer
	  nTecla = evtKeyPress.keyCode;
  } else if(document.layers) { // Nestcape
	  nTecla = evtKeyPress.which;
  } else {
	  nTecla = evtKeyPress.which;
	  if (nTecla == 8) {
		  return true;
	  }
  }
  
  sValue = objeto.value;

  // Limpa todos os caracteres de formatação que
  sValue = sValue.toString().replace( "-", "" );
  sValue = sValue.toString().replace( "-", "" );
  sValue = sValue.toString().replace( ".", "" );
  sValue = sValue.toString().replace( ".", "" );
  sValue = sValue.toString().replace( "/", "" );
  sValue = sValue.toString().replace( "/", "" );
  sValue = sValue.toString().replace( ":", "" );
  sValue = sValue.toString().replace( ":", "" );
  sValue = sValue.toString().replace( "(", "" );
  sValue = sValue.toString().replace( "(", "" );
  sValue = sValue.toString().replace( ")", "" );
  sValue = sValue.toString().replace( ")", "" );
  sValue = sValue.toString().replace( " ", "" );
  sValue = sValue.toString().replace( " ", "" );
  fldLen = sValue.length;
  mskLen = sMask.length;

  i = 0;
  nCount = 0;
  sCod = "";
  mskLen = fldLen;

  while (i <= mskLen) {
	bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/") || (sMask.charAt(i) == ":"))
	bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "))

	if (bolMask) {
	  sCod += sMask.charAt(i);
	  mskLen++; }
	else {
	  sCod += sValue.charAt(nCount);
	  nCount++;
	}

	i++;
  }

  if (sCod=='(0')
  {
	 objeto.value = '(';
  }
  else
  {
	 if (sCod.charAt(4)==6 || sCod.charAt(4)==7 || sCod.charAt(4)==8 || sCod.charAt(4)==9)
	 {
		alert('DESCULPE\n\n:: O número de telefone deverá ser de um aparelho fixo.');
		objeto.value = sCod.charAt(0)+sCod.charAt(1);
	 }
	 else
	 {
		 objeto.value = sCod;
	 }
  }
  
  if (nTecla != 8) { // backspace
	if (sMask.charAt(i-1) == "9") { // apenas números...
	  return ((nTecla > 47) && (nTecla < 58)); }
	else { // qualquer caracter...
	  return true;
	}
  }
  else {
	return true;
  }
}

function txtBoxFormatcel(objeto, sMask, evtKeyPress) {
    var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;

  if(document.all) { // Internet Explorer
	  nTecla = evtKeyPress.keyCode;
  } else if(document.layers) { // Nestcape
	  nTecla = evtKeyPress.which;
  } else {
	  nTecla = evtKeyPress.which;
	  if (nTecla == 8) {
		  return true;
	  }
  }
  
  sValue = objeto.value;

  // Limpa todos os caracteres de formatação que
  sValue = sValue.toString().replace( "-", "" );
  sValue = sValue.toString().replace( "-", "" );
  sValue = sValue.toString().replace( ".", "" );
  sValue = sValue.toString().replace( ".", "" );
  sValue = sValue.toString().replace( "/", "" );
  sValue = sValue.toString().replace( "/", "" );
  sValue = sValue.toString().replace( ":", "" );
  sValue = sValue.toString().replace( ":", "" );
  sValue = sValue.toString().replace( "(", "" );
  sValue = sValue.toString().replace( "(", "" );
  sValue = sValue.toString().replace( ")", "" );
  sValue = sValue.toString().replace( ")", "" );
  sValue = sValue.toString().replace( " ", "" );
  sValue = sValue.toString().replace( " ", "" );
  fldLen = sValue.length;
  mskLen = sMask.length;

  i = 0;
  nCount = 0;
  sCod = "";
  mskLen = fldLen;

  while (i <= mskLen) {
	bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/") || (sMask.charAt(i) == ":"))
	bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "))

	if (bolMask) {
	  sCod += sMask.charAt(i);
	  mskLen++; }
	else {
	  sCod += sValue.charAt(nCount);
	  nCount++;
	}

	i++;
  }

  if (sCod=='(0')
  {
	 objeto.value = '(';
  }
  else
  {
	 objeto.value = sCod;
  }
  
  if (nTecla != 8) { // backspace
	if (sMask.charAt(i-1) == "9") { // apenas números...
	  return ((nTecla > 47) && (nTecla < 58)); }
	else { // qualquer caracter...
	  return true;
	}
  }
  else {
	return true;
  }
}