//<![CDATA[

var MonPlan;
var latlong_tab = [];
var geocoder = null;

function loadMaCarte(choix) {

  if (GBrowserIsCompatible()) {
    MonPlan = new GMap2(document.getElementById('MonPlan'));
    //MonPlan.setCenter(new GLatLng(47, 3), 5);
    MonPlan.addControl(new GLargeMapControl());
    MonPlan.addControl(new GMapTypeControl());
    MonPlan.addControl(new GOverviewMapControl());
    MonPlan.addControl(new GScaleControl());

    var marker, markersArray=[];

    if(choix == 1) { //affiche tous les ptits coins de la base
      var urlchoix = "/script/maputil/bddToXML.php";
    } else {
      var urlchoix = "/script/maputil/usrToXML.php?usr="+choix;
    }
    downloadUrl(urlchoix, function(data) {
		  var xmldoc = parseXml(data);
		  var x = xmldoc.documentElement;
		  if(x) {
		    var y = x.childNodes;
		    for (var i = 0; i < y.length; i++) {
		      var nomphoto="";
		      var comment="";
		      var note="";
		      var gratuit="";
		      var handi="";
		      if(y[i].nodeType != 3) {
			if( y[i].childNodes[2].childNodes[0]) {
			  comment = y[i].childNodes[2].childNodes[0].nodeValue;
			}
			
			if(y[i].childNodes[3].childNodes[0]) {
			  note = y[i].childNodes[3].childNodes[0].nodeValue;
			}
			
			if(y[i].childNodes[4].childNodes[0]) {
			  nomphoto = y[i].childNodes[4].childNodes[0].nodeValue;
			}

			if(y[i].childNodes[5].childNodes[0]) {
			  gratuit = y[i].childNodes[5].childNodes[0].nodeValue;
			}
			
			if(y[i].childNodes[6].childNodes[0]) {
			  handi = y[i].childNodes[6].childNodes[0].nodeValue;
			}
			
			if(y[i].childNodes[1].childNodes[0] && y[i].childNodes[1].childNodes[0]) {
			  var point = new GLatLng(parseFloat(y[i].childNodes[0].childNodes[0].nodeValue),
						  parseFloat(y[i].childNodes[1].childNodes[0].nodeValue));
			}
		      }

		      if(gratuit == 2) {
			comment += " (Gratuit)";
		      } else if(gratuit == 1) {
			comment += " (Payant)";
		      }
		      
		      if(!note) {
			if(!nomphoto) {
			  if(handi == 2) {
			    var html = "<strong>"+ comment + "</strong><br>"
			      + "<img src='img/handi.png'  alt=\"\" width=\"48\" height=\"48\"/>";
			  } else {
			    var html = "<strong>"+ comment + "</strong>";
			  }
			} else {
			  if(handi == 2) {
			    var html = "<img src='uploads/"+ nomphoto +"'  alt=\"\" width=\"70\" height=\"93\"/><br>"
			      +"<strong>"+ comment + "</strong>><br>"
			      + "<img src='img/handi.png'  alt=\"\" width=\"48\" height=\"48\"/>";			    
			  } else {
			    var html = "<img src='uploads/"+ nomphoto +"'  alt=\"\" width=\"70\" height=\"93\"/><br>"
			      +"<strong>"+ comment + "</strong>";
			  }
			}
		      } else {
			if(!nomphoto) {
			  if(handi == 2) {
			    var html = "<strong>"+ comment + "</strong> note = " + note+"<br>"
			      + "<img src='img/handi.png'  alt=\"\" width=\"48\" height=\"48\"/>";
			  } else {
			    var html = "<strong>"+ comment + "</strong> note = " + note;
			  }
			} else {
			  if(handi == 2) {
			    var html = "<img src='uploads/"+ nomphoto +"'  alt=\"\" width=\"70\" height=\"93\" /><br>"
			      +"<strong>"+ comment + "</strong> note = " + note+"<br>"
			      + "<img src='img/handi.png'  alt=\"\" width=\"48\" height=\"48\"/>"; 
			  } else {
			    var html = "<img src='uploads/"+ nomphoto +"'  alt=\"\" width=\"70\" height=\"93\" /><br>"
			      +"<strong>"+ comment + "</strong> note = " + note;
			  }
			}
		      }
		      if(point) {
			marker = createMarker(point,html,i+1);
			markersArray.push(marker);
		      }
		      
		      //MonPlan.addOverlay(marker);
		    }
		  }
		  
		  var cluster=new ClusterMarker(MonPlan, { markers:markersArray } );
		  cluster.fitMapToMarkers();
		});
    
    geocoder = new GClientGeocoder();

  }else{
    alert("D&eacute;sol&eacute;, mais votre navigateur n\'est pas compatible avec Google Maps");
  }

}

function createMarker(point, myhtml,number) {
  var marker = new GMarker(point);
  marker.value = number;
  GEvent.addListener(marker, "click", function() {
		       MonPlan.openInfoWindowHtml(point, myhtml);
  });
  return marker;
}


function AfficherAdresse(addresse) {
//associé au formulaire dans /page/map.php
//unused
  if (geocoder) {
    geocoder.getLatLng(addresse,
		       function(point) {
			 if (!point) {
			   alert('Impossible de geolocaliser cette adresse' + addresse);
			   MonPlan.setCenter(new GLatLng(47, 3), 5);
			 } else {
			   MonPlan.clearOverlays();
			   var marker = new GMarker(point);
			   MonPlan.addOverlay(marker);
			   MonPlan.setCenter(point, 20);
			 }
		       }
		       );
  }
}

function SeeMarkers(latlong_tab) {

  MonPlan.clearOverlays();

  for (var i in latlong_tab) {
    var latitude = latlong_tab[i].mylat;
    var longitude = latlong_tab[i].mylng;
    var point = new GLatLng(latitude,longitude);
    var mymarker = new GMarker(point);

    var window = function() {
      mymarker.openInfoWindowHtml('<strong>'+ latlong_tab[i].mycomt + '</strong>' + 
				  ' note = '+ latlong_tab[i].mynote +
				  '<br /><img src="uploads/'+latlong_tab[i].myphoto +'" alt="" width="80"/>');
    };
    
    GEvent.addListener(mymarker, "click", window);
    MonPlan.addOverlay(mymarker);

  }
}

function downloadUrl(url,callback) {
 var request = window.ActiveXObject ?
     new ActiveXObject('Microsoft.XMLHTTP') :
     new XMLHttpRequest;

 request.onreadystatechange = function() {
   if (request.readyState == 4) {
     request.onreadystatechange = doNothing;
     callback(request.responseText, request.status);
   }
 };

 request.open('GET', url, true);
 request.send(null);
}

function parseXml(str) {
  if (window.ActiveXObject) {
    var doc = new ActiveXObject('Microsoft.XMLDOM');
    doc.loadXML(str);
    return doc;
  } else if (window.DOMParser) {
    //document.write("string="+str+"</br>");
    return (new DOMParser).parseFromString(str, 'text/xml');
  }
}

function doNothing() {}

//]]>


