﻿delete Object.prototype.toJSONString;

/*Variaveis*/
var control = null;
var Map = null; var zoom = 16;
var _servidor = Path(window.location.href);
arrayMarker = new Array();
var arrayIcone = "";
var _urlImages = "http://corp.maplink.com.br/sodexhopass/img/";
arrayMarker = new Array();

///Caminhos para certas informações
function Path(endereco) {
    var x;
    for (x = endereco.length - 1; x >= 0; x--) {
        if (endereco.substring(x, x + 1) == "/") {
            break;
        }
    }
    return endereco.substring(0, x + 1);
}
/*Abre pop-up com dados da cobertura*/
function abrePopup() {
    window.open("cobertura.aspx", "Cobertura", "width=700px, height=620px, scrollbar=yes");
}
/*Passa dados do serviço selecionado para próxima tela.*/
function lf_BuscaDados(stServico) {
    document.getElementById("hdnStServico").value = stServico;
    document.forms[0].action = "DadosBusca.aspx";
    document.forms[0].submit();
}

/*Envia dados de busca de estabelecimentos para tela de listagem de dados.*/
function enviaDadosEstab() {
    document.getElementById("hdnDados").value = "bEstab" + "|" + document.getElementById("cboUF").value + "|" + document.getElementById("cboCidade").value + "|";
    if (document.getElementById("cboBairro").value == "-1") 
        document.getElementById("cboBairro").value = "";
    document.getElementById("hdnDados").value += document.getElementById("cboBairro").value + "|";
    if (document.getElementById("rbNome").checked)
        document.getElementById("hdnDados").value += "nome" + "|";
    else
        document.getElementById("hdnDados").value += "endereco" + "|";
    document.getElementById("hdnDados").value += document.getElementById("cboServico").value + "|" + "";
    document.getElementById("hdnEstab").value = "";
    document.forms[0].action = "listaDados.aspx";
    document.forms[0].submit();
}
function enviaDadosEstabCBS() {
    document.getElementById("hdnDados").value = "bEstab" + "|" + document.getElementById("cboUF").value + "|" + document.getElementById("cboCidade").value + "|";
    if (document.getElementById("cboBairro").value == "-1")
        document.getElementById("cboBairro").value = "";
    document.getElementById("hdnDados").value += document.getElementById("cboBairro").value + "|";
    if (document.getElementById("rbNome").checked)
        document.getElementById("hdnDados").value += "nome" + "|";
    else
        document.getElementById("hdnDados").value += "endereco" + "|";
    if (document.getElementById("cboServicos").value) {
        if (document.getElementById("cboServicos").value == "-1" || document.getElementById("cboServicos").value == "Selecione um Serviço")
            document.getElementById("cboServicos").value = "";
        document.getElementById("hdnDados").value += document.getElementById("cboServico").value + "|" + document.getElementById("cboServicos").value;
    }
    else
        document.getElementById("hdnDados").value += document.getElementById("cboServico").value + "|" + "";
    document.getElementById("hdnEstab").value = "";
    document.forms[0].action = "listaDados.aspx";
    document.forms[0].submit();
}
/*Envia dados do CEP para tela de listagem de dados.*/
function enviaDadosCep() {
    document.getElementById("hdnDados").value = "bCep" + "|" + document.getElementById("txtCep").value + "|" + document.getElementById("cboRaioCep").value + "|" + document.getElementById("cboServicoEnd").value;
    document.getElementById("hdnEstab").value = "";
    document.forms[0].action = "listaDados.aspx";
    document.forms[0].submit();
}
/*Envia dados do Endereco para tela de listagem de dados.*/
function enviaDadosEnd(x, y) {
    document.getElementById("hdnDados").value = "bEnd" + "|" + x + "|" + y + "|" + document.getElementById("cboRaioEnd").value + "|" + document.getElementById("cboServicoEnd").value;
    document.getElementById("hdnEstab").value = "";
    document.forms[0].action = "listaDados.aspx";
    document.forms[0].submit();
}
/*Envia dados + nome estabelecimento para tela de listagem de dados.*/
function enviaNomeEst() {
    document.getElementById("hdnDados").value = "bNome" + "|" + document.getElementById("cboNmEst").value + "|" + document.getElementById("cboCidNmEst").value + "|" + document.getElementById("txtEstabelecimento").value + "|";
    if (document.getElementById("rbNmEstb").checked)
        document.getElementById("hdnDados").value += "nome" + "|";
    else
        document.getElementById("hdnDados").value += "endereco" + "|";
    document.getElementById("hdnDados").value += document.getElementById("cboServicoNmEstb").value;
    document.forms[0].action = "listaDados.aspx";
    document.forms[0].submit();
}
/* Trata paramentro para voltar a página certa*/
function back(tp) {
    document.getElementById("hdnTpBusca").value = tp;
    document.forms[0].action = "DadosBusca.aspx";
    document.forms[0].submit();
}
function vlt(tipo) {
    var dados = document.getElementById("hdnDados").value.split("|");
    document.getElementById("hdnTpBusca").value = dados[0];
    document.forms[0].action = "DadosBusca.aspx";
    document.forms[0].submit();
}
function vltB() {
    document.forms[0].action = "DadosBusca.aspx";
    document.forms[0].submit();
}
/*Salva dados de parametross*/
function salvaDados(dados, tpBusca, tpServico) {
    document.getElementById("hdnDados").value = dados;
    document.getElementById("hdnTpBusca").value = tpBusca;
    document.getElementById("hdnStServico").value = tpServico;
}
/*Efetua post para mostar mapa*/
function montaLink(tpBusca, id){
    document.getElementById("hdnId").value = id;
    document.getElementById("hdnTpBusca").value = tpBusca;
    document.forms[0].action = "mapa.aspx";
    document.forms[0].submit();
}
/*Mostra mapa*/
function mostraMapa() {
    $("MapaEmailRota").style.display = "none";
    var coords = document.getElementById("hdnCoords").value.split("|");
    
    var x = coords[0];
    var y = coords[1];

    if (typeof MaplinkAPI == "undefined") return;
    control = new MaplinkAPI();
    if (!control) return;
    control.setDivWait("divLoad");
    getMaplinkAPI().setAutoShowErrors(false);
 
    if (getMaplinkAPI().currentMap == null) {
        Map = new MMap2($("divMapa"));
        getMaplinkAPI().currentMap = Map;
        Map.addControl(new MMapControls());
        Map.addControl(new GLargeMapControl());
    }
    
    var add = new MAddressLocation();
    add.point = new MPoint(x, y);
    arrayMarker.push(add);

    var mcIcon = new GIcon();
     mcIcon.image = _urlImages + "ic_endereco.gif";
     mcIcon.iconSize = new GSize(10, 10);
     mcIcon.shadow = "";
     mcIcon.shadowSize = null;
     mcIcon.infoShadowAnchor = null;
     mcIcon.iconAnchor = new GPoint(5, 5);
     Map.setCentralIcon(mcIcon);

     Map.showAddressLocation(add, zoom);
     var point = new GLatLng(y, x);
     var marker = createMarker(point, 1, "<div style='width:200px;height:70px;'><b>Estabelecimento Pesquisado</b><br /><br /> " 
	        + $("lblNomeEstab").innerHTML.toUpperCase() + '<br />'
	        + $("lblEndereco").innerHTML.toUpperCase().replace("ENDERE&CCEDIL;O: ", "") + '<br />' + $("lblBairro").innerHTML.toUpperCase().replace("BAIRRO: ", "") + ' - ' + $("lblCidade").innerHTML.toUpperCase().replace("CIDADE: ", "") + '/' + $("lblEstado").innerHTML.toUpperCase().replace("ESTADO: ", "") + "</div>");
     Map.addOverlay(marker);
 }
