var markers;
var map;
var i=0;
var icon = new GIcon();
var geocoder = new GClientGeocoder();
var timeOut = 1;
var lMessage;
function onLoad() {
  lMessage = document.getElementById('lMessage');
  map = new GMap(document.getElementById("map_canvas"));
  map.centerAndZoom(new GPoint(2.213749, 46.227638), 15);
  map.addControl(new GLargeMapControl());
  map.addControl(new GMapTypeControl());

  var randomnumber=Math.floor(Math.random()*11111)
  var request = GXmlHttp.create();
  request.open("GET", "maps/locations.xml?random="+randomnumber, true);
  request.onreadystatechange = function() {
    
    icon.image = "maps/dot-red.png";
    icon.shadow = null;
    icon.iconSize = new GSize(8, 8);
    icon.shadowSize = new GSize(0, 0);
    icon.iconAnchor = new GPoint(4, 4);
    
    if (request.readyState == 4) {
      var xmlDoc = request.responseXML;
      markers = xmlDoc.documentElement.getElementsByTagName("marker");
      window.setTimeout(mapOne,timeOut);
    }
  }
  request.send(null);
}

function mapOne() {
  if ( i < markers.length ) {
  var max=Math.min(i+20, markers.length);
    while (i<max) {
      var lon = markers[i].getAttribute("lon")
      var lat = markers[i].getAttribute("lat")
      var address = markers[i].getAttribute("address");
	  var url = markers[i].getAttribute("url");
	  
	  //marker obv coordinaten of land
	  if (lon !='') {
		var point = new GPoint(parseFloat(lon), parseFloat(lat));
      	var marker = createMarker(point,url,address);
      	map.addOverlay(marker);
      } else {
      	showAddress(map,geocoder,address,url);
      }
      i++;        
    }
    if (lMessage) { lMessage.innerHTML="<p>Loading " + i + " of " + markers.length + "</p>";}
    window.setTimeout(mapOne,timeOut);
  }
  if ( i >= markers.length ) {
    //document.getElementById('loading').style.visibility='hidden';       
  }
}
		
function createMarker(point,url,html){
	var marker = new GMarker(point, {title: html});
	GEvent.addListener(marker, "click", function() {
		location.href=url;
		//marker.openInfoWindowHtml(html);
	});
return marker;
}

function showAddress(map,geocoder,address,url) {
  geocoder.getLatLng(
    address,
    function(point) {
      if (!point) {
      	//none
      } else {
        var marker = createMarker(point,url,address);
        map.addOverlay(marker);
        map.addControl(new GMapTypeControl());
      }
    }
  );
}

function loadCities(country) {
  map = new GMap(document.getElementById("map_canvas"));
  map.centerAndZoom(new GPoint(2.213749, 46.227638), 12);
  map.addControl(new GLargeMapControl());
  map.addControl(new GMapTypeControl());

  var randomnumber=Math.floor(Math.random()*11111)
  var request = GXmlHttp.create();
  request.open("GET", "maps/xml_cities.asp?country=MA&random="+randomnumber, true);
  request.onreadystatechange = function() {
        
    if (request.readyState == 4) {
      var xmlDoc = request.responseXML;
      markers = xmlDoc.documentElement.getElementsByTagName("marker");
      window.setTimeout(mapOne,timeOut);
    }
  }
  request.send(null);
}

