// Procédures globales du projet
function AfficheMarqueur(nLatitude, nLongitude, bDragAndDropAutorise)
{
	
	if (!gObjCarte)
	return ;
	
	var objCoordonnees;
	var objMarqueur;
	
	// Si la longitude et la latitude sont renseignées, on crée une coordonnée avec ces données
	if (nLatitude && nLongitude)
	{
		objCoordonnees = new GLatLng(nLatitude, nLongitude)
		}else{
		// si la latitude et la longitude ne sont pas renseignées, on prend le centre de la carte
		objCoordonnees = gObjCarte.getCenter();
		}
	
	if (bDragAndDropAutorise == null)
	bDragAndDropAutorise = true;
	
	// Création du marqueur, par défaut on dit qu'il est déplaçable,
	// Si on ne spécifie pas cette option, elle ne pourra pas être activée après coup
	objMarqueur = new GMarker(objCoordonnees, {draggable : true});
	
	// Si le Drag And Drop est autorisé, on le spécifie au marqueur
	if (bDragAndDropAutorise)
	objMarqueur.enableDragging();
	else
	objMarqueur.disableDragging();
	
	// Affiche l'objet marqueur
	gObjCarte.addOverlay(objMarqueur);
	
	// On renvoie l'objet marqueur
	return objMarqueur;	
}

function AjouteControles(bControleTypeCarte, bControleZoom, bControleEchelle, bMiniatureCarte, bControleCartePetit, bControleCarteGrand)
{
	
	if (!gObjCarte)
	return ;
	
	// pour tous les controles passés, on vérifie si on doit l'ajouter
	
	// Contrôle de type de carte (Plan, Satellite, Mixe)
	if (bControleTypeCarte)
	{
		if (!gnControleTypeCarte)
		{	
			gnControleTypeCarte = new GMapTypeControl();
			
			// Ajoute le controle
			gObjCarte.addControl(gnControleTypeCarte);
			
			// Ajoute le controle Relief
			gObjCarte.addMapType(G_PHYSICAL_MAP); 
			}
		}else{
		if (gnControleTypeCarte)
		{
			gObjCarte.removeControl(gnControleTypeCarte);
			gnControleTypeCarte = null;
			}
		
		}
	// Contrôle de type Zoom, (+ et - en haut à gauche de la carte)
	if (bControleZoom)
	{	
		if (!gnControleZoom)
		{	
			gnControleZoom = new GSmallZoomControl();
			gObjCarte.addControl(gnControleZoom);
			}
		}else{
		if (gnControleZoom)
		{
			gObjCarte.removeControl(gnControleZoom);
			gnControleZoom = null;
			}
		}
	
	// Contrôle qui donne l'échelle de la carte
	if (bControleEchelle)
	{
		if (!gnControleEchelle)
		{	
			gnControleEchelle = new GScaleControl();
			gObjCarte.addControl(gnControleEchelle);
			}
		}else{
		if (gnControleEchelle)
		{
			gObjCarte.removeControl(gnControleEchelle);
			gnControleEchelle = null;
			}
		
		}
	
	// Contrôle qui affiche la miniature de la carte en bas à droite
	if (bMiniatureCarte)
	{
		if (!gnMiniatureCarte)
		{	
			gnMiniatureCarte = new GOverviewMapControl();
			gObjCarte.addControl(gnMiniatureCarte);
			}
		}else{
		if (gnMiniatureCarte)
		{
			gObjCarte.removeControl(gnMiniatureCarte);
			gnMiniatureCarte = null;
			}
		
		}
	
	// Contrôle de la carte en petit (déplacement, zoom) en haut à gauche
	if (bControleCartePetit)
	{
		if (!gnControleCartePetit)
		{	
			gnControleCartePetit = new GSmallMapControl();
			gObjCarte.addControl(gnControleCartePetit);
			}
		}else{
		if (gnControleCartePetit)
		{
			gObjCarte.removeControl(gnControleCartePetit);
			gnControleCartePetit = null;
			}
		}
	
	// Contrôle de la carte en grand (déplacement, zoom, et potentiomètre pour le zoom) en haut à gauche 
	if (bControleCarteGrand)
	{
		
		if (!gnControleCarteGrand)
		{	
			gnControleCarteGrand = new GLargeMapControl();
			gObjCarte.addControl(gnControleCarteGrand);
			}
		}else{
		if (gnControleCarteGrand)
		{
			gObjCarte.removeControl(gnControleCarteGrand);
			gnControleCarteGrand = null;
			}
		}
}


function CentreCarte(nLatitude, nLongitude, nZoom)
{
	if (!gObjCarte)
	return ;
	
	// Si le zoom n'est pas spécifié, on le met à la valeur actuelle
	if (!nZoom)
	nZoom = gObjCarte.getZoom();
	
	// Bouge la carte pour positionner le centre aux coordonnées données
	gObjCarte.setCenter(new GLatLng(nLatitude, nLongitude), nZoom);
	
}

function CreeCarte(sNomChampCarte)
{
//	 Création de la carte
gObjCarte = new GMap2(document.getElementById(sNomChampCarte));

}

function ZoomAvecRoulette(bZoomAvecRoulette)
{
	
	if (!gObjCarte)
	return ;
	
	// Si on doit activer le zoom sur la roulette de la souris
	if (bZoomAvecRoulette)
	{
		gObjCarte.enableScrollWheelZoom();
		}else{
		// Sinon on le désactive
		gObjCarte.disableScrollWheelZoom();
		}
}

