﻿
//Version anterior


//// Archivo JScript

////Variables
//var map;
//var geocoder;
//var sDatosBD;

///*
////Funcion que inicializa el mapa
//function inicializar(sDatosMapa){
//    if (GBrowserIsCompatible()) {
//        //CoordX = 0 : CoordY = 1 : MapaZoom = 2
//        var mtrCampos = sDatosMapa.split('##')
//        var latitud = eval(mtrCampos[0]);
//        var longitud = eval(mtrCampos[1]);
//        var zoom = mtrCampos[2];
//        zoom= eval(zoom);
//        
//        //Creamos el mapa con sus componentes
//        map = new GMap2(document.getElementById("mapa"));
//       
//        map.setCenter(new GLatLng(latitud,longitud),zoom);
//        geocoder = new GClientGeocoder();
//        
//        //Añadimos controles al mapa
//        map.addControl(new GLargeMapControl());
//        map.addControl(new GMapTypeControl());
//                        
//        map.enableDoubleClickZoom();
//		map.enableContinuousZoom();
//    }//if
//}//inicializar
//*/

////Mapas personalizados
////var param_maptype = getURLParam("mtype") || "k";
// 
////Funcion que inicializa el mapa
//function inicializar(sDatosMapa){
//    if (GBrowserIsCompatible()) {
//        //CoordX = 0 : CoordY = 1 : MapaZoom = 2
//        var mtrCampos = sDatosMapa.split('##')
//        var latitud = eval(mtrCampos[0]);
//        var longitud = eval(mtrCampos[1]);
//        var zoom = mtrCampos[2];
//        zoom= eval(zoom);
//        
//        //Creamos el mapa con sus componentes
//        map = new GMap2(document.getElementById("mapa"));
//        map.addMapType(G_PHYSICAL_MAP);
//        map.setCenter(new GLatLng(latitud,longitud),zoom);
//        geocoder = new GClientGeocoder();
//        
//        //Añadimos controles al mapa
//        map.addControl(new GSmallMapControl());
//        var mtypes = {"k": G_SATELLITE_MAP, "p": G_PHYSICAL_MAP, "h": G_HYBRID_MAP, "m": G_NORMAL_MAP};
//        map.setMapType(G_HYBRID_MAP);
//        map.addControl(new GMenuMapTypeControl());
//                        
//        map.enableDoubleClickZoom();
//            map.enableContinuousZoom();
//    }//if
//}//inicializar



////Funcion que recibe los datos de la BD y los
//function crearMarkersDelegaciones(sDatosDelegaciones) {
//    var direccion;    
//    //Obtengo todos los registros de la BD
//    var mtrRegistros = sDatosDelegaciones.split('@@');
//    for (var i = 0; i < (mtrRegistros.length - 1); i++) {       
//        //Obtengo cada campo de mi registro: Descripcion=0 Direccion=1 CoordX=2 CoordY=3
//        var mtrCampos = mtrRegistros[i].split('##');
//        //Creo el formulario que se mostrara en el infoWindow
//        infoForm = document.createElement("form");        
//        infoForm.innerHTML= '<fieldset style="width:200px; font-family: Corbel; text-align: left">'
//        + mtrCampos[0] + '<br/></fieldset>';
//        
//        //Si dispongo de las coordenadas X e Y, represento el marker directamente
//        if (mtrCampos[2] != "" && mtrCampos[3] != "") {           
//            //Creo el marker en una determinada posicion
//            crearMarker(mtrCampos[2], mtrCampos[3],infoForm)
//        } else {       
//            //Si no dispongo de coordenadas pero si de la direccion, lo geolocalizo
//            if (mtrCampos[1] != "") {                
//                //Comprobamos que el geocoder esta creado
//                if (geocoder) {
//                    //alert("antes " + infoForm.innerHTML);
//                    geocoder.getLocations(mtrCampos[1], function(response) {
//                    //alert("despues " + infoForm.innerHTML);
//                        if (!response || response.Status.code != 200) {
//                            alert("Direccion no encontrada. Puede deberse a que la direccion sea muy reciente o bien sea invalida.");
//                        } else {
//                            direccion = response.Placemark[0];
//                            //Creo el marker en una determinada posicion                            
//                            crearMarker(direccion.Point.coordinates[1], direccion.Point.coordinates[0], infoForm);
//                        }
//                    });
//                }//if
//            }//if
//        }//else
//    }//for
//}

