var tabPoint = new Array;
//window.onunload = GUnload();

/* Charger un plan par coordonnées GPS */
function load_GPS() {
	var my_arg = load_GPS.arguments;	
	if(my_arg.length<3){ alert("Usage: load_GPS(id_div,coord_gps,adresse[,zoom,mode]);\n          \n		  id_div => obligatoire, id de la DIV plan\n		  coord_gps => obligatoire, coordonnées GPS du lieu à afficher\n		  adresse => obligatoire, adresse à afficher dans l'infobulle\n		  zoom => optionnel, chiffre de 1 à 17, par défaut 14\n		  mode => optionnel, apparence de la carte\n		          - G_NORMAL_MAP     : correspond au bouton  [ Plan ]  (par défaut)\n		          - G_SATELLITE_MAP  : correspond au bouton  [ Satellite ]\n		          - G_HYBRID_MAP     : correspond au bouton  [ Mixte ]\n"); }
	else{
		if(parseInt(my_arg[3])<1 || parseInt(my_arg[3])>17 || isNaN(parseInt(my_arg[3]))){ my_arg[3] = 14; }
		if(my_arg[4]!="G_NORMAL_MAP" && my_arg[4]!="G_SATELLITE_MAP" && my_arg[4]!="G_HYBRID_MAP"){  my_arg[4]="G_NORMAL_MAP"; }
		
		if (GBrowserIsCompatible()) {
			var map = new GMap2(document.getElementById(my_arg[0]));
			map.addControl(new GLargeMapControl());
			map.addControl(new GMapTypeControl(),eval("map."+my_arg[4]));
			map.addControl(new GScaleControl());
			var geocoder = new GClientGeocoder();
			var tab_coords = my_arg[1].split(",");
			if (geocoder) {
				geocoder.getLatLng( "",
					function(point) {
						if (!point) {
							point = new GLatLng(tab_coords[0], tab_coords[1]);
						} 			
							map.setCenter(point, my_arg[3],eval(my_arg[4]));
							var marker = new GMarker(point);
							map.addOverlay(marker);
							GEvent.addListener(marker, "click", function() {
							marker.openInfoWindowHtml(my_arg[2]);
							});
							marker.openInfoWindowHtml(my_arg[2]);
					}
				);
			}
		}
	}
}


/* Charger un plan par l'adresse */
function load_Adresse() {
var my_arg = load_Adresse.arguments;	
	if(my_arg.length<3){ alert("Usage: load_Adresse(id_div,add_rech,adresse[,zoom,mode]);\n          \n		  id_div => obligatoire, id de la DIV plan\n		  add_rech => obligatoire, adresse du lieu à afficher\n		  adresse => obligatoire, adresse à afficher dans l'infobulle\n		  zoom => optionnel, chiffre de 1 à 17, par défaut 14\n		  mode => optionnel, apparence de la carte\n		          - G_NORMAL_MAP     : correspond au bouton  [ Plan ]  (par défaut)\n		          - G_SATELLITE_MAP  : correspond au bouton  [ Satellite ]\n		          - G_HYBRID_MAP     : correspond au bouton  [ Mixte ]\n"); 
	}
	else{
		if(parseInt(my_arg[3])<1 || parseInt(my_arg[3])>17 || isNaN(parseInt(my_arg[3]))){ my_arg[3] = 14; }
		if(my_arg[4]!="G_NORMAL_MAP" && my_arg[4]!="G_SATELLITE_MAP" && my_arg[4]!="G_HYBRID_MAP"){  my_arg[4]="G_NORMAL_MAP"; }
	
		if (GBrowserIsCompatible()) {
			var map = new GMap2(document.getElementById(my_arg[0]));
			map.addControl(new GLargeMapControl());
			map.addControl(new GMapTypeControl(),eval("map."+my_arg[4]));
			map.addControl(new GScaleControl());
			var geocoder = new GClientGeocoder();
			if (geocoder) {
				geocoder.getLatLng( my_arg[1],
					function(point) {
						if (!point) {
							alert("Adresse non trouvée !");
							map.setCenter(new GLatLng(47.0102, 2.3730), 5);
						} else {
							map.setCenter(point, my_arg[3],eval(my_arg[4]));
							var marker = new GMarker(point);
							map.addOverlay(marker);
							GEvent.addListener(marker, "click", function() {
							marker.openInfoWindowHtml(my_arg[2]);
							});
							marker.openInfoWindowHtml(my_arg[2]);
						}
					}
				);
			}
		}
	}
}



