﻿function createMarker(point, number, foto) {

    //mostra os dados do usuario
    //infoUser = userLogado[0].split(";");

    var baseIcon = new GIcon();
    baseIcon.shadow = "images/shadow.png";
    baseIcon.iconSize = new GSize(40, 40);
    baseIcon.shadowSize = new GSize(80, 80);
    baseIcon.iconAnchor = new GPoint(22, 22);
    baseIcon.infoWindowAnchor = new GPoint(9, 2);
    baseIcon.infoShadowAnchor = new GPoint(18, 25);
    baseIcon.image = "imagemUsuarios/" + foto;

    markerOptions = { icon:baseIcon};
    var infoTabs = [ 
      new GInfoWindowTab("Perfil", "<div style='font-size:12px;font-family:Verdana;'><b>Voce está aqui!</b></div>"),
      new GInfoWindowTab("Contato", "<div style='margin-bottom:10px'><a style='color:Black;text-decoration:underline;font-size:12px;font-family:Verdana;' href='MeuPerfil.aspx'>Editar Perfil</a></div>")
    ];
    var marker = new GMarker(point, markerOptions );
    GEvent.addListener(marker, "click", function() {
        marker.openInfoWindowTabsHtml(infoTabs);
    });
    return marker;
}

function atuXML(data, responseCode) {
    var xml = GXml.parse(data);
    // atualiza a variavel xml para as outras funçoes
    this.xml = xml;
    //mostra os usuarios da comunidade selecionada
    MostraUsersCom();
    // Posiciona o Mapa no endereço digitado na tela
    posicionaMapa();

}

function atuXML_home(data, responseCode) {
    var xml = GXml.parse(data);
    // atualiza a variavel xml para as outras funçoes
    this.xml = xml;
    //mostra os usuarios da comunidade selecionada
    MostraUsersCom_home();
    // Posiciona o Mapa no endereço digitado na tela
    posicionaMapa();

}


/*
function atuXML(xml) {
    this.xml = xml;
    alert(xml);
    //mostra os usuarios da comunidade selecionada
    MostraUsersCom();
    // Posiciona o Mapa no endereço digitado na tela
    posicionaMapa();  

}
*/

function MostraUserLogado(){
    var userlogado = xml.documentElement.getElementsByTagName("ul");
    var point = new GLatLng(parseFloat(userlogado[0].getAttribute("lat")),parseFloat(userlogado[0].getAttribute("lng")));
    map.setCenter(point,13);
    map.addControl(new GLargeMapControl());
    map.addOverlay(createMarker(point, 1, userlogado[0].getAttribute("ft")));
}

function MostraUsersCom(){

    //limpa as pontos antigos
    map.clearOverlays();
    
    //mostra o usuario logado
    MostraUserLogado();        

   //mostra os usuarios da comunidade selecionada
    var coms = xml.documentElement.getElementsByTagName("com");
    for (var i = 0; i < coms.length; i++) {
        //alert(document.getElementById("drop_comunidades").value);
        if (coms[i].getAttribute("idc") == document.getElementById("drop_comunidades").value) {
           //var usercom = coms[i].childNodes[0].getElementsByTagName("user")// funciona com o IE
           var usercom = coms[i].getElementsByTagName("user")// funciona com o firefox
           for (var j = 0; j < usercom.length; j++) {
                map.addOverlay(mostraPontos(usercom[j]));
                
           }
       };
    };
}


function MostraUsersCom_home() {

    //limpa as pontos antigos
    map.clearOverlays();

    //mostra o usuario logado
    MostraUserLogado();

    //mostra os usuarios da comunidade selecionada
    var coms = xml.documentElement.getElementsByTagName("com");
    for (var i = 0; i < coms.length; i++) {
        //alert(document.getElementById("drop_comunidades").value);
        if (coms[i].getAttribute("idc") == document.getElementById("ctl00_cphPrincipal_drop_comunidades").value) {
            //var usercom = coms[i].childNodes[0].getElementsByTagName("user")// funciona com o IE
            var usercom = coms[i].getElementsByTagName("user")// funciona com o firefox
            for (var j = 0; j < usercom.length; j++) {
                map.addOverlay(mostraPontos(usercom[j]));

            }
        };
    };
}

