//<![CDATA[
if(typeof window.addEventListener != 'undefined') {
	//.. gecko, safari, konqueror and standard
	window.addEventListener('load', load, false);
	window.addEventListener('onunload', GUnload, false);
}
else if(typeof document.addEventListener != 'undefined') {
	//.. opera 7
	document.addEventListener('load', load, false);
	document.addEventListener('onunload', GUnload, false);
}
else if(typeof window.attachEvent != 'undefined') {
	//.. win/ie
	window.attachEvent('onload', load);
	window.attachEvent('onunload', GUnload);
}

var map = null;
var geocoder = null;

function load() {
  if (GBrowserIsCompatible()) {
	map = new GMap2(document.getElementById("map"));
	map.addControl(new GLargeMapControl());
	map.addControl(new GScaleControl());
	
	//map.addControl(new GSmallMapControl());
	
	map.addControl(new GMapTypeControl()); //Plan/carte / satellite / Mixte
	
	map.addControl(new GOverviewMapControl())
	map.enableDoubleClickZoom();
	map.enableContinuousZoom();
	GEvent.addDomListener(document.getElementById("map"), "DOMMouseScroll", wheelZoom); // Firefox
	GEvent.addDomListener(document.getElementById("map"), "mousewheel",     wheelZoom); // IE
	
	
	map.setCenter(new GLatLng(49.3837, 3.3281), 13);
	//map.setMapType(G_SATELLITE_MAP); // Vue satelite
	map.setMapType(G_NORMAL_MAP); // Vue carte
	//map.setMapType(G_HYBRID_MAP); // Vue mixte
	geocoder = new GClientGeocoder();
	//GDownloadUrl("Soissons.kml", LoadFile);
  }
  
}

LoadFile= function(data, responseCode) {
map.clearOverlays()
	var xml = GXml.parse(data);
	var Placemark = xml.documentElement.getElementsByTagName("Placemark");
	for (var i = 0; i < Placemark.length; i++) {
		var descr="";				
		var coordinates=xml.documentElement.getElementsByTagName("coordinates").item(i).firstChild.data;
		MyArray=coordinates.split(",");
		var lat=MyArray[1];
		var longi=MyArray[0];
		var point = new GLatLng(parseFloat(lat), parseFloat(longi));
		//p.addOverlay(new GMarker(point));
		var name = Placemark.item(i).getElementsByTagName("name").item(0).firstChild.data

		if(Placemark.item(i).getElementsByTagName("description").item(0)) {
			descr+=make_links(Placemark.item(i).getElementsByTagName("description").item(0).firstChild.data);
			var infoTabs = [
				new GInfoWindowTab(name, "<p><small><b>coordonnées :<\/b> "+lat+", "+longi+"<\/small><\/p>"),
				new GInfoWindowTab("Info", descr)
			];
			map.addOverlay(createMarker(point, name, infoTabs,1)); 
		}
		else map.addOverlay(createMarker(point, name, descr,0)); 
	}
}
	

function wheelZoom(a) {
  if (a.detail) // Firefox
  {
    if (a.detail < 0)
    { map.zoomIn(); }
    else if (a.detail > 0)
    { map.zoomOut(); }
  }

  else if (a.wheelDelta) // IE
  {
    if (a.wheelDelta > 0)
    { map.zoomIn(); }
    else if (a.wheelDelta < 0)
    { map.zoomOut(); }
  }
}

function createMarker(point, name, descr, tabbed) {
  var marker = new GMarker(point);
  var point=String(point);
  var point=point.substring(1,point.length-1);
  GEvent.addListener(marker, "click", function() {
	(tabbed==1) ? marker.openInfoWindowTabsHtml(descr) : marker.openInfoWindowHtml("<b>" + name + "<\/b><p><small><b>coordonnées :<\/b> "+point+"<\/small><\/p>");
  });
  return marker;
}

function make_links (s) {
var re = /([^<br>]\n)/gi;
s=s.replace(re," <br>");

var re = /([^('|")](http|https|ftp):\/\/[^ ]*)/gi;
text = s.replace(re,"<a href=\"$1\" target=\"_blank\">&laquo; <b>Lien<\/b> &raquo;<\/a>");

return text;
}

function showAddress(address) {
LibAdresse=address;
address+=", soissons, france";
if (document.getElementById("keep").checked==false) map.clearOverlays();
  if (geocoder) {
	geocoder.getLatLng(
	  address,
	  function(point) {
		if (!point) {
		  alert(address + " non trouvée");
		} else {
		  map.setCenter(point, 16);
		  var marker = new GMarker(point);
		  map.addOverlay(marker);
		  marker.openInfoWindowHtml(LibAdresse);
		}
	  }
	);
  }
}
//]]>
