var _map=null;

function initMap(url, doc) 
{
    _map = new GMap(doc.getElementById("map"));
    _map.addControl(new GLargeMapControl());
    _map.addControl(new GMapTypeControl());
    _map.addControl(new GScaleControl());
    
    
	_map.centerAndZoom(new GPoint(1.0805,51.2788), 2);
    
    //**DEBUG**
    GEvent.addListener(_map, 'click', function(overlay, point) {
      var spanLatLng = _map.getSpanLatLng()
      var latLngStr = '(' + point.y + ', ' + point.x + ')';
      // var latLngStr = '(' + spanLatLng.width + ', ' + spanLatLng.height + ')';
      document.getElementById("message").innerHTML = latLngStr;
    });
    // **DEBUG**
    
    parent.listframe.location = url;
    
    var request = GXmlHttp.create();
	request.open("GET", url, true);
	request.onreadystatechange = function() {
  		if (request.readyState == 4) {
    		var xmlDoc = request.responseXML;
    		var pubsDoc = xmlDoc.documentElement;
    		var pubs = pubsDoc.getElementsByTagName("pub");
    		for (var i = 0; i < pubs.length; i++) {
    			var point = new GPoint(parseFloat(pubs[i].getElementsByTagName("lng")[0].firstChild.nodeValue),
    				parseFloat(pubs[i].getElementsByTagName("lat")[0].firstChild.nodeValue));
      			var marker = createPub(point, pubs[i].getElementsByTagName("name")[0].firstChild.nodeValue);
      			_map.addOverlay(marker);
    		}
  		}
	}
	request.send(null);
    
  
    // Monitor the window resize event and let the map know when it occurs
    // With thanks to Richard Kagerer
    if (window.attachEvent) 
    { 
        window.attachEvent("onresize", function() {_map.onResize()} );
    } 
    else 
    {
        window.addEventListener("resize", function() {_map.onResize()} , false);
    }    
    
}

function createPub(point, name) {
  	var pub = new GMarker(point);

	// Show this pub's name in the info window when it is clicked
  	var name = "<b>" + name + "</b>";
  	GEvent.addListener(pub, "click", function() {
		pub.openInfoWindowHtml(name);
  	});

  	return pub;
}