//<![CDATA[
		   
// definition des variables
var map;
var geocoder;
var marker;
var html ="";
var gdir;

var gmarkers = [];
var htmls = [];
var i = 0;
var select_html ="";

var partenaire_id ="";

/*-----------------------------------------------------------------*/
/*--------------- DEFINITON DES MARKERS --------------*/
/*-----------------------------------------------------------------*/
	
	var baseIcon = new GIcon();
	baseIcon.iconSize=new GSize(23,24);
		baseIcon.shadowSize=new GSize(20,22);
		baseIcon.iconAnchor=new GPoint(6,20);
		baseIcon.infoWindowAnchor=new GPoint(5,1);
		
	var baseIcon2 = new GIcon();
	baseIcon2.iconSize=new GSize(48,17);
		baseIcon2.shadowSize=new GSize(20,22);
		baseIcon2.iconAnchor=new GPoint(6,20);
		baseIcon2.infoWindowAnchor=new GPoint(5,1);
	
	var MonIcone = new GIcon(baseIcon, 'http://www.aslocation.fr/images/picto.png', null);
	var MonIcone2 = new GIcon(baseIcon, 'http://www.aslocation.fr/images/picto2.png', null);

/*-----------------------------------------------------------------*/
/*--------------- CREATION DES MARKERS --------------*/
/*-----------------------------------------------------------------*/

function createMarker(adresse,id,cp,ville,nom,telephone,fax,point,responsable,mail,horraire,portable,lat,long,type,visible,photo) {
	//choix du type de marqueur a affichier (picto)
      var type = type;
	  if(type=="1")
	  	{ var marker = new GMarker(point,MonIcone); }
	  else
	  	{ var marker = new GMarker(point,MonIcone2); }
	  
	  var html = "<div style='line-height:14px'>";
		
		if(type=="1"){
			if(photo != "../uploads/agence/"){
				html += "<img src='"+photo+"' width='200px' height='150px' style='margin:0;float:none;'/><br />";
			}
		}
		
	    if((type=="2" && visible=="1") || type=="1"){
				html += "<span class='rouge'><strong>"+nom+"</strong></span><br />";
				html += adresse+"<br />";
		}
				html += cp+" "+ville+"<br />";
		
		if((type=="2" && visible=="1") || type=="1"){
			if(telephone!="")
				{ html += "<span class='rouge'><strong>T&eacute;l. : </strong></span>"+telephone+"<br />";}
			
			if(mail!="")
				{ html += "<span class='rouge'><strong>Mail : </strong></span>"+mail+"<br />";}
			
			if(horraire!="")
				{ html += "<span class='rouge'><strong>Horaires : </strong></span>"+horraire+"<br />";}
			
			if(responsable!="")
				{ html += "<span class='rouge'><strong>Responsable : </strong></span>"+responsable+"<br />";}
		}

		html += '<a href="reservation/devis?devis=2&agence=' + nom + '">Demande de devis</a>';
		
		html += '<form action="#" onsubmit="setDirections(this.from.value,this.ville.value,this.cp.value,this.adresse.value); return false">';
		html += '<br />Adresse de d&eacute;part:&nbsp;<br />';
		html += '<input type="text" size="25" id="fromAddress" name="from" value=""/>';
		html += '<input type="hidden"  id="adresseAddress" name="adresse" value="'+adresse+'"/>';
		html += '<input type="hidden"  id="cpAddress" name="cp" value="'+cp+'"/>';
		html += '<input type="hidden"  id="villeAddress" name="ville" value="'+ville+'"/>';
		html += '<input name="submit" type="submit" value="Itin&eacute;raire" /></form>';

	html += "</div>";

gmarkers[i] = marker;
        htmls[i] = html;
				
        // ======= Add the entry to the select box =====
		if(type=="1"){
        	select_html += '<option> ' + nom + '<\/option>';
		}
		if(type=="2"){
			if(visible=="1"){
        		select_html += '<option> ' + nom + '<\/option>';
			}
			else{
				select_html += '<option> ' + cp + ' ' + ville + ' <\/option>';
			}
		}

        // ==========================================================
      	//ecouteur d'evenement pr ouvrir l'info-bulle sur clic
      GEvent.addListener(marker, 'mouseover', function() {
        marker.openInfoWindowHtml(html);
      });
			
      GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(html);
				map.setCenter(marker.getLatLng(), 12);
      });

	i++;
	return marker;
} 

