	  var login;
      var gmarkers = new Array;
      var htmls = new Array;
	  var nb_marker=0;
	  var i=0;
	  var map = null;
	  var rubrique = new Array;
	  var prec_nb_result=0;
	  var max_ss_rub=25;
	  var nb_ss_rub_active=24;

	  var ss_rub_select = new Array;  	//0=pas sélectionné et 1=sélectionné
	  var ss_rub_image= new Array;  	//liste des images rattachées à chaque sous rubrique
	  var ss_rub_G_image = new Array;	//liste des images grisées rattachées à chaque sous rubrique
	  var ss_rub_rub = new Array;		// rubrique associée à la sous rubrique
	  
	  var ss_rub_tous = false;
	  var html_liste_resultat;
	  var rep_photo="photo/";
	  var rep_photo_mini="photo/mini/";
	  var rep_img="img/";
	  
	  var num_req = 0;
	  var carte_maj = false;
	  var permalien_home="al";	  
	  var id_objet //utilisé pour l'ajout à une liste.
	  
	  var point_yaller;
	  
	var elementFocused=null;
	var marker_resultat
  
	  
	  //liste des images rattachées à chaque sous rubrique
  	ss_rub_image[1]=rep_img+"SS_RUB_hotel.jpg";
	ss_rub_image[2]=rep_img+"SS_RUB_auberge.jpg";
	ss_rub_image[3]=rep_img+"SS_RUB_gite.jpg";;
	ss_rub_image[4]=rep_img+"SS_RUB_camping.jpg";;
	ss_rub_image[5]=rep_img+"SS_RUB_chambredhote.jpg";
	ss_rub_image[6]=rep_img+"SS_RUB_snack.jpg";
	ss_rub_image[7]=rep_img+"SS_RUB_restaurant.jpg";
	ss_rub_image[8]=rep_img+"SS_RUB_encas.jpg";
	ss_rub_image[9]="";
	ss_rub_image[10]=rep_img+"SS_RUB_cafebar.jpg";
	ss_rub_image[11]=rep_img+"SS_RUB_musee.jpg";
	ss_rub_image[12]=rep_img+"SS_RUB_centrehistorique.jpg";
	ss_rub_image[13]=rep_img+"SS_RUB_edificeremarquable.jpg";
	ss_rub_image[14]=rep_img+"SS_RUB_pointdevueN.jpg";
	ss_rub_image[15]=rep_img+"SS_RUB_laccascade.jpg";
	ss_rub_image[16]=rep_img+"SS_RUB_randonnee.jpg";
	ss_rub_image[17]=rep_img+"SS_RUB_parcattraction.jpg";
	ss_rub_image[18]=rep_img+"SS_RUB_sorties.jpg";
	ss_rub_image[19]=rep_img+"SS_RUB_ski.jpg";
	ss_rub_image[20]=rep_img+"SS_RUB_activitessportives.jpg";
	ss_rub_image[21]=rep_img+"SS_RUB_pointdevueC.jpg";
	ss_rub_image[22]=rep_img+"SS_RUB_parcsetjardins.jpg";
	ss_rub_image[23]=rep_img+"SS_RUB_siteremarquable.jpg";
	ss_rub_image[24]=rep_img+"SS_RUB_reservenaturelle.jpg";
	ss_rub_image[25]=rep_img+"SS_RUB_plage.jpg";


	  
	  
	  
	  //liste des images grisées rattachées à chaque sous rubrique
  	ss_rub_G_image[1]="img/SS_RUB_G_hotel.gif";
	ss_rub_G_image[2]="img/SS_RUB_G_auberge.gif";
	ss_rub_G_image[3]="img/SS_RUB_G_gite.gif";;
	ss_rub_G_image[4]="img/SS_RUB_G_camping.gif";;
	ss_rub_G_image[5]="img/SS_RUB_G_chambredhote.gif";
	ss_rub_G_image[6]="img/SS_RUB_G_snack.gif";
	ss_rub_G_image[7]="img/SS_RUB_G_restaurant.gif";
	ss_rub_G_image[8]="img/SS_RUB_G_encas.gif";
	ss_rub_G_image[9]="";
	ss_rub_G_image[10]="img/SS_RUB_G_cafebar.gif";
	ss_rub_G_image[11]="img/SS_RUB_G_musee.gif";
	ss_rub_G_image[12]="img/SS_RUB_G_centrehistorique.gif";
	ss_rub_G_image[13]="img/SS_RUB_G_edificeremarquable.gif";
	ss_rub_G_image[14]="img/SS_RUB_G_pointdevueN.gif";
	ss_rub_G_image[15]="img/SS_RUB_G_laccascade.gif";
	ss_rub_G_image[16]="img/SS_RUB_G_randonnee.gif";
	ss_rub_G_image[17]="img/SS_RUB_G_parcattraction.gif";
	ss_rub_G_image[18]="img/SS_RUB_G_sorties.gif";
	ss_rub_G_image[19]="img/SS_RUB_G_ski.gif";
	ss_rub_G_image[20]="img/SS_RUB_G_activitessportives.gif";
	ss_rub_G_image[21]="img/SS_RUB_G_pointdevueC.gif";
	ss_rub_G_image[22]="img/SS_RUB_G_parcsetjardins.gif";
	ss_rub_G_image[23]="img/SS_RUB_G_siteremarquable.gif";
	ss_rub_G_image[24]="img/SS_RUB_G_reservenaturelle.gif";
	ss_rub_G_image[25]="img/SS_RUB_G_plage.gif";
	  
	  
	// rubrique associée à la sous rubrique
	ss_rub_rub[1]=1;
	ss_rub_rub[2]=1;
	ss_rub_rub[3]=1;
	ss_rub_rub[4]=1;
	ss_rub_rub[5]=1;
	ss_rub_rub[6]=2;
	ss_rub_rub[7]=2;
	ss_rub_rub[8]=2;
	ss_rub_rub[9]=0;
	ss_rub_rub[10]=2;
	ss_rub_rub[11]=3;
	ss_rub_rub[12]=3;
	ss_rub_rub[13]=3;
	ss_rub_rub[14]=4;
	ss_rub_rub[15]=4;
	ss_rub_rub[16]=4;
	ss_rub_rub[17]=5;
	ss_rub_rub[18]=5;
	ss_rub_rub[19]=5;
	ss_rub_rub[20]=5;
	ss_rub_rub[21]=3;
	ss_rub_rub[22]=3;
	ss_rub_rub[23]=4;
	ss_rub_rub[24]=4;
	ss_rub_rub[25]=5;

	//rubrique selectionnée initialement
	ss_rub_select[1]=1;
	ss_rub_select[2]=1;
	ss_rub_select[3]=1;
	ss_rub_select[4]=1;
	ss_rub_select[5]=1;
	ss_rub_select[6]=1;
	ss_rub_select[7]=1;
	ss_rub_select[8]=1;
	ss_rub_select[9]=0;
	ss_rub_select[10]=1;
	ss_rub_select[11]=1;
	ss_rub_select[12]=1;
	ss_rub_select[13]=1;
	ss_rub_select[14]=1;
	ss_rub_select[15]=1;
	ss_rub_select[16]=1;
	ss_rub_select[17]=1;
	ss_rub_select[18]=1;
	ss_rub_select[19]=1;
	ss_rub_select[20]=1;
	ss_rub_select[21]=1;
	ss_rub_select[22]=1;
	ss_rub_select[23]=1;
	ss_rub_select[24]=1;
	ss_rub_select[25]=1;


