// les variables suivantes doivent être définies :
// txt_navigateur_incompatible
// txt_non_localise

var map = null;
var geocoder = null;
var default_lat = null;
var default_lng = null;
var default_zoom = null;

function load_map(lat, lng, zoom) {
  
  if ($("#map_devis").attr('id') == 'map_devis') {
  	default_lat = lat;
    default_lng = lng;
    default_zoom = zoom;
    if (GBrowserIsCompatible()) {
      map = new GMap2(document.getElementById("map_devis"));
	  map.addControl(new GSmallZoomControl());
	  map.disableDoubleClickZoom();
	  GEvent.addListener(map,"click", function(overlay,point) {     
        display_map(point);
      });
      var lat = $("#devis-form-Latitude").attr('value');
      var lng = $("#devis-form-Longitude").attr('value');
      if (lat && lng) {
        var latlng = new GLatLng(lat, lng)
        map.setCenter(latlng, 13);
        display_map(latlng)
      } else {
        reset_map();	
      }
    }
    else {
      alert(txt_navigateur_incompatible);
    }
  }
}

function reset_map() {
	map.setCenter(new GLatLng(default_lat, default_lng), default_zoom);
}

function display_map(point) {
  map.clearOverlays();
  var marker = new GMarker(point, {clickable : false});
  map.addOverlay(marker);
  $("#devis-form-Latitude").attr('value', point.lat());
  $("#devis-form-Longitude").attr('value', point.lng());
}

function localiser() {
  if (GBrowserIsCompatible()) {
    if (geocoder == null) {
      geocoder = new GClientGeocoder();
    }
    var adresse = "";
    adresse += $('#devis-form-LieuProjet').attr('value') ? $('#devis-form-LieuProjet').attr('value') : "";
    if ($('#devis-form-Pays').attr('value')) {
		  adresse += " " + $('#devis-form-Pays').attr('value');
		}
		if (adresse != "") {
			geocoder.getLatLng(
	 			adresse,
				function(point) {
					map.setCenter(point, 13);
					if (!point) {
						$("#devis-form-Latitude").attr('value', "");
						$("#devis-form-Longitude").attr('value', "");
						map.clearOverlays();
						reset_map();
						alert( adresse + " " + txt_non_localise);
					} else {
						display_map(point);
          }
        }
      );
    }
		else {
			$("#devis-form-Latitude").attr('value', "");
			$("#devis-form-Longitude").attr('value', "");
			map.clearOverlays();
			reset_map();
		}
	}
	else {
		alert(txt_navigateur_incompatible);
	}
}

$(document).ready(function() {
  $('#devis-form-LieuProjet').keypress(function (e) {
    if (e.which == 13) {
      localiser();
	    return false;
    }
  });
  $('#devis-form-LieuProjet').change(function () {
    localiser();
  });
});