// ======= This function handles selections from the select box ====
// === If the dummy entry is selected, the info window is closed ==
function handleSelected(opt) {
	var i = opt.selectedIndex - 1; 
	if (i > -1) {
		GEvent.trigger(gmarkers[i],"click");
	}
	else {
		map.closeInfoWindow();
	}
}

/*---------------------------------------------------*/
/*--------------- AFFICHAGE DES CARTES --------------*/
/*---------------------------------------------------*/

function load_map($) { 

	if (GBrowserIsCompatible()) { //si le navigateur est compatible avec google map
	
      // ==== first part of the select box ===
      select_html = '<select onChange="handleSelected(this)">' +
                        '<option selected> - Selectionnez une agence - <\/option>';
      // =====================================
		geocoder = new GClientGeocoder();
		//definition de la carte
		map = new GMap2(document.getElementById("map_div"));
		
		//pour les directions
		gdir = new GDirections(map, document.getElementById("directions"));


		map.removeMapType(G_HYBRID_MAP);
		map.removeMapType(G_SATELLITE_MAP);
		//map.removeMapType(G_NORMAL_MAP);
		map.addControl(new GLargeMapControl()); //ligne de zoom
		map.addControl(new GMapTypeControl()); //bouton vue satellite ect..
		//map.addControl(new GOverviewMapControl()); //mini-map coin inferieur
		
		//centrage de la carte
		map.setCenter(new GLatLng(46.987747,2.48291), 5);
		
		//parsage du fichier xml, defini a partir de la base de donne xmlise
		GDownloadUrl("http://www.aslocation.fr/index.php/agence/liste", function(data) { 
				var xml = GXml.parse(data);
				var markers = xml.documentElement.getElementsByTagName("marker");
		
				var bounds = new GLatLngBounds();
				for (var i = 0; i < markers.length; i++) {
					
					//recuperation des valeurs xml
					var adresse = markers[i].getAttribute("adresse");
					var id = markers[i].getAttribute("id");
					var cp = markers[i].getAttribute("cp");
					var ville = markers[i].getAttribute("ville");
					var nom = markers[i].getAttribute("nom");
					var telephone = markers[i].getAttribute("telephone");
					var fax = markers[i].getAttribute("fax");	
					var responsable = markers[i].getAttribute("responsable");	
					var mail = markers[i].getAttribute("mail");
					var portable = markers[i].getAttribute("portable");
					var horraire = markers[i].getAttribute("horraire");
					var photo = markers[i].getAttribute("photo");
					var lat = markers[i].getAttribute("latitude");
					var type = markers[i].getAttribute("type");
					var long = markers[i].getAttribute("longitude");
					
					
					var visible = markers[i].getAttribute("visible");
					
					
					
					var point = new GLatLng(parseFloat(markers[i].getAttribute("latitude")),parseFloat(markers[i].getAttribute("longitude")));
					
					//creation des points
					marker = createMarker(adresse,id,cp,ville,nom,telephone,fax,point,responsable,mail,horraire,portable,lat,long,type,visible,photo);
					map.addOverlay(marker);
					
					bounds.extend(point);
				}
        // ===== final part of the select box =====
        select_html += '<\/select>';
        document.getElementById("selection_agence_div").innerHTML = select_html;
		}); 
	}
	else
	{
			alert("ce navigateur n'est pas compatible avec google map");
	}
	  
}
 
/*---------------------------------------------------*/
/*--------------- MAPPY --------------*/
/*---------------------------------------------------*/ 
  