// gere l'affichage des icones de sous rubrique
function affiche_icone_ss_rub(){

nb_ss_rub_sel=0;
for (i = 1; i <=max_ss_rub; i++) 
{
	nb_ss_rub_sel+=ss_rub_select[i];
	if (ss_rub_rub[i] > 0) 
	{
		id_button = "ss_rub_" + i;
	
		switch (ss_rub_select[i]) 
		{
			case 1:
				img_active=ss_rub_image[i];
				document.getElementById(id_button).src = img_active;
				break;
			case 0:
				img_inactive=ss_rub_G_image[i];
				document.getElementById(id_button).src= img_inactive;
				break;
		}
	}
}
	

	
}
 


// met à jour les icones des rubriques lorsque qu'une sous rubrique est sélectionnée
function select_ss_rubrique(ss_rub)  
{

rubrique = ss_rub_rub[ss_rub];
nb_sel=0;
nb_max_sel_ss_rub=0;
nb_sel_ss_rub=0;

	for (i=1;i<=max_ss_rub;i++)
	{
			if (ss_rub_select[i]==1) {nb_sel+=1;}
			if (ss_rub_rub[i]==rubrique)
			{
				nb_max_sel_ss_rub+=1;
				if (ss_rub_select[i]==1)
				{nb_sel_ss_rub+=1;}
			}
	}


if (nb_ss_rub_active == nb_sel) 
{
	for (i = 1; i <= max_ss_rub; i++) 
	{
			if (i == ss_rub) 
			{
				ss_rub_select[i] = 1;
			}
			else 
			{
				ss_rub_select[i] = 0;
			}
		
	}
	
}
else 
{
	if (nb_max_sel_ss_rub==nb_sel_ss_rub)
	{
		for (i = 1; i <= max_ss_rub; i++) 
		{
				if (ss_rub_rub[i]==rubrique) 
				{
					if (i == ss_rub) 
					{
						ss_rub_select[i] = 1;
					}
					else
					{
						ss_rub_select[i] = 0;
					}
				}

			
		}
		
	}
	else
	{
		switch (ss_rub_select[ss_rub]) 
		{
			case 1:
				ss_rub_select[ss_rub] = 0;
				break;
			case 0:
				ss_rub_select[ss_rub] = 1;
				break;
		}
}
}
refresh_marker();
affiche_icone_ss_rub();
}
 
 
// met à jour les icones des rubriques lorsque qu'une rubrique est sélectionnée
function select_rubrique(rub) 
{

var	nb_max_rub=0;
var	nb_ss_rub_sel=0;
var actif=0;

//compte combien de sous rubrique selectionnees
	for (i=1;i<=max_ss_rub;i++)
	{
		if (ss_rub_rub[i]>0)
		{
			nb_max_rub+=1;
			nb_ss_rub_sel+=ss_rub_select[i];
		}
	}



if (nb_max_rub==nb_ss_rub_sel)
{
	for (i=1;i<=max_ss_rub;i++)
	{
		if (ss_rub_rub[i]==rub)
		{
			ss_rub_select[i] = 1;
		}
		else
		{
			ss_rub_select[i] = 0;
		}	
	}

}
else
{
	nb_ss_rub_sel=0;
		for (i=1;i<=max_ss_rub;i++)
	{
		if (ss_rub_rub[i]==rub)
		{
			if (ss_rub_select[i] == 0) {
				nb_ss_rub_sel += 1;
			}
		}
	}
	if (nb_ss_rub_sel==0)
	{
		for (i = 1; i <= max_ss_rub; i++) 
		{
			if (ss_rub_rub[i] == rub) {
				ss_rub_select[i] = 0;
			}
		}
	}
	else
	{
		for (i = 1; i <= max_ss_rub; i++) 
		{
			if (ss_rub_rub[i] == rub) {
				ss_rub_select[i] = 1;
			}
		}
	}
	
	
	
}



refresh_marker();	
affiche_icone_ss_rub();
} 




