//--------------
//--- VARIABLES
//--------------
//--- A paramétrer 
var pos_x_init = 43.65744;         				// Latitude point origine
var pos_y_init = -1.288834;         			// Longitude point origine
var zoom = 10;               							// Zoom de départ
var xtype = G_MAP_TYPE;            				// Mode d'affichage : G_MAP_TYPE ou G_HYBRID_TYPE ou G_SATELLITE TYPE
var avec_apercu = true;                   // Avec controle d'apercu : true ou false
var avec_petit_ctrl_deplac = false;       // Avec petits contrôles de zoom et de déplacement
var avec_ctrl_deplac = true;              // Avec controles standards de zoom et de déplacement
var avec_ctrl_mode = true;                // Avec controle de mode
var avec_ctrl_echelle = true;             // Avec controle Echelle
var aff_masq_ctrl = false;                // Avec masquage/affichage des contrôle sur entrée sortie souris
var zoom_dble_clic = true ;               // Zoom sur double-clic
var zoom_progressif = true;               // Zomm progressif
var zoom_molette = true;               		// Zomm sur molette souris
var _mKilometers = "km";                  // Etiquette Kilomètres
var _mMiles = "mi";                       // Etiquette Miles
var _mMeters = "m";                       // Etiquette Mètres
var _mFeet = "pieds";                     // Etiquette Pieds
var _mPreferMetric = true;                // Préférence Système métrique en 1er
var xtype_source = "XML";                 // Type de données sources : TXT ou XML
var xPrecision = 8;                       // Nbre de décimales des coordonnées
var xFerme_auto = true;                   // Fermeture auto des balloons-tips
var xFerme_delai = 5000;                  // Délai de fermeture auto des balloons-tips (en ms)


var baseIcon = new GIcon();       											// Icone générique
baseIcon.iconSize = new GSize(32,32);        						//--- Taille en px
baseIcon.shadowSize = new GSize(37,34);                	//--- Taille ombre en px
baseIcon.iconAnchor = new GPoint(9,34);                	//--- Ancrages en px
baseIcon.infoWindowAnchor = new GPoint(18,15);
baseIcon.infoShadowAnchor = new GPoint(18,25);


