﻿var Dom = YAHOO.util.Dom;
var timeoutPeriod=30000;//tempo de timeout
if (!window.Event) {
  var Event = new Object();
}

TLEnumBusca={
    BuscaLocal:1,
    Rota:2
};
TLCookies={
    getCookieVal:function (offset) {
        var endstr = document.cookie.indexOf (";", offset);
        if (endstr == -1)
        endstr = document.cookie.length;
        return unescape(document.cookie.substring(offset, endstr));
     },
     GetCookie:function (name) {
        var arg = name + "=";
        var alen = arg.length;
        var clen = document.cookie.length;
        var i = 0;
        while (i < clen) {
        var j = i + alen;
        if (document.cookie.substring(i, j) == arg)
        return TLCookies.getCookieVal (j);
        i = document.cookie.indexOf(" ", i) + 1;
        if (i == 0) break; 
        }
        return null;
    },
    SetCookie:function (name, value) {
        var argv = arguments;
        var argc = arguments.length;
        var expires = (argc > 2) ? argv[2] : null;
        var path = (argc > 3) ? argv[3] : null;
        var domain = (argc > 4) ? argv[4] : null;
        var secure = (argc > 5) ? argv[5] : false;
        document.cookie = name + "=" + escape (value) +
        ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
        ((path == null) ? "" : ("; path=" + path)) +
        ((domain == null) ? "" : ("; domain=" + domain)) +
        ((secure == true) ? "; secure" : "");
    }
};
TLMapLink={
	    GetAdressList:function(pagina,uf,cidade,endereco,numero,callback){
	    
	          var geocoder= new MGeocoder();  //Geocodificador
	          var address=new MAddress(); //endereço a ser buscado
	         
	          address.city= new MCity(cidade,uf.toUpperCase());  
	          address.street= endereco;
              address.houseNumber= numero;
              
              var rr= new MResultRange();  //criando um "configurador" de resultados
              rr.pageIndex=pagina; //pagina a ser buscada
              rr.recordsPerPage=10; //numero de registro por pagina.
              geocoder.find(address,rr,callback);

		},
		GetPoiList:function(pagina,nome,uf,cidade,callback){
		     
		    var locator=new MWsAdressLocator();
		    var rr= new MResultRange();  //criando um "configurador" de resultados
            rr.pageIndex=pagina; //pagina a ser buscada
            rr.recordsPerPage=10; //numero de registro por pagina.
		    var objCid= new MCity(cidade,uf);
		   
		    locator.findPOI(nome, objCid, rr, callback)
		    
		    
		}
}
TLMapa={
    /*
        Abre a janela de envio de e-mail
    */
    EnviarEmail:function(){
        
         var tmp= TLUtils.GetFormValues("uf_route","city_route","txtendereco_origem","txtendereco_destino","local_origem","local_destino","latitude_origem","longitude_origem","latitude_destino","longitude_destino","txtnumero_origem","txtnumero_destino","zoom");
         window.open("/templates/envia.aspx?tipo=mapas_rotas&mapaparams="+ tmp , 'EnviarBuscaLocal', 'width=332, height=377, scrollbars=auto');                   
    },
    /*
        Abre a janela de envio de e-mail pela ficha do registro
    */
    SendMail:function(email,id,nome){
        
         window.open("/templates/envia.aspx?tipo=anuncioemail&email="+ email + "&id=" + id + "&nome=" + nome , 'EnviarBuscaLocal', 'width=332, height=377, scrollbars=auto');                   
    },    
    /*
        Abre a janela de impressão
    */
    Imprimir:function(){
        var latitudeOrigem=Dom.get("latitude_origem").value;
        var longitudeOrigem=Dom.get("longitude_origem").value;
        
        if (latitudeOrigem=="" || longitudeOrigem==""){
            alert('Trace uma rota primeiro');
            return false;
        }
        
        var rota_carro=Dom.get("opt_rota_carro");
        var tpRota;
      
        if(rota_carro.checked){
            tpRota=0;
        }
        if(Dom.get("opt_rota_curta").checked){
            tpRota=1;
        }
        if(Dom.get("opt_rota_pe").checked){
            tpRota=2;
        }
        var latitudeDestino=Dom.get("latitude_destino").value;
        var longitudeDestino=Dom.get("longitude_destino").value;
        var endOrigem=Dom.get("txtendereco_origem").value;
        if(endOrigem==""){
            endOrigem=Dom.get("local_origem").value;
        }
        var endDestino=Dom.get("txtendereco_destino").value;
        if(endDestino==""){
            endDestino=Dom.get("local_destino").value;
        }
        endOrigem= escape(endOrigem)+" "+Dom.get("txtnumero_origem").value;
        endDestino=escape(endDestino)+" "+Dom.get("txtnumero_destino").value;
        var Zoom=Dom.get("zoom").value;
		var Map = getMaplinkAPI().currentMap;
        var tipo_mapa="";
        if(Map !=null){
              
			tipo_mapa=Map.getCurrentMapType().ms;
        }
        window.open('mapas_print.aspx?latitudeOrigem='+latitudeOrigem+'&longitudeOrigem='+longitudeOrigem +'&forma_rota='+tpRota+'&latitudeDestino='+ latitudeDestino+'&longitudeDestino='+longitudeDestino+'&enderecoOrigem='+endOrigem +'&enderecoDestino='+endDestino+'&opcao='+tpRota+'&tipo_mapa='+ tipo_mapa,'imprimir','top=20,left=10,width=618,height=560,scrollbars=yes,status=yes');
     },
     /*
        Paginação da lista de endereços gerada pelo AchaPoi
     */    
    
     PaginaPoi:function(pagina){
         var state=Dom.get("uf_route").value;
         var city=Dom.get("city_route").value;
         var address=Dom.get("local_"+TLUtils.EnderecoCorrente).value;
         TLUtils.currentPage=pagina;
         TLUtils.CarregandoGeral("show");
         TLMapLink.GetPoiList(pagina,address,state,city,TLMapa.GetAdressList_callBack);
  
     },   
     /*
        AchePoi --página 
        tp- origem ,destino
        
     */
     AchePoi:function(pagina,state,city,adress,tp){
       
         TLUtils.EnderecoCorrente=tp;
         TLUtils.currentPage=pagina;
         //pagina,nome,uf,cidade,callback
         TLUtils.CarregandoGeral("show");
         TLMapLink.GetPoiList(pagina,adress,state,city,TLMapa.GetAdressList_callBack);
        
     },
     /*
        int page, string state, string city, string address, string number
        tp- Tipo da caixa sendo atualizada 'origem' ou 'destino'
     */
     GetAdressList:function (pagina,state,city,adress,number,tp){
        TLUtils.CarregandoGeral("show");
       
        TLUtils.EnderecoCorrente=tp;
        TLUtils.currentPage=pagina;
        //pagina,uf,cidade,endereco,numero,callback
        TLMapLink.GetAdressList(pagina,state,city,adress,number,TLMapa.GetAdressList_callBack);
     
         
      },
      GetAdressList_callBack:function(aInfo){
               TLUtils.CarregandoGeral("hide");
               
               if(!aInfo || !aInfo.recordCount){  //endereço não encontrado ou erro no processo.
					if(!aInfo){
						alert("Não foi possível obter o endereço.");
					}else{
						alert("Endereço de "+TLUtils.EnderecoCorrente+" não encontrado.");
					}
					return;
			   }
               if(aInfo.recordCount > 1){
                    var corrente="txtendereco_"+TLUtils.EnderecoCorrente;
                    if (Dom.get(corrente).value ==""){
                        corrente="local_"+TLUtils.EnderecoCorrente;
                    } 
                    TLHelper.MostraEndereco(corrente,aInfo);
               }
               else{
                     
                     var objResposta;
                     if(aInfo.poiLocations){
                         objResposta=aInfo.poiLocations[0];
                     }
                     else{
                        objResposta=aInfo.addressLocation[0];
                     }
                     var corrente="txtendereco_"+TLUtils.EnderecoCorrente; 
                     if (Dom.get(corrente).value ==""){
                        Dom.get("local_"+TLUtils.EnderecoCorrente).value=objResposta.name;
                     }
                     else{
                          Dom.get("txtendereco_"+TLUtils.EnderecoCorrente).value=objResposta.address.street;
                          Dom.get("txtnumero_"+TLUtils.EnderecoCorrente).value=objResposta.address.houseNumber;
                     }
                  
                    
                    Dom.get("latitude_"+TLUtils.EnderecoCorrente).value=objResposta.point.y;
                    Dom.get("longitude_"+TLUtils.EnderecoCorrente).value=objResposta.point.x;
                  
                    if(TLUtils.EnderecoCorrente=="origem"){
                        TLMapa.TracarRotaDestino();
                        return;
                    }
                    if(TLUtils.EnderecoCorrente=="destino"){
                        TLMapa.TracarRotaFinal();
                        return;
                    }
               }
      },
      TracarRota:function (){
        TLUtils.PossuiMapa=false;
       
        TLUtils.Hide("divOrigem","divDestino");
        
        if(Dom.get("uf_route").value==""){
            alert("Selecione um estado");
            return;
        }
         if(Dom.get("city_route").value==""){
            alert("Selecione uma cidade");
            return;
        }
        //valida o form
         if(Dom.get("txtendereco_origem").value=="" && Dom.get("local_origem").value==""){
            alert("Preencha o endereço ou localidade de origem");
            
            return;
         }
         if(Dom.get("txtendereco_destino").value==""&& Dom.get("local_destino").value=="" ){
            alert("Preencha o endereço ou localidade de destino");
            return;
         }
         
         if(Dom.get("txtendereco_origem").value!=""){
            //pagina,state,city,adress,number,tp
           
            TLMapa.GetAdressList(1,Dom.get("uf_route").value,Dom.get("city_route").value,Dom.get("txtendereco_origem").value,Dom.get("txtnumero_origem").value,"origem");
            return;
         }
          if(Dom.get("local_origem").value!=""){
            //pagina,state,city,adress,number,tp
            
            TLMapa.AchePoi(1,Dom.get("uf_route").value,Dom.get("city_route").value,Dom.get("local_origem").value,"origem");
            return;
         }
       
      },
      /*
         pega a lista de endereço de destino
      */
      TracarRotaDestino:function (){
          
          if(Dom.get("txtendereco_destino").value!=""){
            
            TLMapa.GetAdressList(1,Dom.get("uf_route").value,Dom.get("city_route").value,Dom.get("txtendereco_destino").value,Dom.get("txtnumero_destino").value,"destino");
            return;
         }
          if(Dom.get("local_destino").value!=""){
            
            TLMapa.AchePoi(1,Dom.get("uf_route").value,Dom.get("city_route").value,Dom.get("local_destino").value,"destino");
            return;
         }
      },
      /*
        Traça a rota e o trajeto
      */
      TracarRotaFinal:function(){
      
        var mapCfg= new MMapConfig('img_map',new MMapSize(500,500));
        var rota_carro=Dom.get("opt_rota_carro");
        var tpRota;
      
        if(rota_carro.checked){
            tpRota=0;
        }
        if(Dom.get("opt_rota_curta").checked){
            tpRota=1;
        }
        if(Dom.get("opt_rota_pe").checked){
            tpRota=2;
        }
        TLUtils.CarregandoGeral("show");
        var addrOrigem= new MAddressLocation();
	    addrOrigem.point= new MPoint(
	                                    Dom.get("longitude_origem").value,
	                                    Dom.get("latitude_origem").value
	                                );
	      
	    var addrDestino= new MAddressLocation();
	    addrDestino.point= new MPoint(
	                                    Dom.get("longitude_destino").value,
	                                    Dom.get("latitude_destino").value
	                                );  
	                                                          
	    var ro= new MRouteOptions();
	    
       //dados da rota
       var rd= new MRouteDetails();
       if(tpRota ==0){
        rd.optimizeRoute=false;
       }
       else{
        rd.optimizeRoute=true;
       }
       rd.routeType= tpRota; 
       //dados do veiculo
       var ve= new MVehicle();
       ve.tankCapacity = 60;		//capacidade do tanque
       ve.averageConsumption=12;	//consumo médio		
       ve.fuelPrice = 2.5;			//preço do combustível
       ve.averageSpeed = 80;		//velocidade média
       ve.tollFeeCat = 0;			//não calcular pedágio.
       // define a base para gerar a rota
       var ro = new MRouteOptions();
       ro.vehicle = ve;
       ro.routeDetails = rd; 
      
		mapCfg.startRouteIcon=new GIcon(MGetBaseIcon());
		mapCfg.startRouteIcon.image = "http://maplink.uol.com.br/telelistas/imagens/ic_origem.gif";
		mapCfg.startRouteIcon.iconSize = new GSize(32, 13);
		mapCfg.startRouteIcon.iconAnchor = new GPoint(16, 13/2);
		mapCfg.startRouteIcon.shadow="";
		
		mapCfg.endRouteIcon=new GIcon(MGetBaseIcon());
		mapCfg.endRouteIcon.image ="http://maplink.uol.com.br/telelistas/imagens/ic_destino.gif";
		mapCfg.endRouteIcon.iconSize = new GSize(32, 12);   
		mapCfg.endRouteIcon.iconAnchor = new GPoint(16, 6);
		mapCfg.endRouteIcon.shadow="";
  
        var rMann= new MRouteMannager(null,mapCfg,ro);
   
	   
	    TLMapa.RouteManager=rMann;
        rMann.createRoute([addrOrigem,addrDestino], TLMapa.GeraMapaRota_Callback);                 
       
       
      },
      GeraMapaRota_Callback:function(estagioRota){
                
                var args= arguments;
                if(estagioRota != M_STAT_ROUTE){ //finalizou criacao da rota
                    return;
                }
				
                var Map=getMaplinkAPI().currentMap;
                if(Map!=null){
	                 
	                 TLHelper.AdicionaEventosMapa(Map);     
	            }
        
                var rMann= TLMapa.RouteManager;
                var info= rMann.routeInfo;
               
                TLUtils.Show("result_rota");
                
              
                var endOrigem=Dom.get("txtendereco_origem").value+","+ Dom.get("txtnumero_origem").value;
                var endDestino=Dom.get("txtendereco_destino").value+","+ Dom.get("txtnumero_destino").value;
                if(endOrigem.trim()==","){
                    endOrigem=Dom.get("local_origem").value;
                }
                if(endDestino.trim()==","){
                    endDestino=Dom.get("local_destino").value;
                }
                
                 Dom.get("lblEnderecoOrigem").innerHTML=endOrigem;
                 Dom.get("lblEnderecoDestino").innerHTML= endDestino;
                
                 
                 Dom.get("distancia").innerHTML= info.routeTotals.totalDistance.toString().replace(".",",");
				 if(info.routeTotals.taxiFare1!=null && info.routeTotals.taxiFare1 !="" && Dom.get("opt_rota_pe").checked==false){
					
					TLUtils.Show("result_taxi");
				
					var strBandeira="O valor estimado do táxi na bandeira 1 é: "+
									 "<strong>R$ "+
									 info.routeTotals.taxiFare1.toString()+										"<br></strong>";
					strBandeira+="O valor estimado do táxi na bandeira 2 é: "+
								"<strong>R$ "+info.routeTotals.taxiFare2.toString()+								  "<br></strong>"
					Dom.get("result_taxi").innerHTML=strBandeira;
														
				 }
				 else{
					
					Dom.get("result_taxi").innerHTML="&nbsp;<br/>&nbsp;";
										
					
				 }
                 //mapa
                 var htmlTrecho="<ul id=\"listagem_result_list2\" class=\"listagem_result_list2_fechada\">";
                 var tmp_html = "<li id=\"{0}\"><a href=\"javascript:TLMapa.MapearTrecho({1},'{2}','{3}')\" alt=\"{4}\" title=\"{5}\">{6}. {7} {8} km</a></li>";
                 for(var i=1; i < info.segDescription.length-1;i++){
                    var t= info.segDescription[i];
                   
                    htmlTrecho+=String.format(tmp_html, "trecho" + i, "trecho" + i, t.point.y, t.point.x, t.command + " - " + t.description, t.command + " - " + t.description, i, t.command + " - " + t.description, t.distance.toString().replace(".",","));
                 }
                 Dom.get("result_list2").innerHTML=htmlTrecho+"</ul>";
                 Dom.get("id_rota").value=info.routeId;
                 
                 TLUtils.PossuiMapa=true;
            
                 Dom.get("latitude_max").value= info.MapInfo.extent.YMax;
                 Dom.get("latitude_min").value= info.MapInfo.extent.Ymin;
                 Dom.get("longitude_max").value= info.MapInfo.extent.XMax;
                 Dom.get("longitude_min").value= info.MapInfo.extent.XMin;
                
                 TLUtils.CarregandoGeral("hide");
          
      },
      MapearTrecho:function(id,latitude,longitude){
        //limpa trecho selecionado anteriormente
        var elChecked=Dom.getElementsByClassName("checked","li");
        
        if(elChecked !=null && elChecked.length >0){
            elChecked[0].className="";
        }
        //verifica se lista de resultados está aberta
       
        var elId=Dom.get(id);
        elId.className="checked";
        var elAcao=Dom.get("acao");
        var Zoom=180;
        TLUtils.CarregandoMapa();
       
        var m=getMaplinkAPI().currentMap;
        
        m.panTo(new GLatLng(latitude,longitude));
        m.showMapBlowup(new GLatLng(latitude,longitude),15);
        
        window.scrollTo(0,MFindPosition(m.getContainer()));
        TLUtils.CarregandoGeral("hide");
      }
        
};
/*
Classe usada para funções gerais de tela que não usam Ajax
*/
TLUtils={
        /*
            variáveis e constantes auxiliares
        */
        PossuiMapa:false,
        AlturaMapa:500,
        LarguraMapa:500,
        IsDebug:location.href.indexOf("debug")!=-1,
        EnderecoCorrente:"",//caixa de texto que chamou GetAdressList
        BuscaAtiva:TLEnumBusca.BuscaLocal,
          /*
         Cidades que possuem rotas por local
        */
        rotaAlias:["Rio de Janeiro","São Paulo","Barueri","Guarulhos","Osasco","Santana de Parnaíba","Santo André","São Bernardo do Campo","São Caetano do Sul"],
        FechaAviso:function(){
            Dom.get("mensagem").style.display='none';
        },
        MostraNaoLocal:function(){
            var div=Dom.get("localidade_local");
            if(div.style.display=="none" ||div.style.display==""){
                div.style.display="block";
				div.style.visibility="visible";
            }
			else{
				 div.style.display="none";
			}
           
        },
        MarcaTitulos:function(strTits){
            if(strTits ==""){
                return;
            }
            
            var tits= strTits.split(",");
             for(var i=0; i< 50;i++){
                var el=Dom.get("titSelecionados"+i);
                if(el==null){
                    break;
                }
                for(var j=0;j< tits.length;j++){
                    if(el.value==tits[j]){
                        el.checked=true;
                    }
                }
                if(tits.length==null){
                    if(el.value==tits){
                        el.checked=true;
                    }
                }
           }
           
        },
        carregaRotas: function(){
        	var xmlObj;
        	var array;
			try
			{
				 xmlObj = new XMLHttpRequest();
			}
			catch(e)
			{
				 xmlObj = new ActiveXObject("Microsoft.XMLHTTP");
			}
			xmlObj.open('get','/config/mapacidadesrotas.txt',false);
			xmlObj.onreadystatechange = function()
			{
				if(xmlObj.readyState==4)
					array = xmlObj.responseText.split("\n");
			}
			xmlObj.send(null);
			return array;
        },
        
        HasRoute:function(uf,localidade){
        	var retorno = false;
        	if (this.prototype.arrayRotas.length == 0)
        		this.prototype.arrayRotas = new this.carregaRotas();
        	if (this.prototype.arrayRotas != undefined){
        		var arrayParts;
        		var arrayCity;
				for(var i=0;i<this.prototype.arrayRotas.length && !retorno;i++)
				{
					arrayParts = this.prototype.arrayRotas[i].split("|");
					if(arrayParts[0] == uf)
					{
						arrayCity = arrayParts[1].split(",");
						for(var j=0;j< arrayCity.length && !retorno;j++)
						{
							if(arrayCity[j]==localidade)
								retorno = true;
						}
					}
				}
        	}
        	else{
        		alert('Rotas não carregadas!');
        	}
			return retorno;
        },
        getAdressHtml:function(adress,number,ufState){
               var strHtml="<div id=\"box_conteudo\">"+
	                       "<div id=\"box_endereco\">"+
	                       "{0}<br>"+//endereÃ§o linha 1
	                       "{1}<br>"+
	                        "</div>";
	         var htmlForm= String.format(strHtml,adress+","+ number,ufState);
	         var cityParts = ufState.split(" - ");
	         var uf="";
	         var city="";
	         if (cityParts.length == 3){
	         	uf = cityParts[2].toUpperCase();
	         	city = cityParts[1].toUpperCase();
	         }
	         else if (cityParts.length == 2){
	         	uf = cityParts[1].toUpperCase();
	         	city = cityParts[0].toUpperCase();
	         }
	         htmlForm+="<div id=\"box_tele\">"
             if(this.HasRoute(uf,city))
	            htmlForm+="<a class=\"linque_box\" href=\"javascript:TLBuscaLocal.AlteraBusca('" + adress+"','"+number+ "')\"><b>Tra&ccedil;ar Rota</b></a>";
	         htmlForm+="</div></div>";
	         return htmlForm;       
        },		  
        getRegistryHtml:function(registry){
            //return "<div>Teste</div>";
            var linkVCard = "/templates/logredirect.aspx?id=" + registry.Id + "&acao=vcard&link=" + escape("/templates/vcard.aspx?id=" + registry.Id + "&guia=0");
			var linkInfoPlus = "/templates/logredirect.aspx?id=" + registry.Id + "&acao=info&link=" + escape("/templates/vcard_rest.aspx?id=" + registry.Id);
			var linkCardapio = "/templates/logredirect.aspx?id=" + registry.Id + "&acao=cardapio&link=" + escape("http://200.155.23.58/materias/" + registry.ArtDirectory + "/cardapios/index.htm");
			var possui_separador=false;
            var strHtml="<div id=\"box_conteudo\">"+
	            "<div id=\"box_titulo\">{0}</div>"+
	            "<div id=\"box_endereco\">"+
	            "{1}<br>"+//endereço linha 1
	            "{2}<br>"+
	            "{3}{4}"+	//ddd- telefone
	            "</div>";
	        var detalhe="<div id=\"box_detalhe\">{0}</div>";
	        
            var htmlFinal=String.format(strHtml,
                                  registry.Name,
                                  registry.AddressLine1,
                                  registry.AddressLine2,
                                  registry.Telephones[0].TypeAreaCode,
                                  registry.Telephones[0].Number);
            if (registry.Texts.length > 0){
                htmlFinal+=String.format(detalhe,registry.Texts);
            }        
            htmlFinal+="<div id=\"box_tele\">";   
            if (registry.IsContract)
            {
                if (registry.HasInfoPlus || registry.HasVcard)
                {
                  var lnk = registry.HasInfoPlus ? linkInfoPlus : linkVCard;
                  possui_separador = true;
                  htmlFinal+=" <a class=\"linque_box\" href=\"#\" onclick=\"window.open('" + lnk + "', 'Info', 'width=100,height=100,resizeable=no,scrollbars=yes,status=yes');return false;\"><b>Info+</b></a>";
                }
                if (registry.Email!="")
                {
                   
                    if (possui_separador)
                        htmlFinal+=" | ";
                    else
                        possui_separador = true;
                        
                    htmlFinal+="<a class=\"linque_box\" href=\"#\" onclick=\"window.open('/templates/logredirect.aspx?uf=" + registry.State + "&id=" + registry.Id + "&cidade=0&bairro=0&titulo=-1&acao=email&link=" + escape("/templates/envia.aspx?tipo=anuncioemail&email_dest=" + registry.Email + "&nome_dest=" + registry.Name.replace("'", "") + "&uf=" + registry.State + "&id=" + registry.Id + "&cidade=0&bairro=0&titulo=-1") + "')\"><b>E-mail</b></a>";
                }
                if (registry.HasMenu)
                {
                    if (possui_separador)
                        htmlFinal+=" | ";
                    else
                    {
                        
                        possui_separador = true;
                    }
                    htmlFinal+="<a class='linque_box' href='" + linkCardapio + "'><b>Cardápio</b></a> ";
                }
            }  
            if (possui_separador)
                    htmlFinal+=" | ";
            else
                possui_separador = true;
           
            htmlFinal+="<a class=\"linque_box\" href=\"javascript:TLUtils.popTorpedo('" + registry.Id + "')\">Torpedo</a>";
            if (registry.IsContract)
            {
                if (registry.HasCallFree)
                {
                    if (possui_separador)
                        htmlFinal+=" | ";
                    else
                    {
                      
                        possui_separador = true;
                    }
                    htmlFinal+="<a class=\"linque_box\" href=\"#\" onclick=\"popUpCallFree(" + registry.Id + "," + registry.TemplateCallFree + ");return false;\">Chame-Grátis </a>";
                }
              
            }
            if (possui_separador && registry.HasRoute)
                    htmlFinal+=" | ";
            if(registry.HasRoute){
                htmlFinal+="<a class=\"linque_box\" href=\"javascript:TLBuscaLocal.AlteraBusca('" + registry.Street+"','"+registry.StreetNumber  + "')\"><b>Traçar Rota</b></a>";
            }    
            htmlFinal+="</div></div>";                      
            return htmlFinal;
        },
       //esconde ou exibe uma div
	   showHide:function (div,link){
		    var el= Dom.get(div);
    		
		    if(el.style.display=="" || el.style.display=="block" || el.style.visibility=="visible"){
			    TLUtils.Hide(div);
		    }
		    else{
			    TLUtils.Show(div);
		    }
		
		
	    },
	    EscondeCarregando:function(){
	        if (TLUtils.ModalCarregando != null){
					document.body.style.cursor="default";
	            TLUtils.ModalCarregando.hide();
	        }
	    },
	    popTorpedo:function(idRegistry){
	        window.open('/torpedos/pop_tim.aspx?idrgstr=' +idRegistry,'torpedo','scrollbars=yes,width=448,height=328,resizeable=no,status=yes');
        },
       /*
            Exibe/Esconde Painel  de carregando
        */
        mudaClasse:function(obj,idTd){
            var marcado=obj.checked;
			
			if(window.opera)
				return;
			if(marcado){
			    Dom.get(idTd).className='checked';
		
			}
			else{
				Dom.get(idTd).className='';
				
			}
        },
        CarregandoGeral:function(fn){
            if (TLUtils.ModalCarregando != null){
                if(fn=="show"){
						TLUtils.ModalCarregando.show();
                }
                else{
                   TLUtils.EscondeCarregando();
                }
            }
        },
        SelecionaTodas:function(obj){
            for(var i=0;i<50;i++){
                 var el=Dom.get("titSelecionados"+i);
                 if(el !=null){
                    el.checked=obj.checked;
                 }
                 else{
                    break;
                 }
            }
        },
        /*
            transforma valores do form em querysytring para
            envio de e-mail com (*) como separador
        */
        GetFormValues:function(){
            var args=arguments;
            var strRet= new String();
            for(var i=0;i< args.length;i++){
              var el=Dom.get(args[i]);
              if(el.value !=""){
                strRet += args[i]+'='+ escape(el.value) +'*';
              }
            }
            strRet=strRet.substr(0,strRet.length -1);
            return strRet;
        },
    
        HandleError:function(error){
            document.body.style.cursor="default";
            TLUtils.EscondeCarregando();
           
            if(TLUtils.IsDebug){
                if(typeof error=="object"){
                    var strError= new String();
                    for(var a in error){
                        strError +=a+"="+error[a]+"\n";
                    }
                    alert(strError);
                }
                else{
                    alert(error);
                }
            }
            else{
                alert("Ocorreu um erro inesperado, por favor tente mais tarde");
            }
        },
        //disparada pelo change das cidades de rota
        Mostra_NaoSabe:function(cid){
           //esconde as divs
           if(cid==null){
            return;
           }
           TLUtils.Hide("nao_origem","nao_destino");
           var vetCid=TLUtils.rotaAlias;
           for(var i=0;i< vetCid.length;i++){
                if(vetCid[i]==cid.trim()){
                     //mostra os links de não sabe endereço
                        TLUtils.Show("nao_origem","nao_destino");
                        
                        break;
                
                }
           }
          
           
       
           
        },
        /*
            Exibe a caixa de texto para digitação de local
            tp-'origem' ou 'destino'
        */
        ExibeLocal:function(tp){
            TLUtils.Show("endereco_"+tp);
            TLUtils.Hide("nao_"+tp);
            
        },
        /*
            Troca os endereços de origem com o de destino
        */
        TrocaEndereco:function(){
            
            var orig=Dom.get("txtendereco_origem").value;
            var destino=Dom.get("txtendereco_destino").value;
            var num_orig=Dom.get("txtnumero_origem").value;
            var num_dest=Dom.get("txtnumero_destino").value;
            Dom.get("txtendereco_destino").value=orig;
            Dom.get("txtendereco_origem").value=destino;
            Dom.get("txtnumero_origem").value=num_dest;
            Dom.get("txtnumero_destino").value= num_orig;
            orig=Dom.get("local_origem").value;
            destino=Dom.get("local_destino").value;
            Dom.get("local_origem").value=destino;
            Dom.get("local_destino").value=orig;
            
            if(Dom.get("longitude_origem").value !=""){
                orig=Dom.get("longitude_origem").value;
                destino=Dom.get("longitude_destino").value;
                
                Dom.get("longitude_origem").value=destino;
                Dom.get("longitude_destino").value=orig;
                
                orig=Dom.get("latitude_origem").value;
                destino=Dom.get("latitude_destino").value;
                
                Dom.get("latitude_origem").value=destino;
                Dom.get("latitude_destino").value=orig;
                TLMapa.TracarRotaFinal();
            }
            
        },
        //Função usada para troca de busca local para rota
        TrocaBusca:function(busca){
            
            Dom.get("result_list2").innerHTML="";
            if(busca==1){//busca local
               Dom.get("aba1").className="aba_on";
               Dom.get("aba2").className="aba_off";
               Dom.get("search_aba1").style.display="block";
               Dom.get("search_aba2").style.display="none";
               Dom.get("result_rota").style.display="none";
               TLUtils.Hide("nao_origem","nao_destino");
               TLUtils.BuscaAtiva=TLEnumBusca.BuscaLocal;
               Dom.get("divResultadoBusca").style.display="block";
			   Dom.get("divPaginacoBusca").style.display="block";
               Dom.get("texto_rota").style.display="none";
			   Dom.get("texto_busca").style.display="block";
			}
            else{
               var Map = getMaplinkAPI().currentMap;
               if(Map){
                  Map.closeInfoWindow(); //fecha o balão aberto
                  Map.clearOverlays();
               }
               
				Dom.get("aba1").className="aba_off";
				Dom.get("aba2").className="aba_on";
				Dom.get("search_aba1").style.display="none";
				Dom.get("search_aba2").style.display="block";
				Dom.get("result_rota").style.display="block";
			    Dom.get("texto_rota").style.display="block";
			    Dom.get("texto_busca").style.display="none";
				Dom.get("result_rota").style.display="none";
				Dom.get("divResultadoBusca").style.display="none";
				Dom.get("divPaginacoBusca").style.display="none";
				
			    TLUtils.BuscaAtiva=TLEnumBusca.Rota;
            }
           
            TLUtils.CarregaPagina();
           
        },
       
        novaBusca:function(){
                
				TLUtils.HabilitaMapear(false);
				Dom.get("divResultadoBusca").innerHTML="";
				Dom.get("result_list2").innerHTML="";
				Dom.get("ListaEndereco").innerHTML="";
				Dom.get("result_list1").innerHTML="";
				Dom.get("divPaginacoBusca").innerHTML="";
				TLUtils.EscondeCarregando();
				TLUtils.Hide("ListaEndereco","resBusca","Comentarios","localidade_local");
				Dom.get("selectionaTodas").checked=false;
			},
      /*
       Habilita/desabilita o botão "Colocar no mapa"
      */
      HabilitaMapear:function(bnlHab){
            var btn=Dom.get("btnMapear");
            if(bnlHab){//habilitado
                btn.className="botao_buscar2";
                btn.onclick=TLBuscaLocal.mapearRegistros.createDelegate(this,[1]);
            }
            else{
                btn.className="botao_buscar2_off";
                btn.onclick= new Function();//faz nada
            }
      },
      Hide:function(){
        var args=arguments;
        for(var i=0;i<args.length;i++){
            if(Dom.get(args[i])!=null){
                Dom.get(args[i]).style.visibility="hidden";
                Dom.get(args[i]).style.display="none";
            }
            
        }
      },
      Show:function(){
        var args=arguments;
        for(var i=0;i<args.length;i++){
            if(Dom.get(args[i])!=null){
                Dom.get(args[i]).style.visibility="visible";
                Dom.get(args[i]).style.display="inline";
            }
        }
      },
      CarregandoTitulos:function(){
           TLUtils.CarregandoGeral("show");
      },
      CarregandoMapa:function(){
              TLUtils.CarregandoGeral("show");
      },
      CarregaPagina:function(){
                var valor_aba=1;
	            if(location.href.indexOf("aba")!=-1){
	               
	                var qs=location.search.substring(1,location.search.length)
	                qs = qs.replace(/\+/g, ' ');
	                
	                var args = qs.split('&') 
	                for (var i=0;i<args.length;i++) {
	                     var pair = args[i].split('=');
	                     if(pair[0]=="aba"){
	                        valor_aba=new Number(pair[1]);
	                        break;
	                     }
	                }
	                
	               
	            }
	          
		        if(TLUtils.ModalCarregando==null){
		                TLUtils.ModalCarregando=
		                            new YAHOO.widget.Panel("wait",  
															        { width:"240px", 
															          fixedcenter:true, 
															          close:false, 
															          draggable:false, 
															          modal:true,
															          visible:false
															        } 
					        );
        	
					        TLUtils.ModalCarregando.render(document.body);

		         }
		       
		       if(TLUtils.Aviso==null && Dom.get("isEmail").value=="" && valor_aba==2){
		            var el=Dom.get("mensagem");
		            var viewport = [
                       YAHOO.util.Dom.getViewportWidth(),
                       YAHOO.util.Dom.getViewportHeight()
                    ];
                    
		            //Dom.setXY("mensagem",[viewport[0],viewport[1]]);
		            el.style.display="block";
		            el.style.left=viewport[0]/2 - 200;
		            
		            TLUtils.Aviso=el;
		            TLUtils.FechaAviso.defer(15000);
                    
					        
		       }
		      if(typeof MaplinkAPI == "undefined"){
	            alert("Falha ao gerar o mapa");
	            return;
	          }
		      control= new MaplinkAPI();
			  if(!control){
			        alert("Falha ao gerar o mapa");
			        return;
			  }
		      getMaplinkAPI().setAutoShowErrors(false); //Desabilita controle de erros automático.
	            
	           var uf="",localidade="",endereco="",numero="";
	       
	            if(TLCookies.GetCookie("bscLocalUF")!=null){
				            uf=TLCookies.GetCookie("bscLocalUF");
				            localidade=TLCookies.GetCookie("bscLocalCID");
				            if(TLCookies.GetCookie("bscLocalEndereco")!=null)
					            endereco=TLCookies.GetCookie("bscLocalEndereco");
				            if(TLCookies.GetCookie("bscLocalNum")!=null)
					            numero=TLCookies.GetCookie("bscLocalNum");
        						
			    }
			   
			    //parâmetros da busca
			    var searchParameters=TLCookies.GetCookie("searchparameters");
			    var isSearch=false;
			    var atividade="";
			    var pchave="";
			    if(searchParameters !=null){
			          isSearch=true;
			          var args = searchParameters.split('&') 
	                  for (var i=0;i<args.length;i++) {
	                         var pair = args[i].split('=');
	                         switch(pair[0]){
	                            case "uf":
	                                uf=pair[1].toUpperCase();
	                                break;
	                            case "codlocalidade":
	                                 localidade=pair[1];
	                                 break;
	                            case "atividade":
	                                 atividade=pair[1];
	                                 break;
	                            case "pchave":
	                                 pchave=pair[1];
	                                 break;    
	                         }
	                    }
			    }
			  
	            if(TLUtils.BuscaAtiva==TLEnumBusca.BuscaLocal){
		           if(Dom.get("isEmail").value==""){
		                Dom.get("palachave").value=atividade;
		                Dom.get("nome").value=pchave;
		                if(Dom.get("uf").value !=uf){
		                    TLUtils.SelecionaCerto('uf',uf);
		                    TLHelper.preenche_cidade();
		                }
		                if(!isSearch){
		                    TLUtils.SelecionaCerto('localidade',localidade);
		                }
		                else{
		                    //seleciona pelo código da localidade 
		                   TLUtils.SelecionaLocalidade(localidade);
		                   TLHelper.habilitaBairro(localidade);
		                   return;
		                }
		                TLHelper.habilitaBairro(localidade);
    		              
		                if(uf !="" && localidade !=null && localidade !="" ){
    		               
		                    //uf,localidade,bairro,endereco,numero,nome,palachave
		                    TLBuscaLocal.GetMap.defer(900,this,[uf,localidade,"",Dom.get("endereco").value,"",Dom.get("nome").value,Dom.get("palachave").value]);
		                }
		            }
					YAHOO.util.Event.addListener(Dom.get("endereco"), "click",function(){TLUtils.Hide("ListaEndereco");});
		      }//
		      else{
		          
	               uf=Dom.get("uf").value;
	               TLUtils.SelecionaCerto('uf_route',uf);
	               
		           TLHelper.GetCidadesRota.defer(50,this,[Dom.get("uf_route")]);
		           localidade=Dom.get("localidade").value;
		           if(localidade !=null){
		                var locparts = localidade.split('|');
		                
					    TLUtils.SelecionaCerto('city_route',locparts[3]);
		                TLUtils.Mostra_NaoSabe(locparts[3]);
    		        }
    		        if(endereco!=""){
		                Dom.get("endereco").value= endereco;
		                Dom.get("numero").value= numero;
		                Dom.get("txtendereco_destino").value= endereco;
		                Dom.get("txtnumero_destino").value= numero;
		            }
					YAHOO.util.Event.addListener(Dom.get("txtendereco_origem"), "click",function(){TLUtils.Hide("ListaEndereco");}); 
				    YAHOO.util.Event.addListener(Dom.get("txtendereco_destino"), "click",function(){TLUtils.Hide("ListaEndereco");}); 
		                   
		    }
			
				
				
     },
     SelecionaLocalidade:function(valor){
            var combo= Dom.get("localidade");
            
    		if(combo==null || combo.options.length ==1){
    		    TLUtils.SelecionaLocalidade.defer(50,this,[valor]);
    		    return;
    		}
	        for(i=1;i< combo.options.length;i++){
	           var loc=combo.options[i].value;
	           var codloc=loc.split("|")[2];
		        if(codloc-valor==0){
			        combo.selectedIndex=i;
			        break;
		        }
	        }
	     
         if(Dom.get("uf").value !="" && Dom.get("localidade").value !=""){
		    //uf,localidade,bairro,endereco,numero,nome,palachave
	        TLBuscaLocal.GetMap.defer(900,this,[Dom.get("uf").value,Dom.get("localidade").value,"",Dom.get("endereco").value,"",Dom.get("nome").value,Dom.get("palachave").value]);
		 }
     },
     //seleciona o ítem de um combo
     SelecionaCerto:function(nm_combo,valor){

	        if(valor==null ||valor.length ==0)
		        return;
	        combo= Dom.get(nm_combo);
    		if(combo==null || combo.options.length ==0){
    		    TLUtils.SelecionaCerto.defer(50,this,[nm_combo,valor]);
    		    return;
    		}
	        for(i=1;i< combo.options.length;i++){
	           
		        if(combo.options[i].value.toUpperCase()==valor.toUpperCase() || combo.options[i].text.toUpperCase()==valor.toUpperCase() ){
			        combo.selectedIndex=i;
			        return;
		        }
	        }
	        if(combo.selectedIndex <1){
	            TLUtils.SelecionaCerto.defer(50,this,[nm_combo,valor]);
    		    return;
	        }
	    
    },
	
    /*
        retorna os titulos selecionados
    */
    titulosSelecionados:function (){
        
        var ret= new Array();
	    
		for(var i=0; i< 50;i++){
		    var el=Dom.get("titSelecionados"+i);
		    if(el==null){
		        if(ret.length >0){
		            
		            return ret.toString();
		        }
		        else{
		            return "";
		        }
		        break;
		    }
		    if(el.checked){
		            ret.push(el.value);
		     
		    }
		}
		
	
	
		
		
		
		return ret.toString();
    }
     
};

