// ajoute la carte dans le div "map"

  var gmarkers = [];
  var htmls = [];

function addMap (x, y, zoom, type_carte, controle, overview)
{
	// type_carte = G_HYBRID_MAP, G_SATELLITE_MAP, G_NORMAL_MAP
	
	//tranforme valeur du zoom pour compatibilité
	//zoom = 17 - zoom;
	
	if (GBrowserIsCompatible()) {
		
		var map = new GMap2(document.getElementById("map"));
		map.addControl(new GSmallMapControl());

		if (controle == 1)
		{
			map.addControl(new GMapTypeControl());
		}
		
		map.setCenter(new GLatLng(y, x), zoom, type_carte); 
		//map.centerAndZoom(new GPoint(x,y), zoom);
	
		if (overview == 1)
		{
		      ovcontrol = new GOverviewMapControl(new GSize(350,120));
		      map.addControl(ovcontrol);
		      setOverviewPos();
		}
	
	return map;
    }
}

function moveMapTo (map, y, x, zoom)
{
	map.panTo(new GLatLng(y, x, zoom));

	//map.setZoom(zoom_mod);
	
}

function overviewMapPosition()  
{
  ovmap = document.getElementById("map_overview");
  if(ovmap) 
  {
     ovmap.style.position = "absolute";

     // == restyling ==
     ovmap.firstChild.style.border = "1px solid white";
     ovmap.firstChild.firstChild.style.left="4px";
     ovmap.firstChild.firstChild.style.top="4px";
     
     var mapdiv =document.getElementById("map");
     mapdiv.appendChild(ovmap);
   }
}


function setOverviewPos() 
{
   setTimeout("overviewMapPosition();", 5);
      
}


// fonction qui defini l'image d'un icone
function set_new_icon (nom_icone)
{
	var icon = new GIcon();
	icon.image = "http://www.marseilleforum.com/medias/bullets/" + nom_icone;
	icon.shadow = "http://www.marseilleforum.com/medias/bullets/mm_20_shadow.png";
	icon.iconSize = new GSize(12, 20);
	icon.shadowSize = new GSize(22, 20);
	icon.iconAnchor = new GPoint(6, 20);
	icon.infoWindowAnchor = new GPoint(5, 1);			
	
	return icon;
}

// utilisé pour afficher un seul icone (page article)
function addSimpleMap (x, y, zoom)
{
	
	if (GBrowserIsCompatible() && x != 0) {

		var icon = set_new_icon('mm_20_red.png');
		
		var map = new GMap2(document.getElementById("map"));
		var point = new GPoint(x,y);
		
				
		map.addControl(new GSmallZoomControl());
		//map.centerAndZoom(point, zoom);
		map.setCenter(new GLatLng(y, x), zoom, G_NORMAL_MAP); 
		
		map.addOverlay(new GMarker(point,icon));
    }
	else
	{
		document.getElementById("map").style.display = 'none';
	}
}

// utilisé pour les formulaire de saisie
function addInteractiveMap (x, y, zoom)
{
	var map = new GMap2(document.getElementById("map"));
	map.addControl(new GSmallMapControl());
	map.addControl(new GMapTypeControl());
	
	map.setCenter(new GLatLng(y, x), zoom, G_NORMAL_MAP); 
	//map.centerAndZoom(new GPoint(x, y), zoom);

	GEvent.addListener(map, 'click', function(overlay, point) {
		map.clearOverlays();
		map.addOverlay(new GMarker(point));

		// renvoie les valeurs dans le formulaire
		document.getElementById("google_loni").value = point.x;
		document.getElementById("google_lati").value = point.y;
		document.getElementById("google_zoomi").value = map.getZoom();
		//alert(document.getElementById("google_zoomi").value);
		

	});
	return map;
}



// Creates a marker whose info window displays the given number
function createMarker(point, txtHTML, icon) 
{
  var marker = new GMarker(point, icon);

  // Show this marker's index in the info window when it is clicked
  var html = txtHTML;
  GEvent.addListener(marker, "click", function() {
    marker.openInfoWindowHtml(html);
  });
  
  return marker;
}

function focusMap(index)
{
	if (gmarkers[index])
		gmarkers[index].openInfoWindowHtml(htmls[index]);
}

function addMarker (map,lat,lon)
{
	//var bounds = map.getBoundsLatLng();
	var point = new GPoint(lat, lon);
  	map.addOverlay(new GMarker(point));
}