// raffrachit les marker sur la carte  
function refresh_marker()
{
	
	//lien creer lieu: modification de la reference pour que la carte s'ouvre dans cet fenetre au meme
	// emplacement que celui affiché dans la page principale si utilisateur connecte
	if (login != "") 
	{
		document.getElementById("cree_objet").href = "creer_objet.php?cre_lat=" + map.getCenter().lat() + "&cre_lng=" + map.getCenter().lng() + "&cre_zoom=" + map.getZoom();
	}
	
	permalien_home =  "http://www.alekae.com/index.php?lat="+ map.getCenter().lat() + "&lon=" + map.getCenter().lng() + "&zoom=" + map.getZoom();

		// GEstion des déplacements de la carte
			lat_min = parseFloat(map.getBounds().getSouthWest().lat());
			lat_max = parseFloat(map.getBounds().getNorthEast().lat());
			lng_min = parseFloat(map.getBounds().getSouthWest().lng());
			lng_max = parseFloat(map.getBounds().getNorthEast().lng());
			
			ss_rubrique="";

			for (var i = 0; i <= max_ss_rub; i++) 	
			{
				if (ss_rub_select[i]==1) {ss_rubrique+=i+",";}
			}
			
			ss_rubrique=ss_rubrique.substring(0,ss_rubrique.length-1);
			ss_rubrique="("+ss_rubrique;
			ss_rubrique+=")";
			
	
							
			// affichage uniquement des objets présents dans la zone de carte affichée
			var request = GXmlHttp.create();
			num_req ++;
			request.open("GET", "get_sql.php?req=obj_in_map&lat_min=" + lat_min + "&lat_max=" + lat_max + "&lng_min=" + lng_min + "&lng_max=" + lng_max+"&ss_rubrique="+ss_rubrique+"&num_req="+num_req, true);
			carte_maj=false;
				request.send(null);		

			request.onreadystatechange = function()
			{
				
				if (request.readyState == 4) 
				{
				
				
					var xmlDoc = GXml.parse(request.responseText);
					
					var obj_num_req = xmlDoc.documentElement.getElementsByTagName("d");
					var num_req_sql = obj_num_req[0].getAttribute("num_req");
						

					if (carte_maj == false) 
					{
						map.clearOverlays();
						html_liste_resultat = "";
						//supprime ancienne liste de resultats a gauche
						if (document.getElementById("res")) {
							document.getElementById("listeresultat").removeChild(document.getElementById("res"));
						}
					}
						
					if (num_req_sql == num_req) 
					{
						carte_maj=true;
						nb_marker = 0;
						var obj = xmlDoc.documentElement.getElementsByTagName("b");						
						for (var i = 0; i < obj.length; i++) 
						{
						
							var lat = obj[i].getAttribute("lat");
							var lng = obj[i].getAttribute("lng");
							
							var point = new GLatLng(lat, lng);
							var label = obj[i].getAttribute("lb");
							
							var ss_rub_lib = str_url(obj[i].getAttribute("ss_rub"));
							var id_ss_rub = obj[i].getAttribute("id_ss_rub");
							var lib_objet = html_entity_decode(obj[i].getAttribute("lb"));
							var lib_objet_long=lib_objet;
							var lib_objet_escape =str_url(lib_objet);

							if (lib_objet.length > 25) {
								lib_objet = lib_objet.substring(0, 25) + "...";
							}
							
							var photo = obj[i].getAttribute("photo");
							var photo_mini = ""
							if (photo != "") {
								photo_mini = rep_photo_mini + "M_" + photo;
							}
							photo = rep_photo + obj[i].getAttribute("photo");
							var description = html_entity_decode(obj[i].getAttribute("desc"));
							description=description.replace(/<\/?[^>]+>/gi, "");
							if (description.length > 70) {
								description = description.substring(0, 70) + "...";
							};
							if (description == "") {
								description = "Soyez le premier à décrire ce lieu."
							}

							
							var id = obj[i].getAttribute("id");
							var note = Math.round(obj[i].getAttribute("note"));
							if (note != "") {
								note = Math.round(note);
							}
							else {
								note = 0;
							}
							
							var nb_avis = obj[i].getAttribute("nb_avis");
							var id_rubrique = obj[i].getAttribute("id_rub");
							
							url_lieux = 'Lieu-' + id + '-'+ss_rub_lib+'-' + lib_objet_escape+'.html';
							
							//------------------------------------------	
							// Construction de la bulle					
							
							var html = '<div id="bulle">';
							html += '<div id="hautdebulle">';
							html += '<img class="categorieBU" src="' + ss_rub_image[id_ss_rub] + '" />';
							html += '<a id="nomObjetBulle" href="'+url_lieux+'">' + lib_objet + '</a>';							
							
						
							// cree le marker
							
							var marker = createMarker(point, label, html, id_rubrique);
							map.addOverlay(marker);
							
							//------------------------------------------						
							//MAJ zone liste top a gauche
							newitem = '<div  class="resultat"  onmouseover="aggrandit_icone('+i+');"  onmouseout="supprime_icone_aggrandit();">';
							newitem += '<img class="categorie" src="' + ss_rub_image[id_ss_rub] + '" />';
							newitem += '<div class="titreresultat">';
							newitem += '<a id="nomObjetresultatR" style="cursor : pointer;" title="'+lib_objet_long+'" href="' + url_lieux+ '">' + lib_objet + '</a>';
							newitem += '</div>';
							newitem += '<div id="noteR" onclick="window.location=\''+url_lieux + '#avis\'" style="cursor : pointer;" ">';
							for (j = 1; j < 6; j++) {
								if (note >= j) {
									newitem += '<img  class="img_note" src="img/ETOILE_jaune.gif"/>';
								}
								else {
									newitem += '<img  class="img_note" src="img/ETOILE_grise.gif"/>';
								}
							}
							newitem += ' (' + nb_avis + ' avis)';
							newitem += '</div>';
							if (photo != rep_photo) {
								newitem += '<img id="photo_result" src="' + photo_mini + '" style="cursor : pointer;"  onclick="window.open(\'photo.php?photo=' + photo + '\');"/>';
							}
							newitem += '<div id="description" onclick="window.location=\'' + url_lieux +'\';" style="cursor : pointer;"><p id="descriptionObjet">' + description + '</p></div>';	
							newitem += '<div id="resultat_action">';
							newitem += '<img  class="result_action" src="img/zoom.png" onClick="window.location=\'' + url_lieux +'\';" title="Plus de détails sur le lieu"  style="cursor : pointer;" />';	
							newitem += '<img  class="result_action" src="img/user_comment.png" onClick="window.location=\'creer_avis.php?id_objet=' + id + '&objet=' + lib_objet_escape+'\';" title="Ajouter un avis"  style="cursor : pointer;" />';	
							newitem += '<img  class="result_action" src="img/page_edit.png" onClick="window.location=\'creer_objet.php?id_objet=' + id + '\';" title="Modifier lieu"  style="cursor : pointer;" />';														
							if (login != "") {
								newitem += '<img  class="result_action" src="img/add.png" title="ajouter ce lieu à une liste" style="cursor : pointer;" onclick="set_id_objet(' + id + ');ajout_fond_noir();document.getElementById(\'ajouter_liste\').style.visibility=\'visible\';" />';
							}
							else {
								newitem += '<img  class="result_action" src="img/add.png" title="ajouter ce lieu à une liste" style="cursor : pointer;" onclick="alert(\'Vous devez être connecté pour ajouter des lieux à vos listes\');ajout_fond_noir();document.getElementById(\'connexion\').style.visibility=\'visible\';" />';
							}
							
							newitem += '</div>';							
							newitem += '</div>';
							
							
							html_liste_resultat = html_liste_resultat + newitem;
							
							
						}
						newnode = document.createElement("res");
						newnode.setAttribute("id", "res");
						newnode.innerHTML = html_liste_resultat;
						document.getElementById("listeresultat").insertBefore(newnode, document.getElementById("init_liste_resultat"));
						
						var obj2 = xmlDoc.documentElement.getElementsByTagName("c");
						var nb_lieux = obj2[0].getAttribute("nb_lieux");
						document.getElementById("nb_lieux").innerHTML = "(" + obj.length + " lieux sur " + nb_lieux + ")";
						prec_nb_result = obj.length;
					}
					
				}
			}
			
}

  
  