//------------------------------------------
//--- CHARGEMENT ET PARAMETRAGE DE LA CARTE
//--- CREATION AND SETTINGS OF THE MAP
//------------------------------------------
function xload() {
	if (GBrowserIsCompatible()) {

		//--- Message de chargement
		window.status="Chargement en cours..";
		//--- Création de la carte
		gmap2 = new GMap2(document.getElementById("map"));
		//--- Position initiale
  	gmap2.setCenter(new GLatLng(pos_x_init, pos_y_init), zoom);
		//--- Type de carte par défaut
  	gmap2.setMapType(xtype); 

		//--- Ajout du contrôle DEPLACEMENT et ZOOM : GLargeMapControl() ou GSmallMapControl()
//		if (avec_ctrl_deplac==true) {
//			if (avec_petit_ctrl_deplac==true) {
//				gmap2.addControl(new GSmallMapControl());
//			} else {
//				gmap2.addControl(new GLargeMapControl());
//			}
//		}
		//--- Ajout du contrôle MODE D'AFFICHAGE : Carte / Satellite / Mixte
//		if (avec_ctrl_mode==true) {
//			gmap2.addControl(new GMapTypeControl());
//		}
		//--- Ajout et paramétrage du contrôle ECHELLE DE DISTANCE
//		if (avec_ctrl_echelle==true) {
//			gmap2.addControl(new GScaleControl());
//		}
		//--- Ajout et paramétrage du contrôle VUE REDUITE
//		if (avec_apercu==true) {
//			var ovcontrol = new GOverviewMapControl(new GSize(91,91));
//  		gmap2.addControl(ovcontrol);
//			var omap=document.getElementById("map_overview");
 // 		omap.firstChild.style.border = "1px solid gray";
 // 		omap.firstChild.firstChild.style.left="2px";
 // 		omap.firstChild.firstChild.style.top="2px";
 // 		omap.firstChild.firstChild.style.width="90px";
 // 		omap.firstChild.firstChild.style.height="90px";
//		}
		//--- Par défaut, les contrôles sont cachés
//		if (aff_masq_ctrl==true) {
//			gmap2.hideControls();
//		}
		
		      //--- Interface par défaut
      gmap2.setUIToDefault();

		//--------------------
		//--- Gestion du zoom
		//---------------------
		//--- Zoom avant arrière sur double-clic gauche et droit
		if (zoom_dble_clic==true) {
			gmap2.enableDoubleClickZoom();
 			zoom = gmap2.getZoom();
		}
		//--- Zoom progressif
		if (zoom_progressif==true) {
			gmap2.enableContinuousZoom();
 			zoom = gmap2.getZoom();
		}
		//--- Zoom avant-arrière sur molette souris
 		if (zoom_molette==true) {
			var mapobj = document.getElementById("map");
			GEvent.addDomListener(mapobj, "mousewheel", wheelZoom);
 			zoom = gmap2.getZoom();
		}
		//-------------------------------------------
		//--- Gestion des évènements liés à la carte
		//-------------------------------------------
		//--- Evènement 'clic gauche' sur la carte : Recentrer la carte et afficher les coordonnées LONG LAT du clic sur la carte
		GEvent.addListener(gmap2, "click", function(overlay, point) {
 			document.getElementById("latbox").value=point.lat().toFixed(xPrecision);
 			document.getElementById("lonbox").value=point.lng().toFixed(xPrecision);
 			zoom = gmap2.getZoom();
 			gmap2.setCenter(new GLatLng(point.lat(), point.lng()), zoom);
		});
		//--- Masquage - Affichage des contrôles
//		if (aff_masq_ctrl==true) {
			//--- Evènement 'mouseover' sur la carte : affichage des contrôles
//			GEvent.addListener(gmap2, "mouseover", function(){
//				gmap2.showControls();
//			});
			//--- Evènement 'mouseout' sur la carte : masquage des contrôles
//			GEvent.addListener(gmap2, "mouseout", function(){
//				gmap2.hideControls();
//			});
//		}
		//--- Evènement 'mousemove' sur la carte : à définir
//		GEvent.addListener(gmap2, "mousemove", function(overlay) {
//		 });
		//-------------------------------------
		//--- Message de fin de chargement
		//-------------------------------------
		window.status="Vous pouvez utiliser la carte..";
	} else {
		var gmap = document.getElementById("map");
		gmap.innerHTML = "<br />Google Maps n'est pas compatible avec votre navigateur.<br />";
	}
	
}

//----------------------------
//--- ZOOM SUR MOLETTE SOURIS
//----------------------------
function wheelZoom(a) {
 	if ((a.detail || -a.wheelDelta) < 0) {
	 	gmap2.zoomIn();
	 	zoom=zoom+1;
	} else {
		gmap2.zoomOut();
		zoom=zoom-1;
	}
}

//-----------------------------------------------------------------
//--- CREATION D'UN MARQUEUR ET GESTION DES EVENEMENTS DU MARQUEUR
//-----------------------------------------------------------------
function createMarker(point,name,html,img) {
	//--- Création de l'icone spécifique au marqueur
	var icon = new GIcon(baseIcon);
	icon.image = img ;
	icon.iconSize = new GSize(32,32);
	icon.shadowSize = new GSize(37,34);
	icon.iconAnchor = new GPoint(9,34);
	//--- Création du marqueur
	var marker = new GMarker(point,icon);
  //--- Sauver l'info nécessaire plus tard pour le menu de navigation
  gmarkers[i] = marker;
  htmls[i] = html;
	//--- Gestion du clic sur le marqueur de données : ouverture de la bulle d'infos
  GEvent.addListener(marker,"click",function() {
    marker.openInfoWindowHtml(html);
	});
	//--- Gestion du passage sur le marqueur de données : ouverture d'une mini carte en zoom 1 et fermeture au bout de 5 secondes
  GEvent.addListener(marker,"mouseover",function() {
  	marker.showMapBlowup();
  	if (xFerme_auto==true) {
 			setTimeout(function() { gmap2.closeInfoWindow(); },xFerme_delai);
		}
	});
	//--- Ajout d'une ligne dans le menu de navigation
  sidebar_html += '<p><a href="javascript:myclick(' + i + ')">' + name + '</a></p>';
  i++;
  return marker;
}