/*Cria o marker no mapa*/
function createMarker(point, number, txt) {
    Map = getMaplinkAPI().currentMap;
    
    var myIcon = new GIcon();
    myIcon.image = _urlImages;
    myIcon.iconSize = new GSize(10, 10);
    myIcon.shadow = "";
    myIcon.shadowSize = null;
    myIcon.infoShadowAnchor = null;
    myIcon.iconAnchor = new GPoint(5, 5);
    myIcon.infoWindowAnchor = new GPoint(5, 5);
    Map.setCentralIcon(myIcon);
    
    var markerOptions = { icon: myIcon };
    var marker = new GMarker(point, markerOptions);

    marker.value = number;

    if (txt) {
        GEvent.addListener(marker, "mouseover", function() {
            var myHtml = txt;
            marker.openInfoWindowHtml(myHtml);
        });
    }
    return marker;
}
/*Monta rota entre os pontos*/
function montaRota(end, nr, x, y) {
    var Map = null;
    
    if (getMaplinkAPI().currentMap == null) {
        Map = new MMap2($("divMapa"));
        getMaplinkAPI().currentMap = Map;
        Map.addControl(new MMapControls());
        Map.addControl(new GLargeMapControl());
    }

    if (typeof MaplinkAPI == "undefined") return;
    control = new MaplinkAPI();
    if (!control) return;
    control.setDivWait("divLoad");
    getMaplinkAPI().setAutoShowErrors(false);
     
    var endD = $("lblEndereco").innerHTML.replace("Endereço: ", "").split(", ");
    var mAddrD = new MAddressLocation();
    mAddrD.address = new MAddress();
    mAddrD.address.street = endD[0].toUpperCase();
    mAddrD.address.houseNumber = endD[1];
    mAddrD.address.district = $("lblBairro").innerHTML.toUpperCase().replace("BAIRRO: ", "").toUpperCase();
    mAddrD.address.city = new MCity();
    mAddrD.address.city.name = $("lblCidade").innerHTML.toUpperCase().replace("CIDADE: ", "").toUpperCase();
    mAddrD.address.city.state = $("lblEstado").innerHTML.toUpperCase().replace("ESTADO: ", "").toUpperCase();
    var coordsD = document.getElementById("hdnCoords").value.split("|");

    var xD = coordsD[0];
    var yD = coordsD[1];

    if (!isNaN(xD) && !isNaN(yD) && xD != "" && yD != "") {
        mAddrD.point = new MPoint();
        mAddrD.point.x = parseFloat(xD);
        mAddrD.point.y = parseFloat(yD);
        //arrayMarker.push(mAddrD.point.x, mAddrD.point.y);
    }

    var mAddrO = new MAddressLocation();
    mAddrO.address = new MAddress();
    mAddrO.address.street = end.replace("R.", "").toUpperCase();
    mAddrO.address.houseNumber = nr;
    mAddrO.address.city = new MCity();
    mAddrO.address.city.name = $("lblCidade").innerHTML.toUpperCase().replace("CIDADE: ", "").toUpperCase();
    mAddrO.address.city.state = $("lblEstado").innerHTML.toUpperCase().replace("ESTADO: ", "").toUpperCase();

    if (!isNaN(x) && !isNaN(y) && x != "" && y != "") {
        mAddrO.point = new MPoint();
        mAddrO.point.x = parseFloat(x);
        mAddrO.point.y = parseFloat(y);
        //arrayMarker.push(mAddrO.point.x, mAddrO.point.y);
    }

    arrayMarker.push(mAddrD);
    arrayMarker.push(mAddrO);
    var mapCfg = new MMapConfig("divMapa", new MMapSize(486, 330));
    var mPag = new MPaginationControl(['', ''], 'tit_tabela', '', 10);
    var ro = MConvertToRouteOptions([1, 0, 2, 60, 12, 80, 0, 0]);
    
    var rMann = new MRouteMannager(mPag, mapCfg, ro, "divDescRota");
    rMann.descrOptions = montaOpcoesDescrRota();
    rMann.createRoute([mAddrO, mAddrD],
        function(estagioRota) {
        if (estagioRota == M_STAT_ROUTE) {

            //$('divLoad').style.display = 'none';
            var Map = getMaplinkAPI().currentMap;
            Map.addControl(new MMapControls());
            Map.addControl(new GLargeMapControl());

            if (mAddrD) {
                var strInnerHTMLOrigem = mAddrD.address.street + ', ' + mAddrD.address.houseNumber + ' (' + mAddrD.address.city.name + '/' + mAddrD.address.city.state + ')';
                var end = control.currentMap.routeEndMarker;
                GEvent.addListener(end, "mouseover", function() {
                    control.currentMap.routeEndMarker.openInfoWindowHtml("<div style='width:200px;height:35px'><b>Ponto de Destino</b><br /><br /> "
						        + $("lblNomeEstab").innerHTML.toUpperCase() + '<br />'
						        + mAddrD.address.street.toUpperCase() + ',' + mAddrD.address.houseNumber + '<br />'
						        + (mAddrD.address.district == null || mAddrD.address.district == "undefined" ? "" : mAddrD.address.district.toUpperCase()) + ' - '
						        + mAddrD.address.city.name + ', ' + mAddrD.address.city.state + "</div>");
                });
            }
            $("lblEnderecoD").innerHTML = "Endereço: " + mAddrO.address.street.toUpperCase() + ", " + mAddrO.address.houseNumber.toUpperCase();
            $("lblCidadeD").innerHTML = "Cidade: " + mAddrO.address.city.name.toUpperCase();
            $("lblEstadoD").innerHTML = "Estado: " + mAddrO.address.city.state.toUpperCase();

            if (mAddrO) {
                var strInnerHTMLDestino = mAddrO.address.street + ', ' + mAddrO.address.houseNumber + ' (' + mAddrO.address.city.name + '/' + mAddrO.address.city.state + ')';
                var start = control.currentMap.routeStartMarker;
                GEvent.addListener(start, "mouseover", function() {
                    control.currentMap.routeStartMarker.openInfoWindowHtml("<div style='width:200px;height:25px'><b>Ponto de Origem</b><br /><br /> "
					              + mAddrO.address.street.toUpperCase() + ',' + mAddrO.address.houseNumber + '<br />'
					              + mAddrO.address.city.name + ', ' + mAddrO.address.city.state + "</div>");
                });
            }
            $("MapaEmail").style.display = "none";
            $("MapaEmailRota").style.display = "block";

            montaDivTotalRota(rMann);

            $("divDados").style.display = "none";
            $("divDDRota").style.display = "block";
            $("tbDadosDestino").style.display = "block";
            $("divOrigem").style.display = "block";
            $("divDestino").style.display = "block";
        }
    });
}
/*Monta div com total de rota*/
function montaDivTotalRota(rMann) {
    var innerHTML = '<b>Distância total percorrida: </b><span>';
    var dTotal = rMann.routeInfo.routeTotals.totalDistance;
    var sDistancia = '';
    if (dTotal < 1) sDistancia = String(parseInt(dTotal * 1000)) + " metros";
    else sDistancia = String(dTotal).replace(/\./g, ",") + " Km";
    innerHTML += sDistancia;
    innerHTML += '</span>';
    $("divDistTot").innerHTML = innerHTML;
} 
/*RouteDescription*/
function montaOpcoesDescrRota() {
    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": montaTDescrRota()
    };
    return opcoesDescrRota;
}
/*Monta Tabela desc Rota*/
function montaTDescrRota() {
    var tDescRota = new MTable(486);
    tDescRota.setLineSeparator(
	'<tr><td height="1" bgcolor="#F5F5F5" colspan="5" ><\/td><\/tr>\n'
    );
    tDescRota.setLineStyle('height: 10px; background-color: White');
    tDescRota.setLineAlterStyle('height: 10px; ; background-color: #F5F5F5');
    tDescRota.noHeader = true;
    tDescRota.insertLine('<tr><td colspan="5">'
                + '<table border="0" cellspacing="0" cellpadding="1">'
                + '<table style="width:486px;" bgcolor="#F5F5F5">'
                + '</TD></TR></table>');
    return tDescRota;
}
/*Abre janela para envio de Email*/
function EnviaEmail() {
    var estab = $('lblNomeEstab').innerHTML.toUpperCase().replace("<STRONG>", "").replace("</STRONG>", "");
    window.open('email.aspx?id=' + $("hdnId").value + '&estab=' + estab, 'Mapa', 'width=560, height=500, top=yes, scrollbars=no');
}
/*Imprime mapa*/
function lf_PrintMapa() {
    window.open('printMapa.aspx', 'PrintMapa', 'top=yes,toolbar=no,scrollbars=yes,width=566,height=500, top=yes');
}
/*Imprime rota do mapa*/
function lf_PrintMRota() {
    window.open('printMRota.aspx', 'PrintMapaRota', 'top=yes,toolbar=no,scrollbars=yes,width=566,height=600, top=yes');
}
/*Imprime descricao da rota*/
function lf_PrintRota() {
    window.open('printRota.aspx', 'PrintRota', 'top=yes,toolbar=no,scrollbars=yes,width=566,height=600, top=yes');
}
function grvSv(st) {
    document.getElementById("hdnStServico").value = st;
}