function init_map()
{



	login = document.getElementById("login_name").innerHTML;
	lat = document.getElementById("lat").innerHTML;
	lon = document.getElementById("lon").innerHTML;
	zoom = parseInt(document.getElementById("zoom").innerHTML);			
	aller_a="";

tirage_pos= parseInt(Math.random()*3);


if (lat == "") {
	switch (tirage_pos) {
		case 0:
			lat = 10;
			lon = -84.5;
			zoom = 7;
			aller_a = "Costa Rica";
			break;
		case 1:
			lat = -21;
			lon = 56;
			zoom = 7;
			aller_a = "Ile de la Réunion";
			break;
			
		default:
			lat = 48.86;
			lon = 2.35;
			zoom = 12;
			aller_a = "Paris";
			break;
			
	}
}
document.getElementById("address").value = aller_a;


  	

	  if (GBrowserIsCompatible()) 
	  {
	  
	  	// parametrage de la carte
		// creation de la carte
		map = new GMap2(document.getElementById("map"));
		map.setCenter(new GLatLng(lat, lon), 7);
		map.setZoom(zoom);
				
		// Autorise le double click permettant de zoomer
		map.enableDoubleClickZoom();
		//zoom avec la molette
		map.enableScrollWheelZoom();
		// mode carte, satellite, mixte
		map.addControl(new GMapTypeControl());
				
		//echelle
		map.addControl(new GScaleControl());
		//mini carte en base à droite
		map.addControl(new GOverviewMapControl(new GSize(100, 100)));
				
		map.addControl(new GLargeMapControl());
		
	
		GEvent.addListener(map, "moveend", function()
		{			
			refresh_marker();
		});
		

		for (var i = 0; i <= max_ss_rub; i++) 		
		{
		 	rubrique[i]=1;
		}

		
		affiche_icone_ss_rub();
		refresh_marker();
		
		new ContextMenu(map);
		
	
				
	}
	
}

