﻿var control=null;
var pop = 0;
function lf_runFindMap(){
	var addr= new MAddressLocation();
	addr.point= new Point($('x').value,$('y').value);
    var map= new MMap2($("map"));
    map.showAddressLocation(addr,15);
    map.addControl(new MMapControls());	
    map.addControl(new GLargeMapControl());
	map.addInternalPOIHandler();
    GEvent.addListener(map.currentMarker, "click", function() {
map.currentMarker.openInfoWindowHtml(
					"<div style='font-family:Verdana;font-size:10px;'><b>"
					         + $('nome').value + ($('telefone').value == '' ? '' : ', Telefone: ' + $('telefone').value)		         
					         + '<BR>' 
							 + $('endereco').value + ', '+ $('numero').value
							 + '<BR>'
							 + $('cidade').value + ', ' + $('uf').value
					         +"</b></div>");
});
}
function initialize_Detalhe(){
    control= new MaplinkAPI();
    lf_runFindMap();
}
function load_Chegando(){
    MElement.hide('PaginaDetalhe');
    MElement.hide('PaginaSaindo');
    MElement.show('PaginaChegando');
}
function load_Saindo(){
    MElement.hide('PaginaDetalhe');
    MElement.hide('PaginaChegando');
    MElement.hide('PaginaChegandoMapa');
    MElement.show('PaginaSaindo');
}
var lnkMapas = '<a onclick="pageTracker._link(\'http://www.ilocal.com.br/default.aspx\');return false" href="http://www.ilocal.com.br/default.aspx">HOME</a> &gt; <a href="endereco.aspx">Mapas</a> &gt; Mapa do Endere&#231;o';
var lnkRotas3 = '<a onclick="pageTracker._link(\'http://www.ilocal.com.br/default.aspx\');return false" href="http://www.ilocal.com.br/default.aspx">HOME</a> &gt; <a href="caminho.aspx">Rotas</a> &gt; Lista de Endere&#231;o';
var lnkRotas2 = '<a onclick="pageTracker._link(\'http://www.ilocal.com.br/default.aspx\');return false" href="http://www.ilocal.com.br/default.aspx">HOME</a> &gt; <a href="caminho.aspx">Rotas</a> &gt; Mapa da rota ';
var lnkRotas1 = '<a onclick="pageTracker._link(\'http://www.ilocal.com.br/default.aspx\');return false" href="http://www.ilocal.com.br/default.aspx">HOME</a> &gt; <a href="caminho.aspx">Rotas</a>';
function historyback(){
    switch(arguments[0]){
        case 'PaginaDetalhe': MElement.show('PaginaDetalhe'); MElement.hide('PaginaChegando');MElement.hide('PaginaSaindo');MElement.hide('PaginaChegandoMapa');MElement.hide('PaginaSaindoMapa');$('bread_crumbs').innerHTML = lnkMapas; break;
        case 'PaginaSaindo' : MElement.hide('PaginaSaindoMapa');MElement.show('PaginaSaindo');$('bread_crumbs').innerHTML = lnkRotas1;break;
        case 'PaginaChegando' : MElement.hide('PaginaChegandoMapa');MElement.show('PaginaChegando');$('bread_crumbs').innerHTML = lnkRotas1;break;
    }
}
function lf_runFindMAddr(){
    if(arguments[0] == 'chegando'){  
       $('bread_crumbs').innerHTML = lnkRotas3;
       $('msgWait2').style.visibility='visible';$('btn2').style.visibility='hidden';
       var mPag=new MPaginationControl('cmdPaginacao_chegando','style1','',10);
       var t= new MTable(500,'cellspacing="1" cellpadding="1" style="border-bottom:solid 1px black;"');
       mPag.onShow=function(){$('msgWait2').style.visibility='hidden';$('btn2').style.visibility='visible'};
       t.add(new MColumn('<BR><b>Logradouro</b>','35%','left',M_TP_STREET,M_LABEL));      
       t.add(new MColumn('<BR><b>N&ordm;</b>','10%','left',M_TP_NUMBER,M_LABEL));
       t.add(new MColumn('<BR><b>Bairro</b>','22%','left',M_TP_DISTRICT,M_LABEL));
       t.add(new MColumn('<BR><b>Cep</b>','13%','left',M_TP_ZIP,M_LABEL));
       t.add(new MColumn('<center>Ver Mapa</center>','10%','right',M_TP_LINK));            
       t.setLineSeparator('<tr><td height="1" bgcolor="#666" colspan="5"><\/td><\/tr>\n');   
       t.setLineStyle('height:13px;color:#666;'); 
       t.setLineAlterStyle('height=13px;color:#666;');
       t.setLineClass('texto');
       t.setLineAlterClass('texto');
       t.setTitleClass('titulo');
       mPag.table=t;    
       var mGeo=new MGeocoderMannager(mPag,'pgChegando_cmdMap');
       var mAddr=fMSearch.getMAddress();
       var mapCfg= new MMapConfig('pgChegando_cmdMap',new MMapSize(500,500));
       mGeo.findAddress(mAddr,
       function(aLoc)
       {
    	  $('bread_crumbs').innerHTML = lnkRotas2;
    	  $('lblOrigem_PaginaChegandoMapa').innerHTML = aLoc.address.street + ', ' + aLoc.address.houseNumber 
                        + ', <B>CEP:&nbsp;</B>' + aLoc.address.zip
                        + ' <B>Cidade (Bairro):</B> ' + aLoc.address.city.name + '&nbsp;(' + aLoc.address.district + ')' 
                        + ' <B>UF:</B> ' + aLoc.address.city.state;
    	  RoteInit('chegando',aLoc.point.x,aLoc.point.y,aLoc.address.street,aLoc.address.houseNumber,aLoc.address.city.name,aLoc.address.city.state,aLoc.address.zip,document.getElementById('x').value,document.getElementById('y').value,document.getElementById('numero').value);
	   });}
    else if(arguments[0] == 'saindo'){
       $('msgWait3').style.visibility='visible';$('btn3').style.visibility='hidden';
       $('bread_crumbs').innerHTML = lnkRotas3;
       var mPag=new MPaginationControl('cmdPaginacao_saindo','style1','',10);
       mPag.onShow=function(){$('msgWait3').style.visibility='hidden';$('btn3').style.visibility='visible'};
       var t= new MTable(500,'cellspacing="1" cellpadding="1" style="border-bottom:solid 1px black;"');
       t.add(new MColumn('<BR><b>Logradouro</b>','35%','left',M_TP_STREET,M_LABEL));      
       t.add(new MColumn('<BR><b>N&ordm;</b>','10%','left',M_TP_NUMBER,M_LABEL));
       t.add(new MColumn('<BR><b>Bairro</b>','22%','left',M_TP_DISTRICT,M_LABEL));
       t.add(new MColumn('<BR><b>Cep</b>','13%','left',M_TP_ZIP,M_LABEL));
       t.add(new MColumn('<center>Ver Mapa</center>','10%','right',M_TP_LINK));            
       t.setLineSeparator('<tr><td height="1" bgcolor="#666" colspan="5"><\/td><\/tr>\n');   
       t.setLineStyle('height:13px;color:#666;'); 
       t.setLineAlterStyle('height=13px;color:#666;');
       t.setLineClass('texto');
       t.setLineAlterClass('texto');
       t.setTitleClass('titulo');
       mPag.table=t;    
       var mGeo=new MGeocoderMannager(mPag,'map_saindo');
       var mAddr=fMSearch.getMAddress();
       var mapCfg= new MMapConfig('map_saindo',new MMapSize(500,500));
       mGeo.findAddress(mAddr,
       function(aLoc)
       {
    	   $('bread_crumbs').innerHTML = lnkRotas2;
    	   $('lblOrigem_PaginaSaindoMapa').innerHTML = $('lblEndereco').innerHTML;
    	  RoteInit('saindo',aLoc.point.x,aLoc.point.y,aLoc.address.street,aLoc.address.houseNumber,aLoc.address.city.name,aLoc.address.city.state,aLoc.address.zip,document.getElementById('x').value,document.getElementById('y').value,document.getElementById('numero').value);  
	   });
       
    }
}

