﻿var latitude_input;
var longitude_input;

MapMarker = function( debug )
{
    this.geocoder = null;
    this.map = null;
    this.debug = debug;
}

// Creates a marker at the given point with the given number label
function createMarker(point, adresse) {
  var marker = new GMarker(point);
  GEvent.addListener(marker, 'click', function() {
    var tab1 = new GInfoWindowTab("Bien", '<div class="bubble"><table><tr><td style="text-align:left"><img src="../../images/vignette_B1849_1.jpg" alt="" /></td><td style="text-align:right">C1780</td></tr><tr><td colspan=2>' + adresse + '</td></tr></div>');
    var tab2 = new GInfoWindowTab("Outils", '<div class="bubble"><a href="#" onclick="$find(\'MyAccordion_AccordionExtender\').set_SelectedIndex(1);">Visualiser sur le site</a><br /><a href="#" onclick="$find(\'MyAccordion_AccordionExtender\').set_SelectedIndex(1);">Rapprochements</a><br /><a href="#" onclick="$find(\'MyAccordion_AccordionExtender\').set_SelectedIndex(1);">Fiche détaillée</a></div>');
    var infoTabs = [tab1,tab2];
    marker.openInfoWindowTabsHtml(infoTabs);
  });
  return marker;
}

MapMarker.prototype =
{
    LocalizeCallBack: function(response)
    {
        if (!response || response.Status.code != 200) 
        {
            alert("Impossible de geocoder cette adresse.");
        } 
        else 
        {
            this.latitude = response.Placemark[0].Point.coordinates[1];
            this.longitude = response.Placemark[0].Point.coordinates[0];
            this.reponse = response;
            if(this.map != null)
            {
                var point = new GLatLng(this.latitude,this.longitude);
                marker = new GMarker(point);
                map.addOverlay( createMarker( point, response.Placemark[0].address ) );
                map.panTo(point);
            }
            else
            {
                document.getElementById(latitude_input).value = this.latitude;
                document.getElementById(longitude_input).value = this.longitude;
            }
        }
    },
    Localize: function(adresse)
    {
        if(this.geocoder != null) 
        { 
            this.geocoder.getLocations(adresse, this.LocalizeCallBack); 
        }
        else
        {
            alert('Localize : geocoder is null'); 
        }
    }
}