//------------------------------------------------------------------
// déplacement de la carte en fonction du scroll de la page
function move_carte()
{
  var y = (document.body.scrollTop || document.documentElement.scrollTop);
  
     var left = 0;
    /*On récupère l'élément*/
    var e = document.getElementById("resultats");
    /*Tant que l'on a un élément parent*/
    while (e.offsetParent != undefined && e.offsetParent != null)
    {
        /*On ajoute la position de l'élément parent*/
        left += e.offsetLeft + (e.clientLeft != null ? e.clientLeft : 0);
        e = e.offsetParent;
    }	
  
  x=left+409;
  
  if (y >= 220)
  {
  	document.getElementById("contenantmap").style.position="fixed";
	document.getElementById("contenantmap").style.top = "0px";	
	document.getElementById("contenantmap").style.left=x+"px";		
  }
  else
  {
  	document.getElementById("contenantmap").style.position="absolute";  	
	document.getElementById("contenantmap").style.top = "0px";	
	document.getElementById("contenantmap").style.left="410px";		
  }
}

//------------------------------------------------------------------
//-- construction des menus sur la carte: créer un lieu, zoom...
function ContextMenu(oMap){this.initialize(oMap);}

//Construct the DOM tree of the menu
ContextMenu.prototype.initLink = function(oMap){
	var that=this;
	
	a_link = document.createElement("li");
	a_link.innerHTML="<a href='javascript:void(0);'>Créer un lieu</a>";
	GEvent.addDomListener(a_link, 'click', function() {
	if (login != "") {
		var point = that.map.fromContainerPixelToLatLng(that.clickedPixel);
		window.location = "creer_objet.php?cre_lat=" + point.lat() + "&cre_lng=" + point.lng() + "&cre_zoom=" + map.getZoom();
	}
	else {
		alert('Vous devez être connecté pour créer des lieux');
		ajout_fond_noir();
		document.getElementById('connexion').style.visibility='visible';
	}
		that.contextmenu.style.display="none";
	});
	this.ul_container.appendChild(a_link);	

	a_link = document.createElement("li");
	a_link.innerHTML="<a href='javascript:void(0);'>Y aller</a>";
	GEvent.addDomListener(a_link, 'click', function() {
		ajout_fond_noir();
		document.getElementById('yallerDO').style.display='block';
		point_yaller = that.map.fromContainerPixelToLatLng(that.clickedPixel);
		that.contextmenu.style.display='none';
		document.getElementById('enregistrer_YAL').focus();		
		
	});
	this.ul_container.appendChild(a_link);
		
	a_link = document.createElement("li");
	a_link.innerHTML="<a href='javascript:void(0);'>Zoom Avant</a>";
	GEvent.addDomListener(a_link, 'click', function() {
		that.map.zoomIn();
		that.contextmenu.style.display='none';
	});
	this.ul_container.appendChild(a_link);
	
	a_link = document.createElement("li");
	a_link.innerHTML="<a href='javascript:void(0);'>Zoom Arrière</a>";
	GEvent.addDomListener(a_link, 'click', function() {
		that.map.zoomOut();
		that.contextmenu.style.display='none';
	});
	this.ul_container.appendChild(a_link);
	
	a_link = document.createElement("li");
	a_link.innerHTML="<a href='javascript:void(0);'>Centrer la carte ici</a>";
	GEvent.addDomListener(a_link, 'click', function() {
		var point = that.map.fromContainerPixelToLatLng(that.clickedPixel);
		that.map.panTo(point);
		that.contextmenu.style.display="none";
	});
	this.ul_container.appendChild(a_link);
	
}
ContextMenu.prototype.bind = function(method) {
	var self = this;
	var opt_args = [].slice.call(arguments, 1);
	return function() {
		var args = opt_args.concat([].slice.call(arguments));
		return method.apply(self, args);
	}
}

