/* Esta função verifica qual browser está sendo usado e checa que se suporta AJAX*/
function openAjax(){
	var Ajax;
	try {
		Ajax = new XMLHttpRequest();
	}
	catch (ee) {
		try {
			Ajax = new ActiveXObject("Msxml2.XMLHTTP");
		}	
		catch(e) {
			try {
				Ajax = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e) {
				Ajax = false;
			}
		}
	}
	return Ajax;
}

function GetXMLHttp() {  
     if(navigator.appName == "Microsoft Internet Explorer") {  
     xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");  
     } else {  
     xmlHttp = new XMLHttpRequest();  
     }      
     return xmlHttp;  
 }  
 var xmlRequest = GetXMLHttp();  


/*
	Esta função deve receber o DIV que receberá o resultado, o campo/field que está sendo verificado
 e o documento PHP que será chamado, ou seja o arquivo php que receberá os parâmetros e realizará algum
 tipo de pesquisa ou validação usando o BD. onBlur="carregaAjax('divNome', this.value, 'msg_campo_duplo.php')"
 
 	Caso seja necessário fazer a verificação se o campo está duplicado passar como docPHP msg_campo_duplo.php e
 acrescentar os parâmetros tabela e campo1 e fazer a chamada como no exemplo:
 onBlur="carregaAjax('divNome', this.value, 'msg_campo_duplo.php', 'proprietario', 'prop_nome')
 
 	Se o campo for obrigatório coloque no parâmetro 1, caso contrário não passar nada. Veja o Ex.:
	onBlur="carregaAjax('divNome', this.value, 'msg_campo_duplo.php', 'proprietario', 'prop_nome', 1)" e se for
	necessário usar o foco no campo chamando a função focacampo(this.value, this)
 */
function carregaAjax(id, campo, docPHP, tabela, campo1, obrigatorio) { 
	if(document.getElementById) {
		var exibeResultado = document.getElementById(id);
		var Ajax = openAjax();
		Ajax.open("POST", docPHP, true);
		Ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		Ajax.onreadystatechange = function() {
			if(Ajax.readyState == 1) {
				//exibeResultado.innerHTML = "<div align = 'center'><strong>Carregando...</strong></div>";
			}
			if(Ajax.readyState == 4) {
				if(Ajax.status == 200) {
					var resultado = Ajax.responseText;
					if (resultado.length > 0){
						exibeResultado.innerHTML = resultado;
					}
				}
				else {
					exibeResultado.innerHTML = "Erro: .";
				}
			}
		}

		var params = "campo="+campo+"&tabela="+tabela+"&campo1="+campo1+"&obrigatorio="+obrigatorio;
		Ajax.send(params);
	}
}

// É uma cópia do anterior para o caso de se ter que usar duas vezes o mesmo código.
function carregaAjax1(docPHP1, id1, valor, valor1) { 
	if(document.getElementById) {
		var exibeResultado1 = document.getElementById(id1);
		var Ajax1 = openAjax();
		Ajax1.open("POST", docPHP1, true);	
		Ajax1.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		Ajax1.onreadystatechange = function() {
			if(Ajax1.readyState == 1) {
				//exibeResultado.innerHTML = "<div align = 'center'><strong>Carregando...</strong></div>";
			}
			if(Ajax1.readyState == 4) {
				if(Ajax1.status == 200) {
					var resultado1 = Ajax1.responseText;
					exibeResultado1.innerHTML = resultado1;
				}
				else {
					exibeResultado1.innerHTML = "Erro: .";
				}
			}
		}//fim da function
		var params = "campo="+valor+"&campo1="+valor1;
		Ajax1.send(params);
	}
}


// É uma cópia do anterior entretanto envia duas variaveis de parametro
function carregaAjaxMulti(id, campo1, campo2, docPHP, tabela, campo11, campo22, obrigatorio) { 
	if(document.getElementById) {
		var exibeResultado = document.getElementById(id);
		var Ajax = openAjax();
		Ajax.open("POST", docPHP, true);
		Ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		Ajax.onreadystatechange = function() {
			if(Ajax.readyState == 1) {
				//exibeResultado.innerHTML = "<div align = 'center'><strong>Carregando...</strong></div>";
			}
			if(Ajax.readyState == 4) {
				if(Ajax.status == 200) {
					var resultado = Ajax.responseText;
					exibeResultado.innerHTML = resultado;
				}
				else {
					exibeResultado.innerHTML = "Erro: .";
				}
			}
		}

		var params = "campo1="+campo1+"&campo2="+campo2+"&tabela="+tabela+"&campo11="+campo11+"&campo22="+campo22+"&obrigatorio="+obrigatorio;
		Ajax.send(params);
	}
}