TLUtils.prototype = {
	arrayRotas : []
};

/*
Funções auxiliares e comuns a mapas e rotas

*/
TLHelper ={
        /*
            Adiciona marcador no centro do mapa
        */
        AddCenter:function(Map){
         
             var mcIcon = new GIcon(Map.iconDefault);
             mcIcon.image = ImgPath+"/img/por_servmapa_alvo.gif";
             mcIcon.iconSize = new GSize(25, 24);//W,H
             mcIcon.shadowSize= new GSize(0,0);
             mcIcon.iconAnchor = new GPoint(25/2, 12);
             var marker=new GMarker(Map.getCenter(), mcIcon);
	         Map.addOverlay(marker);
	         Dom.get("longitude_min").value= Map.getBounds().getSouthWest().lng(); 
             Dom.get("longitude_max").value= Map.getBounds().getNorthEast().lng();
             Dom.get("latitude_min").value= Map.getBounds().getSouthWest().lat();
             Dom.get("latitude_max").value= Map.getBounds().getNorthEast().lat();
             Dom.get("xMedio").value= Map.getCenter().lng();
             Dom.get("yMedio").value= Map.getCenter().lat();
             var NivelZoom = Map.getZoom();
             Dom.get("zoom").value= NivelZoom;
             return marker;
        },
        /*
            Adiciona eventos de final de zoom e final de movimento
            ao mapa
        */
        AdicionaEventosMapa:function(Map){
             //Fim zoom
             GEvent.addListener(Map, "zoomend", function() {  
                    
                    Dom.get("longitude_min").value= this.getBounds().getSouthWest().lng(); 
                    Dom.get("longitude_max").value= this.getBounds().getNorthEast().lng();
                    Dom.get("latitude_min").value= this.getBounds().getSouthWest().lat();
                    Dom.get("latitude_max").value= this.getBounds().getNorthEast().lat();
                    Dom.get("xMedio").value= this.getCenter().lng();
                    Dom.get("yMedio").value= this.getCenter().lat();
                    var NivelZoom = this.getZoom();
                    Dom.get("zoom").value= NivelZoom;
                    
                });
             //fim movimentação   
             GEvent.addListener(Map, "moveend", function() {
                    
                    Dom.get("longitude_min").value= this.getBounds().getSouthWest().lng(); 
                    Dom.get("longitude_max").value= this.getBounds().getNorthEast().lng();
                    Dom.get("latitude_min").value= this.getBounds().getSouthWest().lat();
                    Dom.get("latitude_max").value= this.getBounds().getNorthEast().lat();
                    Dom.get("xMedio").value= this.getCenter().lng();
                    Dom.get("yMedio").value= this.getCenter().lat();
                    var NivelZoom = this.getZoom();
                    Dom.get("zoom").value= NivelZoom;
                    
                });  
            
             Map.addControl(new MMapControls());	
             Map.addControl(new GLargeMapControl());
        },
        EnviarEmail:function(){
             if(TLUtils.BuscaAtiva==TLEnumBusca.BuscaLocal){
                
                TLBuscaLocal.EnviarEmail();
             }
             else{
                TLMapa.EnviarEmail();
             }
         },
         Imprimir:function(){
             if(TLUtils.BuscaAtiva==TLEnumBusca.BuscaLocal){
                TLBuscaLocal.Imprimir();
             }
             else{
                TLMapa.Imprimir();
             }
         },
      
         /*
            Função chamada pelo componente 
            quando um endereço é clicado na lista de endereços
         */
         BuscaIntermediaria:function(addkey,id,latitude,longitude,numero,bairro){
            
            var elEndereco=Dom.get("addstreet"+id);
            if(TLUtils.BuscaAtiva==TLEnumBusca.BuscaLocal){
                
                Dom.get("endereco").value=elEndereco.value;
                Dom.get("numero").value=numero;
                var cid=Dom.get("addlocalidade"+id);
                TLBuscaLocal.mapeouRegs=false;
                TLUtils.novaBusca();
                TLUtils.Show("Comentarios");
                Dom.get("ListaEndereco").innerHTML="";
                TLUtils.Hide("ListaEndereco");
                TLUtils.CarregandoTitulos();
                Dom.get("xMedio").value=longitude;
                Dom.get("yMedio").value= latitude;
                
               
                TLBuscaLocal.PegaTitulos(latitude,longitude,Dom.get("uf").value,Dom.get("localidade").value,bairro,Dom.get("endereco").value,cid.value,Dom.get("numero").value,Dom.get("palachave").value,Dom.get("nome").value);
            }
            else{
                  TLUtils.Hide("ListaEndereco");
                  
                  Dom.get("ListaEndereco").innerHTML="";
                  var corrente=TLUtils.EnderecoCorrente;
                  if(Dom.get("txtendereco_"+corrente).value !=""){
                    Dom.get("txtendereco_"+corrente).value=elEndereco.value;
                    Dom.get("txtnumero_"+corrente).value=numero;
                  }
                  else{
                    Dom.get("local_"+corrente).value=elEndereco.value;
                  }
                  Dom.get("latitude_"+corrente).value=latitude;
                  Dom.get("longitude_"+corrente).value=longitude;
                  //indica que este endereço já foi mapeado
                  if(corrente=="origem"){
                    TLMapa.TracarRotaDestino();
                  }
                  else{
                    
                    TLMapa.TracarRotaFinal();
                  }
                  
            }
        },
        
        GetAdressList:function(pagina){
                TLUtils.CarregandoTitulos();
                //uf,localidade,bairro,endereco,numero
                if(TLUtils.BuscaAtiva==TLEnumBusca.BuscaLocal){
                     TLUtils.currentPage=pagina;
                     var localidade=Dom.get("localidade").value;
                     localidade=localidade.split("|");
                     TLMapLink.GetAdressList(pagina, 
                                             Dom.get("uf").value,localidade[3],
                                             Dom.get("endereco").value,
                                             Dom.get("numero").value,
                                             TLBuscaLocal.GetAdressList_callBack);
     
                    return;
                }
                else{
                    
                    //int page, string state, string city, string address, string number
                    var corrente=TLUtils.EnderecoCorrente;
                    var address=Dom.get("txtendereco_"+corrente).value;
                    var number=Dom.get("txtnumero_"+ corrente).value;
                    
                    
                    TLMapa.GetAdressList(pagina,Dom.get("uf_route").value,Dom.get("city_route").value,address,number,corrente)
				   
                 
                }
          },
       
        MostraEndereco:function(nome_div,aInfo){
                
                var elEndereco=  Dom.get("ListaEndereco");
                Dom.get("ListaEndereco").innerHTML="";
                var pos= Dom.getXY(nome_div);
                elEndereco.style.top=(pos[1]+20)+"px";
                elEndereco.style.left=pos[0]+"px";
                //Dom.setXY("ListaEndereco",[pos[0],pos[1]+20]);//left top
                var html;
          
                    var isPoi=aInfo.poiLocations !=null;
                    var lnkPagina="TLHelper.GetAdressList";
                    if(isPoi){
                        lnkPagina="TLMapa.PaginaPoi";
                    }
                    var totalRegistros=aInfo.recordCount;
                   
					var dados=aInfo.addressLocation || aInfo.poiLocations;
					html="<table width=\"380\" border=\"0\" cellpadding=\"1\" cellspacing=\"0\" bgcolor=\"7E9624\">";
                    html+="<tr><td align=\"center\" valign=\"top\">";
                    html+="<table width=\"378\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" bgcolor=\"#FFFFFF\">";
                    html+="<tr><td align=\"center\" valign=\"top\"><table width=\"378\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
                    html+="<tr><td valign=\"top\"><table width=\"378\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
					 //linha com o fechar--
                    html+="<tr><td width=\"10\" height=\"18\" bgcolor=\"A3AE79\"></td>";
                    html+="<td width=\"363\" align=\"right\" valign=\"middle\" bgcolor=\"A3AE79\" class=\"text_pequeno\">";
                    html+="<a href='javascript:TLUtils.Hide(\"ListaEndereco\")'><font color='white'>Fechar</font></a>";
                    html+="</td><td width=\"5\" height=\"18\" bgcolor=\"A3AE79\"></td></tr>";
                    for(var i=0; i<dados.length; i++){
                       
                        var aLoc=dados[i];
                       
                        html+="<tr><td width=\"10\" height=\"18\" bgcolor=\"F1F3E6\"></td>";
                        html+="<td width=\"363\" align=\"left\" valign=\"middle\" bgcolor=\"F1F3E6\" class=\"text_pequeno\">";
                        if(aLoc.address !=null){
                            html+="<a href=\"javascript:TLHelper.BuscaIntermediaria("+i+","+i+",'"+aLoc.point.y +"','"+aLoc.point.x+"','"+aLoc.address.houseNumber+"','"+ aLoc.address.district +"')\">";
                            html+="<input type=\"hidden\" id=\"addstreet"+i+"\" value=\""+ aLoc.address.street +"\"></input>";
                            html+="<input type=\"hidden\" id=\"addlocalidade"+i+"\" value=\""+ aLoc.address.city.name +"\"></input>";
                            html+=aLoc.address.street+ " , "+aLoc.address.houseNumber + " - " + aLoc.address.district +"("+aLoc.address.city.name+")";
                        }
                        else{
                            html+="<a href=\"javascript:TLHelper.BuscaIntermediaria("+i+","+i+",'"+aLoc.point.y +"','"+aLoc.point.x+"','','')\">";
                            html+="<input type=\"hidden\" id=\"addstreet"+i+"\" value=\""+ aLoc.name +"\"></input>";
                            html+="<input type=\"hidden\" id=\"addlocalidade"+i+"\" value=\""+ aLoc.city.name +"\"></input>";
                            html+=aLoc.name + " - " + aLoc.district +"("+aLoc.city.name+")";
                        }
                        html+="</a></td><td width=\"5\" height=\"18\" bgcolor=\"F1F3E6\"></td></tr>";
                        html+="<tr><td height=\"1\" colspan=\"6\"></td></tr>";
                       } 
                       html+="</table></td></tr>";
                       
                       //TLUtils.currentPage
                       var recordsPerPage=10;
                       
                       if(aInfo.pageCount > 1){
                       //paginação
                         html+="<tr align=\"left\" valign=\"bottom\">"
                         html+="<td height=\"5\" bgcolor=\"F3F3F3\"></td></tr>";
                         html+="<tr align=\"left\" valign=\"bottom\">";
                         html+="<td height=\"6\" bgcolor=\"F3F3F3\">";
                         html+="<table width=\"378\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">"
                         html+="<tr><td width=\"10\"></td>";
                         html+="<td width=\"368\" align=\"left\" valign=\"middle\" class=\"text_medio\">";
                         
                         var final_paginacao;
                         var cur_page;
                         if(TLUtils.currentPage){
                            cur_page=parseInt(TLUtils.currentPage);
                         }
                         else{
                            cur_page=1;
                         }
                         var start= TLUtils.currentPage || 1;
                         if(TLUtils.currentPage<=recordsPerPage)
                         {
                                start=1;
                         }
                         else
                         {
                            for(var j=start-1;j> start-(recordsPerPage+1);j--)
                            {
                                if(j%recordsPerPage==0)
                                {
	                                start=j+1;
	                                break;
                                 }
                             }
                          }
                         final_paginacao=parseInt(start)+parseInt(recordsPerPage) >aInfo.pageCount ? aInfo.pageCount : parseInt(start)+parseInt(recordsPerPage);
                         final_paginacao+=1;
                         for(var j=start;j<final_paginacao;j++){
                            if( start >recordsPerPage && j==start){
                                html+="<a href=\"javascript:"+lnkPagina+"('" + (j-1)+ "')\"><<</a> ";
                            }
                            if( j==cur_page){
                                html += " <font color=\"#003366\"><b>" +j + "</b></font> ";
                            }
                            else{
                                html+="<a href=\"javascript:"+lnkPagina+"('" + j+ "')\">" + j + "</a> ";
                            }
                            if(final_paginacao < aInfo.pageCount && j==final_paginacao-1){
                                html+="<a href=\"javascript:"+lnkPagina+"('" + (j+1)+ "')\">>></a> ";
                            }
                         }
                         html+="</td></tr></table></td></tr>";
                         html+="<tr align=\"left\" valign=\"bottom\"><td height=\"5\" bgcolor=\"F3F3F3\"></td></tr>";
                    }
                  //fim paginacao
                 html+="</table></td></tr></table></td></tr></table>";
                try{
                    elEndereco.innerHTML=html;
                }
                catch(e){
                      var t = document.createElement('div');
                        t.innerHTML =html;
                        elEndereco.appendChild(t);
                }
                TLUtils.Show("ListaEndereco");   
               
        },
        //preenche a combo de cidades de rotas
        GetCidadesRota:function(combo){
           if(combo==null){
            TLHelper.GetCidadesRota.defer(50,this,[combo]);
            return;
           }
           var locRota=Dom.get("localidadeRota");
           locRota.innerHTML="<select disabled  class=\"cidade_bairro\" "+
                            " id=\"city_route\" tabindex=\"3\" title=\"Cidade\">"+
                            "</select>";
           if(combo.value !=null && combo.value!=""){     
               
                var params="uf="+combo.value+"&class=&method=MapaComboCidadeRota&context=localidadeRota";
                YAHOO.util.Connect.asyncRequest('POST','mapas_rotas.ashx',TLHelper.simple_callback,params);      
               
           }
        },
        /*
           @method Preenche a combo de cidade chamada no onchange da combo de estado
           
        */
        preenche_cidade:function(){
             var uf=Dom.get("uf");  
             if(Dom.get("bairro")!=null){
                //limpa a combo de bairros mais rápido quando 
                //ela está com muitos bairros carregados
                el=Dom.get("divBairroLocal");
                el.innerHTML="<select disabled name=\"bairro\" class=\"bairro_1\" id=\"bairro\">"+
                     "<option value=\"\">Selecione </option>"+
                     "</select>";
             }
            
            var elLocalidade=Dom.get("localidade")
            if(elLocalidade!=null){
                elLocalidade.options.length=1;
                elLocalidade.options[0].text="Selecione uma cidade";
                elLocalidade.disabled=true;
            }
           
           //mostrar aguarde 
           var pos =Dom.getXY("localidadeLocal");
           Dom.setXY("waitBairro",[pos[0],pos[1]-30]);//left,top
           Dom.get("waitBairro").style.visibility="visible";       
                       
           //chama função GetCities no servidor via ajax
           var params="uf="+uf.value+"&class=cidade_bairro&method=GetCities&context=localidadeLocal";
          
           YAHOO.util.Connect.asyncRequest('POST','busca_local.ashx',TLHelper.simple_callback,params);      
               
    
        },
        //função de callback para cidade e bairro
        simple_callback:{
            timeout:timeoutPeriod,
            success:function(resp){
                var resposta=resp.responseText;
                var pos= resposta.indexOf("id=")+4;
                var temp_str= resposta.substring(pos);
                var fim= temp_str.indexOf("\"");
                if(fim==-1){
                    fim=temp_str.indexOf("'");
                }   
                var id=temp_str.substring(0,fim);
                var context;
                
                switch(id){
                    case "localidade":
                        context="localidadeLocal";
                        break;
                    case "city_route":
                        context="localidadeRota";
                        break;
                    case "bairro":
                        context="divBairroLocal";
                        break;
                    
                }
                if(resp.responseText!=""){
                   //pega o nome da div que está na variável context
                   
                    Dom.get(context).innerHTML=resp.responseText;
                }
                if(context=="localidadeLocal"){
                    Dom.get("waitBairro").style.visibility="hidden";   
                }
                if(context=="divBairroLocal"){
                   Dom.get("waitBairro").style.visibility="hidden";
                   var elBairro=Dom.get("bairro");
                   if(elBairro.options.length==1){
                        elBairro.disabled=true;
                    }
                    else{
                        elBairro.options[1].selected=true;
                    }
                }
             }
        },
        habilitaBairro:function(val){
            if(val==null){
                return;
            }
            TLUtils.Hide("nao_sabe_local");
            var el=Dom.get("divBairroLocal");
            
            el.innerHTML="<select disabled name=\"bairro\" class=\"bairro_1\" id=\"bairro\">"+
                         "<option value=\"\">Selecione </option>"+
                         "</select>";
            el=Dom.get("bairro");
            
           el.disabled=val=="";
           var vetCid=TLUtils.rotaAlias;
           if(val==null){
                return;
           }
           var valcid= val.split('|');
           valcid= valcid[valcid.length-1];
           for(var i=0;i< vetCid.length;i++){
                if(vetCid[i]==valcid.trim()){
                     //mostra os links de não sabe endereço
                        TLUtils.Show("nao_sabe_local");
                        break;
                }
           }
            
            if(!el.disabled){
                el.onclick=TLHelper.alteraLocalidade;
            }
        },
        alteraLocalidade:function(){
             var elBairro=Dom.get("bairro");
             if(Dom.get("localidade").value ==""){
                    elBairro.options.length=1;
                    elBairro.options[0].text="Selecione ";
                    elBairro.disabled=true;
                    return;
            }
            //pega os bairros
            var pos =Dom.getXY("divBairroLocal");
            Dom.setXY("waitBairro",[pos[0],pos[1]-30]);//left,top
            if(elBairro.options.length==1){
                   Dom.get("waitBairro").style.visibility="visible";
                   var params="localidade="+Dom.get("localidade").value+"&class=bairro_1&method=GetQuarters&context=divBairroLocal";
                  
                   YAHOO.util.Connect.asyncRequest('POST','busca_local.ashx',TLHelper.simple_callback,params);      
             }
        },
        /*
            abre janela para envio de problemas
        */
        EnviarProblema:function(){
             var  param="key=&";
             if(TLUtils.BuscaAtiva==TLEnumBusca.BuscaLocal){
                param= new TLParameter();
             }
             window.open("/busca_local/envia_problema.aspx?"+param.toQueryString(),"problema",'scrollbars=yes,width=332,height=320,resizeable=no,status=yes');
        },
        EnviaOpiniao:function(){
             var  param="key=&";
             if(TLUtils.BuscaAtiva==TLEnumBusca.BuscaLocal){
                param= new TLParameter();
             }
            window.open("/busca_local/envia_opine.aspx?"+param.toQueryString(),"problema",'scrollbars=yes,width=332,height=344,resizeable=no,status=yes');
        }
};
/*
 @class Classe que contém métodos para preencher títulos,mapa e registros
 
*/
TLBuscaLocal={
        
        AlteraBusca:function(address,number){
          
           var Map = getMaplinkAPI().currentMap;
           if(Map){
              Map.closeInfoWindow(); //fecha o balão aberto
              Map.clearOverlays();
           }
         
           Dom.get("txtendereco_destino").value=address;
           Dom.get("txtnumero_destino").value=number;
           //pega uf
           var uf= Dom.get("uf").value;
           if(Dom.get("uf_route").value !=uf ){
                TLUtils.SelecionaCerto("uf_route",uf);
                //dispara change da combo de uf
                TLHelper.GetCidadesRota(Dom.get("uf_route"));
           }
           var cid= Dom.get("localidade").value;
           cid= cid.split("|");
           cid= cid[3];
           //seleciona a cidade --
           
           TLUtils.SelecionaCerto("city_route",cid);
           Dom.get("aba1").className="aba_off";
		   Dom.get("aba2").className="aba_on";
		   Dom.get("search_aba1").style.display="none";
		   Dom.get("search_aba2").style.display="block";
		   Dom.get("result_rota").style.display="block";

		   Dom.get("result_rota").style.display="none";
		   TLUtils.BuscaAtiva=TLEnumBusca.Rota;
           TLUtils.Mostra_NaoSabe(cid);			    
           Dom.get("txtendereco_origem").focus();
        },
        EnviarEmail:function(){
          var  param= new TLParameter();
    
          var ArrayTitles=eval(param.selectedTitles);
          var selectedTitles=new String();
          if (ArrayTitles!=null){
              for(var i=0; i< ArrayTitles.length;i++){
                    selectedTitles+=ArrayTitles[i]+"©";
              }
            selectedTitles=selectedTitles.substring(0,selectedTitles.length);
            if(ArrayTitles.length==null){
                selectedTitles=param.selectedTitles;
            }
          }
          var tmp= param.longitude  + "*" + param.latitude + "*" + param.state +
                   "*" + param.city + "*" + param.keyword + "*" + param.zoom + "*" + 
                   selectedTitles + "*" + escape(param.address) + "*" +param.number + "*" +param.quarter+
                  "*"+ param.latitude_max +"*"+param.latitude_min+"*"+param.longitude_max+"*"+
                  param.longitude_min;
          var arr= tmp.split("*");
       
          window.open("/templates/envia.aspx?tipo=buscalocal&mapaparams="+ tmp , 'EnviarBuscaLocal', 'width=332, height=377, scrollbars=auto');               
                    
        },
        Imprimir:function(){
            var  param= new TLParameter();
            var Map = getMaplinkAPI().currentMap;
            var tipo_mapa="";
      
            window.open('imprimir_resultado_local.aspx?pagina=' + $('paginacao').value +"&"+ param.toQueryString() ,'imprimir','top=20,left=10,scrollbars=yes,status=yes')
        },
        GetTitulosEmail:function(state,
                                    city,
                                    quarter,
                                    address,
                                    number,
                                    name,
                                    keyword){
		  TLUtils.CarregandoTitulos();
			//latitude_max,latitude_min, longitude_max,longitude_min,uf,localidade,bairro,endereco,numero,nome,palachave
            TLBuscaLocal.GetMap(
                                    state,
                                    city,
                                    quarter,
                                    address,
                                    number,
                                    name,
                                    keyword,false);
          
		
        },
        GetOnlyMap:function(uf,localidade,bairro,endereco,numero,nome,palachave,combinada){
            TLUtils.novaBusca();
            TLBuscaLocal.GetMap(uf,localidade,bairro,endereco,numero,nome,palachave,combinada);
        },
        GetMap:function (uf,localidade,bairro,endereco,numero,nome,palachave,combinada){
            var dtExpira= new Date();
            dtExpira.setFullYear(dtExpira.getFullYear()+1);
            TLCookies.SetCookie("bscLocalUF",uf,dtExpira);
            TLCookies.SetCookie("bscLocalCID",localidade,dtExpira);
            TLCookies.SetCookie("bscLocalEndereco",endereco,dtExpira);
            TLCookies.SetCookie("bscLocalNum",numero,dtExpira);
            if(palachave.trim() != "" || nome.trim() != ""){
                Dom.get("combinada").value= "1"; 
                combinada= "1";
            }else{
                TLUtils.novaBusca();
                Dom.get("combinada").value=combinada = "0";
                combinada= "0";
            }
           
            var getPoi=false;
           if(uf.trim()=="")
            {
                alert('O campo UF é de preenchimento obrigatório');
                Dom.get('uf').focus();
                return false;
            }
            if(localidade ==null || localidade.trim()=="")
            {
                alert('O campo Cidade é de preenchimento obrigatório');
                Dom.get('localidade').focus();
                return false;
            }
            if(numero.trim()!="" &&
                endereco.trim()=="")
            {
                alert('Para buscar por um número, preencha o endereço desejado');
                Dom.get('endereco').focus();
                return false;
            }
             if(Dom.get("poi_local").value !=""){
                getPoi=true;
                endereco=Dom.get("poi_local").value;
               
            }
			/* if(combinada){
				if(Dom.get("nome").value=="" && Dom.get("palachave").value =="" ){
					alert("Preencha o nome ou a palavra-chave");
					return;
				}
			} */
            var loc=localidade.split('|');
            var Map = getMaplinkAPI().currentMap;
            if(Map==null){
	            Map= new MMap2(Dom.get('img_map'));
	        }
	        Map.clearOverlays();
	        
            if(endereco !="" && !getPoi){
                TLUtils.CarregandoTitulos();
                //pagina,uf,cidade,endereco,numero,callback
                TLMapLink.GetAdressList(1,uf,loc[3],endereco,numero,TLBuscaLocal.GetAdressList_callBack);
                return;
            }
            if(bairro !="" && !getPoi){
                TLUtils.CarregandoTitulos();
                var loc_bairro= bairro.split('|');
                TLHelper.AdicionaEventosMapa(Map);
                Map.setCenter(new GLatLng(loc_bairro[1], loc_bairro[0]),14);
                TLHelper.AddCenter(Map);
                
                   if(Dom.get("nome").value!="" || Dom.get("palachave").value !="" && combinada){
                            var param = new TLParameter();
                            //latitude_max,latitude_min, longitude_max,longitude_min,uf,localidade,bairro,endereco,numero,nome,palachave
                            TLBuscaLocal.GetTitles(
                                                param.latitude,
                                                param.longitude,
                                                param.latitude_max,
                                                param.latitude_min,
                                                param.longitude_max,
                                                param.longitude_min,
                                                param.state,
                                                param.city,
                                                param.quarter,
                                                param.address,
                                                param.number,
                                                param.name,
                                                param.keyword);
                                                
                 }
                 else{
                    TLUtils.EscondeCarregando();
                 } 
                 return;
            }
            if(localidade !="" && !getPoi){
               
               TLUtils.CarregandoTitulos();
               TLHelper.AdicionaEventosMapa(Map);
               Map.setCenter(new GLatLng(loc[1], loc[0]),12);
               TLHelper.AddCenter(Map);
               if(Dom.get("nome").value!="" || Dom.get("palachave").value !="" && combinada){
               
                            var param = new TLParameter();
                           
                            TLBuscaLocal.GetTitles(
                                                param.latitude,
                                                param.longitude,
                                                param.latitude_max,
                                                param.latitude_min,
                                                param.longitude_max,
                                                param.longitude_min,
                                                param.state,
                                                param.city,
                                                param.quarter,
                                                param.address,
                                                param.number,
                                                param.name,
                                                param.keyword);
                                                
               }
               else{
                 TLUtils.EscondeCarregando();
               }
               
                 if(TLBuscaLocal.markers!=null){
    			  
			       var markers=TLBuscaLocal.markers;
			       var Map = getMaplinkAPI().currentMap;
			       for(var i=0;i< markers.length;i++){
	                        marker=markers[i];
	                        Map.addOverlay(marker);
	                        GEvent.addListener(marker, "mouseover", function() {  
                               var regAtu=this.registry;
		                       this.openInfoWindowHtml(TLUtils.getRegistryHtml(regAtu)); 
	                        });
	               }
			    }     
               return;        
            }
        
          
           
             TLUtils.currentPage=1;
            //pagina,nome,uf,cidade,callback
             TLUtils.CarregandoGeral("show");
            
             //GetPoiList:function(pagina,nome,uf,cidade,callback){
             TLMapLink.GetPoiList(1,endereco,uf,loc[3],TLBuscaLocal.GetAdressList_callBack);
             
             
            
            
        },
        GetTitles:function(latitude,longitude,latitude_max,latitude_min, longitude_max,longitude_min,uf,localidade,bairro,endereco,numero,nome,palachave){
            
            
            TLUtils.Hide("localidade_local");
            var poi_local= Dom.get("poi_local").value;
           
            //cookies
            var dtExpira= new Date();
            dtExpira.setFullYear(dtExpira.getFullYear()+1);
            TLCookies.SetCookie("bscLocalUF",uf,dtExpira);
            TLCookies.SetCookie("bscLocalCID",localidade,dtExpira);
            TLCookies.SetCookie("bscLocalEndereco",endereco,dtExpira);
            TLCookies.SetCookie("bscLocalNum",numero,dtExpira);
         
            document.body.style.cursor ="wait";
            TLUtils.novaBusca();
            
            TLUtils.CarregandoTitulos();
            //latitude, longitude, state, city, quarter, address, number, name, keyword
            if(nome=="" && palachave==""){
                alert("Preencha o nome ou a palavra-chave");
                return;
            }
      
            var params="latitude="+latitude+"&longitude="+longitude+"&latitude_max="+ latitude_max+"&latitude_min="+latitude_min+
                       "&longitude_max="+longitude_max+"&longitude_min="+longitude_min+
                       "&state="+uf+"&city="+localidade+"&quarter="+bairro+
                       "&address="+endereco+"&number="+numero+"&name="+nome+
                       "&keyword="+palachave+"&method=GetTitles";
            YAHOO.util.Connect.asyncRequest('POST','busca_local.ashx',TLBuscaLocal.GetTitles_CallBack,params);      
            
         
        },

        GetTitles_CallBack:{
            timeout:timeoutPeriod,
            success:function(response){
                
                var objResposta=eval('('+response.responseText+')');
                if(objResposta.IntermediarySearch===true){
                        //posiciona div
                   
                        if(objResposta.HtmlResult.length >0){
                           TLHelper.MostraEndereco("endereco",objResposta.HtmlResult);
                        }
                        else{
                            alert("A rua não foi localizada.\nVeja se o nome da rua foi digitado corretamente e tente de novo");
                        }
                        
                        TLUtils.EscondeCarregando();
                        document.body.style.cursor ="default";
                       
                        return;
                        
                }
                else
                {
                    if(objResposta!=null){
                        TLUtils.PossuiMapa=true;
                        
                        var Map = getMaplinkAPI().currentMap;
                        if (objResposta.Count==0 && (Dom.get("palachave").value !="" ||Dom.get('nome').value !="")  ){
                         
                           var zoom= new Number(Map.getZoom());
                           if(Dom.get("endereco").value !="" && zoom > 11){
                               
                                //pega novo mapa e novos valores
                                //de latitude_max,latitude_min
                                Map.zoomOut();
                                         
                                var param = new TLParameter();
                                   //latitude,longitude,latitude_max,latitude_min, longitude_max,longitude_min,uf,localidade,bairro,endereco,numero,nome,palachave
                                    TLBuscaLocal.GetTitles(
                                                        param.latitude,
                                                        param.longitude,
                                                        param.latitude_max,
                                                        param.latitude_min,
                                                        param.longitude_max,
                                                        param.longitude_min,
                                                        param.state,
                                                        param.city,
                                                        param.quarter,
                                                        param.address,
                                                        param.number,
                                                        param.name,
                                                        param.keyword);
                                                        
                                return;
                           }
                            alert("Neste local não existem fornecedores ou serviços relacionados a palavra-chave ou nome digitado. Por favor, faça uma nova busca ou altere o nível de zoom do mapa");
                            Dom.get("result_list1").innerHTML="";
                            TLUtils.EscondeCarregando();
                            document.body.style.cursor ="default";
                            clicou=false;
                            return;
                        }
                        
                        var ativ=objResposta.HtmlResult;
                        if(ativ.indexOf("<ul")==-1){
                            ativ="<ul class=\"result_list1\">"+ativ+"</ul>"
                        }
                        Dom.get("result_list1").innerHTML=ativ;
                        
                        Dom.get('xMedio').value=objResposta.MediumLongitude;
                        Dom.get('yMedio').value=objResposta.MediumLatitude;
                        Dom.get("latitude_max").value=objResposta.LatitudeMax;
                        Dom.get("latitude_min").value=objResposta.LatitudeMin;
                        Dom.get("longitude_max").value=objResposta.LongitudeMax;
                        Dom.get("longitude_min").value=objResposta.LongitudeMin;
                       
                        //marca títulos selecionados no envio de e-mail
                        if(Dom.get("isEmail").value !=""){
                            TLUtils.MarcaTitulos(Dom.get("titulosEmail").value);
                        }
                        if (objResposta.Count==1 || Dom.get("titulosEmail").value !=""){
                            
                            TLBuscaLocal.mapearRegistros.defer(500,this,[1]);
                        }
                        Dom.get("isEmail").value="";
                        TLUtils.HabilitaMapear(objResposta.Count>0);
                    }
                }
                TLUtils.EscondeCarregando();
                document.body.style.cursor ="default";
           },
           failure:function(response){
                TLUtils.HandleError(response.responseText);
           }
          
        },
         PegaTitulos_CallBack: {
            timeout:timeoutPeriod,
            success:function(response){
                
                var objResposta=eval('(' + response.responseText + ')');
                TLUtils.EscondeCarregando();
                if(objResposta!=null){
                 
                    TLUtils.PossuiMapa=true;
                
                   var ativ=objResposta.HtmlResult;
                    if(ativ.indexOf("<ul")==-1){
                        ativ="<ul class=\"result_list1\">"+ativ+"</ul>"
                    }
                    Dom.get("result_list1").innerHTML=ativ;
                    Dom.get("xMedio").value=objResposta.MediumLongitude;
                    Dom.get("yMedio").value=objResposta.MediumLatitude;
                    
                    Dom.get("latitude_max").value=objResposta.LatitudeMax;
                    Dom.get("latitude_min").value=objResposta.LatitudeMin;
                    Dom.get("longitude_max").value=objResposta.LongitudeMax;
                    Dom.get("longitude_min").value=objResposta.LongitudeMin;
                    
                    if (objResposta.Count==0 && (Dom.get("palachave").value !="" ||Dom.get("nome").value !="")){
                        alert("Neste local não existem fornecedores ou serviços relacionados a palavra-chave digitada.\nPor favor, faça uma nova busca ou altere o nível de zoom do mapa");
                        TLUtils.EscondeCarregando();
                        document.body.style.cursor ="default";
                        clicou=false;
                        return;
                    }
                    if (objResposta.Count==1){
                        TLBuscaLocal.mapearRegistros(1);
                    }
                    TLUtils.HabilitaMapear(objResposta.Count>0);
                }
                else
                    alert("Nenhum registro encontrado");
            
          },
          failure:function(response){
            TLUtils.HandleError(response.responseText);
          }
        },
        //Função chamada pelo resultado da busca intermediária
        PegaTitulos:function(latitude,longitude,uf,localidade,bairro,endereco,localidadeEndMap,numero,palachave,nome){
            //cliente - chave-uf-localidade-bairro-endereco-localidadeEndMap-numero-palachave
            var dtExpira= new Date();
            dtExpira.setFullYear(dtExpira.getFullYear()+1);
            TLCookies.SetCookie("bscLocalUF",uf,dtExpira);
            TLCookies.SetCookie("bscLocalCID",localidade,dtExpira);
            TLCookies.SetCookie("bscLocalEndereco",endereco,dtExpira);
            TLCookies.SetCookie("bscLocalNum",numero,dtExpira);
            
            var Map = getMaplinkAPI().currentMap;
            if(Map==null){
	            Map= new MMap2(Dom.get('img_map'));
	        }
	        TLHelper.AdicionaEventosMapa(Map);
	        
	        Map.setCenter(new GLatLng(latitude, longitude),15);
            var centerMarker=TLHelper.AddCenter(Map);
            if(Dom.get("nome").value=="" && Dom.get("palachave").value ==""){
                    //buscou somente endereço
                var linha2=bairro+" - "+ localidade.split("|")[3]+" - " + uf.toUpperCase();
                centerMarker.openInfoWindowHtml(TLUtils.getAdressHtml(endereco,numero,linha2));
                GEvent.addListener(centerMarker, "mouseover", function() {  
                    this.openInfoWindowHtml(TLUtils.getAdressHtml(Dom.get("endereco").value,Dom.get("numero").value,linha2)); 
                });
            }
            var param= new TLParameter();
            var combinada=Dom.get("combinada").value;
            if(combinada=="0"){
               TLUtils.EscondeCarregando();
               return;
            }
            if(nome !="" || palachave !=""){
                var params=param.toQueryString()+"&method=GetTitles";

              YAHOO.util.Connect.asyncRequest('POST','busca_local.ashx',TLBuscaLocal.PegaTitulos_CallBack,params);      
              //  string latitude,string longitude, string keyword, string state, string city, string quarter, string address, string number,string name
   
            }
            else{
                TLUtils.EscondeCarregando();
            }
          
        },
        mapearRegistros:function(pagina){
            var param= new TLParameter();
           
            if(param.selectedTitles=="" && (param.keyword!="" || param.name!="")){
                alert("Selecione pelo menos um título");
                return;
            }
            TLUtils.CarregandoTitulos();
            Dom.get("paginacao").value=pagina;
            //string latitude, string longitude, string latitudeMax,string latitudeMin,
            //string longitudeMax,string longitudeMin, string keyword, string state, string city, string quarter, string address, string number, string name, string selectedTitles
            var params="latitude="+param.latitude+"&longitude="+param.longitude+"&latitude_max="+ param.latitude_max+"&latitude_min="+param.latitude_min+
               "&longitude_max="+param.longitude_max+"&longitude_min="+param.longitude_min+
               "&state="+param.state+"&city="+param.city+"&quarter="+param.quarter+
               "&address="+param.address+"&number="+param.number+"&name="+param.name+
               "&keyword="+param.keyword+"&selectedTitles="+param.selectedTitles+"&pagina="+pagina+"&method=MapRegistries";
            
          
            
            YAHOO.util.Connect.asyncRequest('POST','busca_local.ashx',TLBuscaLocal.ProcessaResposta,params);   
        },
        ProcessaResposta:{
               timeout:timeoutPeriod,
               success:function(response){
                    TLUtils.EscondeCarregando();
                    Dom.get("poi_local").value="";
                  
                    var objResposta=eval('(' + response.responseText + ')');
                    var Map=getMaplinkAPI().currentMap;
                   
                    if(Map==null){
	                        Map= new MMap2(Dom.get('img_map'));
	                }
	                else{
                        Map.clearOverlays();
                    }
                    var regs;
                  
                    if(objResposta.Registries==null || objResposta.Registries==""){
                         alert("Neste local não existem fornecedores ou serviços relacionados à palavra-chave ou nome digitado. Por favor, faça uma nova busca.");
                         Dom.get('result_list2').innerHTML = "";
                         Dom.get('divResultadoBusca').innerHTML="";
                         Dom.get('divPaginacoBusca').innerHTML="";
                         return;
                    }
                  
                    regs=eval(objResposta.Registries);
                    
                    TLBuscaLocal.markers =[];
                    for(var i=0;i< regs.length;i++){
                        var curReg= regs[i];
                        var point = new GLatLng(curReg.Latitude.replace(",","."), curReg.Longitude.replace(",","."));
                        var mcIcon = new GIcon(Map.iconDefault);
                        var imgBalao = ImgPath + "/img/por_servmapa_balao" + (i+1);
                        if (curReg.IsContract)
                        {
                            imgBalao += "_an";
                        }
                        imgBalao+=".gif";
	                    mcIcon.image = imgBalao;
	                    mcIcon.shadowSize= new GSize(0,0);//sem sombra
	                    mcIcon.iconSize = new GSize(27, 22);
						mcIcon.iconAnchor = new GPoint(27/2, 11);
	                    var marker=new GMarker(point, mcIcon);
	                    marker.registry=curReg;
	                    TLBuscaLocal.markers.push(marker);
	                    Map.addOverlay(marker);
	                    
                        GEvent.addListener(marker, "mouseover", function() {  
                           var regAtu=this.registry;
		                   this.openInfoWindowHtml(TLUtils.getRegistryHtml(regAtu)); 
	                    });
                    }
                    Dom.get('result_list2').innerHTML = objResposta.ListRegistries;
                    Dom.get('divResultadoBusca').innerHTML=objResposta.ResultList;
                    Dom.get('divPaginacoBusca').innerHTML=objResposta.ResultPaging;
                   
                 
                    if(objResposta.Activities !=""){
                        //veio de MapZoom ou de navegação
                        TLUtils.PossuiMapa=true;
                        var ativ=objResposta.Activities;
                        if(ativ.indexOf("<ul")==-1){
                            ativ="<ul class=\"result_list1\">"+ativ+"</ul>"
                        }
                        Dom.get("result_list1").innerHTML=ativ;
                        Dom.get("buscouPoi").value="";
                    }
               },
               failure:function(resp){
                
                TLUtils.HandleError(resp.responseText);
               }
        },
        /*
            callback para a paginação de endereços
        */
        GetAdressList_callBack:function(aInfo){
                 
                TLUtils.EscondeCarregando();
                 if(!aInfo || !aInfo.recordCount){  //endereço não encontrado ou erro no processo.
					if(!aInfo){
						alert("Não foi possível obter o endereço.");
					}else{
						alert("Endereço não encontrado.");
					}
					return;
			   }
               if(aInfo.recordCount > 1){
                  TLHelper.MostraEndereco("endereco",aInfo);
               }
               else{
                      
                        var objResposta;
                        if(aInfo.poiLocations){
                           objResposta =aInfo.poiLocations[0];
                           Dom.get("endereco").value=objResposta.name;
                          
                        }
                        else{
                            objResposta=aInfo.addressLocation[0];
                            Dom.get("endereco").value=objResposta.address.street;
							Dom.get("numero").value=objResposta.address.houseNumber;
                        }  
                        
                        Dom.get("xMedio").value= objResposta.point.x; 
                        Dom.get("yMedio").value= objResposta.point.y;
                       
                        var Map = getMaplinkAPI().currentMap;
                        TLHelper.AdicionaEventosMapa(Map);
                        //endereço
                        Map.setCenter(new GLatLng(Dom.get("yMedio").value, Dom.get("xMedio").value), 17);
                        var centerMarker=TLHelper.AddCenter(Map);
                      
                        if(Dom.get("nome").value=="" && Dom.get("palachave").value =="" && objResposta.address ){
                            //buscou somente endereço
                            var linha2=objResposta.address.district+" - "+ Dom.get("localidade").value.split("|")[3] +" - "+ Dom.get("uf").value.toUpperCase();
                            centerMarker.openInfoWindowHtml(TLUtils.getAdressHtml(Dom.get("endereco").value,Dom.get("numero").value,linha2));
                            GEvent.addListener(centerMarker, "mouseover", function() {  
                               
		                       this.openInfoWindowHtml(TLUtils.getAdressHtml(Dom.get("endereco").value,Dom.get("numero").value,linha2)); 
	                        });
                        
                        }
                        
                        var combinada= Dom.get("combinada").value;
                        if(combinada=="0"){
                            TLUtils.EscondeCarregando();
                            return;
                        }
                        if(Dom.get("nome").value!="" || Dom.get("palachave").value !=""){
                            var param = new TLParameter();
                           //latitude,longitude,latitude_max,latitude_min, longitude_max,longitude_min,uf,localidade,bairro,endereco,numero,nome,palachave
                            TLBuscaLocal.GetTitles(
                                                param.latitude,
                                                param.longitude,
                                                param.latitude_max,
                                                param.latitude_min,
                                                param.longitude_max,
                                                param.longitude_min,
                                                param.state,
                                                param.city,
                                                param.quarter,
                                                param.address,
                                                param.number,
                                                param.name,
                                                param.keyword);
                                                
                       }
               }
        }
       
};
/*
    classe auxiliar para recuperar parâmetros comuns da busca local
*/
TLParameter= function(){
    this.GetValues();
}
TLParameter.prototype={
    //latitude, longitude, keyword, state, city, quarter, address, number, name, selectedTitles
    GetValues:function(){
        this.latitude= Dom.get("yMedio").value;
        this.longitude= Dom.get("xMedio").value;
        this.keyword= Dom.get("palachave").value;
        this.state= Dom.get("uf").value;
        this.city= Dom.get("localidade").value;
        this.quarter=Dom.get("bairro").value;
        this.address= Dom.get("endereco").value;
        this.number=Dom.get("numero").value;
        this.name= Dom.get("nome").value;
        this.selectedTitles=TLUtils.titulosSelecionados();
        this.latitude_max= Dom.get("latitude_max").value;
        this.latitude_min= Dom.get("latitude_min").value;
        this.longitude_max= Dom.get("longitude_max").value;
        this.longitude_min= Dom.get("longitude_min").value;
        this.zoom= Dom.get("zoom").value;
      
    },
   /*
    tranforma os parâmetros em QueryString 
    para envio por e-mail
   */ 
   toQueryString:function(){
        var strTemp= new String();
       
        for(p in this){
            if(p!="GetValues" && p !="toQueryString" && p!="toJSONString"){
                strTemp += p+"="+ encodeURI(this[p])+ "&";
            }
        }
        return strTemp.substr(0,strTemp.length-1);
   } 
}
/*
 função escrita pelo dreamweaver
*/
function MM_swapImage() { //v3.0
		var i,j=0,x,a=MM_swapImage.arguments;
		document.MM_sr=new Array;
		for(i=0;i<(a.length-2);i+=3)
			if ((x=MM_findObj(a[i]))!=null){
				document.MM_sr[j++]=x;
				if(!x.oSrc)
					x.oSrc=x.src;
				x.src=a[i+2];
			}
}
//usada no mouse over da lista de registros
function LimpaFichas(){
//alert("limpa");

}