function RoteInit(tipo,Xx,Yy,Sstreet,Nnumber,Ccity,Sstate,Zzip,Xxx,Yyy,Nnn)
 {
    if(tipo == 'chegando'){
    
    MElement.hide('PaginaChegando');
    MElement.show('PaginaChegandoMapa');
    $('lblDestino_PaginaChegandoMapa').innerHTML = $('lblEndereco').innerHTML;
    
    var mPag=new MPaginationControl(['MPag_chegando','MPag_chegando'],'style1','',10);
    
       var mAddrOrig= new MAddressLocation();
       mAddrOrig.point = new MPoint(Xxx,Yyy);
       mAddrOrig.address= new MAddress();
       mAddrOrig.address.street = $('endereco').value;
       mAddrOrig.address.houseNumber = $('numero').value;
       mAddrOrig.city = new MCity();
       mAddrOrig.city.name = $('cidade').value;
       mAddrOrig.city.state = $('uf').value;
       mAddrOrig.zip = $('cep').value;

       var mAddrDest= new MAddressLocation();
        
        mAddrDest.point= new MPoint(Xx,Yy);
        mAddrDest.address= new MAddress();
        mAddrDest.address.street = Sstreet;
        mAddrDest.address.houseNumber = Nnumber;
        mAddrDest.address.city = new MCity();
        mAddrDest.address.city.name = Ccity;
        mAddrDest.address.city.state = Sstate;
        mAddrDest.address.zip = Zzip;
        
        var mapCfg= new MMapConfig('map_chegando',new MMapSize('100%','100%'));
        
        var ro=MConvertToRouteOptions([0,0,2,60,12,80,0,0]); 

		var t= new MTable(670);
		
		t.setLineSeparator(
			'<tr><td height="1" bgcolor="#FFFFFF" colspan="5" ><\/td><\/tr>\n'
		);
		t.setLineStyle('background-color:#F2F4F7; height=13px;'); 
		t.setLineAlterStyle('height=13px');
		t.setLineClass('descricaoRota');
		t.setLineAlterClass('descricaoRota');
		t.noHeader = true;
		t.insertLine('<tr class="fundocinzaclaro"><td colspan="5">' 
		            + '<table style="width:670px;" bgcolor="#FFFFFF"><TR>'
		            + '<td style="text-align:left"><span class="text_normal" style="text-align:left"><strong>Manobra</strong></span></td>'
		            + '<td style="text-align:right" class="text_normal">Dist&acirc;ncia total: <span id="distTot2"></span></td></tr></table></td></tr>');

		var opcoesDescrRota={
			"imgDir":M_IMG_API+"/route",
			"imgInitRoute":"ico_mapa_origem.gif",
			"imgEndRoute":"ico_mapa_destino.gif",
			"imgContinue":"ico_mapa_up.gif",
			"imgLeft":"ico_mapa_left.gif",
			"imgRight":"ico_mapa_right.gif",
			"imgFind":"img_map_lupa.gif",
			"tableDescr":t
		};
    
    var rMann= new MRouteMannager(mPag,mapCfg,ro,'cmdDescrRota_chegando');
    
        rMann.descrOptions=opcoesDescrRota;
    rMann.createRoute([mAddrDest,mAddrOrig],
        function(estagioRota){
					if(estagioRota == M_STAT_ROUTE){ //finalizou criacao da rota
						Map = control.currentMap;
						//Obtendo distancia total						
						var dTotal=rMann.routeInfo.routeTotals.totalDistance;
						var sDistancia='';
						if(dTotal < 1)
							sDistancia=String(dTotal).replace(/\./g,",") + " metros";
						else
							sDistancia=String(dTotal).replace(/\./g,",") + " Km";
						$('distTot2').innerHTML = sDistancia;
						var destino=rMann.addrLocs[0].address;
						var origem=rMann.addrLocs[1].address;
						var map = getMaplinkAPI().currentMap;
	                    map.addControl(new MMapControls());	
            	        map.addControl(new GLargeMapControl()); 
			map.addInternalPOIHandler();
				
						//Criando info window para inicio e fim da rota
						var start=getMaplinkAPI().currentMap.routeStartMarker;
						GEvent.addListener(start, "mouseover", function() {
							getMaplinkAPI().currentMap.routeStartMarker.openInfoWindowHtml("<div style='width:300px;height:50px;'> <B>Ponto de Origem</B><BR> " 
										+ destino.street.toUpperCase() + ',' + destino.houseNumber.toUpperCase()+ '<BR>' 
										+ (destino.district == null || destino.district == "undefined" ? "" : destino.district + ', ') + destino.city.name + ', ' + destino.city.state + '<BR><B>CEP:&nbsp;</B>' + destino.zip + "</div>");
						});
						var	end=getMaplinkAPI().currentMap.routeEndMarker;
						GEvent.addListener(end, "mouseover", function() {
							getMaplinkAPI().currentMap.routeEndMarker.openInfoWindowHtml("<div style='width:300px;height:50px;'> <B>Ponto de Destino</B><BR> " 
										+ $('endereco').value + ',' + $('numero').value+ '<BR>' 
										+ $('cidade').value + ', ' + $('uf').value + '<BR><B>CEP:&nbsp;</B>' +$('cep').value + "</div>");
						});
					}
        }
    );
    }
    else if(tipo == 'saindo'){
    //
    MElement.hide('PaginaSaindo');
    MElement.show('PaginaSaindoMapa');
     //
        var mPag=new MPaginationControl(['MPag_saindo','MPag_saindo'],'style1','',10);
    var mAddrOrig= new MAddress();
       mAddrOrig.street = '';
       mAddrOrig.houseNumber = Nnumber;
       mAddrOrig.city = new MCity();
       mAddrOrig.city.name = '';
       mAddrOrig.city.state = '';
       //alert("CEP ->" + $('txtCEPOrigem').value);
       mAddrOrig.zip = Zzip;

        //montando endereco de destino
        var mAddrDest= new MAddressLocation();
        
        mAddrDest.point= new MPoint(Xxx,Yyy);
        mAddrDest.address= new MAddress();
        mAddrDest.address.street = document.getElementById('endereco').value;
        mAddrDest.address.houseNumber = document.getElementById('numero').value;
        mAddrDest.address.city = new MCity();
        mAddrDest.address.city.name = document.getElementById('cidade').value;
        mAddrDest.address.city.state = document.getElementById('uf').value;
        mAddrDest.address.zip = document.getElementById('cep').value;
        
        var mapCfg= new MMapConfig('map_saindo',new MMapSize('100%','100%'));
    
        var ro=MConvertToRouteOptions([0,0,2,60,12,80,0,0]); 

		var t= new MTable(670);
		
		t.setLineSeparator(
			'<tr><td height="1" bgcolor="#FFFFFF" colspan="5" ><\/td><\/tr>\n'
		);
		t.setLineStyle('background-color:#F2F4F7; height=13px;'); 
		t.setLineAlterStyle('height=13px');
		t.setLineClass('descricaoRota');
		t.setLineAlterClass('descricaoRota');
		t.noHeader = true;
		t.insertLine('<tr class="fundocinzaclaro"><td colspan="5">' 
		            + '<table style="width:670px;" bgcolor="#FFFFFF"><TR>'
		            + '<td style="text-align:left"><span class="text_normal" style="text-align:left"><strong>Manobra</strong></span></td>'
		            + '<td style="text-align:right" class="text_normal">Dist&acirc;ncia total: <span id="distTot1"></span></td></tr></table></td></tr>');

		var opcoesDescrRota={
			"imgDir":M_IMG_API+"/route",
			"imgInitRoute":"ico_mapa_origem.gif",
			"imgEndRoute":"ico_mapa_destino.gif",
			"imgContinue":"ico_mapa_up.gif",
			"imgLeft":"ico_mapa_left.gif",
			"imgRight":"ico_mapa_right.gif",
			"imgFind":"img_map_lupa.gif",
			"tableDescr":t
		};
    
    var rMann= new MRouteMannager(mPag,mapCfg,ro,'cmdDescrRota_saindo');
    
        rMann.descrOptions=opcoesDescrRota;
    rMann.createRoute([mAddrDest,mAddrOrig],
        function(estagioRota){
					if(estagioRota == M_STAT_ROUTE){ //finalizou criacao da rota
						Map = control.currentMap;
						//Obtendo distancia total						
						var dTotal=rMann.routeInfo.routeTotals.totalDistance;
						var sDistancia='';
						if(dTotal < 1)
							sDistancia=String(dTotal).replace(/\./g,",") + " metros";
						else
							sDistancia=String(dTotal).replace(/\./g,",") + " Km";
						$('distTot1').innerHTML = sDistancia;

						var origem=rMann.addrLocs[0].address;
						var destino=rMann.addrLocs[1].address;
						
						var map = getMaplinkAPI().currentMap;
	                    map.addControl(new MMapControls());	
            	        map.addControl(new GLargeMapControl()); 
			map.addInternalPOIHandler();


                        $('lblDestino_PaginaSaindoMapa').innerHTML = 
                        destino.street + ', ' + destino.houseNumber 
                        + ', <B>CEP:&nbsp;</B>' + destino.zip
                        + ' <B>Cidade (Bairro):</B> ' + destino.city.name + '&nbsp;(' + destino.district + ')' 
                        + ' <B>UF:</B> ' + destino.city.state;
						var start=getMaplinkAPI().currentMap.routeStartMarker;
						GEvent.addListener(start, "mouseover", function() {
							getMaplinkAPI().currentMap.routeStartMarker.openInfoWindowHtml("<div style='width:300px;height:50px;'> <B>Ponto de Partida</B><BR> " 
										+ origem.street.toUpperCase() + ',' + origem.houseNumber.toUpperCase()+ '<BR>' 
										+ origem.district + ', ' + origem.city.name + ', ' + origem.city.state + '<BR><B>CEP:&nbsp;</B>' + origem.zip + "</div>");
						});
						var	end=getMaplinkAPI().currentMap.routeEndMarker;
						GEvent.addListener(end, "mouseover", function() {
							getMaplinkAPI().currentMap.routeEndMarker.openInfoWindowHtml("<div style='width:300px;height:50px;'> <B>Ponto de Destino</B><BR> " 
										+ destino.street.toUpperCase() + ',' + destino.houseNumber.toUpperCase()+ '<BR>' 
										+ (destino.district == null || destino.district == "undefined" ? "" : destino.district + ', ') + destino.city.name + ', ' + destino.city.state + '<BR><B>CEP:&nbsp;</B>' + destino.zip + "</div>");
						});
					}
        }
    );
  }
}