function setDirections(fromAddress,ville,cp,adresse) {
	//alert("from: "+fromAddress+" to: " + adresse + " " + cp + " " + ville);
	//gdir.load("from: " + fromAddress + " to: " + adresse + " " + cp + " " + ville, { "locale": "fr" });
	gdir.load("from: " + fromAddress + " to: " + cp + " " + ville, { "locale": "fr" });
}

function zoom(coor) { 
	
	if (GBrowserIsCompatible()) { //si le navigateur est compatible avec google map

      // ==== first part of the select box ===
      select_html = '<select onChange="handleSelected(this)">' +
                        '<option selected> - Selectionnez une agence - <\/option>';
      // =====================================

		geocoder = new GClientGeocoder();
		
		//definition de la carte
		map = new GMap2(document.getElementById("map_div"));
		
		//pour les directions
		gdir = new GDirections(map, document.getElementById("directions"));


		map.removeMapType(G_HYBRID_MAP);
		map.removeMapType(G_SATELLITE_MAP);
		//map.removeMapType(G_NORMAL_MAP);
		map.addControl(new GLargeMapControl()); //ligne de zoom
		map.addControl(new GMapTypeControl()); //bouton vue satellite ect..
		//map.addControl(new GOverviewMapControl()); //mini-map coin inferieur
		
		//centrage de la carte
		map.setCenter(new GLatLng(46.987747,2.48291), 5);
		
		//parsage du fichier xml, defini a partir de la base de donne xmlise
		GDownloadUrl("http://www.aslocation.fr/index.php/agence/liste", function(data) { 
				var xml = GXml.parse(data);
				var markers = xml.documentElement.getElementsByTagName("marker");
		
				var bounds = new GLatLngBounds();
				for (var i = 0; i < markers.length; i++) {
					//recuperation des valeurs xml
					
					var adresse = markers[i].getAttribute("adresse");
					var id = markers[i].getAttribute("id");
					var cp = markers[i].getAttribute("cp");
					var ville = markers[i].getAttribute("ville");
					var nom = markers[i].getAttribute("nom");
					var telephone = markers[i].getAttribute("telephone");
					var fax = markers[i].getAttribute("fax");	
					var responsable = markers[i].getAttribute("responsable");	
					var mail = markers[i].getAttribute("mail");
					var portable = markers[i].getAttribute("portable");
					var horraire = markers[i].getAttribute("horraire");
					var photo = markers[i].getAttribute("photo");
					var lat = markers[i].getAttribute("latitude");
					var long = markers[i].getAttribute("longitude");
					var type = markers[i].getAttribute("type");
					
					
					var visible = markers[i].getAttribute("visible");
					
					
					var point = new GLatLng(parseFloat(markers[i].getAttribute("latitude")),parseFloat(markers[i].getAttribute("longitude")));
		
					marker = createMarker(adresse,id,cp,ville,nom,telephone,fax,point,responsable,mail,horraire,portable,lat,long,type,visible,photo);
					map.addOverlay(marker,point);
					
					bounds.extend(point);
				}
        // ===== final part of the select box =====
        select_html += '<\/select>';
        document.getElementById("selection_agence_div").innerHTML = select_html;
				
		}); 
	
	var coor=coor;
	 var brokenstring=coor.split(",")
	  if(coor=="")
	 {
	 	map.setCenter(new GLatLng(46.987747,2.48291), 5);
	 }
	 else
	 {
		map.setCenter(new GLatLng(brokenstring[0],brokenstring[1]), 12);
	 }

		
	}
	else
	{
			alert("ce navigateur n'est pas compatible avec google map");
	}
	 
	}