////Funcion de creacion de los marker
//function crearMarker(latitud, longitud, infoForm) {
//    var coordenadas = new GLatLng(latitud, longitud)
//    var marker = new GMarker(coordenadas);
//    //Creo la funcionalidad al boton agregar del infoForm
//    infoForm.onsubmit= function(){
//        //Agrego a la ruta un destino
//        setDireccion(latitud,longitud);
//        //Cierro el infoWindow cuando agregue un destino
//        map.closeInfoWindow();
//        return false;
//    }//function
//    //Añado los eventos a los markers 
//    GEvent.addListener(marker, 'click', function(){
//        map.openInfoWindowHtml(coordenadas, infoForm);    
//    });
//    map.addOverlay(marker);
//}//crearMarker    







//Variables Mapa
var map;
var geocoder;
var sDatosBD;
var actual;
var gmt;
var vaddresses;
var address;
var sError="";




//Variables donde recogemos las coordenadas del punto seleccionado
var coordLong;
var coordLat;
var direccion;
var vlatlng;
var centro;

var nIdContenido;
var nIdCia;

//Mapas personalizados
//var param_maptype = getURLParam("mtype") || "k";
 
//Funcion que define las opciones de visualización del mapa, e inicializa los controles utilizados
//function inicializar(sDatosMapa){

function inicializar(sDatosMapa){
   if (GBrowserIsCompatible()) {
        //CoordX = 0 : CoordY = 1 : MapaZoom = 2
        var mtrCampos = sDatosMapa.split('##')
        var latitud = eval(mtrCampos[0]);
        var longitud = eval(mtrCampos[1]);
        var zoom = mtrCampos[2];
        zoom= eval(zoom);
        //Contenidos necesarios para la inserción en la B.D

        nIdContenido=mtrCampos[3];
        nIdCia=mtrCampos[4]
        sDescPrev=""
        sUrl=""
        sTarget=""

        
                
       
        //Creamos el mapa con sus componentes
        map = new GMap2(document.getElementById("mapa"));         
        map.setCenter(new GLatLng(latitud,longitud),zoom);

        geocoder = new GClientGeocoder();
        
    
    //Definimos los tipos de mapa a mostrar
        
        map.addMapType(G_PHYSICAL_MAP);
      // Create a Hierercical map type control
      var hierarchy = new GHierarchicalMapTypeControl();
      // make Google Satellite Hybrid be the satellite default
      hierarchy.addRelationship(G_SATELLITE_MAP, G_HYBRID_MAP, null, true);
      // add that control to the map
      map.addControl(hierarchy);
        
        
        
        //Añadimos controles al mapa, vamos a añadir 3 controles (Desplazamiento y Zoom, Seleccion tipo Mapa
        map.addControl(new GSmallMapControl());
        map.addControl(new GOverviewMapControl());
    
       
   
                           
        map.enableDoubleClickZoom();
         map.enableContinuousZoom();
            
                   
            
        //Una vez inicializado el mapa activamos la opcion de editar
      
      //crearMarkersDelegaciones(sResultado)
       //gestionMapas()   
    }//if
}//inicializar





//Funcion que recibe los datos de la BD 
function crearMarkersDelegaciones(sDatosDelegaciones){

      var latlng   
         
    //Obtengo todos los registros de la BD
    var mtrRegistros = sDatosDelegaciones.split('@@');
    for(var i=0; i<(mtrRegistros.length - 1); i++){ 
        //Obtengo cada campo de mi registro: Descripcion=0 Direccion=1 CoordX=2 CoordY=3
        var mtrCampos = mtrRegistros[i].split('##');
        //Creo el formulario que se mostrara en el infoWindow
        infoForm=document.createElement("form");
        infoForm.innerHTML= '<fieldset style="width:200px; font-family: Corbel; text-align: left">'
        + '<br/></fieldset>';
        //Si dispongo de las coordenadas X e Y, represento el marker directamente
        if(mtrCampos[2]!="" && mtrCampos[3]!=""){
            //Creo el marker en una determinada posicion
            latlng=new GLatLng(mtrCampos[3], mtrCampos[2]);
            crearMarker(latlng,mtrCampos[1]);           
        }else{
            //Si no dispongo de coordenadas pero si de la direccion, lo geolocalizo
            if(mtrCampos[1]!=""){
                //Comprobamos que el geocoder esta creado
                if (geocoder){
                    geocoder.getLocations(mtrCampos[1], function(response){
                        if(!response || response.Status.code !=200){
                            alert("Direccion no encontrada. Puede deberse a que la direccion sea muy reciente o bien sea invalida.");
                        }else{
                            direccion = response.Placemark[0];
                            //Creo el marker en una determinada posicion
                            latlng=new GLatLng(direccion.Point.coordinates[1], direccion.Point.coordinates[0]);
                            crearMarker(latlng,mtrCampos[1]);
                
                        }                        
                    });
                }//if
            }//if
        }//else
    }//for
}






