//<![CDATA[
geocastNQ = 
{
		t_champsDepart : [],
		t_champsArrive : [],
		t_inputAutoroute : [],
		tabStepTrajet : [],
		tabStepTrajetCompleter : [],
		tabLieuDejaPresent : [],
		tabMarker : [],
		tabMarkerPlanMode : [],
		tabAjoutArret : [],
		tabAjoutArretOrdreInfo : [],
		zoneAfficheInfoIti : "",
		DISTANCEMAX :  10000,
 		DISTANCEREPRENETAPE :  20000,
		pointDepart : '',
		pointFin : '',
		passageAutoroute : false,
		champs_modePlan : '',
		t_multi_lieux_sauv : [],
		recherchePlanDemande : '',
		markerIndicatif : null ,
		tabLieuDejaPresent_mode_plan : [],
		tabMarker_mode_plan : [],
        tabMarker_reper : [], 
		polyLigne : null,
        markerUser : null,
		indiceStreetCar : 0,
		markerCar : null ,
		sensStreet : 1,
		streetView : null,
		coordSuivante : 0 ,
		t_verif_ville_meteo : [],
		markerMeteo : [],
		nombreRequeteMeteo : 0,
		type_dejaCherche : [] ,
		markerCluster : [],
		compteurAjoutMarker : 0,
		adresseDepart : "",
		adresseArrive : "",
		controlItineraireTrace : false,
		controlMembreIcone : false,
		markerClusterModePlan : [],
		t_type_deja_selec_mode_plan : [],
		t_street_dispo : [],
		markerNQ : null,
		
		init : function(t_champsDepart, t_champsArrive,btn_calcul_iti, zoneAfficheInfoIti, t_autoroute, champsAdressePlan,btn_plan_mode)
		{
		
			geocastNQ.t_champsDepart = t_champsDepart;
			geocastNQ.t_champsArrive = t_champsArrive;
			geocastNQ.t_inputAutoroute = t_autoroute;
			
			geocastNQ.champs_modePlan = champsAdressePlan;
			geocastNQ.zoneAfficheInfoIti = zoneAfficheInfoIti;
			YAHOO.util.Event.addListener(btn_calcul_iti, 'click', function(e) { geocastNQ.calculItineraire(); });
			YAHOO.util.Event.addListener(btn_plan_mode, 'click', function(e) { geocastNQ.trouveAdressePlanMode(); });
			
			geocastNQ.markerCar = new GMarker(new GLatLng(45.2,5.4),{icon:gmapNQ.iconCar});
			
			gmapNQ.map.addOverlay(geocastNQ.markerCar);
			geocastNQ.markerCar.hide();
			
			GEvent.addListener(geocastNQ.markerCar, 'click', function() {
				geocastNQ.reouvreBull();
			}); 
            geocastNQ.init_event();
            
			
			
			
			var ic = new GIcon();
			ic.image = "../../images/nq.png";
			//icon.shadow = "images/ombre_1.png";
			ic.iconSize = new GSize(23, 25);
			//icon.shadowSize = new GSize(34, 30);
			ic.iconAnchor = new GPoint(16, 0);
			ic.infoWindowAnchor = new GPoint(10, 10);
			markerNQ = new GMarker(new GLatLng(45.5892964814955, 5.924291610717773),ic);
			gmapNQ.map.addOverlay(markerNQ);
            
			
		},
        
        init_event : function ()
        {
            GEvent.addListener(gmapNQ.directions,"load", function() 
             {
				 geocastNQ.effaceAllMarquerInteret();
				geocastNQ.effaceAllMarquerInteretModePlan();
				
				 geocastNQ.supprMeteo();
				   geocastNQ.t_street_dispo = [];
                   var num_route =  gmapNQ.directions.getNumRoutes();
                   var polylineRoute = gmapNQ.directions.getPolyline() ;
                     geocastNQ.polyLigne =polylineRoute;
                    var iti_hml = "";    
                   
                     var iti_hml_cacheG = ""; 
                      var iti_hml_cacheD = ""; 
					  
					  var sommeKm = 0 ;
                   for(var p=0;p<num_route;p++)
                   {
                     
                        groute = this.getRoute(p);
                        var geocode = groute.getStartGeocode();
                        var point = groute.getStep(0).getLatLng();
                        var lettreRecep = utilsNQ.tabLettre[p];
                        var letter = String.fromCharCode(lettreRecep.charCodeAt(0));
						//alert(letter);
						
                        iti_hml += geocastNQ.arret(point, utilsNQ.tabLettre[p], geocode.address,'gmapNQ.map',1,sommeKm);
						sommeKm +=groute.getDistance().meters;
                        //iti_hml += geocastNQ.routeDistance(groute.getDistance().html,groute.getDuration().html);
                        
						
                        iti_hml_cacheG +=  geocastNQ.arret(point, utilsNQ.tabLettre[p], geocode.address,'gmapNQ.map',2,sommeKm); 
                    
                        for ( var i=0; i < groute.getNumSteps(); i++ ) 
                        {
							if( i == 0)
							{
								geocastNQ.deplace_carStreet(groute.getStep(i).getLatLng().lat(),groute.getStep(i).getLatLng().lng());
		
							}
                            geocastNQ.tabStepTrajet.push(groute.getStep(i));
							geocastNQ.tabStepTrajetCompleter.push(groute.getStep(i));
                            var etape = groute.getStep(i);
                            
                            iti_hml += geocastNQ.detail(etape.getLatLng(), i+1, etape.getDescriptionHtml(), etape.getDistance().html,'gmapNQ.map',etape.getPolylineIndex(),1);
							
							var streetViewEtape = new GStreetviewClient();
							streetViewEtape.indice = "iconeStreetView_"+etape.getPolylineIndex();
							 streetViewEtape.getNearestPanorama(etape.getLatLng(), function(data){	if(data.code == 200){geocastNQ.t_street_dispo[geocastNQ.t_street_dispo.length] = 'ok'; }else{geocastNQ.t_street_dispo[geocastNQ.t_street_dispo.length] = 'pas ok'}});
					
	 //"street_"+etape.getPolylineIndex()
							
							
							
                           
                           if(i > (groute.getNumSteps()/2))
                           {
                              iti_hml_cacheD+=  geocastNQ.detail(etape.getLatLng(), i+1, etape.getDescriptionHtml(), etape.getDistance().html,'gmapNQ.map',etape.getPolylineIndex(),2);

                           }
                           else
                           {
                              iti_hml_cacheG+=  geocastNQ.detail(etape.getLatLng(), i+1, etape.getDescriptionHtml(), etape.getDistance().html,'gmapNQ.map',etape.getPolylineIndex(),2);                                                                           
                           }
                    
                        } 

                        geocastNQ.verifEtapeLongue(polylineRoute);
						
                    }
                     
                    
                        var geocode = groute.getEndGeocode();
                        var point = groute.getEndLatLng();
                        var lettreRecep = utilsNQ.tabLettre[num_route];
                        var letter = String.fromCharCode(lettreRecep.charCodeAt(0));
                        iti_hml += geocastNQ.arret(point, lettreRecep, geocode.address,'gmapNQ.map',1,sommeKm);
                        iti_hml_cacheD +=  geocastNQ.arret(point, lettreRecep, geocode.address,'gmapNQ.map',2,sommeKm);             
                    
                        iti_hml += geocastNQ.copyright(this.getCopyrightsHtml());
                   
                   Dom.get('divCacheItiColumG').innerHTML  = iti_hml_cacheG;
                   Dom.get('divCacheItiColumD').innerHTML  = iti_hml_cacheD;   
                   
                    Dom.get(geocastNQ.zoneAfficheInfoIti).innerHTML = iti_hml;
                    Dom.get('distanceTotalInfo').innerHTML = gmapNQ.directions.getDistance().html ;
                    var duree = gmapNQ.directions.getDuration().html;
                    duree = duree.replace('heures','h');
					duree = duree.replace('hours','h');
					duree = duree.replace('hour','h');
                    duree = duree.replace('jours','j');
                    duree = duree.replace('jour','j');
                    duree = duree.replace('heure','h');
                    duree = duree.replace('minute','m');
                    duree = duree.replace('minutes','m');
                    duree = duree.replace('ms','m');
					duree = duree.replace('mins','m');
                    Dom.get('dureeTotalInfo').innerHTML =  duree;   
                    
                    Dom.get('coutTotalInfo').innerHTML = 'n/a';
                    var conso = Dom.get('consoHidden').value;
                    if(conso != '')
                    {
                        var t_conso = conso.split('/');
                     
                        var conso_moy =  (parseInt(t_conso[1])+parseInt(t_conso[2]))/2;
                        var resulat = conso_moy*(parseInt(gmapNQ.directions.getDistance().meters)/100000);
                        var conso_affiche =    resulat+"";
                        var tabConso = conso_affiche.split('.');
                        Dom.get('coutTotalInfo').innerHTML  = tabConso[0]+" l";
                    }
                    
                    //fonction exterieur a la class qui permet d'initialiser le scroll
                   
					ddfeuilleRoute = new YAHOO.example.DDRegion("bloc_cursor_scroll_info_iti", '', { cont: "bloc_fond_scroll_info_iti", cont_html:"detail_itineraire_bloc" });
					
					Dom.get("container_dd").className = "repertoire_itineraire";
					geocastNQ.cache_carStreet();
					
					
					
					geocastNQ.controlItineraireTrace = true ; 
					
					setTimeout('geocastNQ.placeIconeStreetSurFeuilleRoute()',5000);
            });

				
            GEvent.addListener(gmapNQ.directions,"error", function() 
            {
                var erreur = "";
				var messageUtilisateur = "";
                if (gmapNQ.directions.getStatus().code == G_GEO_SUCCESS){
            
                    erreur =("Aucune erreur ne c'est produite. L'adresse a été analysée avec succès");
            
                }
            
                else if (gmapNQ.directions.getStatus().code == G_GEO_BAD_REQUEST){
            
                    erreur =("La demande n'a pu être analysée avec succés.");
					messageUtilisateur = "probleme";
            
                }
            
                else if (gmapNQ.directions.getStatus().code == G_GEO_SERVER_ERROR){
            
                    erreur =("La demande n'a pu être traitée avec succès. La raison éxacte de l'échec est inconnue.");
            		messageUtilisateur = "probleme";
                }
            
                else if (gmapNQ.directions.getStatus().code == G_GEO_MISSING_QUERY){
            
                    erreur =("Aucune question n'a été indiquée dans la requète");
					messageUtilisateur = "probleme";
            
                }
            
                else if (gmapNQ.directions.getStatus().code == G_GEO_MISSING_ADDRESS){
            
                    erreur =("aucune question n'a été indiquée dans la requète");
					messageUtilisateur = "probleme";
            
                }
            
                else if (gmapNQ.directions.getStatus().code == G_GEO_UNKNOWN_ADDRESS){
            
                    erreur =("Aucun lieu géographique correspondant à  l'adresse indiquée n'a pu être trouvée. Cela peut être dû au fait que l'adresse est relativement nouvelle, ou qu'elle est peut être incorrecte.");
					messageUtilisateur = "probleme";
            
                }
            
                else if (gmapNQ.directions.getStatus().code == G_GEO_UNAVAILABLE_ADDRESS){
            
                    erreur =("Les coordonnées GPS (Latitude, Longitude) pour l'adresse donnée ou l'itinéraire demandé n'ont pu être retournées pour des raisons légales ou contractuelles.");
					messageUtilisateur = "probleme";
            
                }
            
                else if (gmapNQ.directions.getStatus().code == G_GEO_UNKNOWN_DIRECTIONS){
            
                    erreur =("GDirections n'a pas pu calculer d'itinéraire entre les points mentionnés dans la requète. Soit parce qu'il n'y a aucun itinéraire disponible entre les deux points, soit parce que nous ne disposons pas des données couvrant cette région.");
					messageUtilisateur = "probleme";
					
            
                }
            
                else if (gmapNQ.directions.getStatus().code == G_GEO_BAD_KEY){
            
                    erreur =("La clef indiquée est invalide ou n'est pas attribuée au domaine pour laquelle a été donnée.");
					messageUtilisateur = "probleme";
            
                }
            
                else if (gmapNQ.directions.getStatus().code == G_GEO_TOO_MANY_QUERIES){
            
                    erreur =("Le nombre de requêtes, pour la clef donnée, a dépassée le quota des demandes autorisées pour une période de 24 heures.");
					messageUtilisateur = "probleme";
            
                }
            
                else erreur =("Une erreur inconnue c'est produite.");

                utilsNQ.debug(erreur,"");
				if(messageUtilisateur == "probleme")
				{
					alert(tab_traduction_gmap['geocast_erreur_itineraire']);
				}
				
				geocastNQ.controlItineraireTrace = false ; 
            });
        },

		
		placeIconeStreetSurFeuilleRoute :function()
		{
			
			for(var i= 0 ; i < geocastNQ.t_street_dispo.length ; i++)
			{
				if(geocastNQ.t_street_dispo[i] == 'ok')
				{
					if(Dom.get("iconeStreetView_"+i))
					{
						Dom.get("iconeStreetView_"+i).innerHTML = 	'<img src="images/images_icone/icone_street.png" height="15px"/>';
					}
				}
			}
			/*for( var element in geocastNQ.t_street_dispo)
			{
				alert(element);	
			}*/
		},
//--------------------------------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------Calcul itineraire entre 2 point--------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------------------
		//recuperation des 2 adresses et calcul de ces adresses en lat, long pour creer l'itineraire sur la carte et ecrire les infos dans une div
		calculItineraire : function ()
		{
			try
			{
                Dom.setStyle('droite_home','display','none')  ;
                Dom.setStyle('droite_connexion','display','block');
				geocastNQ.adresseDepart = '' ;
				geocastNQ.adresseArrive = '' ;
				for(var i =0 ; i< geocastNQ.t_champsDepart.length; i++)
				{
					geocastNQ.adresseDepart += Dom.get(geocastNQ.t_champsDepart[i]).value+' ';
				}
				
				for(var y =0 ; y< geocastNQ.t_champsArrive.length; y++)
				{
					geocastNQ.adresseArrive += Dom.get(geocastNQ.t_champsArrive[y]).value+' ';
				}
			
				geocastNQ.tabStepTrajet = new Array();
				geocastNQ.tabAjoutArret = new Array();
				geocastNQ.tabStepTrajetCompleter = new Array();
				
				
				for(var t =0 ; t< geocastNQ.t_inputAutoroute.length; t++)
				{
					
					if(Dom.get(geocastNQ.t_inputAutoroute[t]).checked == true)
					{
						geocastNQ.passageAutoroute = false;
						
						if(Dom.get(geocastNQ.t_inputAutoroute[t]).value  == 'non')
						{
								geocastNQ.passageAutoroute = true;
						}
					}
				}
				
			
			}
			catch(e)
			{
				utilsNQ.debug("Une erreur a été detectée pendant la récupération des adresses de l'itinéraire (class geocastNQ)",e)
			}
			
			gmapNQ.geocoder.getLatLng( geocastNQ.adresseDepart , function(point) 
			{
				gmapNQ.geocoder.getLatLng( geocastNQ.adresseArrive , function(point2) 
				{
					if (point && point2) 
					{
						geocastNQ.pointDepart = point.lat()+","+point.lng();
						geocastNQ.pointFin = point2.lat()+","+point2.lng();
                        geocastNQ.traceIti();
						
						var voiture  = Dom.get('selectMarque_inputCache').value+" : "+Dom.get('selectVehicule_inputCache').value
						
						gestionSiteNQ.AjaxSauvItiStat.startRequest(geocastNQ.adresseDepart,geocastNQ.adresseArrive,((geocastNQ.passageAutoroute)?"oui":"non"),((voiture != " : ")?voiture:"aucune"),point2.lat()+","+point2.lng(), point.lat()+","+point.lng())
					}
					else
					{
						var result = tab_traduction_gmap['geocast_erreur_adresse']+' : \n';
						
						if(!point)
						{
							result += " - "+tab_traduction_gmap['geocast_erreur_adresse_depart']+' \n';
						}
						
						if(!point2)
						{
							result += " - "+tab_traduction_gmap['geocast_erreur_adresse_arrive']+' \n';
						}
						alert(result);
					}
				});
				
			});
		},
        
        traceIti : function ()
        {
            gmapNQ.directions.load("from: "+geocastNQ.pointDepart+" to: "+geocastNQ.pointFin,{getPolyline:true,getSteps:true,avoidHighways:geocastNQ.passageAutoroute});
                        
                 
        },
        
        
		verifEtapeLongue : function(polylineRoute)
		{
			try
			{
				for(var f=0;f<geocastNQ.tabStepTrajet.length;f++)
				{
					if(typeof( geocastNQ.tabStepTrajet[f].getDistance ) != 'undefined')
					{
							if(geocastNQ.tabStepTrajet[f].getDistance().meters > geocastNQ.DISTANCEREPRENETAPE)
							{
								
								var decoupe = Math.ceil(geocastNQ.tabStepTrajet[f].getDistance().meters/geocastNQ.DISTANCEMAX);
								
								// A VOIR 
								if(typeof(geocastNQ.tabStepTrajet[f+1]) != 'undefined')
                                {	
									var moyenne = (geocastNQ.tabStepTrajet[f+1].getPolylineIndex()-geocastNQ.tabStepTrajet[f].getPolylineIndex())/decoupe;
									for(var i= 1;i<decoupe-1;i++)
									{
										var indice = Math.ceil(geocastNQ.tabStepTrajet[f].getPolylineIndex()+(moyenne*i));
										
											geocastNQ.tabStepTrajet.push(polylineRoute.getVertex(indice));
											geocastNQ.tabStepTrajetCompleter.push(polylineRoute.getVertex(indice));
										
									}
								}
							}
					}
					
				}
			}
			catch(e)
			{
				//utilsNQ.debug("Une erreur a été detectée durant la vérification qu'une étape n'est pas trop longue (class geocastNQ)",e)
			}	
		
		},
		
		effaceItineraire : function()
		{
			 gmapNQ.directions.clear() ;
			 geocastNQ.cache_carStreet();
			geocastNQ.controlItineraireTrace = false ; 
		},

		
//--------------------------------------------------------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------------------



	
//----------------------------------------------------------------------------------------------------------------------------------------		
//fonctions pour tracer les info de l'itineraire avec skin personalisé-------------------------------------------------------------------
//----------------------------------------------------------------------------------------------------------------------------------------
		 arret : function(point, lettre, address,mapName,type,sommeKmEtape) 
		 {
			 
			 var retour = "";
			 var target = '"' + mapName+".showMapBlowup(new GLatLng("+point.toUrlValue(6)+"));gmapNQ.decorationBullZoom("+type+");"  +'"';
			  retour += '<table style="border: 1px solid #000000; margin: 10px 0px; background-color: #d9640f; border-collapse: collapse; color: #000000;">';
			  retour += '  <tr style="cursor: pointer;" onclick='+target+'>';
			  retour += '    <td style="padding: 4px 15px 0px 5px; vertical-align: middle; width: 20px;">';
			 // retour += '      <img src="http://www.google.com/mapfiles/marker' +type+ '.png">'
			  retour += '    <\/td>';
			  retour += '    <td style="vertical-align: middle; width: 100%;">';
			  retour +=        address;
			  retour += '    <\/td>';
			  retour += '  <\/tr>';
			  retour += '<\/table>';
			  
              if(type == 1)
              {
                    retour = '<div class="etape_itineraire txt_blanc_12px" onclick='+target+' style="cursor:pointer;"><div class="numero_etape_itineraire">'+lettre+'</div><div class="nom_etape_itineraire">'+address+' ('+Math.ceil(sommeKmEtape/1000)+' km)</div></div>';  
              }
			  return retour;
		},

		routeDistance : function(dist,duree) 
		{
			 var retour = "";
		  	 retour += '<div style="text-align: right; padding-bottom: 0.3em;" id="resultTempDistance">' + dist+' (pour '+duree+')' + '<\/div>';
		  	 return retour;
		 /* var kiloNumberTab = dist.split('k');
		  var kiloDejaAffiche = parseInt( Dom.get('dist').innerHTML);
		  var kiloNumber = parseInt(kiloNumberTab[0]);
		  Dom.get('dist').innerHTML = kiloDejaAffiche + kiloNumber;
		
		  if(consoEssen == '')
		  {
			   Dom.get('essence').innerHTML = 'no car select';
		  }
		  else
		  {
			  Dom.get('essence').innerHTML = Math.ceil(consoEssen);;
		  }
		  
		  if(consoCo2 == '')
		  {
			   Dom.get('co2').innerHTML = 'no car select';
		  }
		  else
		  {
			  Dom.get('co2').innerHTML = Math.ceil(consoCo2);
		  }*/

		},    
		
		detail : function(point, num, description, dist,mapName,indexPoly,type) 
		{

			
			var maReg = new RegExp("Radars automatiques ", "gi") ;
 			var resultat = description.replace(maReg, "<span class='txt_orange_12px'>Radars automatiques</span>,") ; 
			var retour = "";
			var target = '"' + mapName+".showMapBlowup(new GLatLng("+point.toUrlValue(6)+"));gmapNQ.decorationBullZoom("+num+");"  +'"';
			retour += '<table style="margin: 0px; padding: 0px; border-collapse: collapse;">';
			retour += '  <tr style="cursor: pointer;" >';
			retour += '    <td style="border-top: 1px solid #d9640f; margin: 0px; padding: 0.3em 3px; vertical-align: top; text-align: right;">';
			retour += '      <a href="javascript:'+target+'" style="text-decoration:none;color:#d9640f;"> '+num+'. <\/a><span  id="iconeStreetView_'+(num-1)+'"></span>';
			retour += '    <\/td>';
			retour += '    <td style="border-top: 1px solid #d9640f; margin: 0px; padding: 0.3em 3px; vertical-align: top; width: 100%;" onclick="'+target+'">';
			retour +=        resultat;
			retour += '    <\/td>';
			retour += '    <td style="border-top: 1px solid #d9640f; margin: 0px; padding: 0.3em 3px 0.3em 0.5em; vertical-align: top; text-align: right;">';
			retour +=        dist;
			retour += '    <\/td>';
			retour += '  <\/tr>';
			retour += '<\/table>';
			
            if(type == 1)
            {
			    retour = '<div class="indication_itineraire" style="cursor:pointer;"><div class="numero_indication_itineraire txt_orange_12px"><span  onclick='+target+'>'+num+'</span> <span onclick="geocastNQ.deplace_carStreet_and_ouvre('+point.toUrlValue(6)+')" id="iconeStreetView_'+(num-1)+'"></span>:</div><div class="detail_indication_itineraire txt_gris_12px"  onclick='+target+'>'+resultat+'</div><div class="distance_indication_itineraire txt_orange_12px">'+dist+'</div><div class="clear"></div></div>';
			}
            return retour;
		},

		copyright : function(text) 
		{
			var retour = "";
		  	retour += '<div style="font-size: 0.86em;">' + text + "<\/div>";
			return retour;
		},
//--------------------------------------------------------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------------------



//--------------------------------------------------------------------------------------------------------------------------------------------------------------
//-----------------------------------gestion point d'interet ----------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------------------
	view_spot : function(t_spot_name,km)
	{
		try
		{
			for(var i = 0 ; i < t_spot_name.length ; i++)
			{
				if(t_spot_name[i] >0 && t_spot_name[i] < 16)
				{
					geocastNQ.trouveLieuPresEtapes(t_spot_name[i],km);
				}
			}
		}
		catch(e)
		{
			utilsNQ.debug("Une erreur a été detectée durant le parcours du tableau contenant les différents types de lieux d'intérets a afficher sur la carte (class geocastNQ)",e)
		}	
	},
	
	trouveLieuPresEtapes : function(spot_search,km)
	{
		try
		{
			var paramAjax = '';
			for(var m=0;m< geocastNQ.tabStepTrajet.length;m++)
			{
				if(typeof( geocastNQ.tabStepTrajet[m].getLatLng )== 'undefined')
				{
					var coordBrute = ''+geocastNQ.tabStepTrajet[m];
				}
				else
				{
					var step = geocastNQ.tabStepTrajet[m];
					var coordBrute = ''+step.getLatLng();
				}
				
					var tabCoord = coordBrute.split(',');
					var coordLat = tabCoord[0].substr(1,tabCoord[0].length);
					var coordLng = tabCoord[1].substr(0,tabCoord[1].length-1);
					
				paramAjax += "longitude[]="+coordLng+"&latitude[]="+coordLat+"&";
			}
			
			if(utilsNQ.in_array(geocastNQ.type_dejaCherche,spot_search))
			{
				geocastNQ.AjaxSearchObject.startRequest(paramAjax+"ID_type_enseigne="+spot_search+"&km="+km);
			}
		}
		catch(e)
		{
			utilsNQ.debug("Une erreur a été detectée durant le lancement de la vérification si le lieux est près de l'itineraire (class geocastNQ)",e)
		}	
	},
	
	AjaxSearchObject : {
		
		success:function(o){
			var reponseATraite = o.responseText;
			if(reponseATraite != '')
			{
				var tempExplode = reponseATraite.split('#');
				
				var iconeRec = '';
				for(var r=0;r<tempExplode.length;r++)
				{
					var infoExplod = tempExplode[r].split('!');
					
					if(infoExplod[1] != '' && infoExplod[2] != '' && infoExplod[0] != '' && infoExplod[3] != '')
					{
						geocastNQ.ajoutVerifPoint(infoExplod[1], infoExplod[2], infoExplod[0], infoExplod[3]);
						geocastNQ.type_dejaCherche.push(iconeRec);
						iconeRec = infoExplod[3];
						
					}
				}
				
		
				if(Dom.get('iconeAjoutSelect').innerHTML.indexOf('moment') != -1)
				{
					Dom.get('iconeAjoutSelect').innerHTML = '';
				}
				
			   	if(gmapNQ.logoSupprLieuInteret[iconeRec] != null)
				{
					Dom.get('iconeAjoutSelect').innerHTML += '<img id="logoRecap'+iconeRec+'" style="cursor:pointer;" onclick="geocastNQ.supprime1seulTypeIcone('+iconeRec+')" height="20" src="'+gmapNQ.logoSupprLieuInteret[iconeRec]+'" />';
				}
				else
				{
					Dom.get('iconeAjoutSelect').innerHTML += '<img id="logoRecap'+iconeRec+'" style="cursor:pointer;" onclick="geocastNQ.supprime1seulTypeIcone('+iconeRec+')" src="images/images_icone/inconnu.gif" height="20"/>';
				}
				geocastNQ.regroupeIcone(iconeRec);
			}
			
			
			Dom.setStyle('loaderAjax','display','none');
		},
	
		failure:function(o){
			// Failure handler
		},
		
		scope:function(o){
			return this;
		},
	
		processResult:function(o){
			// This member is called by handleSuccess
		},
	
		startRequest:function(param) {
			//compteurRequeteAjax++;
			Dom.setStyle('loaderAjax','display','block');
		   YAHOO.util.Connect.asyncRequest('POST', '../tools/enseigne.php', geocastNQ.AjaxSearchObject, param); 
		}
	
	},

	ajoutVerifPoint : function(latLieu, longLieu, nomLieu, typeIcone)
	{
		try{
			var verifDejaVisite = utilsNQ.in_array(geocastNQ.tabLieuDejaPresent,nomLieu);
			
			if(verifDejaVisite)
			{
				geocastNQ.tabLieuDejaPresent.push(nomLieu);
				var icon ;
				if(typeIcone < gmapNQ.markerLieuInteret.length && gmapNQ.markerLieuInteret[typeIcone] != null)
				{
					icon =gmapNQ.markerLieuInteret[typeIcone];
				}
				else
				{
					icon = "";	
				}
				
				geocastNQ.rajoute_marker(latLieu, longLieu, nomLieu,icon,typeIcone);
			}
		}
		catch(e){
			utilsNQ.debug("Une erreur a été detectée durant le paramètrage pour l'ajout d'un marqueur (class geocastNQ)",e)
		}	
	},
	
	rajoute_marker : function(lat,long,infoHtml ,icon,idIcone)
	{
		try
		{
			var marker ; 
			if(icon == "")
			{
				marker = new GMarker(new GLatLng(lat, long));
			}
	 		else
	 		{
				marker = new GMarker(new GLatLng(lat, long),icon);
			}
			var indice = geocastNQ.tabMarker.length;
			 geocastNQ.tabMarker[indice] = marker ;
			
			 geocastNQ.tabMarker[indice].compteur =  indice;
			 geocastNQ.tabMarker[indice].info = infoHtml;
			 geocastNQ.tabMarker[indice].title = idIcone;
			GEvent.addListener(geocastNQ.tabMarker[indice], 'click', function() {
				geocastNQ.affiche_marker_info(this.compteur);
			}); 
			gmapNQ.map.addOverlay(geocastNQ.tabMarker[indice]);
			
		
		}
		catch(e)
		{
			utilsNQ.debug("Une erreur a été detectée durant l'ajout d'un marqueur (class geocastNQ)",e)
		}
	},
	
	affiche_marker_info : function(indice_marker) 
	{
		try
		{
			var marker = geocastNQ.tabMarker[indice_marker];
			gmapNQ.map.setZoom(17);
			gmapNQ.map.panTo(marker.getLatLng());   
			var coord = marker.getLatLng()+'';
			var tabCoord = coord.split(',');
			var coordLat = tabCoord[0].substr(1,tabCoord[0].length);
			var coordLng = tabCoord[1].substr(0,tabCoord[1].length-1);
			//marker.openInfoWindowHtml("<p>"+marker.info+"</p><p > Ajouter à mon itinéraire</p>");
			  var info = '<div class="bulle_adresse"><div class="bulle_adresse_header"></div><div class="bulle_adresse_content"><div class="logo_adresse"><img width="40" src="../../images/images_icone/'+marker.getIcon().image+'" alt="logo du point du point d\'interet" /></div><div class="txt_bulle_adresse">'+marker.info+'<div class="select_adresse" onclick="gmapNQ.map.closeExtInfoWindow();geocastNQ.ajoutItineraire('+coordLat+', '+coordLng+',\''+escape(marker.info)+'\')">Ajouter &agrave; mon parcours</div></div><div class="btn_close_bulle_adresse" onclick="gmapNQ.map.closeExtInfoWindow();"></div><div class="clear"></div></div><div class="bulle_adresse_footer"></div></div>';
			  
			marker.openExtInfoWindow(gmapNQ.map,"custom_info_window_red",info,{beakOffset: 3}); 
		}
		catch(e)
		{
			utilsNQ.debug("Une erreur a été detectée durant l'affichage d'une bulle d'un marqueur (class geocastNQ)",e)
		}                         
    },
	
	ajoutItineraire : function(lat,Long,nom)
	{
		try
		{
			if(geocastNQ.controlItineraireTrace)
			{
				var indice = geocastNQ.tabAjoutArret.length;
				geocastNQ.tabAjoutArret[indice] = lat+','+Long;
				geocastNQ.tabAjoutArretOrdreInfo[indice] = {liId:"li1_"+(indice+1), info:unescape(nom)}
				
				geocastNQ.tabStepTrajet = new Array();
				
				Dom.get('iconeAjoutSelect').innerHTML = 'Aucun point spécifié pour le moment.';
				
				geocastNQ.effaceAllMarquerInteret();
				geocastNQ.effaceAllMarquerInteretModePlan();
				
				
				geocastNQ.recalculeItineraire();
			}
			else
			{
				alert(tab_traduction_gmap['geocast_no_parcours']);
			}
			
		}
		catch(e)
		{
			utilsNQ.debug("Une erreur a été detectée durant l'init du recalcul de l'itinéraire (class geocastNQ)",e)
		}
	},
	
	recalculeItineraire : function ()
	{
		try
		{
			var route = new Array();
			route.push(geocastNQ.pointDepart);
	
			for(var t=0;t<geocastNQ.tabAjoutArret.length;t++)
			{
				route.push(geocastNQ.tabAjoutArret[t]);	
			}
			route.push(geocastNQ.pointFin);
			gmapNQ.directions.loadFromWaypoints(route,{getPolyline:true,getSteps:true,avoidHighways:geocastNQ.passageAutoroute});
		}
		catch(e)
		{
			utilsNQ.debug("Une erreur a été detectée durant le recalcul de l'itinéraire (class geocastNQ)",e)
		}
	},
	
	
	getArretsSortiString : function()
	{
		var retour = '';
		
			for(var t=0;t<geocastNQ.tabAjoutArret.length;t++)
			{
				if(typeof(geocastNQ.tabAjoutArret[t].getLatLng) == 'function')
				{
					retour += geocastNQ.tabAjoutArret[t].getLatLng()+'#';
				}
				else
				{
					retour += geocastNQ.tabAjoutArret[t]+'#';
				}
				
			}
		return retour;
	},
		
	effaceAllMarquerInteret : function ()
	{
		
		try
		{
			
			for(var i = 0 ; i < geocastNQ.markerCluster.length; i++)
			{
				if(geocastNQ.markerCluster[i] != null)
				{
					geocastNQ.markerCluster[i].clearMarkers();
					geocastNQ.markerCluster[i] = null;
				}
			}	
			geocastNQ.tabMarker = new Array();
			geocastNQ.type_dejaCherche = new Array();
			geocastNQ.tabLieuDejaPresent = new Array();
		}
		catch(e)
		{
			utilsNQ.debug("Une erreur a été detectée durant l'effacement des marqueurs (lieux d'interet) après le recalcul d'un parcours (class geocastNQ)",e)
		}
	},
	
	regroupeIcone : function(typeIcon)
	{
			var t_temp = [];
			for(var i = 0 ; i < geocastNQ.tabMarker.length; i++)
			{
				if(geocastNQ.tabMarker[i].title == typeIcon)
				{
					t_temp.push(geocastNQ.tabMarker[i]);
					
						gmapNQ.map.removeOverlay(geocastNQ.tabMarker[i]);
					
				}
			}	
			
			
				
				geocastNQ.markerCluster[typeIcon] = new MarkerClusterer(gmapNQ.map, t_temp, {styles: gmapNQ.stylesIconeRegroup[typeIcon]});	
			
			
	},
	
	supprime1seulTypeIcone : function (typeIcon)
	{
		try
		{
			Dom.get('iconeAjoutSelect').removeChild(Dom.get('logoRecap'+typeIcon));
			
			if(Dom.get('iconeAjoutSelect').innerHTML == '')
			{
				Dom.get('iconeAjoutSelect').innerHTML = 'Aucun point spécifié pour le moment.';
			}
			var elemeentAenlever = [];

			for(var i = 0 ; i < geocastNQ.tabMarker.length; i++)
			{
				if(geocastNQ.tabMarker[i].title == typeIcon)
				{
					gmapNQ.map.removeOverlay(geocastNQ.tabMarker[i]);
					elemeentAenlever.push(i);
				}
			}	
			
			var temp = [];
			for(var i = 0 ; i < geocastNQ.type_dejaCherche.length; i++)
			{
				if(geocastNQ.type_dejaCherche[i] != typeIcon)
				{
					temp.push(geocastNQ.type_dejaCherche[i]);
				}
			}
			geocastNQ.type_dejaCherche = temp;
			
			
				 var t_temp = utilsNQ.supprimeElementTab(elemeentAenlever,geocastNQ.tabMarker,geocastNQ.tabLieuDejaPresent);
				
				 geocastNQ.tabMarker = t_temp[0];
				 geocastNQ.tabLieuDejaPresent = t_temp[1];
			//geocastNQ.tabMarker = new Array();
			
			
			geocastNQ.markerCluster[typeIcon].clearMarkers();
			geocastNQ.markerCluster[typeIcon] = null;
		}
		catch(e)
		{
			utilsNQ.debug("Une erreur a été detectée durant l'effacement d'un seul type de marqueur (lieux d'intéret) après le recalcul d'un parcours (class geocastNQ)",e)
		}
		
	},
	
	changeOrdreTableau : function(items)
	{
		var temp = new Array();
		var temp2 = new Array();
		for (var i=0;i<items.length;i++) 
		{
			for(var y=0 ; y<geocastNQ.tabAjoutArretOrdreInfo.length ; y++)
			{
				
				if(geocastNQ.tabAjoutArretOrdreInfo[y].liId == items[i].id)
				{
					
					temp[temp.length] = geocastNQ.tabAjoutArret[y];
					temp2[temp2.length] = geocastNQ.tabAjoutArretOrdreInfo[y];
					//geocastNQ.tabAjoutArretOrdreInfo[y].liId = "li1_"+(i+1);
				}
			}
		}


		geocastNQ.tabAjoutArret = temp;
		geocastNQ.tabAjoutArretOrdreInfo = temp2;
		

		geocastNQ.recalculeItineraire();
	},
	
	supprimeArret : function (indice){
		
		
		geocastNQ.tabAjoutArret = utilsNQ.supprimeIndiceTab(indice,geocastNQ.tabAjoutArret);
		
		
		geocastNQ.tabAjoutArretOrdreInfo = utilsNQ.supprimeIndiceTab(indice,geocastNQ.tabAjoutArretOrdreInfo);
	
		geocastNQ.recalculeItineraire();
	},
//--------------------------------------------------------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------------------



//--------------------------------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------Mode plan--------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------------------
		trouveAdressePlanMode : function ()
		{
			var adress = Dom.get(geocastNQ.champs_modePlan).value ;
			
			if(utilsNQ.trim(adress) != "")
			{
				geocastNQ.recherchePlanDemande = adress;
				gmapNQ.geocoder.getLocations( adress , function(point) 
				{
					geocastNQ.icone_membre_control(false);	
						if (typeof(point.Placemark) != 'undefined') 
						{
							try
							{
								
								if(point.Placemark.length == 1)
								{
									var tabCoord = (point.Placemark[0].Point.coordinates);
									geocastNQ.ajout_lieux_mode_plan(tabCoord[1],tabCoord[0],point.Placemark[0].address);
									
								}
								else
								{
										geocastNQ.markerIndicatif = new GMarker(new GLatLng(45, 5),gmapNQ.iconPlan);
										gmapNQ.map.addOverlay(geocastNQ.markerIndicatif );
										
										geocastNQ.t_multi_lieux_sauv = point.Placemark;
										geocastNQ.cacheIndicateur();
										openShadowbox('iframe',400,0,'http://www.geocast.fr/selection-points-mode-plan.php')
								}
								
							}
							catch(e)
							{
								utilsNQ.debug("Une erreur a été detectée durant l'ajout d'un marqueur pour le mode plan(class geocastNQ)",e)
							}	
			
						}
						else
						{
							alert(tab_traduction_gmap['geocast_adresse_no_result']);	
						}
				});
			}
			else
			{
				alert(tab_traduction_gmap['geocast_champs_vide']);	
			}
		},
		
		icone_membre_control : function(value)
		{
			 geocastNQ.controlMembreIcone = value;	
		},
		
		ajout_lieux_mode_plan : function(lat,long,adress)
		{
			try
			{
				var control = true;
				for(var i = 0; i < geocastNQ.tabMarkerPlanMode.length ;i++)
				{
					if(geocastNQ.tabMarkerPlanMode[i].getLatlng == new GLatLng(lat, long))
					{
						control = false;
					}
				}
				
				if(control)
				{
					var marker = new GMarker(new GLatLng(lat, long),gmapNQ.iconPlan);
						if( geocastNQ.controlMembreIcone)
						{
							var marker = new GMarker(new GLatLng(lat, long),gmapNQ.iconPartage);
						}
						
						var indice = geocastNQ.tabMarkerPlanMode.length;
						 geocastNQ.tabMarkerPlanMode[indice] = marker ;
						
						 geocastNQ.tabMarkerPlanMode[indice].compteur =  indice;
						 geocastNQ.tabMarkerPlanMode[indice].info = escape(adress);
						
						gmapNQ.map.setCenter(new GLatLng(lat, long),9);
						 gmapNQ.map.addOverlay(geocastNQ.tabMarkerPlanMode[indice]);
						 
						 
						 var marker = geocastNQ.tabMarkerPlanMode[indice];
								gmapNQ.map.setZoom(17);
								gmapNQ.map.panTo(marker.getLatLng());   
								var coord = marker.getLatLng()+'';
								var tabCoord = coord.split(',');
								var coordLat = tabCoord[0].substr(1,tabCoord[0].length);
								var coordLng = tabCoord[1].substr(0,tabCoord[1].length-1);
							//marker.openInfoWindowHtml("<p>"+marker.info+"</p><p > Ajouter à mon itinéraire</p>");
							var info = '<div class="bulle_adresse"><div class="bulle_adresse_header"></div><div class="bulle_adresse_content"><div class="txt_bulle_adresse">'+unescape(marker.info)+'<div class="action_adresse"  onclick="openShadowbox(\'iframe\',400,525,\'http://www.geocast.fr/selection-point-d-interet.php?type=planMode&indiceMarker='+indice+'\')">Afficher autour</div><div class="select_adresse" onclick="gmapNQ.map.closeExtInfoWindow();geocastNQ.ajoutItineraire('+coordLat+', '+coordLng+',\''+unescape(marker.info)+'\');geocastNQ.enleve_marquer_plan_particulier('+indice+')">Ajouter &agrave; mon parcours</div><div class="select_adresse" onclick="gmapNQ.map.closeExtInfoWindow();geocastNQ.enleve_marquer_plan_particulier('+indice+')">Supprimer ce point de la carte</div></div><div class="btn_close_bulle_adresse" onclick="gmapNQ.map.closeExtInfoWindow();"></div><div class="clear"></div></div><div class="bulle_adresse_footer"></div></div>';
							
								
							  
							marker.openExtInfoWindow(gmapNQ.map,"custom_info_window_red",info,{beakOffset: 3});
						 
						 
						 
						 
						 
						 
						GEvent.addListener(geocastNQ.tabMarkerPlanMode[indice], 'click', function() 
						{
							
								indice_marker = this.compteur;
								var marker = geocastNQ.tabMarkerPlanMode[indice_marker];
								gmapNQ.map.setZoom(17);
								gmapNQ.map.panTo(marker.getLatLng());   
								var coord = marker.getLatLng()+'';
								var tabCoord = coord.split(',');
								var coordLat = tabCoord[0].substr(1,tabCoord[0].length);
								var coordLng = tabCoord[1].substr(0,tabCoord[1].length-1);
							//marker.openInfoWindowHtml("<p>"+marker.info+"</p><p > Ajouter à mon itinéraire</p>");
							var info = '<div class="bulle_adresse"><div class="bulle_adresse_header"></div><div class="bulle_adresse_content"><div class="txt_bulle_adresse">'+unescape(marker.info)+'<div class="action_adresse"  onclick="openShadowbox(\'iframe\',400,525,\'http://www.geocast.fr/selection-point-d-interet.php?type=planMode&indiceMarker='+indice_marker+'\')">Afficher autour</div><div class="select_adresse" onclick="gmapNQ.map.closeExtInfoWindow();geocastNQ.ajoutItineraire('+coordLat+', '+coordLng+',\''+unescape(marker.info)+'\');geocastNQ.enleve_marquer_plan_particulier('+indice_marker+')">Ajouter &agrave; mon parcours</div><div class="select_adresse" onclick="gmapNQ.map.closeExtInfoWindow();geocastNQ.enleve_marquer_plan_particulier('+indice_marker+')">Supprimer ce point de la carte</div></div><div class="btn_close_bulle_adresse" onclick="gmapNQ.map.closeExtInfoWindow();"></div><div class="clear"></div></div><div class="bulle_adresse_footer"></div></div>';
							
								
							  
							marker.openExtInfoWindow(gmapNQ.map,"custom_info_window_red",info,{beakOffset: 3}); 
						}); 
						
				}
			}
			catch(e)
			{
				utilsNQ.debug("Une erreur a été detectée durant l'ajout d'un marqueur pour le mode plan(class geocastNQ, function ajout_lieu_mode_plan)",e)
			}
		},
		
		enleve_marquer_plan_particulier : function (indice_marker)
		{
			
			try
			{
				
					gmapNQ.map.removeOverlay(geocastNQ.tabMarkerPlanMode[indice_marker]);
					
					//decale le tableau pour enlever le marqueur passé en parametre
					/*for(var i=indice_marker; i<geocastNQ.tabMarkerPlanMode.length; i++)
					{
						geocastNQ.tabMarkerPlanMode[i] = geocastNQ.tabMarkerPlanMode[i+1];
					}
					
					//enleve le dernier element vus que 'lon a decaler le tab de 1
					var temp = new Array();
					for(var i=0; i<geocastNQ.tabMarkerPlanMode.length-1; i++)
					{
						temp[i] = geocastNQ.tabMarkerPlanMode[i];
					}
					geocastNQ.tabMarkerPlanMode = temp;*/
			}
			catch(e)
			{
				utilsNQ.debug("Une erreur a été detectée durant l'ajout d'un marqueur pour le mode plan(class geocastNQ, function enleve_marquer_plan_particulier)",e)
			}
		},
		
		view_lieux_mode_plan : function(t_coord, t_adress)
		{
			try
			{
				gmapNQ.map.setZoom(1);
				for(var u=0 ; u < t_coord.length ; u++)
				{
					var temp = t_coord[u].split(',');
					geocastNQ.ajout_lieux_mode_plan(temp[0],temp[1],t_adress[u]);
				}
			}
			catch(e)
			{
				utilsNQ.debug("Une erreur a été detectée durant l'ajout d'un marqueur pour le mode plan(class geocastNQ, function view_lieux_mode_plan)",e)
			}
		},
		
		
		//permet de faire un aprecu des adresse quand l'adresse demandé a plusieur reponse
		deplaceIndicateur : function(latLong)
		{
			try
			{
				var tab = latLong.split(',')
				geocastNQ.markerIndicatif.setLatLng(new GLatLng(parseFloat(tab[0]),parseFloat(tab[1])));
				
				gmapNQ.map.panTo(new GLatLng(parseFloat(tab[0]),parseFloat(tab[1])));
				
				gmapNQ.map.setZoom(5);
				geocastNQ.markerIndicatif.show();
			}
			catch(e)
			{
				utilsNQ.debug("Une erreur a été detectée durant l'ajout d'un marqueur pour le mode plan(class geocastNQ, function deplaceIndicateur)",e)
			}
			
		},
		
		cacheIndicateur : function(latLong)
		{
		
			geocastNQ.markerIndicatif.hide();

		},
		
	view_spot_mode_plan : function(t_spot_name,indiceMarker,numKm)
	{
		try
		{
			
			for(var i = 0 ; i < t_spot_name.length ; i++)
			{
				if(t_spot_name[i] >0 && t_spot_name[i] < 16)
				{
					geocastNQ.trouveLieuPresEtapes_mode_plan(t_spot_name[i],indiceMarker,numKm);
				}
			}
		}
		catch(e)
		{
			utilsNQ.debug("Une erreur a été detectée durant le parcours du tableau contenant les différents types de lieux d'intérets a afficher sur la carte (class geocastNQ)",e)
		}	
	},
	
	trouveLieuPresEtapes_mode_plan : function(spot_search, indice_marker,numKm)
	{
		try
		{
			
			var verifDejaVisite = utilsNQ.in_array(geocastNQ.t_type_deja_selec_mode_plan,spot_search);
			
			if(verifDejaVisite)
			{
				geocastNQ.t_type_deja_selec_mode_plan.push(spot_search);
				var coordBrute = geocastNQ.tabMarkerPlanMode[indice_marker].getLatLng();
				coordBrute += "";
				var tabCoord = coordBrute.split(',');
				var coordLat = tabCoord[0].substr(1,tabCoord[0].length);
				var coordLng = tabCoord[1].substr(0,tabCoord[1].length-1);
				
				paramAjax = "longitude[]="+coordLng+"&latitude[]="+coordLat;
				geocastNQ.AjaxSearchObject_mode_plan.startRequest(paramAjax+"&ID_type_enseigne="+spot_search+"&km="+numKm);
			}
			
		}
		catch(e)
		{
			utilsNQ.debug("Une erreur a été detectée durant le lancement de la vérification si le lieux est près de l'itineraire (class geocastNQ)",e)
		}	
	},
	
	effaceAllMarquerInteretModePlan : function ()
	{
		
		try
		{
			
			for(var i = 0 ; i < geocastNQ.markerClusterModePlan.length; i++)
			{
				if(geocastNQ.markerClusterModePlan[i] != null)
				{
					geocastNQ.markerClusterModePlan[i].clearMarkers();
					geocastNQ.markerClusterModePlan[i] = null;
				}
			}	
			geocastNQ.tabMarker_mode_plan = new Array();
			geocastNQ.t_type_deja_selec_mode_plan = new Array();
			geocastNQ.tabLieuDejaPresent_mode_plan = new Array();
		}
		catch(e)
		{
			utilsNQ.debug("Une erreur a été detectée durant l'effacement des marqueurs (lieux d'interet) en mode plan après le recalcul d'un parcours (class geocastNQ)",e)
		}
	},
	
	AjaxSearchObject_mode_plan : {
		
		success:function(o){
			var reponseATraite = o.responseText;
			if(reponseATraite != '')
			{
				var tempExplode = reponseATraite.split('#');
				
				var iconeRec = '';
				for(var r=0;r<tempExplode.length;r++)
				{
					var infoExplod = tempExplode[r].split('!');
					
					if(infoExplod[1] != '' && infoExplod[2] != '' && infoExplod[0] != '' && infoExplod[3] != '')
					{
						geocastNQ.ajoutVerifPoint_mode_plan(infoExplod[1], infoExplod[2], infoExplod[0], infoExplod[3]);
						iconeRec = infoExplod[3];
					}
				}
				
				var tempExplode = reponseATraite.split('#');
				
				
		
				if(Dom.get('iconeAjoutSelect').innerHTML.indexOf('moment') != -1)
				{
					Dom.get('iconeAjoutSelect').innerHTML = '';
				}
				
			   	if(gmapNQ.logoSupprLieuInteret[iconeRec] != null)
				{
					Dom.get('iconeAjoutSelect').innerHTML += '<img id="logoRecap'+iconeRec+'_plan" style="cursor:pointer;" onclick="geocastNQ.supprime1seulTypeIconeLModePlan('+iconeRec+')" height="20" src="'+gmapNQ.logoSupprLieuInteret[iconeRec]+'" />';
				}
				else
				{
					Dom.get('iconeAjoutSelect').innerHTML += '<img id="logoRecap'+iconeRec+'_plan" style="cursor:pointer;" onclick="geocastNQ.supprime1seulTypeIconeLModePlan('+iconeRec+')" src="images/images_icone/inconnu.gif" height="20"/>';
				}
				geocastNQ.regroupeIconeModePlan(iconeRec);

			}
			
			Dom.setStyle('loaderAjax','display','none');
		},
	
		failure:function(o){
			// Failure handler
		},
		
		scope:function(o){
			return this;
		},
	
		processResult:function(o){
			// This member is called by handleSuccess
		},
	
		startRequest:function(param) {
			//compteurRequeteAjax++;
			Dom.setStyle('loaderAjax','display','block');
		   YAHOO.util.Connect.asyncRequest('POST', '../tools/enseigne.php', geocastNQ.AjaxSearchObject_mode_plan, param); 
		}
	
	},


	regroupeIconeModePlan : function(typeIcon)
	{
			var t_temp = [];
			for(var i = 0 ; i < geocastNQ.tabMarker_mode_plan.length; i++)
			{
				if(geocastNQ.tabMarker_mode_plan[i].title == typeIcon)
				{
					t_temp.push(geocastNQ.tabMarker_mode_plan[i]);
					
						gmapNQ.map.removeOverlay(geocastNQ.tabMarker_mode_plan[i]);
					
				}
			}	
			
			
				
				geocastNQ.markerClusterModePlan[typeIcon] = new MarkerClusterer(gmapNQ.map, t_temp, {styles: gmapNQ.stylesIconeRegroup[typeIcon]});	
			
			
	},
	
	supprime1seulTypeIconeLModePlan : function (typeIcon)
	{
		try
		{
			Dom.get('iconeAjoutSelect').removeChild(Dom.get('logoRecap'+typeIcon+"_plan"));
			
			if(Dom.get('iconeAjoutSelect').innerHTML == '')
			{
				Dom.get('iconeAjoutSelect').innerHTML = 'Aucun point spécifié pour le moment.';
			}
			var elemeentAenlever = [];

			for(var i = 0 ; i < geocastNQ.tabMarker_mode_plan.length; i++)
			{
				if(geocastNQ.tabMarker_mode_plan[i].title == typeIcon)
				{
					gmapNQ.map.removeOverlay(geocastNQ.tabMarker_mode_plan[i]);
					elemeentAenlever.push(i);
				}
			}	
			
			
			
				 var t_temp = utilsNQ.supprimeElementTab(elemeentAenlever,geocastNQ.tabMarker_mode_plan,geocastNQ.tabLieuDejaPresent_mode_plan);
				
				
				geocastNQ.t_type_deja_selec_mode_plan = utilsNQ.supprimeValueTab(typeIcon,geocastNQ.t_type_deja_selec_mode_plan);
				
				
				 geocastNQ.tabMarker_mode_plan = t_temp[0];
				 geocastNQ.tabLieuDejaPresent_mode_plan = t_temp[1];
			//geocastNQ.tabMarker = new Array();
			
			
			geocastNQ.markerClusterModePlan[typeIcon].clearMarkers();
			geocastNQ.markerClusterModePlan[typeIcon] = null;
		}
		catch(e)
		{
			utilsNQ.debug("Une erreur a été detectée durant l'effacement d'un seul type de marqueur (lieux d'intéret) après le recalcul d'un parcours (class geocastNQ)",e)
		}
		
	},
	
	
	ajoutVerifPoint_mode_plan : function(latLieu, longLieu, nomLieu, typeIcone)
	{
		try{
			var verifDejaVisite = utilsNQ.in_array(geocastNQ.tabLieuDejaPresent_mode_plan,nomLieu);
			
			if(verifDejaVisite)
			{
				geocastNQ.tabLieuDejaPresent_mode_plan.push(nomLieu);
				var icon ;
				if(typeIcone < gmapNQ.markerLieuInteret.length && gmapNQ.markerLieuInteret[typeIcone] != null)
				{
					icon =gmapNQ.markerLieuInteret[typeIcone];
				}
				else
				{
					icon = "";	
				}
				
				geocastNQ.rajoute_marker_mode_plan(latLieu, longLieu, nomLieu,icon,typeIcone);
			}
		}
		catch(e){
			utilsNQ.debug("Une erreur a été detectée durant le paramètrage pour l'ajout d'un marqueur (class geocastNQ)",e)
		}	
	},
	
	rajoute_marker_mode_plan : function(lat,long,infoHtml ,icon,idIcone)
	{
		try
		{
			var marker ; 
			if(icon == "")
			{
				marker = new GMarker(new GLatLng(lat, long));
			}
	 		else
	 		{
				marker = new GMarker(new GLatLng(lat, long),icon);
			}
			var indice = geocastNQ.tabMarker_mode_plan.length;
			
			 geocastNQ.tabMarker_mode_plan[indice] = marker ;
			
			 geocastNQ.tabMarker_mode_plan[indice].compteur =  indice;
			 geocastNQ.tabMarker_mode_plan[indice].info = infoHtml;
			 geocastNQ.tabMarker_mode_plan[indice].title = idIcone;
			GEvent.addListener(geocastNQ.tabMarker_mode_plan[indice], 'click', function() {
				geocastNQ.affiche_marker_info_mode_plan(this.compteur);
			}); 
			gmapNQ.map.addOverlay(geocastNQ.tabMarker_mode_plan[indice]);
		}
		catch(e)
		{
			utilsNQ.debug("Une erreur a été detectée durant l'ajout d'un marqueur (class geocastNQ)",e)
		}
	},
	
	affiche_marker_info_mode_plan : function(indice_marker) 
	{
		try
		{
			var marker = geocastNQ.tabMarker_mode_plan[indice_marker];
			gmapNQ.map.setZoom(17);
			gmapNQ.map.panTo(marker.getLatLng());   
			var coord = marker.getLatLng()+'';
			var tabCoord = coord.split(',');
			var coordLat = tabCoord[0].substr(1,tabCoord[0].length);
			var coordLng = tabCoord[1].substr(0,tabCoord[1].length-1);
			//marker.openInfoWindowHtml("<p>"+marker.info+"</p><p > Ajouter à mon itinéraire</p>");
            
			  var info = '<div class="bulle_adresse"><div class="bulle_adresse_header"></div><div class="bulle_adresse_content"><div class="logo_adresse"><img width="40" src="../../images/images_icone/'+marker.getIcon().image+'" alt="logo du point du point d\'interet" /></div><div class="txt_bulle_adresse">'+marker.info+'<div class="select_adresse" onclick="gmapNQ.map.closeExtInfoWindow();geocastNQ.ajoutItineraire('+coordLat+', '+coordLng+',\''+escape(marker.info)+'\')">Ajouter &agrave; mon parcours</div></div><div class="btn_close_bulle_adresse" onclick="gmapNQ.map.closeExtInfoWindow();"></div><div class="clear"></div></div><div class="bulle_adresse_footer"></div></div>';
			  
			marker.openExtInfoWindow(gmapNQ.map,"custom_info_window_red",info,{beakOffset: 3}); 
		}
		catch(e)
		{
			utilsNQ.debug("Une erreur a été detectée durant l'affichage d'une bulle d'un marqueur (class geocastNQ)",e)
		}                         
    },
//--------------------------------------------------------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------------------















//--------------------------------------------------------------------------------------------------------------------------------------------------------------
//------------------------------------------------export carte -------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------------------

	converti_carte_img : function (width, height,ecart)
	{
		try
		{
				 var zoom = gmapNQ.map.getZoom()-1;
				 var centerCarte = gmapNQ.map.getBounds().getCenter() ;
				var lat = centerCarte.lat();
				var lng = centerCarte.lng();
				var tableLette = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'];
				
				var url = 'http://maps.google.com/maps/api/staticmap?size='+width+'x'+height+'&sensor=false';
				
				var lettreFin;
				if(geocastNQ.tabAjoutArret.length != 0)
				{
					lettreFin = tableLette[geocastNQ.tabAjoutArret.length+1];
				}
				else
				{
					lettreFin = 'B';
					
				}
				url += '&markers=size:mid|color:0xFFFF00|label:A|'+geocastNQ.pointDepart+'&markers=size:mid|color:0xFFFF00|label:'+lettreFin+'|'+geocastNQ.pointFin;
				for(var y = 0; y<geocastNQ.tabAjoutArret.length;y++)
				{
						url += '&markers=size:mid|color:0xFFFF00|label:'+tableLette[(y+1)]+'|'+geocastNQ.tabAjoutArret[y];
				}
				
				url += '&path=weight:3|color:red|enc:';
		
				var encoded_points = '';
				var tab = [];
											for(var i= 0;i<geocastNQ.polyLigne.getVertexCount() /ecart;i++)
											{
												var vertex = geocastNQ.polyLigne.getVertex(i*ecart);
												//url += '|'+Math.round(vertex.lat()*10)/10+','+Math.round(vertex.lng()*10)/10;
												 var pLat = parseFloat(vertex.lat());
												 var pLong = parseFloat(vertex.lng());
												 tab[tab.length] = new GLatLng(pLat,pLong);
											}
					polylineEncoder = new PolylineEncoder();
					polyline = polylineEncoder.dpEncode(tab);
			
						
				url += polyline.encodedPoints;
				return  url ;
		}
		catch(e)
		{
			utilsNQ.debug("Une erreur a été detectée durant la convertion de l'itineraire en url pour static (class geocastNQ, function converti_carte_img)",e)
		}
	//&markers=color:blue|label:S|62.107733,-145.541936&markers=size:tiny|color:green|Delta+Junction,AK\&markers=size:mid|color:0xFFFF00|label:C|Tok,AK&sensor=false%22

	},

//--------------------------------------------------------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------------------















//--------------------------------------------------------------------------------------------------------------------------------------------------------------
//------------------------------------placement point du repertoire-----------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------------------
    rajoute_marker_reper : function(lat,long ,couleur, id_lieux, adresse)
    {
        try
        {
            
                        var icon = null;
                        switch(couleur)
                        {
                            case 'orange':
                                icon =  gmapNQ.iconOrange;
                            break;
                            
                            case 'rose':
                                icon =  gmapNQ.iconRose;  
                            break;
                            
                            case 'rouge':
                                icon =  gmapNQ.iconRouge;  
                            break;
                            
                            case 'vert':
                                icon =  gmapNQ.iconVert;  
                            break;
                            
                            case 'bleu':
                                icon =  gmapNQ.iconBleu;  
                            break;
                            
                            case 'violet':
                                icon =  gmapNQ.iconViolet;  
                            break;
                            
                            case 'jaune':
                                icon =  gmapNQ.iconJaune;  
                            break;
                            
                            case 'noir':
                                icon =  gmapNQ.iconNoir;  
                            break;
                        }
            var control = true;
            for(var i = 0 ; i < geocastNQ.tabMarker_reper.length ; i++)
            {
                if(geocastNQ.tabMarker_reper[i].idLieux == id_lieux)
                {
                    control = false;
                }
            }
            
            if(control)
            {
                adresse = unescape(adresse);
                        var marker ; 
                        
                        marker = new GMarker(new GLatLng(lat, long),{draggable: true,icon:icon});
                        marker.disableDragging()  ; 
                        var indice = geocastNQ.tabMarker_reper.length;
                         geocastNQ.tabMarker_reper[indice] = marker ;
                        
                         geocastNQ.tabMarker_reper[indice].compteur =  indice;
                         geocastNQ.tabMarker_reper[indice].coordAncien =  new GLatLng(lat, long);
                         geocastNQ.tabMarker_reper[indice].idLieux =  id_lieux;  
							
						var maReg = new RegExp("#", "gi") ;
 						var resultat = adresse.replace(maReg, " ") ; 
                         geocastNQ.tabMarker_reper[indice].info = resultat;
                        GEvent.addListener(geocastNQ.tabMarker_reper[indice], 'click', function() {
                                 geocastNQ.affiche_info_marker_repe(this.compteur);
                            
                        }); 
                        gmapNQ.map.addOverlay(geocastNQ.tabMarker_reper[indice]);
						gmapNQ.map.setCenter(new GLatLng(lat, long),12);
            }
            else
            {
                alert(tab_traduction_gmap['geocast_point_deja_ajoute']);
            }
                        
        }
        catch(e)
        {
            utilsNQ.debug("Une erreur a été detectée durant l'ajout d'un marqueur (class geocastNQ)",e)
        }
    },              
    
    affiche_info_marker_repe :  function (markerIndice)
    {
        var indice_marker = markerIndice;
        var marker = geocastNQ.tabMarker_reper[indice_marker];
        gmapNQ.map.setZoom(17);
        gmapNQ.map.panTo(marker.getLatLng());   
        var coord = marker.getLatLng()+'';
        var tabCoord = coord.split(',');
        var coordLat = tabCoord[0].substr(1,tabCoord[0].length);
        var coordLng = tabCoord[1].substr(0,tabCoord[1].length-1);
        //marker.openInfoWindowHtml("<p>"+marker.info+"</p><p > Ajouter à mon itinéraire</p>");
        var info;
        if(marker.draggingEnabled())
        {
            info = '<div class="bulle_adresse"><div class="bulle_adresse_header"></div><div class="bulle_adresse_content"><div class="txt_bulle_adresse">'+marker.info+'<div id="boutonClassic" style="display:none;"><div class="select_adresse" onclick="gmapNQ.map.closeExtInfoWindow();geocastNQ.enleve_marquer_repertoire_particulier('+indice_marker+')">Supprimer ce point de la carte</div><div class="select_adresse" onclick="geocastNQ.enleve_marquer_repertoire_particulier('+indice_marker+');geocastNQ.ajoutItineraire('+coordLat+', '+coordLng+',\''+escape(marker.info)+'\')">Ajouter &agrave; mon parcours</div><div class="select_adresse" onclick="geocastNQ.replacer_point_reper('+indice_marker+');">Replacer le point</div></div><div id="validePlacement" style="display:block;"><div class="select_adresse" onclick="geocastNQ.valide_deplacement_marker('+indice_marker+');gmapNQ.map.closeExtInfoWindow();">Valider le placement</div><div class="select_adresse" onclick="geocastNQ.annule_deplacement_marker('+indice_marker+');gmapNQ.map.closeExtInfoWindow();">Annuler le placement</div></div></div><div class="btn_close_bulle_adresse" onclick="gmapNQ.map.closeExtInfoWindow();"></div><div class="clear"></div></div><div class="bulle_adresse_footer"></div></div>';
        }
        else
        {
            info = '<div class="bulle_adresse"><div class="bulle_adresse_header"></div><div class="bulle_adresse_content"><div class="txt_bulle_adresse">'+marker.info+'<div id="boutonClassic"><div class="select_adresse" onclick="gmapNQ.map.closeExtInfoWindow();geocastNQ.enleve_marquer_repertoire_particulier('+indice_marker+')">Supprimer ce point de la carte</div><div class="select_adresse" onclick="geocastNQ.enleve_marquer_repertoire_particulier('+indice_marker+');geocastNQ.ajoutItineraire('+coordLat+', '+coordLng+',\''+escape(marker.info)+'\')">Ajouter &agrave; mon parcours</div><div class="select_adresse" onclick="geocastNQ.replacer_point_reper('+indice_marker+');">Replacer le point</div></div><div id="validePlacement" style="display:none;"><div class="select_adresse" onclick="geocastNQ.valide_deplacement_marker('+indice_marker+');gmapNQ.map.closeExtInfoWindow();">Valider le placement</div><div class="select_adresse" onclick="geocastNQ.annule_deplacement_marker('+indice_marker+');gmapNQ.map.closeExtInfoWindow();">Annuler le placement</div></div></div><div class="btn_close_bulle_adresse" onclick="gmapNQ.map.closeExtInfoWindow();"></div><div class="clear"></div></div><div class="bulle_adresse_footer"></div></div>';
        }
        marker.openExtInfoWindow(gmapNQ.map,"custom_info_window_red",info,{beakOffset: 3});    
        
    },
    
    enleve_marquer_repertoire_particulier : function (indice_marker)
    {
        
        
        gmapNQ.map.removeOverlay(geocastNQ.tabMarker_reper[indice_marker]);
        
        //decale le tableau pour enlever le marqueur passé en parametre
        for(var i=indice_marker; i<geocastNQ.tabMarker_reper.length; i++)
        {
            geocastNQ.tabMarker_reper[i] = geocastNQ.tabMarker_reper[i+1];
        }
        
        //enleve le dernier element vus que 'lon a decaler le tab de 1
        var temp = new Array();
        for(var i=0; i<geocastNQ.tabMarker_reper.length-1; i++)
        {
            temp[i] = geocastNQ.tabMarker_reper[i];
        }
        geocastNQ.tabMarker_reper = temp;
    },
    
    replacer_point_reper : function (indice_marker)
    {
       geocastNQ.tabMarker_reper[indice_marker].enableDragging();
       
        GEvent.addListener(geocastNQ.tabMarker_reper[indice_marker], "dragstart", function() {
          gmapNQ.map.closeInfoWindow();
        });

        GEvent.addListener(geocastNQ.tabMarker_reper[indice_marker], "dragend", function() {
            geocastNQ.affiche_info_marker_repe(this.compteur);
        });

        
       Dom.setStyle('boutonClassic','display','none') ;
        Dom.setStyle('validePlacement','display','block') ;
    },
    
   valide_deplacement_marker : function (indice_marker)
    {
       geocastNQ.tabMarker_reper[indice_marker].disableDragging();
       gestionSiteNQ.AjaxModifCoordLieux.startRequest(geocastNQ.tabMarker_reper[indice_marker].getLatLng().lat(),geocastNQ.tabMarker_reper[indice_marker].getLatLng().lng(),geocastNQ.tabMarker_reper[indice_marker].idLieux);
       
        Dom.setStyle('boutonClassic','display','block') ;  
         Dom.setStyle('validePlacement','display','none') ;            
    }, 
    
    annule_deplacement_marker : function (indice_marker)
    {
       geocastNQ.tabMarker_reper[indice_marker].disableDragging();
       geocastNQ.tabMarker_reper[indice_marker].setLatLng(geocastNQ.tabMarker_reper[indice_marker].coordAncien);
        Dom.setStyle('boutonClassic','display','block') ;  
         Dom.setStyle('validePlacement','display','none') ;            
    }, 
//--------------------------------------------------------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------------------
















//--------------------------------------------------------------------------------------------------------------------------------------------------------------
//--------------------------------------------------placement de l'utilisateur en fonction de l'ip----------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------------------

place_user_carte : function(lat,long, adresse)
{
    try
    {

        geocastNQ.markerUser = new GMarker(new GLatLng(lat, long),{draggable: true,icon:gmapNQ.iconUser});
        geocastNQ.markerUser.disableDragging()  ; 
       
         geocastNQ.markerUser.coordAncien =  new GLatLng(lat, long);
        
         geocastNQ.markerUser.info = adresse;
         
        GEvent.addListener(geocastNQ.markerUser, 'click', function() {
                 geocastNQ.affiche_info_marker_user();
            
        }); 
        gmapNQ.map.addOverlay(geocastNQ.markerUser);
       
                    
    }
    catch(e)
    {
        utilsNQ.debug("Une erreur a été detectée durant l'ajout d'un marqueur de l'user (vous etes ici)(class geocastNQ)",e)
    }
},

affiche_info_marker_user :  function ()
{
  

    gmapNQ.map.setZoom(17);
    gmapNQ.map.panTo(geocastNQ.markerUser.getLatLng());   
    var coord = geocastNQ.markerUser.getLatLng()+'';
    var tabCoord = coord.split(',');
    var coordLat = tabCoord[0].substr(1,tabCoord[0].length);
    var coordLng = tabCoord[1].substr(0,tabCoord[1].length-1);
    
    var info;
    if(geocastNQ.markerUser.draggingEnabled())
    {
        info = '<div class="bulle_adresse"><div class="bulle_adresse_header"></div><div class="bulle_adresse_content"><div class="txt_bulle_adresse"><!--'+geocastNQ.markerUser.info+'--><div id="boutonClassicUser" style="display:none;"><div class="select_adresse" onclick="gmapNQ.map.closeExtInfoWindow();geocastNQ.enleve_marquer_user_particulier()">Supprimer ce point de la carte</div><div class="select_adresse" onclick="gmapNQ.map.closeExtInfoWindow();geocastNQ.ajoutItineraire('+coordLat+', '+coordLng+',\''+escape(geocastNQ.markerUser.info)+'\')">Ajouter &agrave; mon parcours</div><div class="select_adresse" onclick="geocastNQ.replacer_point_user();">Replacer le point</div></div><div id="validePlacementUser" style="display:block;"><div class="select_adresse" onclick="geocastNQ.valide_deplacement_marker_user();gmapNQ.map.closeExtInfoWindow();">Valider le placement</div><div class="select_adresse" onclick="geocastNQ.annule_deplacement_marker_user();gmapNQ.map.closeExtInfoWindow();">Annuler le placement</div></div></div><div class="btn_close_bulle_adresse" onclick="gmapNQ.map.closeExtInfoWindow();"></div><div class="clear"></div></div><div class="bulle_adresse_footer"></div></div>';
    }
    else
    {
        info = '<div class="bulle_adresse"><div class="bulle_adresse_header"></div><div class="bulle_adresse_content"><div class="txt_bulle_adresse"><!--'+geocastNQ.markerUser.info+'--><div id="boutonClassicUser"><div class="select_adresse" onclick="gmapNQ.map.closeExtInfoWindow();geocastNQ.enleve_marquer_user_particulier()">Supprimer ce point de la carte</div><div class="select_adresse" onclick="gmapNQ.map.closeExtInfoWindow();geocastNQ.ajoutItineraire('+coordLat+', '+coordLng+',\''+escape(geocastNQ.markerUser.info)+'\')">Ajouter &agrave; mon parcours</div><div class="select_adresse" onclick="geocastNQ.replacer_point_user();">Replacer le point</div></div><div id="validePlacementUser" style="display:none;"><div class="select_adresse" onclick="geocastNQ.valide_deplacement_marker_user();gmapNQ.map.closeExtInfoWindow();">Valider le placement</div><div class="select_adresse" onclick="geocastNQ.annule_deplacement_marker_user();gmapNQ.map.closeExtInfoWindow();">Annuler le placement</div></div></div><div class="btn_close_bulle_adresse" onclick="gmapNQ.map.closeExtInfoWindow();"></div><div class="clear"></div></div><div class="bulle_adresse_footer"></div></div>';
    }
    geocastNQ.markerUser.openExtInfoWindow(gmapNQ.map,"custom_info_window_red",info,{beakOffset: 3});    
    
},

    enleve_marquer_user_particulier : function ()
    {
        gmapNQ.map.removeOverlay(geocastNQ.markerUser);
    },
    
    replacer_point_user : function ()
    {
       if(gestionSiteNQ.visiteurConnecte){
		   geocastNQ.markerUser.enableDragging();
		   
			GEvent.addListener(geocastNQ.markerUser, "dragstart", function() {
			  gmapNQ.map.closeInfoWindow();
			});
	
			GEvent.addListener(geocastNQ.markerUser, "dragend", function() {
				geocastNQ.affiche_info_marker_user();
			});
	
			
		   Dom.setStyle('boutonClassicUser','display','none') ;
			Dom.setStyle('validePlacementUser','display','block') ;
	   } else {
			alert('Vous devez être connecté pour utiliser cette action')   
	   }
		
    },
    
   valide_deplacement_marker_user : function ()
    {
       geocastNQ.markerUser.disableDragging();
       
        Dom.setStyle('boutonClassicUser','display','block') ;  
         Dom.setStyle('validePlacementUser','display','none') ;
		 
		 gestionSiteNQ.AjaxEnregistreCook.startRequest(geocastNQ.markerUser.getLatLng().lat(),geocastNQ.markerUser.getLatLng().lng());
    }, 
    
	place_marker_user : function (lat,lng)
	{
		geocastNQ.markerUser.setLatLng(new GLatLng(lat,lng));
	},
	
    annule_deplacement_marker_user : function ()
    {
       geocastNQ.markerUser.disableDragging();
       geocastNQ.markerUser.setLatLng(geocastNQ.markerUser.coordAncien);
        Dom.setStyle('boutonClassicUser','display','block') ;  
         Dom.setStyle('validePlacementUser','display','none') ;            
    }, 
	
	getLatLngUser : function ()
	{
		return [geocastNQ.markerUser.getLatLng().lat(),geocastNQ.markerUser.getLatLng().lng()];
	},



//--------------------------------------------------------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------------------    
    



//--------------------------------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------STREET VIEW-------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------------------    
afficheCar : function ()
{
	
		
		
		
		geocastNQ.markerCar.setLatLng(geocastNQ.tabStepTrajetCompleter[0].getLatLng());
		geocastNQ.coordSuivante =geocastNQ.tabStepTrajetCompleter[0].getLatLng();
		
},

reouvreBull : function()
{
	var html = '<div style="margin:0px;padding:0px;width:509px;height:258px;padding:5px;.padding-left:0px;background-image:url(images/bulles/streetViewFond.png);background-repeat:no-repeat;position:relative;"><div style="margin:0px;padding:0px;width:212px;height:21px;background-image:url(images/bulles/fond_button_street_view.png);background-repeat:no-repeat;position:absolute;top:5px;left:5px;z-index:500"><div style="margin:0px;padding:0px;float:left;width:75px;height:21px;color:#FFFFFF" id="mettreBouton">Chargement</div><div style="margin:0px;padding:0px;float:left;width:30px;height:21px;cursor:pointer;" onclick="gmapNQ.map.closeExtInfoWindow();">&nbsp;</div></div><div id="EmplacementStreetView" style="margin:0px;padding:0px;width: 499px; height: 245px;position:relative"></div></div>';
		
			//geocastNQ.markerCar.openInfoWindowHtml(html);
			geocastNQ.markerCar.openExtInfoWindow(gmapNQ.map,"custom_info_window_red",html,{beakOffset: 3});
			setTimeout("geocastNQ.afficheStreetView()",2000);
},

afficheStreetView : function()
 {
	 
	 document.getElementById("mettreBouton").innerHTML="<p onclick='geocastNQ.suivant()' style='cursor:pointer;padding:0px;margin:0px;'>suivant</p>";
	 geocastNQ.streetView = new GStreetviewPanorama(document.getElementById("EmplacementStreetView"));
	//document.getElementById("street").style.display = "block";
	 var myPOV = {yaw:318,pitch:-53,zoom:0};
	 geocastNQ.streetView.setLocationAndPOV(geocastNQ.coordSuivante);
	 GEvent.addListener(geocastNQ.streetView, "error", geocastNQ.handleNoFlash);
	 GEvent.addListener(geocastNQ.streetView, "initialized", function(){geocastNQ.markerCar.show();});
	 
	 
 },
 

handleNoFlash : function(errorCode) 
 {
	
	 geocastNQ.markerCar.hide();
	 gmapNQ.map.closeInfoWindow(); 
	
		 //suivant();
	 
	
 },
 
suivant : function()
{
	if(geocastNQ.indiceStreetCar+2<geocastNQ.tabStepTrajetCompleter.length)
	{
		
		geocastNQ.indiceStreetCar+=2;
		if(typeof(geocastNQ.tabStepTrajetCompleter[geocastNQ.indiceStreetCar].getLatLng) == 'function')
		{
			geocastNQ.coordSuivante = geocastNQ.tabStepTrajetCompleter[geocastNQ.indiceStreetCar].getLatLng();
			
			geocastNQ.streetView.setLocationAndPOV(geocastNQ.coordSuivante);
			geocastNQ.markerCar.setLatLng(geocastNQ.coordSuivante);
			setTimeout("geocastNQ.reouvreBull()",500);
		}
		
	}
	
},

deplace_carStreet : function (lat,Lng)
{
	geocastNQ.markerCar.show();
	geocastNQ.markerCar.setLatLng(new GLatLng(lat,Lng));
	geocastNQ.coordSuivante = new GLatLng(lat,Lng);

},


deplace_carStreet_and_ouvre : function (lat,Lng)
{
	geocastNQ.markerCar.show();
	geocastNQ.markerCar.setLatLng(new GLatLng(lat,Lng));
	geocastNQ.coordSuivante = new GLatLng(lat,Lng);
	geocastNQ.reouvreBull();

},

cache_carStreet : function ()
{
	geocastNQ.markerCar.hide();	
},

//--------------------------------------------------------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------------------    



//--------------------------------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------Meteo-------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------------------------------------------------------------------- 
supprMeteo : function()
{
	
				for(var i = 0 ; i < geocastNQ.markerMeteo.length ; i++)
				{
					gmapNQ.map.removeOverlay(geocastNQ.markerMeteo[i]);
				}
			
			geocastNQ.markerMeteo = [];
			
},

afficheMeteo : function()
{
	if(geocastNQ.markerMeteo.length == 0)
	{
			
			for(var i = 0 ; i < geocastNQ.tabStepTrajet.length; i++)
			{
				var latlng;
				var ancienlatlng;
				var control;
				if(typeof(geocastNQ.tabStepTrajet[i].getLatLng) == 'function')
				{
					latlng = geocastNQ.tabStepTrajet[i].getLatLng();
				}
				else
				{
					latlng = geocastNQ.tabStepTrajet[i];
				}
				
				if(i == 0 || i == geocastNQ.tabStepTrajet.length-1)
				{
					control = true;
					
				}
				else
				{
					
					
					if(typeof(geocastNQ.tabStepTrajet[i-1].getLatLng) == 'function')
					{
						ancienlatlng = geocastNQ.tabStepTrajet[i-1].getLatLng();
					}
					else
					{
						ancienlatlng = geocastNQ.tabStepTrajet[i-1];
					}
					var distance = utilsNQ.get_distance_m(latlng.lat(), latlng.lng(), ancienlatlng.lat(), ancienlatlng.lng());
				
					if(distance > 50000){
						
						control = true;
					}else{
						control = false;
					}
					
				}
				
				if(control)
				{
					
					gmapNQ.geocoder.getLocations(latlng, function(response){
						
						if (!response || response.Status.code != 200) {
							//alert("Status Code:" + response.Status.code);
						  } else {
							var ville = response.Placemark[0].AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.LocalityName;			
							var coord  = response.Placemark[0].Point.coordinates;
							if(utilsNQ.in_array(geocastNQ.t_verif_ville_meteo,ville))
							{
								geocastNQ.t_verif_ville_meteo[geocastNQ.t_verif_ville_meteo.length] = (ville);
								gestionSiteNQ.AjaxCheckMeteo.startRequest(coord[1],coord[0],ville);
								geocastNQ.nombreRequeteMeteo++;
							}
							
						}
						
						
					});	
				}
			}
	
	}
	else
	{
		var control = false;
		if(geocastNQ.markerMeteo.length > 0)
		{
			for(var i = 0 ; i < geocastNQ.markerMeteo.length ; i++)
			{
				if(geocastNQ.markerMeteo[i].isHidden())
				{
					control = true;
				}
			}
		}
		
		if(control)
		{
			geocastNQ.showMakerMeteo();
		}
		else
		{
			geocastNQ.hideMarkerMeteo();
		}
	}
	
  
},


afficheMarquerMeteo : function (lat, long,html,img, nom)
{
	if(html != '' && img != '' )
	{
		
		 gmapNQ.iconMeteo.image = gmapNQ.switchImgMeteo(img);
		//icon.shadow = "images/ombre_1.png";
		
		var indice = geocastNQ.markerMeteo.length;
		geocastNQ.markerMeteo[indice] = new GMarker(new GLatLng(lat, long), gmapNQ.iconMeteo);
		
		gmapNQ.map.addOverlay(geocastNQ.markerMeteo[indice]);
		geocastNQ.markerMeteo[indice].html = html;
		google.maps.Event.addListener(geocastNQ.markerMeteo[indice], 'click', function() {
			//geocastNQ.markerMeteo[indice].openInfoWindowHtml(this.html);
			 geocastNQ.markerMeteo[indice].openExtInfoWindow(gmapNQ.map,"custom_info_window_red",this.html,{beakOffset: 3});
		});
		
		
	}
	geocastNQ.nombreRequeteMeteo--;
	if(geocastNQ.nombreRequeteMeteo == 0)
	{
		//geocastNQ.hideMarkerMeteo();
	}
},

toggleMeteo : function ()
{
	
		
		geocastNQ.afficheMeteo();
	
	
	
},

showMakerMeteo : function ()
{
	if(geocastNQ.markerMeteo.length > 0)
	{
		for(var i = 0 ; i < geocastNQ.markerMeteo.length ; i++)
		{
			geocastNQ.markerMeteo[i].show();
		}
	}
},

hideMarkerMeteo : function ()
{
	if(geocastNQ.markerMeteo.length > 0)
	{
		for(var i = 0 ; i < geocastNQ.markerMeteo.length ; i++)
		{
			geocastNQ.markerMeteo[i].hide();
		}
	}
},
//--------------------------------------------------------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------------------------------------------------------------------- 
    
    
    

//--------------------------------------------------------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------accesseurs-------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------------------

getTabsArret : function ()
{
	return [geocastNQ.tabAjoutArret,geocastNQ.tabAjoutArretOrdreInfo];
},

getTabMultiRepLieuxPlanMode : function ()
{
	return [geocastNQ.t_multi_lieux_sauv,geocastNQ.recherchePlanDemande];
}

//--------------------------------------------------------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------------------
	
};
//]]>