//The object 'constructor'
ContextMenu.prototype.initialize = function(oMap){
	this.map = oMap;
	var that=this;
	
	this.contextmenu = document.createElement("div");
	this.contextmenu.style.display="none";
//CSS class name of the menu
	this.contextmenu.className="contextmenu";
	this.ul_container = document.createElement("ul");
	this.ul_container.id="context_menu_ul";
	this.contextmenu.appendChild(this.ul_container);	
	this.initLink();
	this.map.getContainer().appendChild(this.contextmenu);	

//Event listeners that will interact with our context menu
	GEvent.addListener(oMap,"singlerightclick",function(pixel,tile) {
		that.clickedPixel = pixel;
		var x=pixel.x;
		var y=pixel.y;
//Prevents the menu to go out of the map margins, in this case the expected menu size is 150x110
		if (x > that.map.getSize().width - 160) { x = that.map.getSize().width - 160 }
		if (y >that.map.getSize().height - 120) { y = that.map.getSize().height - 120 }
		var pos = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(x,y));  
		pos.apply(that.contextmenu);
		that.contextmenu.style.display = "";
	});	
	GEvent.addListener(oMap, "move", function() {
		that.contextmenu.style.display="none";
	});
	GEvent.addListener(oMap, "click", function(overlay,point) {
		that.contextmenu.style.display="none";
	});	
}



