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

function remplirIdVille() {
	new Ajax.Request('../../code/ajax-id-ville.php',
		{
			method:'get',
			parameters: {ville: $('VilleProjet').value, departement: $('DepartementProjet').value},
			onSuccess: function(transport){
				var response = transport.responseText;
				$('id_ville').value = response;
			}
		}
	);
}

function forcerIdVille() {
	if ($('id_ville').value == 0) {
		Modalbox.show(
			'', 
			'../../code/ajax-villes-importantes.php?' + $('DepartementProjet').value,
			{width: 300, height: 500, overlayClose: false, loadingString: 'Merci de patienter quelques instants...'}
		);
		return false;
	} else {
		return true;
	}
}

function remplirIdVilleAvecVillePrincipale() {
	var form = $('ajax-villes-importantes');
	var radios = form.getInputs('radio', 'id_ville_principale');
	for (i=0; i < radios.length; i++) {
		if (radios[i].checked) {
			var id_ville_principale = radios[i].value;
			var nom_ville_principale = radios[i].getAttribute('data');
		}
	}

	if (id_ville_principale != '') {
		$('id_ville').value = id_ville_principale;
		$('VilleProjet').value = nom_ville_principale;
		Modalbox.hide();
	}
}

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 (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();
  });
});