function f_search(){
    if(arguments[0] == 'saindo'){
        MElement.hide('PaginaDetalhe');
        MElement.show('PaginaSaindo');
        initialize_saindo();
        $('lblPontoSaida').innerHTML = $('lblEndereco').innerHTML;
        $('bread_crumbs').innerHTML = lnkRotas1;
    }
    else if(arguments[0] == 'chegando'){
        MElement.hide('PaginaDetalhe');
        MElement.show('PaginaChegando');
        initialize_chegando();
        $('lblPontoChegada').innerHTML = $('lblEndereco').innerHTML;
        $('bread_crumbs').innerHTML = lnkRotas1;
    }
}

function initialize_saindo(){
        if(typeof MaplinkAPI == "undefined")return; 
        control= new MaplinkAPI();
        if(!control)return;
        var fState= new MField('cmdMEstado_saindo',M_TP_STATE);
        fState.show();
        var fCity= new MField('cmdMCidade_saindo',M_TP_CITY);
        fCity.show();              
        control.findStates(fState, fCity, function(states){
            if(states){
                fMSearch= new MSearchAddress();            
                fMSearch.fState=fState;
                fMSearch.fCity=fCity;
                var fAddress= new MField('cmdMEndereco_saindo',M_TP_STREET,'endereco_saindo');
                var s=fAddress.field.style;
                fAddress.field.onkeypress=control.getDefaultKEnterHandler(lf_runFindMAddr);
                fAddress.field.value="";
                fAddress.show();
                fMSearch.fAddress=fAddress;
                fNumber= new MField('cmdMNumero_saindo',M_TP_NUMBER,'numero_saindo');    
                var s=fNumber.field.style;
                fNumber.field.onkeypress=control.getDefaultKEnterHandler(lf_runFindMAddr);
                fNumber.field.value="";
                fNumber.show();
                fMSearch.fNumber=fNumber;
                fState.field.focus();
                }}); 
}