//-----------------------------------------------------------------
// fonction ouverture itinéraire google map
function itineraire_gmap()
{
	window.open('http://maps.google.fr/maps?saddr='+document.getElementById("adressededepart").value+'&daddr='+point_yaller.lat()+','+point_yaller.lng());
	document.getElementById('yallerDO').style.display='none';
	supprime_fond_noir();	
}

	  
//-----------------------------------------------------------------
// fonction création d'un marker
      function createMarker(point,name,html,type) 
      {
        var icon = new GIcon();
        
		switch (type)
		{
			case "1": icon.image = "img/PICO_rouge.png"; break;
			case "2": icon.image = "img/PICO_jaune.png";break;
			case "3": icon.image = "img/PICO_bleu.png";break;			
			case "4": icon.image = "img/PICO_vert.png";break;	
			case "5": icon.image = "img/PICO_orange.png";break;					
			default : icon.image = "img/PICO_marron.png";break;
		}
		
	
                icon.shadow = "img/PICO_ombre.png";
                icon.shadowSize = new GSize(22, 20);
                icon.iconAnchor = new GPoint(6, 20);
                icon.infoWindowAnchor = new GPoint(5, 1);		
        var marker = new GMarker(point,icon);

		GEvent.addListener(marker, "click", function() {
          marker.openInfoWindowHtml(html);
        });	
	
        gmarkers[nb_marker] = marker;
        htmls[nb_marker] = html;

        nb_marker++;
		

		
        return marker;
       }
 


