
// JavaScript Document
	var map = null;
	var minimap = null;
	var geocoder = null;
	var Cadre = null;
	var dirObj = null;
	var num_depart = -1;
	var num_arrive = -1;
	var bouge = true;
	var pLine = null;
	var pLine2 = null;
	var pLine3 = null;
	//var trajet = null;
	
	var Line_Itineraire = new Array();
	
	var bouton_Plan = null;
	var bouton_Satellite = null;
	var bouton_Mixte = null;
	
	var id_fiche = new Array();
	var rubrique = new Array();
	var points = new Array();
	var adresses = new Array();
	var icones = new Array();
	var sous_rubrique = new Array();
	var itineraires = new Array();
	var texte = new Array();
	var texte2 = new Array();
	var nom = new Array();
	var markers = new Array();
	var marker_depart = null;
	
	var office_de_tourisme_et_point_d_information_touristique = new GIcon();
	office_de_tourisme_et_point_d_information_touristique.image = "../images/office_de_tourisme_et_point_d_information_touristique.png";
	office_de_tourisme_et_point_d_information_touristique.shadow = "../images/ombre.png";
	office_de_tourisme_et_point_d_information_touristique.iconSize = new GSize(33, 27);
	office_de_tourisme_et_point_d_information_touristique.shadowSize = new GSize(31, 20);
	office_de_tourisme_et_point_d_information_touristique.iconAnchor = new GPoint(13,25 );
	office_de_tourisme_et_point_d_information_touristique.infoWindowAnchor = new GPoint(13, 1);
	
	var aoc_sauternes_barsac = new GIcon();
	aoc_sauternes_barsac.image = "../images/aoc_sauternes_barsac.png";
	aoc_sauternes_barsac.shadow = "../images/ombre.png";
	aoc_sauternes_barsac.iconSize = new GSize(33, 27);
	aoc_sauternes_barsac.shadowSize = new GSize(31, 20);
	aoc_sauternes_barsac.iconAnchor = new GPoint(13,25 );
	aoc_sauternes_barsac.infoWindowAnchor = new GPoint(9, 1);
	
	var aoc_graves = new GIcon();
	aoc_graves.image = "../images/aoc_graves.png";
	aoc_graves.shadow = "../images/ombre.png";
	aoc_graves.iconSize = new GSize(33, 27);
	aoc_graves.shadowSize = new GSize(31, 20);
	aoc_graves.iconAnchor = new GPoint(13,25 );
	aoc_graves.infoWindowAnchor = new GPoint(9, 1);
	
	var aoc_pessac_leognan = new GIcon();
	aoc_pessac_leognan.image = "../images/aoc_pessac_leognan.png";
	aoc_pessac_leognan.shadow = "../images/ombre.png";
	aoc_pessac_leognan.iconSize = new GSize(33, 27);
	aoc_pessac_leognan.shadowSize = new GSize(31, 20);
	aoc_pessac_leognan.iconAnchor = new GPoint(13,25 );
	aoc_pessac_leognan.infoWindowAnchor = new GPoint(9, 1);
	
	var campings_et_aires_camping_cars = new GIcon();
	campings_et_aires_camping_cars.image = "../images/campings_et_aires_camping_cars.png";
	campings_et_aires_camping_cars.shadow = "../images/ombre.png";
	campings_et_aires_camping_cars.iconSize = new GSize(33, 27);
	campings_et_aires_camping_cars.shadowSize = new GSize(31, 20);
	campings_et_aires_camping_cars.iconAnchor = new GPoint(13,25 );
	campings_et_aires_camping_cars.infoWindowAnchor = new GPoint(9, 1);
	
	var gites_et_meubles_touristiques = new GIcon();
	gites_et_meubles_touristiques.image = "../images/gites_et_meubles_touristiques.png";
	gites_et_meubles_touristiques.shadow = "../images/ombre.png";
	gites_et_meubles_touristiques.iconSize = new GSize(33, 27);
	gites_et_meubles_touristiques.shadowSize = new GSize(31, 20);
	gites_et_meubles_touristiques.iconAnchor = new GPoint(13,25 );
	gites_et_meubles_touristiques.infoWindowAnchor = new GPoint(9, 1);
	
	var chambres_d_hotes = new GIcon();
	chambres_d_hotes.image = "../images/chambres_d_hotes.png";
	chambres_d_hotes.shadow = "../images/ombre.png";
	chambres_d_hotes.iconSize = new GSize(33, 27);
	chambres_d_hotes.shadowSize = new GSize(31, 20);
	chambres_d_hotes.iconAnchor = new GPoint(13,25 );
	chambres_d_hotes.infoWindowAnchor = new GPoint(9, 1);
	
	var hotels = new GIcon();
	hotels.image = "../images/hotels.png";
	hotels.shadow = "../images/ombre.png";
	hotels.iconSize = new GSize(33, 27);
	hotels.shadowSize = new GSize(31, 20);
	hotels.iconAnchor = new GPoint(13,25 );
	hotels.infoWindowAnchor = new GPoint(9, 1);
	
	var bases_et_activites_de_loisirs = new GIcon();
	bases_et_activites_de_loisirs.image = "../images/bases_et_activites_de_loisirs.png";
	bases_et_activites_de_loisirs.shadow = "../images/ombre.png";
	bases_et_activites_de_loisirs.iconSize = new GSize(33, 27);
	bases_et_activites_de_loisirs.shadowSize = new GSize(31, 20);
	bases_et_activites_de_loisirs.iconAnchor = new GPoint(13,25 );
	bases_et_activites_de_loisirs.infoWindowAnchor = new GPoint(9, 1);
	
	var sites_naturels = new GIcon();
	sites_naturels.image = "../images/sites_naturels.png";
	sites_naturels.shadow = "../images/ombre.png";
	sites_naturels.iconSize = new GSize(33, 27);
	sites_naturels.shadowSize = new GSize(31, 20);
	sites_naturels.iconAnchor = new GPoint(13,25 );
	sites_naturels.infoWindowAnchor = new GPoint(9, 1);
	
	var aires_de_pique_nique = new GIcon();
	aires_de_pique_nique.image = "../images/aires_de_pique_nique.png";
	aires_de_pique_nique.shadow = "../images/ombre.png";
	aires_de_pique_nique.iconSize = new GSize(33, 27);
	aires_de_pique_nique.shadowSize = new GSize(31, 20);
	aires_de_pique_nique.iconAnchor = new GPoint(13,25 );
	aires_de_pique_nique.infoWindowAnchor = new GPoint(9, 1);
	
	var chateaux_historiques = new GIcon();
	chateaux_historiques.image = "../images/chateaux_historiques.png";
	chateaux_historiques.shadow = "../images/ombre.png";
	chateaux_historiques.iconSize = new GSize(33, 27);
	chateaux_historiques.shadowSize = new GSize(31, 20);
	chateaux_historiques.iconAnchor = new GPoint(13,25 );
	chateaux_historiques.infoWindowAnchor = new GPoint(9, 1);
	
	var petit_patrimoine = new GIcon();
	petit_patrimoine.image = "../images/petit_patrimoine.png";
	petit_patrimoine.shadow = "../images/ombre.png";
	petit_patrimoine.iconSize = new GSize(33, 27);
	petit_patrimoine.shadowSize = new GSize(31, 20);
	petit_patrimoine.iconAnchor = new GPoint(13,25 );
	petit_patrimoine.infoWindowAnchor = new GPoint(9, 1);
	
	var eglises = new GIcon();
	eglises.image = "../images/eglises.png";
	eglises.shadow = "../images/ombre.png";
	eglises.iconSize = new GSize(33, 27);
	eglises.shadowSize = new GSize(31, 20);
	eglises.iconAnchor = new GPoint(13,25 );
	eglises.infoWindowAnchor = new GPoint(9, 1);
	
	var produits_du_terroir = new GIcon();
	produits_du_terroir.image = "../images/produits_du_terroir.png";
	produits_du_terroir.shadow = "../images/ombre.png";
	produits_du_terroir.iconSize = new GSize(33, 27);
	produits_du_terroir.shadowSize = new GSize(31, 20);
	produits_du_terroir.iconAnchor = new GPoint(13,25 );
	produits_du_terroir.infoWindowAnchor = new GPoint(9, 1);
	
	var restaurants = new GIcon();
	restaurants.image = "../images/restaurants.png";
	restaurants.shadow = "../images/ombre.png";
	restaurants.iconSize = new GSize(33, 27);
	restaurants.shadowSize = new GSize(31, 20);
	restaurants.iconAnchor = new GPoint(13,25 );
	restaurants.infoWindowAnchor = new GPoint(9, 1);
	
	
	
	//Contrôle personnalisé.
	function ZoomControl(){}
	//Création du contrôle.
	ZoomControl.prototype = new GControl();
	//Fonction d´initialisation.
	ZoomControl.prototype.initialize = function(map)
	{
		var container = document.createElement("div");
		var zoomInDiv = document.createElement("div");
		zoomInDiv.innerHTML = "<img src=\"../images/+.png\">";
		zoomInDiv.appendChild(document.createTextNode(""));
		this.setButtonStyle_(zoomInDiv);
		container.appendChild(zoomInDiv);
		GEvent.addDomListener(zoomInDiv, "click", function(){map.zoomIn();});
		var zoomOutDiv = document.createElement("div");
		zoomOutDiv.innerHTML = "<img src=\"../images/-.png\">";
		zoomOutDiv.appendChild(document.createTextNode(""));
		this.setButtonStyle_(zoomOutDiv);
		container.appendChild(zoomOutDiv);
		GEvent.addDomListener(zoomOutDiv, "click", function(){map.zoomOut();});
		map.getContainer().appendChild(container);
		return container;
	}
	// Fonction permettant de récupérer la position par défaut du contrôle.
	ZoomControl.prototype.getDefaultPosition = function()
	{
		return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(1, 1));
	}
	//Fonction qui applique le style voulu au contrôle passé en paramètre.
	ZoomControl.prototype.setButtonStyle_ = function(controle)
	{
		controle.style.cursor = "pointer";
	}
	
	function BoutonControlPlan() {}
	
	BoutonControlPlan.prototype = new GControl();
 	
	BoutonControlPlan.prototype.initialize = function(map) {
   		var containerPSM = document.createElement('div');
   		var boutonPlan = document.createElement('div');
   		this.setButtonStyle_PSM(boutonPlan);
   		containerPSM.appendChild(boutonPlan);
		boutonPlan.innerHTML = "<div id=\"imgPlan\"><img src=\"../images/map_plan2.png\"></div>";
		boutonPlan.appendChild(document.createTextNode(''));
		GEvent.addDomListener(boutonPlan, 'click', function() {
			document.getElementById("imgPlan").innerHTML = "<img src=\"../images/map_plan2.png\">";
			document.getElementById("imgSat").innerHTML = "<img src=\"../images/map_sat.png\">";
			document.getElementById("imgMix").innerHTML = "<img src=\"../images/map_mix.png\">";
			map.setMapType(G_NORMAL_MAP);
			
		});
	  map.getContainer().appendChild(containerPSM);
	  return containerPSM;
	}
	
 	BoutonControlPlan.prototype.Change = function (image) {
		alert (this.length);
	}
	
	BoutonControlPlan.prototype.setButtonStyle_PSM = function(button) {
	  button.style.cursor = 'pointer';
	}
	
	BoutonControlPlan.prototype.getDefaultPosition = function() {
	  return new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(141, 1));
	}

	function BoutonControlSatellite() {}
	
	BoutonControlSatellite.prototype = new GControl();
 	
	BoutonControlSatellite.prototype.initialize = function(map) {
		var containerPSM = document.createElement('div');
   		var boutonSatellite = document.createElement('div');
		this.setButtonStyle_PSM(boutonSatellite);
		containerPSM.appendChild(boutonSatellite);
		boutonSatellite.innerHTML = "<div id=\"imgSat\"><img src=\"../images/map_sat.png\"></div>";
		boutonSatellite.appendChild(document.createTextNode(''));
		GEvent.addDomListener(boutonSatellite, 'click', function() {
			document.getElementById("imgPlan").innerHTML = "<img src=\"../images/map_plan.png\">";
			document.getElementById("imgSat").innerHTML = "<img src=\"../images/map_sat2.png\">";
			document.getElementById("imgMix").innerHTML = "<img src=\"../images/map_mix.png\">";
			map.setMapType(G_SATELLITE_MAP);
		});
	  map.getContainer().appendChild(containerPSM);
	  return containerPSM;
	}
 		
	BoutonControlSatellite.prototype.setButtonStyle_PSM = function(button) {
	  button.style.cursor = 'pointer';
	}
	
	BoutonControlSatellite.prototype.getDefaultPosition = function() {
	  return new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(73, 1));
	}
	
	function BoutonControlMixte() {}
	
	BoutonControlMixte.prototype = new GControl();
 	
	BoutonControlMixte.prototype.initialize = function(map) {
		var containerPSM = document.createElement('div');
   		var boutonMixte = document.createElement('div');
		this.setButtonStyle_PSM(boutonMixte);
		containerPSM.appendChild(boutonMixte);
		boutonMixte.innerHTML = "<div id=\"imgMix\"><img src=\"../images/map_mix.png\"></div>";
		boutonMixte.appendChild(document.createTextNode(''));
		GEvent.addDomListener(boutonMixte, 'click', function() {
			document.getElementById("imgPlan").innerHTML = "<img src=\"../images/map_plan.png\">";
			document.getElementById("imgSat").innerHTML = "<img src=\"../images/map_sat.png\">";
			document.getElementById("imgMix").innerHTML = "<img src=\"../images/map_mix2.png\">";
			map.setMapType(G_HYBRID_MAP);
		});
	  map.getContainer().appendChild(containerPSM);
	  return containerPSM;
	}
 		
	BoutonControlMixte.prototype.setButtonStyle_PSM = function(button) {
	  button.style.cursor = 'pointer';
	}
	
	BoutonControlMixte.prototype.getDefaultPosition = function() {
	  return new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(1, 1));
	}

		
	function Trajet(Itineraire,Couleur)
	{
		pLine = new GPolyline(Lignes[Itineraire],Couleur,5,1);
		map.addOverlay(pLine);
		pLine.hide();
		return pLine;
	}
	
	function load() { 
		if (GBrowserIsCompatible())
		{ 
			map = new GMap2(document.getElementById("map")); 
			map.setCenter(new GLatLng(44.6865,-0.389), 10); //44.5265,-0.219
			//map.enableScrollWheelZoom();
			map.enableContinuousZoom();
			map.addControl(new ZoomControl());
			bouton_Plan = new BoutonControlPlan();
			bouton_Satellite = new BoutonControlSatellite();
			bouton_Mixte = new BoutonControlMixte();
			map.addControl(bouton_Plan);
			map.addControl(bouton_Satellite);
			map.addControl(bouton_Mixte);
			//map.addControl(new GSmallMapControl()); 
			//map.addControl(new GMapTypeControl()); 
			map.setMapType(G_NORMAL_MAP);//G_HYBRID_MAP);//G_SATELLITE_MAP);
			
			minimap = new GMap2(document.getElementById("minimap")); 
			minimap.setCenter(new GLatLng(44.5265,-0.219), 6);
			//minimap.enableScrollWheelZoom();
			minimap.enableContinuousZoom();
			minimap.setMapType(G_SATELLITE_MAP);
			
			/*var dMapDiv = document.getElementById("map");
			var CopyrightDiv = dMapDiv.firstChild.nextSibling;
			var CopyrightImg = dMapDiv.firstChild.nextSibling.nextSibling;
			CopyrightDiv.style.display = "none"; 
			CopyrightImg.style.display = "none";*/
			
			var dMapDiv = document.getElementById("minimap");
			var CopyrightDiv = dMapDiv.firstChild.nextSibling;
			var CopyrightImg = dMapDiv.firstChild.nextSibling.nextSibling;
			CopyrightDiv.style.display = "none"; 
			CopyrightImg.style.display = "none";
			
			GEvent.addListener(map, "moveend", function() { if (bouge){ bouge = false; minimap.setCenter(map.getCenter()); }else{bouge = true;}});
			GEvent.addListener(minimap, "moveend", function() { if (bouge){ bouge = false; map.setCenter(minimap.getCenter());}else{bouge = true;}});
			GEvent.addListener(map, "move", function() {DessineCadre()});
			
			geocoder = new GClientGeocoder(); 
			
			Init_Marqueur("tous");
			
			DessineCadre();
			
			Execute_Code();
		}
	}
	
	function DessineCadre()
	{
		if (Cadre != null)
		{
			minimap.removeOverlay(Cadre);
		}
		var bound = map.getBounds()
		var SW = bound.getSouthWest();
		var NE = bound.getNorthEast();
		var SE = new GLatLng(SW.lat(),NE.lng());
		var NW = new GLatLng(NE.lat(),SW.lng());
		var b_points = [SW,NW,NE,SE,SW];
		Cadre = new GPolygon(b_points,"#99b147",2,0.8,"#99b147",0.3);
		minimap.addOverlay(Cadre);
	}
	
	function Init_Marqueur (afficher)
	{
		minimap.clearOverlays();
		map.clearOverlays();
		
		for (i = 0; i < nb_itineraires; i++)
		{
			Line_Itineraire[nom_itineraire[i]] = Trajet(nom_itineraire[i],Couleurs[nom_itineraire[i]]);
		}
		
		if ((Itineraire != "") || (Affiche_Carnet == "O"))
		{
			if (Itineraire != "")
			{
				Line_Itineraire[Itineraire].show();
			}
				document.repere.case_chateaux_viticoles.checked = false;
				document.repere.case_patrimoine_architectural.checked = false;
				document.repere.case_restaurants_et_produits_du_terroir.checked = false;
				document.repere.case_hebergements.checked = false;
				document.repere.case_nature_et_activites_de_pleine_nature.checked = false;
				document.repere.case_office_de_tourisme_et_point_d_information_touristique.checked = false;
		}
		for (i = 0; i < nb_marqueurs; i++)
		{
			if (Carnet[id_fiche[i]] == 1)
			{
				markers[i] = creerMarker(points[i], texte[i], nom[i], icones[i]);
				//markers[i] = creerMarker(points[i], itineraires[i], nom[i], icones[i]);
			}
			else
			{
				markers[i] = creerMarker(points[i], texte2[i], nom[i], icones[i]);
				//markers[i] = creerMarker(points[i], itineraires[i], nom[i], icones[i]);
			}
			map.addOverlay(markers[i],icones[i]);
			if (Itineraire != "")
			{
				if (itineraires[i].indexOf(Itineraire,0) == -1)
				{
					markers[i].hide();
				}
			}
			if (Affiche_Carnet == "O")
			{
				if (Carnet[id_fiche[i]] == 1)
				{
					markers[i].show();
				}
				else
				{
					markers[i].hide();
				}
			}
			//markers[i].hide();
		}
	}
	
	function Afficher (type, critere)
	{
		switch (type)
		{
			case "rubrique" :
				for (i = 0; i < nb_marqueurs; i++)
				{
					if (rubrique[i] == critere)
					{
						markers[i].show();
					}
					else
					{
						markers[i].hide();
					}
				}
				if (critere == "chateaux_viticoles")
				{
					document.repere.case_chateaux_viticoles.checked = true;
				}
				else
				{
					document.repere.case_chateaux_viticoles.checked = false;
				}
				if (critere == "patrimoine_architectural")
				{
					document.repere.case_patrimoine_architectural.checked = true;
				}
				else
				{
					document.repere.case_patrimoine_architectural.checked = false;
				}
				if (critere == "restaurants_et_produits_du_terroir")
				{
					document.repere.case_restaurants_et_produits_du_terroir.checked = true;
				}
				else
				{
					document.repere.case_restaurants_et_produits_du_terroir.checked = false;
				}
				if (critere == "hebergements")
				{
					document.repere.case_hebergements.checked = true;
				}
				else
				{
					document.repere.case_hebergements.checked = false;
				}
				if (critere == "nature_et_activites_de_pleine_nature")
				{
					document.repere.case_nature_et_activites_de_pleine_nature.checked = true;
				}
				else
				{
					document.repere.case_nature_et_activites_de_pleine_nature.checked = false;
				}
				if (critere == "office_de_tourisme_et_point_d_information_touristique")
				{
					document.repere.case_office_de_tourisme_et_point_d_information_touristique.checked = true;
				}
				else
				{
					document.repere.case_office_de_tourisme_et_point_d_information_touristique.checked = false;
				}
			break;
			case "sous_rubrique" :
				for (i = 0; i < nb_marqueurs; i++)
				{
					if (sous_rubrique[i] == critere)
					{
						markers[i].show();
					}
					else
					{
						markers[i].hide();
					}
				}
				document.repere.case_chateaux_viticoles.checked = false;
				document.repere.case_patrimoine_architectural.checked = false;
				document.repere.case_restaurants_et_produits_du_terroir.checked = false;
				document.repere.case_hebergements.checked = false;
				document.repere.case_nature_et_activites_de_pleine_nature.checked = false;
				document.repere.case_office_de_tourisme_et_point_d_information_touristique.checked = false;
			break;
			case "checkbox" :
				for (i = 0; i < nb_marqueurs; i++)
				{
					if (rubrique[i] == "chateaux_viticoles")
					{
						if (document.repere.case_chateaux_viticoles.checked)
						{
							markers[i].show();
						}
						else
						{
							markers[i].hide();
						}
					}
					if (rubrique[i] == "patrimoine_architectural")
					{
						if (document.repere.case_patrimoine_architectural.checked)
						{
							markers[i].show();
						}
						else
						{
							markers[i].hide();
						}
					}
					if (rubrique[i] == "restaurants_et_produits_du_terroir")
					{
						if (document.repere.case_restaurants_et_produits_du_terroir.checked)
						{
							markers[i].show();
						}
						else
						{
							markers[i].hide();
						}
					}
					if (rubrique[i] == "hebergements")
					{
						if (document.repere.case_hebergements.checked)
						{
							markers[i].show();
						}
						else
						{
							markers[i].hide();
						}
					}
					if (rubrique[i] == "nature_et_activites_de_pleine_nature")
					{
						if (document.repere.case_nature_et_activites_de_pleine_nature.checked)
						{
							markers[i].show();
						}
						else
						{
							markers[i].hide();
						}
					}
					if (rubrique[i] == "office_de_tourisme_et_point_d_information_touristique")
					{
						if (document.repere.case_office_de_tourisme_et_point_d_information_touristique.checked)
						{
							markers[i].show();
						}
						else
						{
							markers[i].hide();
						}
					}
				}
			break;
			case "point" :
				document.repere.case_chateaux_viticoles.checked = true;
				document.repere.case_patrimoine_architectural.checked = true;
				document.repere.case_restaurants_et_produits_du_terroir.checked = true;
				document.repere.case_hebergements.checked = true;
				document.repere.case_nature_et_activites_de_pleine_nature.checked = true;
				document.repere.case_office_de_tourisme_et_point_d_information_touristique.checked = true;
				for (i = 0; i < nb_marqueurs; i++)
				{
					if (id_fiche[i] == critere)
					{
						markers[i].show();
						GEvent.trigger(markers[i],'click2');
					}
					else
					{
						markers[i].show();
					}
				}
			break;
			case "itineraire" :
				for (i = 0; i < nb_itineraires; i++)
				{
					if (Itineraire == nom_itineraire[i])
					{
						Line_Itineraire[nom_itineraire[i]].show();
					}
					else
					{
						Line_Itineraire[nom_itineraire[i]].hide();
					}
				}				
				if (Itineraire == "")
				{
					document.repere.case_chateaux_viticoles.checked = true;
					document.repere.case_patrimoine_architectural.checked = true;
					document.repere.case_restaurants_et_produits_du_terroir.checked = true;
					document.repere.case_hebergements.checked = true;
					document.repere.case_nature_et_activites_de_pleine_nature.checked = true;
					document.repere.case_office_de_tourisme_et_point_d_information_touristique.checked = true;
					for (i = 0; i < nb_marqueurs; i++)
					{
						if (rubrique[i] == "chateaux_viticoles")
						{
							if (document.repere.case_chateaux_viticoles.checked)
							{
								markers[i].show();
							}
							else
							{
								markers[i].hide();
							}
						}
						if (rubrique[i] == "patrimoine_architectural")
						{
							if (document.repere.case_patrimoine_architectural.checked)
							{
								markers[i].show();
							}
							else
							{
								markers[i].hide();
							}
						}
						if (rubrique[i] == "restaurants_et_produits_du_terroir")
						{
							if (document.repere.case_restaurants_et_produits_du_terroir.checked)
							{
								markers[i].show();
							}
							else
							{
								markers[i].hide();
							}
						}
						if (rubrique[i] == "hebergements")
						{
							if (document.repere.case_hebergements.checked)
							{
								markers[i].show();
							}
							else
							{
								markers[i].hide();
							}
						}
						if (rubrique[i] == "nature_et_activites_de_pleine_nature")
						{
							if (document.repere.case_nature_et_activites_de_pleine_nature.checked)
							{
								markers[i].show();
							}
							else
							{
								markers[i].hide();
							}
						}
						if (rubrique[i] == "office_de_tourisme_et_point_d_information_touristique")
						{
							if (document.repere.case_office_de_tourisme_et_point_d_information_touristique.checked)
							{
								markers[i].show();
							}
							else
							{
								markers[i].hide();
							}
						}
					}
				}
				else
				{
					document.repere.case_chateaux_viticoles.checked = false;
					document.repere.case_patrimoine_architectural.checked = false;
					document.repere.case_restaurants_et_produits_du_terroir.checked = false;
					document.repere.case_hebergements.checked = false;
					document.repere.case_nature_et_activites_de_pleine_nature.checked = false;
					document.repere.case_office_de_tourisme_et_point_d_information_touristique.checked = false;
				}
			break;
		}
			
		if (Itineraire != "")
		{
			if (Itineraire == "carnet")
			{
				for (i = 0; i < nb_marqueurs; i++)
				{
					if (Carnet[id_fiche[i]] == 1)
					{
						markers[i].show();
					}
					else if ((itineraires[i].indexOf("permanent",0) == -1) || (type == "itineraire"))
					{
						markers[i].hide();
					}
				}
			}
			else
			{
				for (i = 0; i < nb_marqueurs; i++)
				{
					if (itineraires[i].indexOf(Itineraire,0) != -1)
					{
						markers[i].show();
					}
					else if ((itineraires[i].indexOf("permanent",0) == -1) || (type == "itineraire"))
					{
						markers[i].hide();
					}
				}
			}
		}
	}
	
	function creerMarker(point, onglet1, nom, icone_tmp)
	{ 
		var titre = onglet1;
		var formulaire = "<center><table><tr><td>Adress</td><td colspan=\"3\"><input type=\"text\" size=\"50\" id=\"adresse\" name=\"adresse\"/></td></tr><tr><td>Postal code</td><td><input type=\"text\" size=\"6\" id=\"cp\" name=\"cp\"/></td><td>City</td><td><input type=\"text\" size=\"20\" id=\"ville\" name=\"ville\"/></td></tr></table><input type=\"button\" onclick=\"Itineraire(document.getElementById('adresse').value+','+document.getElementById('cp').value+' '+document.getElementById('ville').value,'"+point.lat()+"','"+point.lng()+"');\" value=\"Go!\"></center>";
		var envois_gps = "<a href=\"http://addto.tomtom.com/api/home/v2/georeference?action=add&apikey=1e890011-1546-47d2-a75a-2de768aebf9e&name="+nom+"&latitude="+point.lat()+"&longitude="+point.lng()+"&hl=en&attribution=&source=http://client.saisondor.com/routedesvins/\">Send to TomTom GPS</a>";

		var marker = new GMarker(point,{icon:icone_tmp,title:nom});
		if (onglet1 != "")
		{
			var infoTabs = [ 
			new GInfoWindowTab("Infos", onglet1),
			new GInfoWindowTab("Route", formulaire),
			new GInfoWindowTab("GPS", envois_gps)
			//new GInfoWindowTab("Flash", flash)
			]; 
		}
		else
		{
			var infoTabs = [ 
			new GInfoWindowTab("Route", formulaire),
			new GInfoWindowTab("GPS", envois_gps)
			//new GInfoWindowTab("Flash", flash)
			]; 
		}
		GEvent.addListener(marker, "click", function()
		{ 
			map.setCenter(point); 
			marker.openInfoWindowTabsHtml(infoTabs);
		});
		GEvent.addListener(marker, "click2", function()
		{ 
			map.setCenter(point,13); 
			marker.openInfoWindowTabsHtml(infoTabs);
		}); 
		return marker; 
	} 
	
	function creerMarker2(point, i, icone_tmp)
	{ 
		var marker2 = new GMarker(point,icone_tmp);
		GEvent.addListener(marker2, "click", function()
		{ 
			minimap.setCenter(point, 9); 
			GEvent.trigger(markers[i],'click')
		}); 
		return marker2; 
	}
	function creerMarker3(point, icone_tmp)
	{ 
		var marker3 = new GMarker(point,icone_tmp);
		return marker3; 
	} 
	
	function Itineraire (adresse_depart, adresse_arrive_lat,adresse_arrive_lng)
	{
		var adresse_arrive = new GLatLng(adresse_arrive_lat,adresse_arrive_lng);
		var locale = "fr";
		//resultat.innerHTML = '';
		
		geocoder.getLatLng( 
		adresse_depart, 
			function(point)
			{ 
				if (!point)
				{ 
					alert(adresse_depart + " introuvable"); 
				}
			else
				{ 
					trajet = [point,adresse_arrive];
					
					if(dirObj)
					{
						dirObj.clear();
					}
					
					dirObj = new GDirections(map);
					
					GEvent.addListener(dirObj, "load", onDirectionsLoad);
					GEvent.addListener(dirObj, "error", EnCasdErreur);

					dirObj.loadFromWaypoints(trajet,	{locale:locale.value,getPolyline:true,getSteps:true});
				} 
			} 
		);
	}	
	
	function EnCasdErreur()
	{
 		if (dirObj.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
		{
 			alert('Aucun endroit géographique ne correspond. Code d erreur : ' + dirObj.getStatus().code);
 		}
		else
		{
 			alert('Une erreur inconnue s\'est produite : '+dirObj.getStatus().code);
 		}
 	}
	
	function onDirectionsLoad()
	{
		//itineraire = true;
		var html = "";
		var status = dirObj.getStatus();
		var bounds = dirObj.getBounds();
		
		map.clearOverlays();
		minimap.clearOverlays();
						
		var copyrightHTML = dirObj.getCopyrightsHtml();
		var summaryHTML = dirObj.getSummaryHtml();
		var distance = dirObj.getDistance();
		var duration = dirObj.getDuration();
		var numRoutes = dirObj.getNumRoutes();
		var oDriveFrom = document.getElementById('driveFrom');
		var oDriveTo = document.getElementById('driveTo');
		var startLatLng = dirObj.getRoute(0).getStep(0).getLatLng();
		var endLatLng = dirObj.getRoute(numRoutes-1).getEndLatLng();
		var centre = bounds.getCenter(map);

		var numGeoCodes = dirObj.getNumGeocodes();
		var startPoint = dirObj.getGeocode(0);
		var endPoint = dirObj.getGeocode(numGeoCodes-1);
		//marker_depart = creerMarker3(startPoint, depart);
		//addMarker(endPoint, arrive);

		polyline = dirObj.getPolyline();
		pLine = copyPolyline(polyline);
		pLine2 = copyPolyline(polyline);
		//pLine3 = copyPolyline(polyline);
		
		map = new GMap2(document.getElementById("map")); 
		map.setCenter(centre, map.getBoundsZoomLevel(bounds));
		map.enableScrollWheelZoom();
		map.enableContinuousZoom();
		map.addControl(new ZoomControl());
		bouton_Plan = new BoutonControlPlan();
		bouton_Satellite = new BoutonControlSatellite();
		bouton_Mixte = new BoutonControlMixte();
		map.addControl(bouton_Plan);
		map.addControl(bouton_Satellite);
		map.addControl(bouton_Mixte);
		//map.addControl(new GSmallMapControl()); 
		//map.addControl(new GMapTypeControl()); 
		map.setMapType(G_NORMAL_MAP);//G_HYBRID_MAP);//G_SATELLITE_MAP);
		
		minimap = new GMap2(document.getElementById("minimap")); 
		minimap.setCenter(centre, map.getBoundsZoomLevel(bounds)-3);
		minimap.enableScrollWheelZoom();
		minimap.enableContinuousZoom();
		minimap.setMapType(G_SATELLITE_MAP);
		
		/*var dMapDiv = document.getElementById("map");
		var CopyrightDiv = dMapDiv.firstChild.nextSibling;
		var CopyrightImg = dMapDiv.firstChild.nextSibling.nextSibling;
		CopyrightDiv.style.display = "none"; 
		CopyrightImg.style.display = "none";*/
		
		var dMapDiv = document.getElementById("minimap");
		var CopyrightDiv = dMapDiv.firstChild.nextSibling;
		var CopyrightImg = dMapDiv.firstChild.nextSibling.nextSibling;
		CopyrightDiv.style.display = "none"; 
		CopyrightImg.style.display = "none";
		
		GEvent.addListener(map, "moveend", function() { if (bouge){ bouge = false; minimap.setCenter(map.getCenter()); }else{bouge = true;}});
			GEvent.addListener(minimap, "moveend", function() { if (bouge){ bouge = false; map.setCenter(minimap.getCenter());}else{bouge = true;}});		
		
		bouge = true;
		
		Init_Marqueur("tous");
		
		//html += '<div class="globalSummaryDiv">';
		//html += '<table cellspacing="0" cellpadding="2" width="100%">';
		//html += '<tr><td valign="top"> <b>' + startPoint.address + '</b> to <b>' + endPoint.address + '</b></td></tr>';
		//html += '<tr><td valign="top"> '+summaryHTML+'</td></tr>';
		//html += '</table></div>';
		html += "<a href=\"#\" onclick=\"Javascript:document.getElementById('itineraire').style.display='none';\">Fermer</a>"
		html += "<table id=\"it_table\">";
		
		for (var r = 0 ; r < numRoutes ; r++ ) {
			//html += ("r : " + r + "<br>");
			var route = dirObj.getRoute(r);
			var startGeoCode = dirObj.getGeocode(r);//route.getStartGeocode();
			var endGeoCode = dirObj.getGeocode(r+1);//route.getEndGeocode();
			var endLatLng = route.getEndLatLng();
			var routeSummaryHTML = route.getSummaryHtml();
			var routeDistance = route.getDistance();
			var routeDuration = route.getDuration();
			//html += '<div class="routeSummaryDiv" onclick="toggleSteps('+r+')" title="Click to view steps">';
			//html += '<table cellspacing="0" cellpadding="2" width="100%">';
			//html += '<tr>';
			
			if (numRoutes == 1) {
				html += "<tr><td colspan=\"3\" valign=\"middle\"><div id=\"it_repere\"><img align=\"absmiddle\" src=\"../../images/point_a.png\">" + startGeoCode.address + "</div></td></tr>";
				//html += '<td valign="top"><img src="../../images/point_a.png"></td>';
			}
			else {
				if (r == 0) {
					////html += '<td valign="top"><img src="../../images/flag.png"></td>';
					//var midMarker = new GMarker(endLatLng,{icon:icone});
					//map.addOverlay(midMarker);
				}
				else if (r == numRoutes - 1) {
					
					//html += '<td valign="top"><img src="../../images/point_b.png"></td>';
				}
				else {
					////html += '<td valign="top"><img src="../../images/flag.png"></td>';
					//var midMarker = new GMarker(endLatLng,{icon:icone});
					//map.addOverlay(midMarker);
				}
			}
			
			html += "<tr><td colspan=\"3\"><div id=\"it_total\">"+routeDistance.html+ " (" + routeDuration.html +  ")</div></td></tr>";
			//html += '<td valign="top"><b>' + startGeoCode.address + '</b> to<br> <b>' + endGeoCode.address + '</b><br>'+routeDistance.html+ ' (' + routeDuration.html +  ')</td>';
			//html += '</table></div>';

			var numSteps = route.getNumSteps();
			//html += '<table cellspacing="0" cellpadding="0" id="routeTable_'+r+'" style="display:none" width="100%">';
			for (var s = 0 ; s < numSteps ; s++ ) {
				//html += ("s : " + s + "<br>");
				var step = route.getStep(s);
				var stepLatLng = step.getLatLng();
				bounds.extend(stepLatLng);

				var stepPolylineIndex = step.getPolylineIndex();
				var stepDescriptionHTML = step.getDescriptionHtml();
				//var re = new RegExp(pattern,'g');
				//stepDescriptionHTML = stepDescriptionHTML.replace(re,'<b style="color:#CA0039">$1</b>')
				var stepDistance = step.getDistance();
				var stepDuration = step.getDuration();
				//html += '<tr class="stepRow" onclick="showStep('+r+','+s+')"><td>&nbsp;&nbsp;' + (s+1) + '.</td><td> ' + stepDescriptionHTML + '</td><td>' + stepDistance.html + '</td></tr>';
				html += "<tr onclick=\"showStep("+r+","+s+")\"><td><div id=\"it_etape\"><a href=\"#\" class=\"etape\">" + s + ".</a></div></td><td><div id=\"it_etape\">" + stepDescriptionHTML + "</div></td><td width=\"100\"><div id=\"it_etape\">" + stepDistance.html + "<br>("+stepDuration.html+")</div></td></tr>";
			}
			//html += '</table>';
		}
		html += "<tr><td colspan=\"3\"><div id=\"it_repere\"><img align=\"absmiddle\" src=\"../../images/point_b.png\">" + endGeoCode.address + "</div></td></tr></table>";
		
		document.getElementById('itineraire').innerHTML = html;
		 
	}
	
	function showStep(r,s)
	{
		map.closeInfoWindow();
		var step = dirObj.getRoute(r).getStep(s);
		var stepLatLng = step.getLatLng();
		var stepDescriptionHTML = step.getDescriptionHtml();
		//var re = new RegExp(pattern,'g');
		//stepDescriptionHTML = stepDescriptionHTML.replace(re,'<b style="color:#CA0039">$1</b>')
		var stepDistance = step.getDistance();
		var stepDuration = step.getDuration();

		//var infoHTML = '<div id="tab1" class="bubble">';
		//infoHTML += '<table>';
		//infoHTML += '<tr class="stepRow"><td>&nbsp;&nbsp;' + (s+1) + '.</td><td> ' + stepDescriptionHTML + '</td><td>' + stepDistance.html + '</td></tr>';
		//infoHTML += '<tr class="stepRow"><td>&nbsp;&nbsp;</td colspan="2"><td> ' + stepLatLng + '</td></tr>';
		//infoHTML += '</table>';
		//infoHTML += '</div>';



		var tab1 = new GInfoWindowTab("Carte", '<div style=\"width: 150px; height: 150px\" id=\"detailmap2\"></div>');
		//var tab2 = new GInfoWindowTab("Info", infoHTML);
		//var infoTabs = [tab1,tab2];
		var infoTabs = [tab1];

		map.openInfoWindowTabsHtml(stepLatLng,infoTabs);

		//detailmap = null;
// Minimap for driving directions
		var dMapDiv = document.getElementById("detailmap2");
		detailmap = new GMap2(dMapDiv);
		detailmap.setCenter(stepLatLng,15);
		detailmap.addOverlay(pLine);

		var CopyrightDiv = dMapDiv.firstChild.nextSibling;
		var CopyrightImg = dMapDiv.firstChild.nextSibling.nextSibling;
		CopyrightDiv.style.display = "none"; 
		CopyrightImg.style.display = "none";
	}
	
	function Trace_Itineraire()
	{
		if (pLine2 != null)
		{
			map.addOverlay(pLine2);
			//map.addOverlay(marker_depart,depart);
		}
	}
	
	function copyPolyline(p) {
	pLinePoints = Array();
	for (var n = 0 ; n < p.getVertexCount() ; n++ ) {
		pLinePoints.push(p.getVertex(n));
	}
	var pLine = new GPolyline(pLinePoints,'#91AE1F',5,1);
	return pLine;
}