function initialize_chegando(){
        if(typeof MaplinkAPI == "undefined")return; 
        control= new MaplinkAPI();
        if(!control)return;
		    control.setDivWait("divAguarde"); 
		    MSetDivWait('divAguarde');
        var fState= new MField('cmdMEstado_chegando',M_TP_STATE);
        fState.show();
        var fCity= new MField('cmdMCidade_chegando',M_TP_CITY);
        fCity.show();              
        control.findStates(fState, fCity, function(states){
            if(states){
                fMSearch= new MSearchAddress();            
                fMSearch.fState=fState;
                fMSearch.fCity=fCity;
                var fAddress= new MField('cmdMEndereco_chegando',M_TP_STREET,'endereco_chegando');
                var s=fAddress.field.style;
                fAddress.field.onkeypress=control.getDefaultKEnterHandler(lf_runFindMAddr);
                fAddress.field.value="";
                fAddress.show();
                fMSearch.fAddress=fAddress;
                fNumber= new MField('cmdMNumero_chegando',M_TP_NUMBER,'numero_chegando');    
                var s=fNumber.field.style;
                fNumber.field.onkeypress=control.getDefaultKEnterHandler(lf_runFindMAddr);
                fNumber.field.value="";
                fNumber.show();
                fMSearch.fNumber=fNumber;
                fState.field.focus();
                }}); 
}

function buscarOrigem(){
    if(arguments[0] == 'saindo'){
        if($('endereco_saindo').value != '' && $('endereco_saindo').value.length >= 3){
            lf_runFindMAddr('saindo');
        }else{
            alert('Digite no mínimo 3 caracteres para efetuar a pesquisa !');
            return;
        }
    }else if(arguments[0] == 'chegando'){
        if($('endereco_chegando').value != '' && $('endereco_chegando').value.length >= 3)
        {  
            lf_runFindMAddr('chegando');
        }
        else{
            alert('Digite no mínimo 3 caracteres para efetuar a pesquisa !');
            return;
        }
    }
}

function print_Detalhe(){
    window.open('print_Detalhe.aspx','Print','top=yes,toolbar=no,scrollbars=yes,width=740,height=540');
}