function validaBuscaTopo() {
	var f = document.frmBusca;
	/*
	if ((f.txtCidade.value == "") || (f.txtCidade.value == "0")) {
		alert("Selecione uma cidade para procurar.");
		return false;
	}
	*/
	if (f.txtFiltro.value == "Digite o que você procura") {f.txtFiltro.value = "";}
	if (f.txtCodigo.value == "cod.") {f.txtCodigo.value = "";}
	f.txtOperacao.value = 1;
	return true;
}

function validaBuscaTopoMapa() {
	var f = document.frmBuscaMapa;
	if ((f.txtCidade.value == "") || (f.txtCidade.value == "0")) {
		alert("Selecione uma cidade para procurar.");
		return false;
	}
	if (f.txtCodigo.value == "cod.") {f.txtCodigo.value = "";}
	f.txtOperacao.value = 1;
	return true;
}

// Muda as abas de destaques
function mudarAbaDestaque(pcAba) {
	var conteudo = $id("divDestaque");
	var botao = $id("bt" + pcAba.toUpperCase());
	
	$id("btLANCAMENTO").src = "img/index_home/qd_bt_lancamento.jpg";
	$id("btREVENDA").src = "img/index_home/qd_bt_revenda.jpg";
	$id("btALUGUEL").src = "img/index_home/qd_bt_aluguel.jpg";
	$id("btRURAL").src = "img/index_home/qd_bt_rural.jpg";
	$id("btCIDADE").src = "img/index_home/qd_bt_outrac.jpg";
	$id("btTEMPORADA").src = "img/index_home/qd_bt_temporada.jpg";
	
	botao.src = botao.src.replace(".jpg", "1.jpg"); //"img/index_home/" + pcImg;
	CarregaDestaque("ajax/ajax_destaques.php?aba=" + pcAba, "divDestaque");
}

// Carrega um conteudo dentro de uma camada via Ajax
function CarregaDestaque(pcPagina, pcCamada) {
	var req = null;
	// Procura por um objeto nativo (Mozilla/Safari)
	if (window.XMLHttpRequest) {
		req = new XMLHttpRequest();
		req.onreadystatechange = processReqChange;
		req.open("GET", pcPagina, true);
		req.send(null);
	// Procura por uma versao ActiveX (IE)
	} else if (window.ActiveXObject) {
		req = new ActiveXObject("Microsoft.XMLHTTP");
		if (req) {
			req.onreadystatechange = processReqChange;
			req.open("GET", pcPagina, true);
			req.send();
		}
	}
	
	$id(pcCamada).innerHTML = '<div align="center" style="width:50px; height:50px; padding-top:10px; background-image:url(img/bg_loadingA.gif); background-repeat:no-repeat;"><img src="img/loadingA.gif" border="0"></div>';
	
	function processReqChange() {
		if (req.readyState == 4) {
			if ((req.status == 200) && ((req.responseText) != "UNKNOWN")) {
				if ($id(pcCamada)) {
					$id(pcCamada).innerHTML = req.responseText;
					fillup();
				}
			}
		}
	}
}

// Marca os imoveis selecionados na busca
function checkImovelAjax(campo) {
	if (campo.checked) {
		var lnOperacao = 1;
	} else {
		var lnOperacao = 3;
	}
	setInfoAjax(_url_site + "/ajax/ajax_check_imovel.php?txtOperacao=" + lnOperacao + "&txtImovel=" + campo.value, "ajustarQtdImovel", null);
}

// Ajusta a quantidade de imoveis selecionados para comparar
function ajustarQtdImovel(obj) {
	if ((obj != null) && (typeof(obj) != "undefined")) {
		for (var i = 0; i < obj.length; i++) {
			_qtd_check_imovel = obj[i].qtd_imovel;
		}
	}
}

// Compara até 3 imoveis
function compararImoveis() {
	if ( (isNaN(_qtd_check_imovel)) || (_qtd_check_imovel == "") ) {
		alert("Selecione no mínimo 2 e no máximo 3 imóveis para comparar.");
		return false;
	} else {
		var qtd = parseInt(_qtd_check_imovel);
		if ((qtd > 1) && (qtd <= 3)) {
			document.location.href = _url_site + "/imovel/comparar.php";
		} else {
			alert("Selecione no mínimo 2 e no máximo 3 imóveis para comparar.");
			return false;
		}
	}
}

