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])); }); ");

			}

		}

	}

} 
