//================================== AJAX =========================================
function ControlaLoading() {
	try
	{
		var loading = document.getElementById("loading");
		loading.style.display = loading.style.display == "block" ? "none" : "block";

	} catch (e) {}
}

// global flag
var isIE = false;

// global request and XML document objects
var req;

// controla a função de retorno
var tipo;

// controla o tipo de envio da requisição
var tipo_envio = "GET";

// contém o formulário para envio (usado para o método post)
var form_envio;

function loadXMLDoc(url) {
    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {
	   req = new XMLHttpRequest();
	   req.onreadystatechange = processReqChange;
	   req.open(tipo_envio, url, true);
	   if (tipo_envio == "POST") {
	   	   req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	   	   req.send(get(form_envio));
	   } else
	   		req.send(null);
	   // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
			 isIE = true;
			 req = new ActiveXObject("Microsoft.XMLHTTP");
			 if (req) {
				req.onreadystatechange = processReqChange;
				var form_string = get(form_envio);
				req.open(tipo_envio, url, true);
				if (tipo_envio == "POST") {
	   	   			req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	   	   			req.send(get(form_envio));
	   	   		} else 
	   	   			req.send();

			 }
		  }
	ControlaLoading();
}

function url_encode(str) { 
	var hex_chars = "0123456789ABCDEF"; 
	var noEncode = /^([a-zA-Z0-9\_\-\.])$/; 
	var n, strCode, hex1, hex2, strEncode = ""; 

	for(n = 0; n < str.length; n++) { 
		if (noEncode.test(str.charAt(n))) { 
			strEncode += str.charAt(n); 
		} else { 
			strCode = str.charCodeAt(n); 
			hex1 = hex_chars.charAt(Math.floor(strCode / 16)); 
			hex2 = hex_chars.charAt(strCode % 16); 
			strEncode += "%" + (hex1 + hex2); 
		} 
	} 
	return strEncode; 
	//return str; 
}  

function get(obj) {
  if (obj) {
	  // come from: http://www.captain.at/howto-ajax-form-post-get.php
	  var getstr = "";
	  var concatena = true;
	  for (i=0; i<obj.elements.length; i++) {
		   campo = obj.elements[i];
		   concatena = true;
		   switch (campo.type) {
		   		case "textarea":
				case "password":			
				case "hidden":			
				case "text":  getstr += campo.name + "=" + url_encode(campo.value);
							  break;
	
				case "radio": if (campo.checked)
					              getstr += campo.name + "=" + url_encode(campo.value);
								  else
									concatena = false;
							   break;
	
				case "checkbox": if (campo.checked)
									 getstr += campo.name + "=" + url_encode(campo.value);
									else
										concatena = false;
								 break;
	
				case "select-one": getstr += campo.name + "=" + url_encode(campo.value);
								   break;
		   }
		   getstr += concatena ? "&" : "";
	  }
	  
	  if (getstr.charAt(getstr.length-1) == "&")
	      getstr =  getstr.substr(0, getstr.length-1);

	  return getstr;
  }

}

function processReqChange() {
	
    // only if req shows "loaded"
    if (req.readyState == 4) {
		// only if "OK"
	   if (req.status == 200) {
		  ControlaLoading();
		  switch (tipo) {
			 case "preencheCidade":				 preencheCidade();          break;
			 case "preencheBairros":			 preencheBairros();         break;
			 case "preencheBairrosAvancada":	 preencheBairrosAvancada(); break;
			 case "preencheBairros_Radar":		 preencheBairros_Radar();   break;
			 case "mostraCondominio":			 mostraCondominio();        break;
			 case "ValidaCepAnuncio":			 ValidaCepAnuncio();        break;
			 case "mostraDadosCep":				 mostraDadosCep();		    break;
			 case "preencheBairroExtranet":		 preencheBairroExtranet();  break;
			 case "RecebeDadosCep":				 RecebeDadosCep();		    break;
			 case "preencheBairrosCep":			 preencheBairrosCep();	    break;
			 case "preencheBairrosBusca":		 preencheBairrosBusca();    break;
			 case "MostraResultadoPesquisa":	 MostraResultadoPesquisa();	   break;
			 case "MostraResultadoPesquisaSan":	 MostraResultadoPesquisaSan(); break;
			 case "RecebeBairrosRegiao":		 RecebeBairrosRegiao(); break;
		  }
		  
	   } else {
		  alert("There was a problem retrieving the XML data:\n" +		req.statusText);
		}
    }
}
//===========================================================================