//fonction qui interprete le XML principal
function readXML (id_quartier) {

	var icon = set_new_icon('mm_20_red.png');
	var icon_gris = set_new_icon('mm_20_gris.png');
	var icon_plus = set_new_icon('mm_20_plus.png');
	
	var request = GXmlHttp.create();
	request.open("GET", "googlemaps_marseille.php", true);
	request.onreadystatechange = function() {
	  if (request.readyState == 4) {
		var xmlDoc = request.responseXML;
		var markers = xmlDoc.documentElement.getElementsByTagName("marker");
		var coordonnees = xmlDoc.documentElement.getElementsByTagName("coordonnees");
		var photos = xmlDoc.documentElement.getElementsByTagName("photos");

		for (var i = 0; i < markers.length; i++) {
		  var point = new GPoint(parseFloat(markers[i].getAttribute("lng")),
								 parseFloat(markers[i].getAttribute("lat")));
		  

		  var lien = markers[i].getAttribute("link");
		  var id_info = markers[i].getAttribute("id");
		  var nouveau = markers[i].getAttribute("new");
		  var idquartier_actuel = markers[i].getAttribute("quartier");
		  var texte_html = markers[i].firstChild.nodeValue;		
		  var coordonnee_html = coordonnees[i].firstChild.nodeValue;	
		  var photos_html = photos[i].firstChild.nodeValue;
		  
  
  			// lien
 		  if (nouveau == 1)
		  {
			  var texte_final = texte_html + " | <a href='" + lien + "'>Créer l\'article</a>";
		  }
		  else
		  {
			  var texte_final = "<a href='" + lien + "'>" + texte_html + "</a><br>";
		  }
		  
		  
		  // photos
		  if (photos_html != "")
		  {
			  texte_final += "<p class='coordonnees'><a href='" + lien + "'>" + photos_html + "</a></p>";
		  }		  
		  
		  
		  
		  // coordonnees
		  texte_final += "<p class='coordonnees'>" + coordonnee_html + "</p>";		  
		  

		  
			  // changement d'icone en fonction du quartier
		  if (nouveau == 1)
		  {
			  var marker = createMarker(point, texte_final, icon_plus);
		  }
		  else
		  {
		   
			if (id_quartier == 0 || id_quartier == idquartier_actuel) {
				var marker = createMarker(point, texte_final, icon);
			}
			else
			{
				var marker = createMarker(point, texte_final, icon_gris); 
			}
			  
		  }
			gmarkers[id_info] = marker;
			htmls[id_info] = texte_final;	

		  
 		  map.addOverlay(marker);
		}
	  }
	}
	
	request.send(null);	
}


//fonction pour afficher la carte generale
function readGeneralXML () {
	
	var icon = set_new_icon('mm_20_plus.png');
	var icon_lien = set_new_icon('mm_20_red.png');
	
	var request = GXmlHttp.create();
	var panelHtml = "";
	
	request.open("GET", "googlemaps_marseille.php", true);
	request.onreadystatechange = function() {
	  if (request.readyState == 4) {
		var xmlDoc = request.responseXML;
		var markers = xmlDoc.documentElement.getElementsByTagName("marker");
		var coordonnees = xmlDoc.documentElement.getElementsByTagName("coordonnees");
		var photos = xmlDoc.documentElement.getElementsByTagName("photos");
		//var panelDiv = document.getElementById( 'panel' );

		for (var i = 0; i < markers.length; i++) {
		  var point = new GPoint(parseFloat(markers[i].getAttribute("lng")),
								 parseFloat(markers[i].getAttribute("lat")));

		  var lien = markers[i].getAttribute("link");
		  var nouveau = markers[i].getAttribute("new");
		  
		  var idquartier_actuel = markers[i].getAttribute("quartier");
		  var texte_html = markers[i].firstChild.nodeValue;		
		  var id_info = markers[i].getAttribute("id");
		  var coordonnee_html = coordonnees[i].firstChild.nodeValue;	
		  var photos_html = photos[i].firstChild.nodeValue;
  
  		  // lien
 		  if (nouveau == 1)
		  {
			  var texte_final = texte_html + " | <a href='" + lien + "'>Créer l\'article</a>";
		  }
		  else
		  {
			  var texte_final = "<a href='" + lien + "'>" + texte_html + "</a><br>";
		  }
		  
		  // photos
		  if (photos_html != "")
		  {
			 texte_final += "<p class='coordonnees'><a href='" + lien + "'>" + photos_html + "</a></p>";
		  }
		  
		 texte_final += "<p class='coordonnees'>" + coordonnee_html + "</p>";


 		  if (nouveau == 1)
		  {		
			  var marker = createMarker(point, texte_final, icon);
		  }
		  else
		  {
		  	 texte_final += "<div><a href='" + lien + "'><img src='../images/icones/article.gif' align='abdmiddle'> Lire l'article</a></div>";
			  
			  var marker = createMarker(point, texte_final, icon_lien);
		  }

			gmarkers[id_info] = marker;
			htmls[id_info] = texte_final;	

 		  map.addOverlay(marker);
		}
		panelHtml += "";
		//panelDiv.innerHTML = panelHtml;
		
	  }
	}
	
	request.send(null);	
}