// Salva os imoveis marcados como preferidos
function salvarPreferidos() {
	if (parseInt(_qtd_check_imovel) <= 0) {
		alert("Nenhum imóvel selecionado.");
		return false;
	}
	var f = document.frmPreferidos;
	f.action = _url_site + "/anunciante/xt_preferidos.php";
	f.method = "POST";
	f.txtOperacao.value = 1;
	f.submit();
}

// Valida o contato com o anunciante
function valida_contato_anunciante() {
	var f = document.frmContato;
	if ((f.txtNome.value == "") || (f.txtNome.value == "Seu Nome")) {
		alert("Informe seu nome.");
		f.txtNome.focus();
		return false;
	}
	if ((f.txtEmail.value == "") || (f.txtEmail.value == "Seu E-mail")) {
		alert("Informe seu email.");
		f.txtEmail.focus();
		return false;
	} else if (ValidaEmail(f.txtEmail) == false) {
		return false;
	}
	if ((f.txtMensagem.value == "") || (f.txtMensagem.value == "Sua Mensagem")) {
		alert("Informe sua mensagem.");
		f.txtMensagem.focus();
		return false;
	}
	f.txtOperacao.value = 1;
	f.submit();
}

// Carrega os valores quando muda o tipo
function mudarTipoImovel(idTipo, poForm) {
	var f = poForm;
	f.txtValor.length = 0;
	cria_option(f.txtValor, "Carregando...", 0, false);
	setInfoAjax(_url_site + "/ajax/ajax_valor.php?txtTipo=" + idTipo, "setValores", poForm);
}
// Seta os valores no campo Select
function setValores(obj, poForm) {
	if ((obj != null) && (typeof(obj) != "undefined")) {
		var f = poForm;
		f.txtValor.length = 0;
		cria_option(f.txtValor, "Valor", 0, false);
		for (var i = 0; i < obj.length; i++) {
			cria_option(f.txtValor, obj[i].nome, obj[i].valor, false);
		}
	}
}

// Carrega as cidade quando muda o estado
function mudarEstado(uf, poForm) {
	var f = poForm;
	f.txtCidade.length = 0;
	cria_option(f.txtCidade, "Carregando...", 0, false);
	setInfoAjax(_url_site + "/ajax/ajax_cidade.php?txtEstado=" + uf, "setCidades", poForm);
}
// Seta as cidades no campo Select
function setCidades(obj, poForm) {
	if ((obj != null) && (typeof(obj) != "undefined")) {
		var f = poForm;
		f.txtCidade.length = 0;
		cria_option(f.txtCidade, "Cidade", 0, false);
		for (var i = 0; i < obj.length; i++) {
			cria_option(f.txtCidade, obj[i].nome, obj[i].idCidade, false);
		}
		f.txtBairro.length = 0;
		cria_option(f.txtBairro, "Bairro", 0, false);
	}
}

// Carrega os bairros quando muda a cidade
function mudarCidade(idCidade, poForm) {
	var f = poForm;
	f.txtBairro.length = 0;
	cria_option(f.txtBairro, "Carregando...", 0, false);
	setInfoAjax(_url_site + "/ajax/ajax_bairro.php?txtCidade=" + idCidade, "setBairros", poForm);
}
// Seta os bairros no campo Select
function setBairros(obj, poForm) {
	if ((obj != null) && (typeof(obj) != "undefined")) {
		var f = poForm;
		f.txtBairro.length = 0;
		cria_option(f.txtBairro, "Bairro", 0, false);
		for (var i = 0; i < obj.length; i++) {
			cria_option(f.txtBairro, obj[i].nome, obj[i].idBairro, false);
		}
	}
}




var _objMarcadores = new Object;
var _mapa = null;
var _geocoder = null;
var _mostrarCentro = true;
var _mostrarInfo = true;
var _registroUnico = false;

