// JavaScript Document
guia={
	map : null,
	geocoder : null,
	mgr : null,
	markers : new Array(),
	categorias : new Array(),
	zoom: 16,
	empreendimentosBairro : new Array(),
	pontoAtual : null,
	dtPontos : null,
	pontoAtual : 0,
	directions : null,
	iconeAtual : '',
	bairro : '',

	inicia : function(){
		if (GBrowserIsCompatible()) {
			guia.map = new GMap2(document.getElementById("divMapa"));
			guia.geocoder = new GClientGeocoder();
			guia.map.addControl(new GSmallMapControl());
			guia.map.addControl(new GMapTypeControl());
			var ponto = new GLatLng(-14.235004,-51.92528);
			guia.map.setCenter(ponto, 4);
			guia.mgr = new GMarkerManager(guia.map);
		}
	},
	
	carregaBairros : function(idCidade){
		if(idCidade!=''){
			FG.E('divGuiaOpcoesServicos').style.display='none';
			guia_de_bairros.carregaBairrosDT(idCidade,guia.carregaBairrosDrop);
		}
	},
	
	carregaBairrosDrop : function(retorno){
		var dt = retorno.value;
		if(dt!=null && typeof(dt) == "object"){
			var drop = FG.E('cmbBairroGuia');
			drop.length = 0;
			var padrao = document.createElement("option");
			padrao.setAttribute("id", "opcoes");
			padrao.value = '';
			padrao.text  = 'Selecione';
			padrao.select = true;
			drop.options.add(padrao);
			
			for(i=0;i<dt.Rows.length;i++){
				var row = dt.Rows[i];
				var novo = document.createElement("option");
			    novo.setAttribute("id", "opcoes");
				//alert(row.bairro + '-' + row.lat + ',' + row.lon);
			    novo.value = row.lat + ',' + row.lon;
			    novo.text  = row.bairro;
				drop.options.add(novo);
			}			
		}
	},
	
	carregaBairroMapa : function(){
		if(FG.E('cmbBairroGuia').value!=''){
			
			if(guia.bairro!='')
				document.getElementById('divBairro' + guia.bairro).style.display='none';
			guia.bairro = document.getElementById('cmbBairroGuia').options[document.getElementById('cmbBairroGuia').selectedIndex].text;
			
			var zoom = 13;
			if(guia.bairro=='Jardim Goiás')
				zoom = 10;
			
			
			document.getElementById('divBairro' + guia.bairro).style.display='';
			FG.E('divGuiaOpcoesServicos').style.display='';
			for(i=0;i<guia.markers.length;i++){
				guia.map.removeOverlay(guia.markers[i]);
			}
			FG.E('chkAcademias').checked = false;
			FG.E('chkBancos').checked = false;
			FG.E('chkPostosGasolina').checked = false;
			FG.E('chkPostosPoliciais').checked = false;
			FG.E('chkSupermercados').checked = false;
			FG.E('chkHospitais').checked = false;
			FG.E('chkDrogarias').checked = false;
			FG.E('chkVeterinarios').checked = false;
			FG.E('chkMetro').checked = false;
			FG.E('chkTaxi').checked = false;
			FG.E('chkEscolas').checked = false;
			FG.E('chkGastronomia').checked = false;
			FG.E('chkArtes').checked = false;
			FG.E('chkShoppings').checked = false;
			FG.E('chkParque').checked = false;
			var coord = FG.E('cmbBairroGuia').value.toString().split(',');
			var point = new GLatLng(coord[0],coord[1]);
			
			guia.markers.length = 0;
			guia.categorias.length =0;
			guia.map.setCenter(point, zoom);
			
		}else{
			FG.E('divGuiaOpcoesServicos').style.display='none';	
		}
	},


	
	
	manipulaPontos : function(categoria,subCategoria,status,icone){
		if(status && guia.pontoAtual==0){
			guia.iconeAtual = icone;
			var bairro = FG.E('cmbBairroGuia').options[FG.E('cmbBairroGuia').selectedIndex].text
			guia_de_bairros.retornaPontos(bairro,categoria,subCategoria,0,guia.manipulaPontosCarrega);
		}else if(guia.pontoAtual!=0){
			setTimeout("guia.manipulaPontos('" + categoria + "','" + subCategoria + "','" + status + "','" + icone + "')",100);
		}else{
			categoria = categoria + subCategoria;
			var arrayMarkersNovo = new Array();
			var arrayCategoriasNovo = new Array();
			for(i=0;i<guia.markers.length;i++){
				
				if(guia.categorias[i].toString().indexOf(categoria)!=-1){
					guia.map.removeOverlay(guia.markers[i]);
				}else{
					arrayCategoriasNovo.push(guia.categorias[i]);
					arrayMarkersNovo.push(guia.markers[i]);
				}
			}
			guia.markers = arrayMarkersNovo;
			guia.categorias = arrayCategoriasNovo;
		}
	},
	
	manipulaPontosCarrega : function(retorno){
		guia.dtPontos = retorno.value;
		if(guia.dtPontos!=null && typeof(guia.dtPontos) == "object"){
			guia.montaMarkers();
		}
	},
	
	montaMarkers : function(){
		if(guia.pontoAtual==guia.dtPontos.Rows.length){
			guia.pontoAtual=0;
			//mapa.mgr.addMarkers(mapa.markers, 3, 17);
			//setTimeout(mapa.recarregaMapa, 100);
		}else{
			guia.adicionaMarker();
		}
	},
	
	adicionaMarker : function(){
		var row = guia.dtPontos.Rows[guia.pontoAtual];
		var nome = row.nome;
		var latitude = row.longitude;
		var longitude = row.latitude;
		var icone = guia.iconeAtual + '.png';
		var ponto = new GLatLng(latitude,longitude);
		var marker = guia.createMarker(ponto,nome,icone,36,36);
		var atual = guia.pontoAtual;
		GEvent.addListener(marker, "click", function() {
			var rowAtual = guia.dtPontos.Rows[atual];
			var conteudo = '<b>' + rowAtual.nome + '</b><br>';
			conteudo += '<b>Endereço: </b>' + rowAtual.endereco + '<br>';
			if(rowAtual.telefone!='')
				conteudo += '<b>Telefone: </b>' + rowAtual.telefone + '<br>';
			
			marker.openInfoWindowHtml(conteudo);										 
		});
		
		guia.markers.push(marker);
		guia.categorias.push(row.categoria + row.subCategoria);
		guia.pontoAtual++;
		guia.map.addOverlay(marker);
		setTimeout(guia.montaMarkers, 0.5);
	},
	
	createMarker : function(posn, title,iconeImg,alt,lar) {
		var baseIcon = new GIcon();
       // baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
        baseIcon.iconSize = new GSize(20, 34);
        baseIcon.shadowSize = new GSize(37, 34);
        baseIcon.iconAnchor = new GPoint(9, 34);
        baseIcon.infoWindowAnchor = new GPoint(9, 2);
        baseIcon.infoShadowAnchor = new GPoint(18, 25);
		var icone = new GIcon(baseIcon);
		icone.image = "_IMG/" + iconeImg;
		icone.iconSize = new GSize(alt, lar);
		var marker = new GMarker(posn, {title: title,icon:icone });
		return marker;
    }
}