/* Esta função serve apenas para focar o campo, basta passar fazer a chamada: focacampo(this.value, this)*/
function focacampo(valor,campo){
	if (!valor.length > 0){
		campo.focus();

	}	
}

/*Esta função serve para formatar um CPF no formato xxx.xxx.xxx-xx, basta fazer a chamada, ex.: onKeyPress="FormataCPF(document.form,'cpf',11,8,5,2,event);
É importante lembrar que o nome do campo TEM que ser CPF*/
function FormataCPF(pForm,pCampo,pTamMax,pPos1,pPos2,pPosTraco,pTeclaPres){
 var wTecla, wVr, wTam;
 
       // alert(pForm[pCampo].value);
  
 wTecla = pTeclaPres.keyCode;
 wVr = pForm[pCampo].value;
 wVr = wVr.toString().replace( "-", "" );
 wVr = wVr.toString().replace( ".", "" );
 wVr = wVr.toString().replace( ".", "" );
 wVr = wVr.toString().replace( "/", "" );
 wTam = wVr.length ;

 if (wTam < pTamMax && wTecla != 8) { 
    wTam = wVr.length + 1 ; 
 }

 if (wTecla == 8 ) { 
    wTam = wTam - 1 ; 
 }
   
 if ( wTecla == 8 || wTecla == 88 || wTecla >= 48 && wTecla <= 57 || wTecla >= 96 && wTecla <= 105 ){
  if ( wTam <= 2 ){
    pForm[pCampo].value = wVr ;
  }
  if (wTam > pPosTraco && wTam <= pTamMax) {
        wVr = wVr.substr(0, wTam - pPosTraco) + '-' + wVr.substr(wTam - pPosTraco, wTam);
  }
  if ( wTam == pTamMax){
        wVr = wVr.substr( 0, wTam - pPos1 ) + '.' + wVr.substr(wTam - pPos1, 3) + '.' + wVr.substr(wTam - pPos2, wTam);
  }
  pForm[pCampo].value = wVr;
 
 }

}

/*
Esta função verifica se o CFP é válido e retorna a msg em JS Alert.
onBlur="return validacpf()
*/
function validacpf(s, div){   
var i;   
//s = document.form.cpf.value;   

// Limpa todos os caracteres de formatação que
// já estiverem no campo.
s = s.toString().replace( "-", "" );
s = s.toString().replace( "-", "" );
s = s.toString().replace( ".", "" );
s = s.toString().replace( ".", "" );
s = s.toString().replace( "/", "" );
s = s.toString().replace( "/", "" );
s = s.toString().replace( "(", "" );
s = s.toString().replace( "(", "" );
s = s.toString().replace( ")", "" );
s = s.toString().replace( ")", "" );
s = s.toString().replace( " ", "" );
s = s.toString().replace( " ", "" );

var c = s.substr(0,9);   
var dv = s.substr(9,2);  
var d1 = 0;   
for (i = 0; i < 9; i++)   
{   
d1 += c.charAt(i)*(10-i);   
}   
if (d1 == 0){ 
//document.form.cpf.focus();  
//document.form.cpf.value = ""; 
//alert("Este CPF não é válido") 
exibe = document.getElementById(div);
if (!exibe == '') exibe.innerHTML = "CPF Inválido!";
return false;   
} 
else{
	exibe = document.getElementById(div);
	if (!exibe == '') exibe.innerHTML = "";
}  
d1 = 11 - (d1 % 11);   
if (d1 > 9) d1 = 0;   
if (dv.charAt(0) != d1)   
{ 
//document.form.cpf.focus();  
//document.form.cpf.value = "";
//alert("Este CPF não é válido")   
exibe = document.getElementById(div);
if (!exibe == '') exibe.innerHTML = "CPF Inválido!";
return false;   
}
else{
	exibe = document.getElementById(div);
	if (!exibe == '') exibe.innerHTML = "";
}    
d1 *= 2;   
for (i = 0; i < 9; i++)   
{   
d1 += c.charAt(i)*(11-i);   
}   
d1 = 11 - (d1 % 11);   
if (d1 > 9) d1 = 0;   
if (dv.charAt(1) != d1)   
{   
//document.form.cpf.focus();
//document.form.cpf.value = "";
//alert("Este CPF não é válido")   
exibe = document.getElementById(div);
if (!exibe == '') exibe.innerHTML = "CPF Inválido!";
return false;   
}
else{
	exibe = document.getElementById(div);
	if (!exibe == '') exibe.innerHTML = "";
}    
return true;   
}