function mostraPontos(usuario) {

    var lat = usuario.getAttribute("lat");
    var lng = usuario.getAttribute("lng");
    var tipo = usuario.getAttribute("tp");
    var nome = usuario.getAttribute("n");
    var id = usuario.getAttribute("id");
    var foto = "imagemUsuarios/" + usuario.getAttribute("ft");
    
    //pega os trajetos do usuário
    var traj = usuario.getElementsByTagName("tr")// funciona com o firefox
    //alert(traj.length);
    
    var cat
    var baseIconUser = new GIcon();
    baseIconUser.shadow = "images/shadow.png";
    baseIconUser.iconSize = new GSize(22, 22);
    baseIconUser.shadowSize = new GSize(40, 40);
    baseIconUser.iconAnchor = new GPoint(22, 22);
    baseIconUser.infoWindowAnchor = new GPoint(5, 2);
    baseIconUser.infoShadowAnchor = new GPoint(18, 25);

    var imagem = "images/caroneiro.png";
    if (tipo == 1){
        cat = "Caronista";
        imagem = "images/caronista.png";
        }
    else if (tipo == 2){
        cat = "Caroneiro";
        imagem = "images/caroneiro.png";
        }
    else{
        cat = "Caronista e Caroneiro";
        imagem = "images/caronista_caroneiro.png";
        }
    baseIconUser.image = imagem;
    // monta a aba dos trajetos
    var tr = ""
    for (var t = 0; t < traj.length; t++) {
        tr = tr + "<div style='font-family:verdana;font-size:9px;margin-top:5px'>Trajeto "+ (t+1) +": <b>" + traj[t].getAttribute("n") + "</b> De: <b>" + traj[t].getAttribute("de") + "</b> Para: <b>" + traj[t].getAttribute("pa") + "</b></div>"
    }

    if (tr == ""){
        tr = "<div style='font-family:verdana;font-size:9px;margin-top:5px'>Este usuário ainda não cadastrou nenhum trajeto!</div>"
    }
  
    var infoTabs = [ 
       new GInfoWindowTab("Perfil", "<div style='margin-bottom:3px; font-size:12px;font-family:Verdana;'><img src='" + foto + "' width='52px' height='52px'/></div>" + 
             "<div style='margin-bottom:3px'><b>Nome: </b>" + nome + "</div>" +
             "<div style='margin-bottom:3px'><b>Tipo: </b>" + cat + "</div>"),
       new GInfoWindowTab("Contato", "<div style='margin-bottom:10px'><a style='color:Black;text-decoration:underline;font-size:12px;font-family:Verdana;' href='EscreveMensagem.aspx?rusr=" + id + "'>Enviar Mensagem</a></div>" + 
                          "<div style='margin-bottom:10px'><a style='color:Black;text-decoration:underline;font-size:12px;font-family:Verdana;' href='MostraPerfil.aspx?bgm=" + id + "'>Ver Perfil Completo</a></div>" + 
                          "<div style='margin-bottom:10px'><a style='color:Black;text-decoration:underline;font-size:12px;font-family:Verdana;' href='Carona.aspx?gm=1&ucd=" + id + "'>Oferecer Carona</a></div>" + 
                          "<div style='margin-bottom:10px'><a style='color:Black;text-decoration:underline;font-size:12px;font-family:Verdana;' href='Carona.aspx?gm=1&tcd=" + id + "'>Pedir Carona</a></div>"),
       new GInfoWindowTab("Trajetos", tr )

    ];
    
        
    markerOptionsUser = { icon:baseIconUser};
    var pointUser = new GPoint (lng, lat);
    var marker = new GMarker(pointUser, {icon:baseIconUser});
    GEvent.addListener(marker, "click", function() {
        marker.openInfoWindowTabsHtml(infoTabs);
    });
    return marker;
}

function posicionaMapa() {

    address = document.getElementById("txtPesquisa").value;
    var geocoder = new GClientGeocoder();
    geocoder.getLatLng(address,function(point) {
        if (point) {
            map.setCenter(point);
            var marker = new GMarker(point);
            map.addOverlay(marker);
        }
    });
}

/*
   method : POST/GET
   url    : Call url
   func   : custom function which is used to process returned data,
            take only one parameter
*/
function CDownloadUrl(method, url, func) {
   var httpObj;
   var browser = navigator.appName;
   if(browser.indexOf("Microsoft") > -1)
      httpObj = new ActiveXObject("Microsoft.XMLHTTP");
   else
   httpObj = new XMLHttpRequest();

   httpObj.open(method, url, true);
   httpObj.onreadystatechange = function() {
      if(httpObj.readyState == 4){
         if (httpObj.status == 200) {
            var contenttype = httpObj.getResponseHeader('Content-Type');
            if (contenttype.indexOf('xml')>-1) {
               func(httpObj.responseXML);
            } else {
               func(httpObj.responseText);
            }
         } else {
            func('Error: '+httpObj.status);
         }
      }
   };
   httpObj.send(null);
}
function initialize() {

    document.getElementById("drop_comunidades").onchange = function() {
        MostraUsersCom();
    }
    
    map = new GMap2(document.getElementById("buscamapa"));
    map.addControl(new GMapTypeControl()); 
    map.addControl(new GLargeMapControl()); 
    GDownloadUrl("retusercom.aspx", atuXML);// função do Google
    //CDownloadUrl('get', 'retusercom.aspx', atuXML);
   
}

function initialize_home() {

   document.getElementById("ctl00_cphPrincipal_drop_comunidades").onchange = function() {
        MostraUsersCom_home();
    }
    document.getElementById("ctl00_cphPrincipal_drop_distancia").onchange = function() {
        MudaDistancia();
    }

    map = new GMap2(document.getElementById("buscamapa_home"));
    map.addControl(new GMapTypeControl());
    map.addControl(new GLargeMapControl());
    BuscaUserNear();
    //GDownloadUrl("retusercom.aspx", atuXML_home); // função do Google
    //CDownloadUrl('get', 'retusercom.aspx', atuXML);
    
}


function BuscaUserNear() {
    distancia = document.getElementById("ctl00_cphPrincipal_drop_distancia").value;
    GDownloadUrl("retusercom.aspx?d="+distancia, atuXML_home); // função do Google
}

function MudaDistancia() {
    BuscaUserNear();
    MostraUsersCom_home();
}