function set_id_objet(id)
{
	id_objet = id;
}

function ajout_lieu_liste()
{

	id_list = document.getElementById('liste_liste').value;
	lib_list = document.getElementById('liste_liste').options[document.getElementById('liste_liste').selectedIndex].text;
	
	//on vérifie que le lieu n'est pas déjà présent dans la liste
	var url = "get_sql.php?req=list_lieu_exist&id_list="+id_list+"&id_objet="+id_objet;
	var request =GXmlHttp.create();
	request.open("GET", url, false);
	request.send(null); 
	
	if (request.readyState == 4) {
		var xmlDoc = GXml.parse(request.responseText);
		var obj = xmlDoc.documentElement.getElementsByTagName("b");
		if (obj[0].getAttribute("exist") == 0) {
			url = "get_sql.php?req=list_ajout_lieu&id_list=" + id_list + "&id_objet=" + id_objet;
			request = GXmlHttp.create();
			request.open("GET", url, false);
			request.send(null);
		}
		else {
			("Ce lieu fait déjà parti de la liste "+lib_list);
		}
	}
}
 
 
 //-----------------------------------------------------------------
 // Affichage d'une adresse
    function showAddress(adresse)
   {
      var geocoder = null;
      geocoder = new GClientGeocoder();
      
	  pageTracker._trackEvent('Aller à', 'déplacement carte',adresse);
	  
      if (geocoder) 
      {
        geocoder.getLatLng(
          adresse,
          function(point) {
            if (!point) {
              alert(adresse + " inconnue");
            } else {
			
              map.setCenter(point, 13);
              var marker = new GMarker(point);
              map.addOverlay(marker);
              marker.openInfoWindowHtml(adresse);
               
            }
          }
        );
      }
    }
	
 //-----------------------------------------------------------------
 // Lors du passage de la souris sur un résultat à gauche aggrandit l'icone correspondante
function aggrandit_icone(i)
{
//suppression de l'ancien marker
supprime_icone_aggrandit()

//création du marker à l'emplacement du lieu sélectionné
		var point = gmarkers[i].getPoint();
        var icon = gmarkers[i].getIcon();
		icon.iconSize = new GSize(33, 40);				
        icon.shadowSize = new GSize(34, 30);
        icon.iconAnchor = new GPoint(17, 40);
		marker_resultat = new GMarker(point,icon);
		map.addOverlay(marker_resultat);	
	



}

function supprime_icone_aggrandit()
{
if (marker_resultat)
{map.removeOverlay(marker_resultat);}		
}


 //-----------------------------------------------------------------
 // Permet de connaitre qu'elle zone de texte a le focus
function setFocus(){
elementFocused=this;

}
 
function unsetFocus(){
elementFocused=null;

}	