function formatar(src, mask) 
{
  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);
  }
}

/* 
CEP
OnKeyPress="formatar(this, '#####-###')"
CPF
OnKeyPress="formatar(this, '###.###.###-##')"
DATA
OnKeyPress="formatar(this, '##/##/####')"
FONE
OnKeyPress="formatar[this, '## ####-####')"
*/

/* Função para retornar a msg de campos obrigatórios*/
function preenchacampos(campo1, campo2, campo3, campo4, campo5){
	if (campo1 == '' || campo2 == '' || campo3 == '' || campo4 == '' || campo5 == ''){
		alert("Preencha os campos obrigatórios!")
	}	
}

/* Função responsável por realizar um submit() no formulário. Caso queira fazer a checagem antes de enviar o formulário
criar o botão sem submit, setanto NENHUM, e chamando conforme ex.: onclick "enviar(est_descr.value, est_sigla.value, '-', '-', '-')"
Pode passar até 5 parâmetros, entretanto se não houver parâmetros colocar '-'
>>> Serve para verificar se o campo está vazio, se não tiver emite msg*/
function enviar(campo1, campo2, campo3, campo4, campo5, div1, div2, div3, div4, div5){
	if (!campo1 == '' && !campo2 == '' && !campo3 == '' && !campo4 == '' && !campo5 == ''){
		document.form.submit();
	}	
	else
	{
		var exibe1 = document.getElementById(div1);
			exibe2 = document.getElementById(div2);
			exibe3 = document.getElementById(div3);
			exibe4 = document.getElementById(div4);
			exibe5 = document.getElementById(div5);

			if (!exibe1 == '') exibe1.innerHTML = "Campo Obrigatório!";
			if (!exibe2 == '') exibe2.innerHTML = "Campo Obrigatório!";
			if (!exibe3 == '') exibe3.innerHTML = "Campo Obrigatório!";
			if (!exibe4 == '') exibe4.innerHTML = "Campo Obrigatório!";
			if (!exibe5 == '') exibe5.innerHTML = "Campo Obrigatório!";
	}
}

function abrirPag(valor,id){  
	var url = valor;  
	var Ajax = openAjax();
	Ajax.open("GET", url, true);  
	//Ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	//Ajax.setRequestHeader("Content-Type", "text/html; charset=iso-8859-1");//"application/x-www-form-urlencoded");
	Ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	Ajax.onreadystatechange = 
	function mudancaEstado(){  
		if (Ajax.readyState == 4){  
		document.getElementById(id).innerHTML = Ajax.responseText;  
	}  
};  
	Ajax.send(null);  
	if (Ajax.readyState == 1) {  
		document.getElementById(id).innerHTML = "<img src='img/progress.gif'>";  
	}  
	return url;  
}  



/* 1 <script language="javascript" src="src/ajax.js"></script>  
2 <script language="javascript" src="src/instrucao.js"></script>  

Para usar, basta você colocar uma div no seu HTML com nome de conteudo e usar um botão ou link com a seguinte instrução:
1 <a href="#" onclick="abrirPag('conteudo.htm');" style="text-decoration: none">Abre site na Div</a>  
*/


function abrirPag1(valor,id){  
	var url = valor;  
	xmlRequest.open("GET", url, true);  
	xmlRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	xmlRequest.onreadystatechange = 
	function mudancaEstado(){  
		if (xmlRequest.readyState == 4){  
		document.getElementById(id).innerHTML = xmlRequest.responseText;  
	}  
};  
	xmlRequest.send(null);  
	if (xmlRequest.readyState == 1) {  
		document.getElementById(id).innerHTML = "<img src='../img/progress.gif'>";  
	}  
	return url;  
} 


function limpar(id){
	document.getElementById(id).innerHTML = "";	
	}