/* Charger plusieurs points d'un plan */
function Point() {
	var my_arg = Point.arguments;	
	if(my_arg.length<2){ alert("Usage: Point(coord_gps,adresse[,zoom,mode]);\n          \n		  coord_gps => obligatoire, coordonnées GPS du lieu à afficher\n		  adresse => obligatoire, adresse à afficher dans l'infobulle\n		  zoom => optionnel, chiffre de 1 à 17, par défaut 14\n		  mode => optionnel, apparence de la carte\n		          - G_NORMAL_MAP     : correspond au bouton  [ Plan ]  (par défaut)\n		          - G_SATELLITE_MAP  : correspond au bouton  [ Satellite ]\n		          - G_HYBRID_MAP     : correspond au bouton  [ Mixte ]\n");
	}
	else{
		if(parseInt(my_arg[2])<1 || parseInt(my_arg[2])>17 || isNaN(parseInt(my_arg[2]))){ my_arg[2] = 14; }
		if(my_arg[3]!="G_NORMAL_MAP" && my_arg[3]!="G_SATELLITE_MAP" && my_arg[3]!="G_HYBRID_MAP"){  my_arg[3]="G_NORMAL_MAP"; }
		var tab_coords = my_arg[0].split(",");
		this.coord_gps_long=tab_coords[0];
		this.coord_gps_lat=tab_coords[1];
		this.adresse=my_arg[1];
		this.zoom=my_arg[2];
		this.mode=my_arg[3];
	}
}

function load_GPS_Multi(){
	var my_arg = load_GPS_Multi.arguments;	
	if(my_arg.length<2){ alert("Usage: load_GPS_Multi(id_div,coord_gps[,zoom,mode]);\n          \n		  id_div => obligatoire, id de la DIV plan\n		  coord_gps => obligatoire, coordonnées GPS du lieu à afficher\n		  zoom => optionnel, chiffre de 1 à 17, par défaut 14\n		  mode => optionnel, apparence de la carte\n		          - G_NORMAL_MAP     : correspond au bouton  [ Plan ]  (par défaut)\n		          - G_SATELLITE_MAP  : correspond au bouton  [ Satellite ]\n		          - G_HYBRID_MAP     : correspond au bouton  [ Mixte ]\n");
	}
	else{
		if(parseInt(my_arg[2])<1 || parseInt(my_arg[2])>17 || isNaN(parseInt(my_arg[2]))){ my_arg[3] = 14; }
		if(my_arg[3]!="G_NORMAL_MAP" && my_arg[3]!="G_SATELLITE_MAP" && my_arg[3]!="G_HYBRID_MAP"){  my_arg[3]="G_NORMAL_MAP"; }
		
		if (GBrowserIsCompatible()) {
			var map = new GMap2(document.getElementById(my_arg[0]));
			map.addControl(new GLargeMapControl());
			map.addControl(new GMapTypeControl(),eval("map."+my_arg[3]));
			map.addControl(new GScaleControl());
			var tab_coords = my_arg[1].split(",");
			var point_def = new GLatLng(tab_coords[0], tab_coords[1]);
			map.setCenter(point_def, my_arg[2], eval(my_arg[3]));
			// Génération des points
			for(i=0;i<tabPoint.length;i++){
				eval("var point"+i+" = new GLatLng("+tabPoint[i].coord_gps_long+","+tabPoint[i].coord_gps_lat+");");
				eval("var marker"+i+" = new GMarker(point"+i+");");
				eval("map.addOverlay(marker"+i+");");
				eval("GEvent.addListener(marker"+i+",\"click\",function() { map.setCenter(point"+i+","+tabPoint[i].zoom+","+tabPoint[i].mode+"); marker"+i+".openInfoWindowHtml(\""+tabPoint[i].adresse+"\"); });");
				eval("GEvent.addListener(marker"+i+",\"infowindowclose\",function(){ map.setCenter(point_def, my_arg[2], eval(my_arg[3])); }); ");
			}
		}
	}
} 
