// JavaScript Document
encontre = {
	map : null,
	geocoder : null,
	mgr : null,
	markers : new Array(),
	dsLotericas : null,
	lotericas : new Array(),
	lotericaAtual :0,
	zoom: 16,
	pontoAtual : null,	
	flgIniciado : 0,
	cidades : new Array(),
	
	inicia : function(){
		if (GBrowserIsCompatible()) {
			//window.location.hash = '#/Encontre';
			//pageTracker._trackPageview('/Localize');
			if(this.flgIniciado==0){
				this.flgIniciado=1;
				encontre.map = new GMap2(document.getElementById("divMapa"));
				encontre.geocoder = new GClientGeocoder();
				encontre.map.addControl(new GSmallMapControl());
				encontre.map.addControl(new GMapTypeControl());
				encontre.map.setCenter(new GLatLng(-15.782012028571738,-47.91961669921875), 6);
				encontre.mgr = new GMarkerManager(encontre.map);
				encontre.carregaDropEstado();
			}else{
				this.recarregaMapa();	
			}
		}
	},
	
	iniciaLista : function(){
		//window.location.hash = '#/EncontreLotericas';
		//pageTracker._trackPageview('/Lista');
		encontre.carregaDropEstadoLista();
	},
	//Seleciona(ByVal idLoterica As Integer, ByVal idCidade As Integer, ByVal estado As String, ByVal busca As String, ByVal tipoBusca As Integer)
	carregaDropEstado : function(){
		classLotericas.Seleciona(0,0,'','',1,encontre.carregaDropEstadoRetorno);
	},
	
	
	
	carregaDropEstadoRetorno : function(retorno){
		var ds = retorno.value;
		var drop = document.getElementById('dropEstado');
		var novo = document.createElement("option");
		novo.setAttribute("id", "opcoes");
		novo.value = '';
		novo.text  = 'UF';
		drop.options.add(novo);
		if(ds!=null && typeof(ds) == "object" && ds.Tables!=null){

			for(var i=0; i<ds.Tables[0].Rows.length; i++){
				var row = ds.Tables[0].Rows[i];
				
				var novo = document.createElement("option");
				novo.setAttribute("id", "opcoes");
				novo.value = row.estado;
				novo.text  = row.estado;
				drop.options.add(novo);
			}
		}
	},
	
	carregaDropCidade : function(estado){
		if(estado!='')
			classLotericas.Seleciona(0,0,estado,'',2,encontre.carregaDropCidadeRetorno);
		else{
			document.getElementById('dropCidade').disabled = true;
			document.getElementById('txtEndereco').disabled = true;
		}
	},
	
	carregaDropCidadeRetorno : function(retorno){
		
		var ds = retorno.value;
		var drop = document.getElementById('dropCidade');
		drop.length = 0;
		var novo = document.createElement("option");
		novo.setAttribute("id", "opcoes");
		novo.value = '';
		novo.text  = 'Cidade';
		drop.options.add(novo);
		
		encontre.cidades.length=0;
		
		if(ds!=null && typeof(ds) == "object" && ds.Tables!=null){

			for(var i=0; i<ds.Tables[0].Rows.length; i++){
				var row = ds.Tables[0].Rows[i];
				encontre.cidades.push(row.cidade);
				var novo = document.createElement("option");
				novo.setAttribute("id", "opcoes");
				novo.value = row.id_cidade;
				novo.text  = row.cidade;
				drop.options.add(novo);
			}
		}
		
		drop.disabled = false;
	},
	
	carregaDropEstadoLista : function(){
		classLotericas.Seleciona(0,0,'','',5,encontre.carregaDropEstadoListaRetorno);
	},
	
	carregaDropEstadoListaRetorno : function(retorno){
		var ds = retorno.value;
		var drop = document.getElementById('dropEstadoLista');
		var novo = document.createElement("option");
		novo.setAttribute("id", "opcoes");
		novo.value = '';
		novo.text  = 'UF';
		drop.options.add(novo);
		if(ds!=null && typeof(ds) == "object" && ds.Tables!=null){

			for(var i=0; i<ds.Tables[0].Rows.length; i++){
				var row = ds.Tables[0].Rows[i];
				
				var novo = document.createElement("option");
				novo.setAttribute("id", "opcoes");
				novo.value = row.estado;
				novo.text  = row.estado;
				drop.options.add(novo);
			}
		}
	},
	
	carregaDropCidadeLista : function(estado){
		if(estado!='')
			classLotericas.Seleciona(0,0,estado,'',6,encontre.carregaDropCidadeListaRetorno);
		else{
			document.getElementById('dropCidadeLista').disabled = true;
		}
	},
	
	carregaDropCidadeListaRetorno : function(retorno){
		
		var ds = retorno.value;
		var drop = document.getElementById('dropCidadeLista');
		drop.length = 0;
		var novo = document.createElement("option");
		novo.setAttribute("id", "opcoes");
		novo.value = '';
		novo.text  = 'Cidade';
		drop.options.add(novo);
		
		encontre.cidades.length=0;
		
		if(ds!=null && typeof(ds) == "object" && ds.Tables!=null){

			for(var i=0; i<ds.Tables[0].Rows.length; i++){
				var row = ds.Tables[0].Rows[i];
				encontre.cidades.push(row.cidade);
				var novo = document.createElement("option");
				novo.setAttribute("id", "opcoes");
				novo.value = row.id_cidade;
				novo.text  = row.cidade;
				drop.options.add(novo);
			}
		}
		
		drop.disabled = false;
	},
	
	localizaEndereco : function(){
		var estado = document.getElementById('dropEstado').value;
		var cidadeIndex = document.getElementById('dropCidade').selectedIndex;
		var cidade = encontre.cidades[cidadeIndex-1];
		var endereco = document.getElementById('txtEndereco').value;

		if(endereco!='' && !document.getElementById('txtEndereco').disabled){
			
			endereco+= ' ' + cidade + '-' + estado + ' Brasil';

			if (encontre.geocoder) {
				encontre.geocoder.getLatLng(endereco,function(point) {
					if (!point) {
						lightbox.abrir('divAjudaErro', '000');
					} else {
						encontre.pontoAtual = point;
						encontre.zoom=16;
						encontre.map.setCenter(point, 16);
						var marker = new GMarker(point);
						encontre.map.addOverlay(marker);
							
						//encontre.centralizaLotericas(1);
					}	
					
				});
			}
		}
	},
	
	centralizaLotericas : function(){
		var area = encontre.map.getBounds();
		var flgTodosNoMapa = 0;
		
		for(i=0;i<encontre.lotericas.length;i++){
			if(area.containsLatLng(encontre.lotericas[i]))
				flgTodosNoMapa++;
		}
		
		if(flgTodosNoMapa==encontre.lotericas.length){
			encontre.mgr.refresh()
		}else{
			encontre.map.setCenter(encontre.pontoAtual, encontre.zoom--);
			setTimeout(encontre.centralizaLotericas, 10);
			
		}
	},
	
	carregaLotericas : function(idCidade){
		
		encontre.inicia();
		if(idCidade!='')
			classLotericas.Seleciona(0,idCidade,'','',3,encontre.carregaLotericasRetorno);
		else
			document.getElementById('txtEndereco').disabled = true;
	},
	
	carregaLotericasRetorno : function(retorno){
		encontre.dsLotericas = retorno.value;
		if(encontre.dsLotericas!=null && typeof(encontre.dsLotericas) == "object" && encontre.dsLotericas.Tables!=null){
			encontre.lotericas.length = 0;
			encontre.lotericaAtual = 0;
			encontre.carregaLotericasNoMapa();
			document.getElementById('txtEndereco').disabled = false;
		}
	},
	
	carregaLotericasLista : function(idCidade){
		if(idCidade!='')
			classLotericas.Seleciona(0,idCidade,'','',4,encontre.carregaLotericasListaRetorno);
			document.getElementById('divConteudoLista').innerHTML = 'carregando...';
	},
	
	carregaLotericasListaRetorno : function(retorno){
		encontre.dsLotericas = retorno.value;
		if(encontre.dsLotericas!=null && typeof(encontre.dsLotericas) == "object" && encontre.dsLotericas.Tables!=null){
			var conteudo = '';
			for (c = 0; c <= encontre.dsLotericas.Tables[0].Rows.length-1; c++){
				var row = encontre.dsLotericas.Tables[0].Rows[c]
				conteudo += '<b style="font-weight:bold; color:#000;">' + row.nome + '</b> - ' + row.endereco + ', ' + row.numero + ' ' + row.complemento + ' - ' + row.bairro + ' - ' + row.cidade + ' - ' + row.estado + '<br><br>';
			}
		}
		document.getElementById('divConteudoLista').innerHTML = conteudo;
   		init_dw_Scroll();
	},
	
	carregaLotericasNoMapa : function(){
		if(encontre.lotericaAtual==encontre.dsLotericas.Tables[0].Rows.length){
			encontre.mgr.addMarkers(encontre.markers, 3, 17);
			encontre.map.setCenter(encontre.pontoAtual, 17);
			setTimeout(encontre.recarregaMapa, 100);
			encontre.centralizaLotericas();
		}else{
			encontre.adicionaMarker();
		}
	},
	
	adicionaMarker : function(){
		var row = encontre.dsLotericas.Tables[0].Rows[encontre.lotericaAtual];
		var nome = row.nome;
		var latitude = row.latitude;
		var longitude = row.longitude;
		var qtd = row.qtd;
		var ponto = new GLatLng(latitude,longitude);
		encontre.lotericas.push(ponto);
		encontre.pontoAtual = ponto;
		
		if (parseInt(qtd)>1){
			var marker = encontre.createMarker(ponto,'LISTA DE ESTABELECIMENTOS');	
		}else{
			var marker = encontre.createMarker(ponto,nome);	
		}
		var lotericaMostra=encontre.lotericaAtual; 
		
		GEvent.addListener(marker, "click", function() {					 
			if (parseInt(qtd)<=1){										 
				var row = encontre.dsLotericas.Tables[0].Rows[lotericaMostra];
				var template = document.getElementById('divMapaLayer').innerHTML;
				var conteudo = document.getElementById('dadosMapa').innerHTML;
				
				conteudo = conteudo.replace('_NOME_',row.nome);	
				conteudo = conteudo.replace('_ENDERECO_',row.endereco + ', ' + row.numero + ' ' + row.complemento);	
				conteudo = conteudo.replace('_CIDADE_',row.cidadeNome);	
				conteudo = conteudo.replace('_ESTADO_',row.estado);	
				conteudo = conteudo.replace('_BAIRRO_',row.bairro);	
				conteudo = conteudo.replace('_CEP_',row.CEP);
				template = template.replace("_LISTA_",conteudo)
											
				marker.openInfoWindowHtml(template);
			}else{
				var template = document.getElementById('divMapaLayer').innerHTML;
				var conteudo = document.getElementById('dadosMapa').innerHTML;
				var conteudoAux = conteudo;
				var conteudoFinal = '';

				for(i=lotericaMostra;i>(parseInt(lotericaMostra-qtd));i--){
					var row = encontre.dsLotericas.Tables[0].Rows[i];
					conteudoAux = conteudo; 
					conteudoAux = conteudoAux.replace('_NOME_',row.nome);	
					conteudoAux = conteudoAux.replace('_ENDERECO_',row.endereco + ', ' + row.numero + ' ' + row.complemento);	
					conteudoAux = conteudoAux.replace('_CIDADE_',row.cidadeNome);	
					conteudoAux = conteudoAux.replace('_ESTADO_',row.estado);	
					conteudoAux = conteudoAux.replace('_BAIRRO_',row.bairro);	
					conteudoAux = conteudoAux.replace('_CEP_',row.CEP);
					conteudoAux += "<br><br>"
					conteudoFinal+=conteudoAux;
					
				}
				encontre.lotericaAtual-=qtd;
				
				template = template.replace("_LISTA_",conteudoFinal)
				marker.openInfoWindowHtml(template);
			}
		});


		encontre.markers.push(marker);
		encontre.lotericaAtual++;
		setTimeout(encontre.carregaLotericasNoMapa, 1);
	},
	
	createMarker : function(posn, title) {
		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/bt_estaca.png";
		icone.iconSize = new GSize(26, 42);
		var marker = new GMarker(posn, {title: title,icon:icone });
		return marker;
    },
	
	recarregaMapa : function(){
		encontre.mgr.refresh();
	}
}