// == Variables globales ===============================================================
var map;
var map2;

var mapName;
var mapName2;

var zoomLevel;
var geocoder;

// Icone résidence
var iconRes = new google.maps.MarkerImage('images/icone_residence.png',
	new google.maps.Size(34, 45),
	new google.maps.Point(0,0),
    new google.maps.Point(0, 34)
);

// == Requête Javascript Asynchrone (AJAX) =============================================
function RequeteServeur(Url, datas, callBack, httpMode, asynchro, format)
{
   var conn = false;
    
   if(!httpMode) { httpMode='get'; }
   if(asynchro==null) { asynchro=true; }
   if(!format)   { format='txt'; }
        
   try { conn = new XMLHttpRequest(); }
   catch (error) {
      try { conn = new ActiveXObject("Msxml2.XMLHTTP"); }
      catch (error1) {
         try { conn = new ActiveXObject("Microsoft.XMLHTTP"); }
         catch (error2) { conn = false; }
      }
   }
        
   if (!conn) { return false; }

   conn.onreadystatechange = function()
   {
      if (conn.readyState == 4 && conn.status == 200)
      {
         //if(format=='xml') alert(conn.responseText);
         callBack((format=='txt')?conn.responseText:conn.responseXML);
         return;
      }
   };
        
   switch(httpMode)
   {
      case "get":
         try {
            Url = (datas.length > 0) ? Url + "?" + datas + '&' + new Date().getTime() : Url + "?" + new Date().getTime();
            conn.open("GET", Url, asynchro);
            conn.send(null);
         }
         catch(error3) { return false; }        
         break;
                
      case "post":
         try {
            conn.open("POST", Url, asynchro); 
            conn.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
            conn.send(datas);
         }
         catch(error4) { return false; }
         break;
                
      default :
         return false;
   }
        
   return true;
}


// == Intitialisation des markers sur la carte ===========================================
function playXml(retour)
{
    if(retour==null) { alert('Erreur'); return ''; }
  	
	var elms = retour.getElementsByTagName('item');

	for(var i=0; i<=(elms.length-1); i++) {
		
		// Récupération des données
		var pointLat = elms[i].getElementsByTagName('latitude')[0].firstChild.data;
		var pointLng = elms[i].getElementsByTagName('longitude')[0].firstChild.data;
		var nom = elms[i].getElementsByTagName('nom')[0].firstChild.data;
		var rue = elms[i].getElementsByTagName('rue')[0].firstChild.data;
		var codepostal = elms[i].getElementsByTagName('codepostal')[0].firstChild.data;
		var ville = elms[i].getElementsByTagName('ville')[0].firstChild.data;
		var type = elms[i].getElementsByTagName('type')[0].firstChild.data;
		
		var string='<h2 class="infoBulleTitle" style="color:#000; border-bottom:1px solid #000">' + nom + '</h2>' +
				   '<p style="color:#000">' + rue + '<br />' +
				   codepostal + ' ' + ville + '</p>';
		
		// Initialisation du point
		var iconLatLng = new google.maps.LatLng(pointLat, pointLng);
		var marker = new google.maps.Marker({
			position: iconLatLng,
			map: map,
			icon: iconRes
		});
/*
		// Bulle d'informations
		var infowindow = new google.maps.InfoWindow({
			content: string
		});
		
		google.maps.event.addListener(marker, 'click', function() {
			infowindow.open(map,marker);
		});*/

		map.setCenter(iconLatLng);
		
	}
}

// == Intitialisation des markers sur la carte ===========================================
function playXml2(retour)
{
    if(retour==null) { alert('Erreur'); return ''; }
  	
	var elms = retour.getElementsByTagName('item');

	for(var i=0; i<=(elms.length-1); i++) {
		
		// Récupération des données
		var pointLat = elms[i].getElementsByTagName('latitude')[0].firstChild.data;
		var pointLng = elms[i].getElementsByTagName('longitude')[0].firstChild.data;
		var nom = elms[i].getElementsByTagName('nom')[0].firstChild.data;
		var rue = elms[i].getElementsByTagName('rue')[0].firstChild.data;
		var codepostal = elms[i].getElementsByTagName('codepostal')[0].firstChild.data;
		var ville = elms[i].getElementsByTagName('ville')[0].firstChild.data;
		var type = elms[i].getElementsByTagName('type')[0].firstChild.data;
		
		var string='<h2 class="infoBulleTitle">' + nom + '</h2>' +
				   '<p>' + rue + '<br />' +
				   codepostal + ' ' + ville + '</p>';
				   
		if(type=='residence') {
			image = iconRes;
			var contact = elms[i].getElementsByTagName('contact')[0].firstChild.data;
			string += '<br /><p>' + contact + '</p>';
		} else {
			image = iconOthers;
		}
		
		// Initialisation du point
		var iconLatLng = new google.maps.LatLng(pointLat, pointLng);
		var marker = new google.maps.Marker({
			position: iconLatLng,
			map: map2,
			icon: iconRes
		});
/*
		// Bulle d'informations
		var infowindow = new google.maps.InfoWindow({
			content: string
		});
		
		google.maps.event.addListener(marker, 'click', function() {
			infowindow.open(map2,marker);
		});
*/
		map.set_center(iconLatLng);
		
	}
}

// == Intitialisation de la google map ===========================================
function initialize(rollcache) {

	if(rollcache=='3age') {
		// Nom de la carte
		mapName="gmap1";
		mapName2="gmap2";
		
		// Zoom initial
		zoomLevel=14;
		
		// Définition des options de la google map
		var myOptions = {
			zoom: zoomLevel,
			center: LatLng,
			mapTypeControl: false,
			scaleControl: true,
			mapTypeId: google.maps.MapTypeId.ROADMAP
		};

		// Définition des coordonnées du centre de la carte
		var LatLng = new google.maps.LatLng(46.225453, 2.197266);
		
		// Création d'une instance de la google map
		map = new google.maps.Map(document.getElementById(mapName), myOptions);
		RequeteServeur('fcgoogle.php', "type=1&rollcache=6", playXml, "get", true, 'xml');
		
		// Création d'une instance de la google map
		map2 = new google.maps.Map(document.getElementById(mapName2), myOptions);
		RequeteServeur('fcgoogle.php', 'type=1&rollcache=7', playXml2, 'get', true, 'xml');
	
	} else {
		// Nom de la carte
		mapName="gmap";
		
		// Zoom initial
		zoomLevel=14;
		
		// Définition des coordonnées du centre de la carte
		var LatLng = new google.maps.LatLng(46.225453, 2.197266);
		
		// Définition des options de la google map
		var myOptions = {
			zoom: zoomLevel,
			center: LatLng,
			mapTypeControl: false,
			scaleControl: true,
			mapTypeId: google.maps.MapTypeId.ROADMAP
		};
		
		// Création d'une instance de la google map
		map = new google.maps.Map(document.getElementById(mapName), myOptions);
	
		RequeteServeur('fcgoogle.php', "type=1&rollcache="+rollcache, 
					  playXml, "get", true, 'xml');
	}
}