//===========================================================================
// FUNÇÕES DA PÁGINA PRINCIPAL
//===========================================================================

var targetCidade;
function validaCidade(estado, objCidade, tipoListagemCidade) {
	 url   = "http://www.netimoveis.com.br/home_nova/MontaCidade.asp?estado=" + estado + "&tipo=" + tipoListagemCidade;
	 targetCidade = objCidade;
	 tipo = "preencheCidade";
	 loadXMLDoc(url);
}


function preencheCidade() {
    var exibeCidade = targetCidade;
    var items   = !isIE ? req.responseXML : req.responseXML.documentElement;
    var str = String(document.location);
    var pos = str.indexOf("anuncios/home.asp");

    if (items) {
	   exibeCidade.length = 0;
	   var item = items.getElementsByTagName("cidade");

	   exibeCidade.options[0] = new Option("Selecionar CIDADE", "");
	   for (i=1;i<=item.length;i++) {
		    exibeCidade.options[i] = new Option(item[i-1].firstChild.data, item[i-1].firstChild.data);
		    if (pos > 0)
			   document.frmAnuncio.cidade.options[i] = new Option(item[i-1].firstChild.data, item[i-1].firstChild.data);

	  }
	  
	  /*
	  if (document.frmBuscaImovel.estado_busca)
	       if (document.frmBuscaImovel.estado_busca.value == "MG" && outra_cidade == "") {
			exibeCidade.value = "Belo Horizonte";
			validaBairro('Belo Horizonte', document.getElementById("bairros"));
	       } else if (document.frmBuscaImovel.estado_busca.value == "MG" && outra_cidade != "") {
					exibeCidade.value = outra_cidade;
					outra_cidade = "";
	       }
	  */
    }
}

var targetBairro;
function validaBairro(cidade, objBairro) {

	 if (contaBairros != 0)
		 contaBairros = 0;

	 if (objBairro.id == "bairros_radar") {
	     tipo = "preencheBairros_Radar";
		 tipoBairro = "endereco";
		 form = document.frmRadar;
	 }  else if (objBairro.id == "bairrosAvancado") {
			     tipo		= "preencheBairrosAvancada";
				 tipoBairro = "imovel";
				 form		= document.frmBuscaAvancada;
				} else {
					  tipo = "preencheBairros";
					  tipoBairro = "imovel";
					  form = document.frmBuscaImovel;
				}

	 uf = "SC";

	 if (uf == "")	 {
		alert("Por favor, selecione o estado");
		return false;
	 }

	 objBairro.innerHTML = "<li>Carregando Bairros... Aguarde</li>";
	 url = "../lib/Others/Ajax.php?acao=MontaBairro&estado=" + uf + "&cidade=" + cidade + "&tipo=" + tipoBairro;
	 targetBairro = objBairro;
	 loadXMLDoc(url);
}

function validaRegiao(regiao) {
	if (regiao != "") {
	    url = "monta_bairros_regiao.asp?regiao=" + regiao;
	    tipo = "preencheBairros";
	    targetBairro = document.getElementById("bairros");
	    document.frmBuscaImovel.estado_busca.value = "MG";
        loadXMLDoc(url);
	}

}