//Funcion que crea los marker definidos en la base de datos
function crearMarker(latlng, direccion){
 

    gmt = new GMarker(latlng);
    

    //Añado los eventos a los markers 
    
     GEvent.addListener(gmt,"click", function(latlng) {
           geocoder.getLocations(latlng,function(addresses){
             if (addresses.Status.code==200){
            address =addresses.Placemark[0];
            ObtenerDatosMarket(address,latlng)
            }
          });
        });
        
       
             
        map.addOverlay(gmt);   
  


}//crearMarker    



function ObtenerDatosMarket(address,latlng){
 var nLong=Truncar(latlng.lng(),4);
 var nLat=Truncar(latlng.lat(),4); 
//var nLong=latlng.lng()
//var nLat=latlng.lat()     
 
 coordLong=nLong
 coordLat=nLat
 
 direccion=address.address
 vlatlng=latlng
centro=map.getCenter()
   $.ajax({
            url: "AJAXMapa.aspx",
            type: "POST",
            data: 'Evento=Consulta' + '&CoordX=' + coordLong + '&coordY=' + coordLat + '&IdContenido=' + nIdContenido + '&IdCia=' + nIdCia,      
            success: MostrarContInfo,
            dataType: 'script'
        })

}



//Funcion que muestra el contenido de una infoWindow
function MostrarContInfo(){

// 
var Desc=""
var DescAmpliada=""
var myHtml=""
 

 
     if (sResultado!="-1"){
     var mtrCampos=sResultado.split("##")
         Desc=mtrCampos[0]
         DescAmpliada=mtrCampos[1]
         direccion=mtrCampos[2]
         
  myHtml="<div id='lineaDireccion' style='width:380px; height:15px; vertical-align:middle'>" +
                   "<div id='divlblDireccion' style='width:55px;height:10px; margin-right:10px;font-size:8pt;float:left'>" +
                   "<label id='lblDireccion'> <b>Direccion: </b> </label>" + "</div>" +
                   "<div id='divlblContenidoDireccion' style='width:300px;height:10px;font-size:9pt;float:left'>" +
                   "<label id='lblContenidoDireccion'>" + direccion + "</label>"  + "</div>" + "</div>" +
                   
 
                   
                   "<div id='lineaTitulo' style='width:380px; height:15px;margin-top:5px;font-size=8pt;vertical-align:middle'>" +
                   "<div id='divlblTitulo' style='width:70px;height:10px; margin-right:10px;float:left;font-size:8pt'>" +
                   "<label id='lblTitulo'> <b>Título:</b> </label>" + "</div>"  +
                   "<div id='divlblContenidoTitulo' style='width:300px;height:10px;font-size:9pt;float:left'>" +
                   "<label id='lblContenidoTitulo'>" + Desc + "</label>" + "</div></div>" +
                   
                   
                   "<div id='lineaDescAmpliada' style='width:380px; height:15px;margin-top:5px;font-size:8pt;vertical-align:middle'>" +
                   "<div id='divlblDescAmpliada' style='width:80px;height:10px; margin-right:10px;float:left'>" +
                   "<label id='lblDescAmpliada'> <b>Descripción: </b> </label>" + "</div>"  +
                   "<div id='divlblDescAmpliada' style='width:280px; height:16px;font-size:9pt;float:left'>" +
                   "<label id='lblContenDescAmpliada'>" + DescAmpliada + "</label>" + "</div>" + "</div>"
                   
                  
    
     }

 
map.openInfoWindowHtml(vlatlng,myHtml,{
onCloseFn:function(){
      map.setCenter(new GLatLng(centro.lat(),centro.lng()),map.getZoom());

}
}
);

}


    
 //Truncar numero
  //ClipFloatByScriptma.03 
function Truncar(num,dec){ 
var t=num+""; 
num = parseFloat(t.substring(0,(t.indexOf(".")+dec+1))); 
return (num) 
} 