function Limpa_Baloes(){
}
function ClearMenu(){
}
/*Funcoes utilizadas para no funcionamento do Menu*/

function ExibeFicha() { //v3.0
//    var i,obj;
//    var args=ExibeFicha.arguments;
//    var index=args[0].replace("ficha","");
//    var markers= TLBuscaLocal.markers;
//    var Map=getMaplinkAPI().currentMap;
//    Map.closeInfoWindow(); 
//    markers[index].openInfoWindow();
}

function FocoBalao(balao, evento, zindex)
{
  
	var indice= balao.replace("balao","");
	
	
}

function FocoRegistro(registro, evento)
{
    
	if ((obj=Dom.get(registro))!=null){
		if(evento == 'over')
			obj.style.background='#FFCC00';
		else
			obj.style.background='';
	}
}

//click 
function ExibeRegistro(index){
 
   var markers= TLBuscaLocal.markers;
   var Map=getMaplinkAPI().currentMap;
   Map.closeInfoWindow(); //fecha o balão aberto
   var curMarker=markers[index-1];
   var regAtu=curMarker.registry;
   curMarker.openInfoWindowHtml(TLUtils.getRegistryHtml(regAtu)); 
}

function maplink(link)
{
   if(screen.height > 600)
      window.open(link, 'Mapa', 'scrollbars=yes,width=670,height=605,resizeable=no,status=yes');
   else
      window.open(link, 'Mapa', 'scrollbars=yes,width=670,height=500,resizeable=no,status=yes');
}
/*fim funcoes menu*/
//TODO --
function Change(toChange,plchave){

}



function popTorpedo(idRegistry){
    window.open('/torpedos/pop_tim.aspx?idrgstr=' +idRegistry,'torpedo','scrollbars=yes,width=448,height=328,resizeable=no,status=yes');
}