function preencheBairros() {
	 var exibeBairro = targetBairro;
	 var items   = !isIE ? req.responseXML : req.responseXML.documentElement;
	 if (items) {
		exibeBairro.innerHTML = "";
		var item     =  items.getElementsByTagName("bairro");
		for (i=0;i<item.length;i++) {
			 par = i%2 == 0 ? "class=\"par\"" : "";
			 exibeBairro.innerHTML += "<li "+par+"><label for=\"bairro"+(i+1)+"\"><input id=\"bairro"+(i+1)+"\" name=\"bairro_busca\" type=\"checkbox\" value=\""+item[i].firstChild.data+"\">"+item[i].firstChild.data+"</label></li>";
		}
		
		
	 } else 
		 exibeBairro.innerHTML = "<li>Nenhum bairro encontrado</li>";
}

function preencheBairrosAvancada() {
	 var exibeBairro = targetBairro;
	 var items   = !isIE ? req.responseXML : req.responseXML.documentElement;
	 if (items) {
		exibeBairro.innerHTML = "";
		var item     =  items.getElementsByTagName("bairro");
		for (i=0;i<item.length;i++) {
			 par = i%2 == 0 ? "class=\"par\"" : "";
			 exibeBairro.innerHTML += "<li "+par+" id=\"avancada\"><label for=\"bairroAvancada"+(i+1)+"\"><input id=\"bairroAvancada"+(i+1)+"\" name=\"bairro_busca\" type=\"checkbox\" value=\""+item[i].firstChild.data+"\">"+item[i].firstChild.data+"</label></li>";
		}
		
	 } else 
		 exibeBairro.innerHTML = "<li>Nenhum bairro encontrado</li>";
}

function preencheBairros_Radar() {
	 var exibeBairro = targetBairro;
	 var items   = !isIE ? req.responseXML : req.responseXML.documentElement;
	 if (items) {

		exibeBairro.innerHTML = "";
		var item     =  items.getElementsByTagName("bairro");
		for (i=0;i<item.length;i++) {
			 par = i%2 == 0 ? "class=\"par\"" : "";
			 exibeBairro.innerHTML += "<li "+par+"><label for=\"bairro_radar"+(i+1)+"\"><input id=\"bairro_radar"+(i+1)+"\" name=\"bairro\" type=\"checkbox\" value=\""+item[i].firstChild.data+"\" onClick=\"ValidaContBairro(this)\">"+item[i].firstChild.data+"</label></li>";
		}
				
	 }	else
			exibeBairro.innerHTML = "<li>Nenhum bairro encontrado</li>";
}


  // FIM DAS FUNÇÕES DE CONTROLE DOS BAIRROS

  var contaBairros = 0; // essa variável será usada na validação dos formulário tbém
  function ValidaContBairro(obj) {
	 contaBairros += obj.checked ? 1 : -1;
	 if (contaBairros > 5)	 {
	    obj.checked = false;
	    contaBairros--;
	    alert("Por favor, selecione até cinco bairros.");
	 }

  }// fim da função
function popupDetalhe(theURL,winName,features, myWidth, myHeight, isCenter) {
    if(window.screen)if(isCenter)if(isCenter=="true"){
	   var myLeft = (screen.width-myWidth)/2;
	   var myTop = (screen.height-myHeight)/2;
	   features+=(features!='')?',':'';
	   features+=',left='+myLeft+',top='+myTop;
    }
    window.open(theURL,winName,features+((features!='')?',':'')+'width='+myWidth+',height='+myHeight);
}

function Detalhes(codigo) {
	var ran = Math.random()%9999;
	popupDetalhe('index.php?acao=abreImovel&codigo='+codigo+'&ran='+ran,'','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes','622','582','true');
}
function DetalhesLancamento(codigo) {
	var ran = Math.random()%9999;
	popupDetalhe('index.php?acao=abrirLancamento&codlancamento='+codigo+'&ran='+ran,'','toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=yes','622','582','true');
}