﻿/// <reference path="jquery-1.2.6-intellisense.js" />
var marker, map, coordinates, hiddenCoord, MapVisualizationType, myLatLng, dragIcon, infowindow, GMapInitialized;


function initialize(txthidden, draggableIcon) {
    GMapInitialized = true;
    var message = 'Aquí está ubicado el inmueble';
    hiddenCoord = $('input[id$="' + txthidden + '"]');    
    coordinates = {};
    dragIcon = false;

    if (draggableIcon == undefined) {
        dragIcon = true;
        MapVisualizationType = 2;
        message = "Utilice el ícono para ubicar <br> el punto exacto de su inmueble."; 
    } else
        MapVisualizationType = $('input[name$="txtMapVisibilityType"]').attr('value'); 

    if (hiddenCoord.val() == '') {
        coordinates.Lat = 4.620228796979006;
        coordinates.Lng = -74.1357421875;
    }
    else {
        var arrCoord = hiddenCoord.val().split(",");
        coordinates.Lat = parseFloat(arrCoord[0]);
        coordinates.Lng = parseFloat(arrCoord[1]);
    }

    myLatLng = new google.maps.LatLng(coordinates.Lat, coordinates.Lng);

    var myOptions = { zoom: 14, center: myLatLng, mapTypeId: google.maps.MapTypeId.ROADMAP }

    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

    //Genero el marcador en el mapa. En edición con marcador tipo icon. En detalle segun lo Indique el usuario (Zona o punto exacto) 
    if (dragIcon == true){
        var shadow = new google.maps.MarkerImage('/App_Theme/images/shadowMarker.png', new google.maps.Size(120, 32), new google.maps.Point(0, 0), new google.maps.Point(0, 32));
        marker = new google.maps.Marker({ icon: '/App_Theme/images/marker.png', map: map, shadow: shadow, draggable: dragIcon });
    }
    else    
        addMarker();
            
    marker.setPosition(myLatLng);
    //Nube Message
    infowindow = new google.maps.InfoWindow({ content: message });
    setTimeout(function() { infowindow.open(map, marker); }, 3000);
    
    addListener();
    hiddenCoord.val(marker.getPosition().lat() + "," + marker.getPosition().lng());
}

// Indicar el punto exacto en el mapa.
function addMarker() {
    var shadow = new google.maps.MarkerImage('/App_Theme/images/shadowMarker.png', new google.maps.Size(120, 32), new google.maps.Point(0, 0), new google.maps.Point(0, 32));
           
    // Add a Circle overlay to the map.
    var circle = new google.maps.Circle({
        map: map,
        radius: 1000, // mts
        strokeColor: '#FF0000', //Color del trazado
        strokeOpacity: 0.8, //Opacidad deltrazado
        strokeWeight: 1,  //Ancho del trazado
        fillColor: '#C4C0C0'
    });
    
    //Tipo de marcador para indicar la ubicación en el mapa. Punto exacto = 2 
    if ((MapVisualizationType == 2) || (MapVisualizationType == 0)) {
        marker = new google.maps.Marker({ icon: '/App_Theme/images/marker.png', map: map, shadow: shadow, draggable: dragIcon });
        circle.bindTo('center', marker, 'position');
    } else {
    dragIcon = false;
    marker = new google.maps.Marker({ icon: '/App_Theme/images/none.gif', map: map, shadow: '/App_Theme/images/none.gif', draggable: dragIcon });
    circle.bindTo('center', marker, 'position');
    }   
}

function addListener() {
    google.maps.event.addListener(marker, 'dragstart', function() { infowindow.close(); });        
    if ($.browser.msie && $.browser.version == "6.0") {
        if (dragIcon) {
            google.maps.event.addListener(marker, 'dragend', function(mEvent) {
                marker.setVisible(false);
                myLatLng = mEvent.latLng;
                marker.setPosition(myLatLng);
                marker.setVisible(true);
                setTimeout(function() { infowindow.open(map, marker); }, 'slow');
                infowindow.open(map, marker);
                map.panTo(myLatLng);
                hiddenCoord.val(marker.getPosition().lat() + "," + marker.getPosition().lng());
            });
        }
        google.maps.event.addListener(map, 'zoom_changed', function() {
            marker.setVisible(false);
            marker.setPosition(myLatLng);
            marker.setVisible(true);
        });
    }
    else {
        google.maps.event.addListener(marker, 'dragend', function(mEvent) {
            map.panTo(mEvent.latLng);
            infowindow.open(map, marker);
            hiddenCoord.val(marker.getPosition().lat() + "," + marker.getPosition().lng());                        
        });
    }
}

function displayPoint(coord) {    
    infowindow.close();
    var arrCoord = coord.split(",");
    myLatLng = new google.maps.LatLng(parseFloat(arrCoord[0]), parseFloat(arrCoord[1]));
    if ($.browser.msie && $.browser.version == "6.0") {
        //Se hace para que en ie6 se visualice el la marka ya que se desaparese al hacer drag.
        marker.setVisible(false);
        marker.setVisible(true);
    }
    marker.setPosition(myLatLng);
    setTimeout(function() { infowindow.open(map, marker); }, 1000);
    //Se ubica el mapa en una nueva coordenada.
    map.panTo(myLatLng);
    hiddenCoord.val(marker.getPosition().lat() + "," + marker.getPosition().lng());
}

function EnableMap() {
    $('#map_canvas').css({ visibility: 'visible', position: 'relative' });
    $('#mapClose.close,.dataAdvertMap').css({ visibility: 'visible' });
}

