

/***************************
*    Classe Ajax
*    - Cria o objeto ajax
*    - Faz a busca em uma página
*    - Retorna o resultado
*
* Parametros
* url      : url que o ajax ira executar
* metodo   : tipo de envio de dados, por padrão é GET
* params   : parametros com os dados de envio, somente se o metodo for POST , por padrão é null
* processa : resultado
* modo     : Tipo de arquivo que o ajax ira retornar X para 'xml' e T para 'texto'
  *****************************/

function AJAX(url, metodo, params, processa, modo)
{
    this.url                = url;
    this.metodo             = (metodo) ? metodo : 'GET';
    this.params             = (metodo='GET') ? null : params;
    this.processaresultado  = processa;
    this.modo               = (modo) ? modo : 'T';

    /* T = Text , X = XML */
    if( this.modo != 'T' && this.modo != 'X' ){
        this.modo = 'T';
    }

    this.conectar();
}

AJAX.prototype = {
    
    /*
        Cria o método conecter()
        Responsavel pela criação do objeto Ajax ( httprequest )
    */
    conectar: function(){
        
                /* Verifica se URL é válda */
                if( this.url == undefined || this.url == ''){
                    return;
                }
                
                /* Cria o objeto httpRequest */
                this.httprequest = null;
                
                /* Mozilla, Safari, FireFox ... */
                if( window.XMLHttpRequest ){
                    this.httprequest = new XMLHttpRequest();

                /* IE */
                } else if( window.ActiveXObject){
                    try{
                        this.httprequest = new ActiveXObject("Msxml2.XMLHTTP");
                    } catch (e){
                        try{
                            this.httprequest = new ActiveXObject("Microsoft.XMLHTTP");
                        } catch (e) {}
                    }
                }
                if(this.httprequest != null && this.httprequest != undefined ){
                    var obj = this;
                    this.httprequest.onreadystatechange = function(){
                                                                obj.processaretorno.call(obj);
                                                            }
				                                            
                                                            
                    this.httprequest.open(this.metodo,this.url, true);
                    this.httprequest.send(this.params);

                }

            }, // fim conectar

    /*
        Cria o método processaretorno()
        recebe a resposta do responseText ou responseXML
    */
    processaretorno: function(){
                        if( this.httprequest.readyState == 4 ){
                            if( this.httprequest.status == 200 ){
                                var resp = ( this.modo == 'T' ) ? this.httprequest.responseText : this.httprequest.responseXML;
                                
                                if( this.processaresultado != null ){
                                    //alert(resp);
                                    this.processaresultado(resp);
                                } else {
                                    //alert("erro="+resp);
                            }
                            } else {
                                this.processaerro();
                            }
                        }
                    }, // fim processaretorno

    /*
        Cria o método processaerro()
        Retorna um alert de erro, caso houver
    */
    processaerro:     function(){
                        //alert(this.httprequest.status + '-' + this.httprequest.statusText + ' :-> ' + this.url);
                    }
}
//ajax
//ajax
//ajax




/**
Funcao que recebera as informacoes da pagina PHP
**/

/*function verificaCampo()
{
	var x;
	
	var imgs = document.getElementsByTagName("img");
	if (imgs) {
		for (x = 0; x < imgs.length; x++) {
			if (imgs[x].id.indexOf("ico_") >= 0) {
				imgs[x].style.display="none";
			}
		}
	}
	
	var queryString = "";
	var i;
	
	for(i = 0; i < document.frmCadastro.elements.length; i++) {
		var element = document.frmCadastro.elements[i];
		if  (element.type != "button")  {
			queryString += "&"+element.name+"="+escape(element.value);
		}
	}
	
	
	var url = 'verifica_dados_cadastro.php?'+queryString;
	//alert(url);
	
	var ajx = new AJAX();
    ajx.url = url
    ajx.modo = 'T';
    ajx.processaresultado = function(r){
    	
    	//alert(r);	
    	if (r != "") {
			var campos = r.split(";");
			
			var a;
			for(a = 0; a < campos.length; a++) {
				
				if (campos[a] != "") {
					if (document.getElementById('ico_'+campos[a]))
						document.getElementById('ico_'+campos[a]).style.display="";
				}
			}
			
		} else {
			document.frmCadastro.submit();
		}
    }
    ajx.conectar();
}


function verificaCep(cep) {
	var url = 'verifica_cep.php?cep='+cep;
	//alert(url);
	
	var ajx = new AJAX();
    ajx.url = url
    ajx.modo = 'T';
    ajx.processaresultado = function(r){ 
		
		if (r != "null") {
			
			var result = r.split(";");
			var cepR   = result[0];
			var logra  = result[1];
			var bairro = result[2];
			var cidade = result[3];
			var estado = result[4];
			
			document.frmCadastro.cep.value = cepR;
			document.frmCadastro.logradouro.value = logra;
			document.frmCadastro.bairro.value = bairro;
			document.frmCadastro.cidade.value = cidade;
			document.frmCadastro.uf.value = estado;
			
			document.frmCadastro.logradouro.readOnly = true;
			document.frmCadastro.bairro.readOnly     = true;
			document.frmCadastro.cidade.readOnly     = true;
			document.frmCadastro.uf.readOnly     	 = true;
			
			document.frmCadastro.complemento.focus();
			
		} else {
			document.frmCadastro.logradouro.value = "";
			document.frmCadastro.bairro.value = "";
			document.frmCadastro.cidade.value = "";
			document.frmCadastro.uf.value = "";
			
			document.frmCadastro.logradouro.readOnly = false;
			document.frmCadastro.bairro.readOnly     = false;
			document.frmCadastro.cidade.readOnly     = false;
			document.frmCadastro.uf.readOnly     	 = false;
		}
		
	}
	
	ajx.conectar();
	
}
*/