function zoom2(id) { 
	
	if (GBrowserIsCompatible()) { //si le navigateur est compatible avec google map

		geocoder = new GClientGeocoder();
		//definition de la carte
		map = new GMap2(document.getElementById("map_div"));
		
		//pour les directions
		gdir = new GDirections(map, document.getElementById("directions"));
		partenaire_id = id;

		map.removeMapType(G_HYBRID_MAP);
		map.removeMapType(G_SATELLITE_MAP);
		map.addControl(new GLargeMapControl()); //ligne de zoom
		map.addControl(new GMapTypeControl()); //bouton vue satellite ect..
		
		//centrage de la carte
		map.setCenter(new GLatLng(46.987747,2.48291), 5);
		
		//parsage du fichier xml, defini a partir de la base de donne xmlise
		GDownloadUrl("http://www.aslocation.fr/index.php/agence/liste", function(data) { 
				var xml = GXml.parse(data);
				var markers = xml.documentElement.getElementsByTagName("marker");

				var bounds = new GLatLngBounds();
				for (var i = 0; i < markers.length; i++) {

				if (  (markers[i].getAttribute("type") == 2) && (markers[i].getAttribute("id") == partenaire_id)  )
					{ 
						//recuperation des valeurs xml					
						var adresse = markers[i].getAttribute("adresse");
						var id = markers[i].getAttribute("id");
						var cp = markers[i].getAttribute("cp");
						var ville = markers[i].getAttribute("ville");
						var nom = markers[i].getAttribute("nom");
						var telephone = markers[i].getAttribute("telephone");
						var fax = markers[i].getAttribute("fax");	
						var responsable = markers[i].getAttribute("responsable");	
						var mail = markers[i].getAttribute("mail");
						var portable = markers[i].getAttribute("portable");
						var horraire = markers[i].getAttribute("horraire");
						var photo = markers[i].getAttribute("photo");
						var lat = markers[i].getAttribute("latitude");
						var long = markers[i].getAttribute("longitude");
						var type = markers[i].getAttribute("type");
						
						
						var visible = markers[i].getAttribute("visible");
						
						
						var point = new GLatLng(parseFloat(markers[i].getAttribute("latitude")),parseFloat(markers[i].getAttribute("longitude")));
			
						marker = createMarker(adresse,id,cp,ville,nom,telephone,fax,point,responsable,mail,horraire,portable,lat,long,type,visible,photo);
						
						map.addOverlay(marker,point);
						GEvent.trigger(marker,"click");
						break;
					}
		
					
					//bounds.extend(point);
				}
		//map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
		}); 
		
	}
	else
	{
			alert("ce navigateur n'est pas compatible avec google map");
	}

}
	
	
/******************************************/	
// geolocalisation drag/drop
/******************************************/

function coord_agence(){
var map = new GMap2(document.getElementById("map_coord_div"));
map.addControl(new GLargeMapControl());

if (( ( $('latitude').value == null) && ( $('longitude').value == null) ) || 
	   ( ( $('latitude').value == 0) && ( $('longitude').value == 0) ))
		{ 
			 //coordonnes par defaut
			 var center = new GLatLng(46.987747,2.48291);  
		}
		else 
		{ 
			//centrage de la carte sur les coordonnes de l'agence
			var center = new GLatLng( $('latitude').value, $('longitude').value); 
		}
	
	map.setCenter(center, 11);
	var marker = new GMarker(center, {draggable: true});
	
	GEvent.addListener(marker, "dragstart", function() {
          map.closeInfoWindow();
        });
	
	GEvent.addListener(marker, "dragend", function() {
	    $('latitude').value = marker.getPoint().lat();
		$('longitude').value = marker.getPoint().lng();
	  });	

	map.addOverlay(marker);
}

function AdresseAgence(){ 
	// recuperes les champs necessaire du formulaire,
		var adr = $("adresse").value;
		var code_postal = $("cp").value;
		var ville = $("ville").value;

	// concatene en une chaine,
		var chaine = adr+" "+code_postal+" "+ville;
	// appelle la function Geocode_adr avec la chaine en parametre
		Geocode_adr(chaine);
}

function Geocode_adr(address){
	geocoder = new GClientGeocoder();  
		if (geocoder) {
			geocoder.getLatLng(address, function(coord) {
				if (!coord) { // Si les coordonnes n'ont pas t trouvs 
					alert("Impossible de localiser l'adresse :\n\n" + address);
					//valeur par defaut 0 ???
				} else {
				   $('latitude').value = coord.y;
				   $('longitude').value = coord.x;
					 coord_agence();
				}
			});
		}
}
//]]> 