function loadMap() {
	_mapa = new GMap2(document.getElementById("mapa"));
	_mapa.setCenter(new GLatLng(0, 0), 5);
	_mapa.addControl(new GLargeMapControl());
	_mapa.addControl(new GMapTypeControl());
	_mapa.setMapType(G_HYBRID_MAP);
	
	_geocoder = new GClientGeocoder();
	
	gerar();
}

function gerar() {
	var x_min = 0, x_max = 0, x = 0; // Longitude
	var y_min = 0, y_max = 0, y = 0; // Latitude
	var cont = 0;
	
	for (i in _objMarcadores) {
		var obj = _objMarcadores[i];
		if ((obj != null) && (obj != "undefined")) {
			cont++;
			if ((obj.latitude != "") && (obj.longitude != "")) {
				var marcador = criarMarcadorPorLocalizacao(obj, obj.latitude, obj.longitude);
				obj.marcador = marcador;
				// Verifica os pontos mais extremos do mapa
				if ((obj.longitude > x_max) || (x_max == 0)) { x_max = parseFloat(obj.longitude); }
				if ((obj.longitude < x_min) || (x_min == 0)) { x_min = parseFloat(obj.longitude); }
				if ((obj.latitude > y_max) || (y_max == 0)) { y_max = parseFloat(obj.latitude); }
				if ((obj.latitude < y_min) || (y_min == 0)) { y_min = parseFloat(obj.latitude); }
				
				// Gera um ponto medio caso haja mais de um
				if (x_max > x_min) {
					x = (x_max + x_min)/2;
				} else {
					x = x_max;
				}
				if (y_max > y_min) {
					y = (y_max + y_min)/2;
				} else {
					y = y_max;
				}
				
			} else {
				obj.marcador = criarMarcadorPorEndereco(obj);
			}
		}
	}
	
	var ponto = new GLatLng(y, x);
	
	if ( (_mostrarCentro) && (marcador != null) && (marcador != "undefined") && (cont <= 1) ) {
		_mapa.setCenter(marcador.getLatLng(), 17);
	} else {
		if ((y == "0") || (x == "0")) {
			y = "-16.657901";
			x = "-49.246387";
		}
		var ponto = new GLatLng(y, x);
		_mapa.setCenter(ponto, 12);
	}
}

function criarMarcadorPorEndereco(obj) {
	if (_geocoder) {
    	_geocoder.getLatLng(
      	obj.endereco,
      	function (point) {
			if (!point) {
				//
			} else {
				obj.latitude = point.y;
				obj.longitude = point.x;
				
				var ponto = new GLatLng(point.y, point.x);
				if (_registroUnico) {
					_mapa.setCenter(ponto, 17);
				}
				
				return criarMarcadorPorLocalizacao(obj, point.y, point.x);
			}
    	}
    	);
  	}
}

function criarMarcadorPorLocalizacao(obj, lat, lng) {
	var ponto = new GLatLng(lat, lng);
	
	if (_registroUnico) { _mapa.clearOverlays(); }
	
	/*
	// Create our "tiny" marker icon
	var blueIcon = new GIcon(G_DEFAULT_ICON);
	blueIcon.image = "http://www.imoveisemgoiania.com.br/thumbMap.php?image=img/bluemark.png&t=" + obj.id;
	blueIcon.iconSize = new GSize(32, 32);
	// Set up our GMarkerOptions object
	markerOptions = { icon:blueIcon };
	
	var marker = new GMarker(ponto, markerOptions);
	*/
	var marker = new GMarker(ponto);
	_mapa.addOverlay(marker);
	
	GEvent.addListener(marker, 'click', function(){marker.openInfoWindowHtml(obj.html)});
	if (_mostrarInfo) {
		marker.openInfoWindowHtml(obj.html);
	}
	
	//if (_mostrarCentro) { _mapa.setCenter(marker.getLatLng(), 17); }
	if (marker != "undefined") {
		obj.marcador = marker;
		_objMarcadores[obj.id] = obj;
	}
	return marker;
}

function verMarcador(obj) {
	if ((obj.marcador != null) && (obj.marcador != null)) {
		_mapa.setCenter(obj.marcador.getLatLng(), 17);
		if (obj.html != "") {
			obj.marcador.openInfoWindowHtml(obj.html);
		}
	}
}
