if (GBrowserIsCompatible()) {

			function createMarker(point,html) {
				var marker = new GMarker(point);
				GEvent.addListener(marker, "click", function() {
					marker.openInfoWindowHtml(html);
				});
				return marker;
			}

			var map = new GMap2(document.getElementById("joemap"));
			map.addControl(new GSmallZoomControl());

			map.setCenter(new GLatLng(-5.0909441750333855,33.73046875), 3);

			//enable smooth zooming
			map.enableContinuousZoom();
			map.enableDoubleClickZoom();


//			var point = new GLatLng(53.38332836757153,-7.71240234375);
//			var marker = createMarker(point, '<p><strong>Ireland<\/strong><br />1<br \/>1<\/p>');
//			map.addOverlay(marker);

//			var point = new GLatLng(-13.133897,27.849332);
//			var marker = createMarker(point, '<p><strong>Zambia<\/strong><br />1<br \/>1<\/p>');
//			map.addOverlay(marker);

//			var point = new GLatLng(9.145,40.489673);
//			var marker = createMarker(point, '<p><strong>Ethiopia<\/strong><br />1<br \/>1<\/p>');
//			map.addOverlay(marker);

//			var point = new GLatLng(-13.254308,34.301525);
//			var marker = createMarker(point, '<p><strong>Malawai<\/strong><br />1<br \/>1<\/p>');
//			map.addOverlay(marker);

//			var point = new GLatLng(-18.665695,35.529562);
//			var marker = createMarker(point, '<p><strong>Mozambique<\/strong><br />1<br \/>1<\/p>');
//			map.addOverlay(marker);

//			var point = new GLatLng(-6.369028,34.888822);
//			var marker = createMarker(point, '<p><strong>Tanzania<\/strong><br />1<br \/>1<\/p>');
//			map.addOverlay(marker);

//			var point = new GLatLng(1.373333,32.290275);
//			var marker = createMarker(point, '<p><strong>Uganda<\/strong><br />1<br \/>1<\/p>');
//			map.addOverlay(marker);

function moveMap(lat,lng,html) {
	map.panTo(new GLatLng(lat,lng));
	window.setTimeout(function() {map.openInfoWindowHtml(new GLatLng(lat,lng), html)},500);
}

//

	  var select_html = '<ul>' +
	'<li><a href="#" onmouseover="map.closeInfoWindow();map.panTo(new GLatLng(15.454166,18.732207));window.setTimeout(function(){map.openInfoWindowHtml(new GLatLng(15.454166,18.732207), \'&lt;p&gt;&lt;strong&gt;Chad&lt;/strong&gt;&lt;br /&gt;Description: Mobile Eyecare clinic and capacity&lt;br /&gt; building for health and community&lt;br /&gt; workers on the Sudanese border&lt;br /&gt;Partner: Centre de Resources pour&lt;br /&gt; Jeunes Aveugles (CRJA)&lt;br /&gt;&lt;a href=&quot;/wherewework/cbmirlmap/chad&quot;&gt;Read more »&lt;/a&gt;&lt;/p&gt;\')},500);">Chad &#187;</a></li>' +

	'<li><a href="#" onmouseover="map.closeInfoWindow();map.panTo(new GLatLng(-4.038333,21.758664));window.setTimeout(function(){map.openInfoWindowHtml(new GLatLng(-4.038333,21.758664), \'&lt;p&gt;&lt;strong&gt;DR Congo&lt;/strong&gt;&lt;br /&gt;Community Based Rehabilitation&lt;br /&gt;Partner: COPH&lt;br /&gt;Community Based Rehabilitation&lt;br /&gt;Partner: SYSI&lt;br /&gt;HIV/AIDS - &quot;Choose Life!&quot;&lt;br /&gt;Partner: HEAL Africa&lt;br /&gt;&lt;a href=&quot;/wherewework/cbmirlmap/drcongo&quot;&gt;Read more »&lt;/a&gt;&lt;/p&gt;\')},500);">DR Congo &#187;</a></li>' +

	'<li><a href="#" onmouseover="map.closeInfoWindow();map.panTo(new GLatLng(-0.023559,37.906193));window.setTimeout(function(){map.openInfoWindowHtml(new GLatLng(-0.023559,37.906193), \'&lt;p&gt;&lt;strong&gt;Kenya&lt;/strong&gt;&lt;br /&gt;Description: Human Rights &amp; Disability&lt;br /&gt;Partner: APDK&lt;br /&gt;&lt;a href=&quot;/wherewework/cbmirlmap/kenya&quot;&gt;Read more »&lt;/a&gt;&lt;/p&gt;\')},500);">Kenya &#187;</a></li>' +

	'<li><a href="#" onmouseover="map.closeInfoWindow();map.panTo(new GLatLng(-1.940278,29.873888));window.setTimeout(function(){map.openInfoWindowHtml(new GLatLng(-1.940278,29.873888), \'&lt;p&gt;&lt;strong&gt;Rwanda&lt;/strong&gt;&lt;br /&gt;Community Based Rehabilitation&lt;br /&gt;&lt;a href=&quot;/wherewework/cbmirlmap/rwanda&quot;&gt;Read more »&lt;/a&gt;&lt;/p&gt;\')},500);">Rwanda &#187;</a></li>' +

	'<li><a href="#" onmouseover="map.closeInfoWindow();map.panTo(new GLatLng(-6.369028,34.888822));window.setTimeout(function(){map.openInfoWindowHtml(new GLatLng(-6.369028,34.888822), \'&lt;p&gt;&lt;strong&gt;Tanzania&lt;/strong&gt;&lt;br /&gt;Description: Community Based Rehabilitation&lt;br /&gt;Partner: CCBRT&lt;br /&gt;&lt;a href=&quot;/wherewework/cbmirlmap/tanzania&quot;&gt;Read more »&lt;/a&gt;&lt;/p&gt;\')},500);">Tanzania &#187;</a></li>' +

	'<li><a href="#" onmouseover="map.closeInfoWindow();map.panTo(new GLatLng(-13.133897,27.849332));window.setTimeout(function(){map.openInfoWindowHtml(new GLatLng(-13.133897,27.849332), \'&lt;p&gt;&lt;strong&gt;Zambia&lt;/strong&gt;&lt;br /&gt;Description: Establishment of and ENT&lt;br /&gt; &amp; Audiology Institute&lt;br /&gt;Partner: ENT for Zambia Trust Fund Ltd&lt;br /&gt; &amp; Beit-CURE Hospital Lusaka&lt;br /&gt;&lt;a href=&quot;/wherewework/cbmirlmap/zambia&quot;&gt;read more »&lt;/a&gt;&lt;/p&gt;\')},500);">Zambia &#187;</a></li>' +


	'</ul>';
	  document.getElementById("mapSelection").innerHTML = select_html;



      var polys = [];
      var labels = [];


      // === A method for testing if a point is inside a polygon
      // === Returns true if poly contains point
      // === Algorithm shamelessly stolen from http://alienryderflex.com/polygon/ 
      GPolygon.prototype.Contains = function(point) {
        var j=0;
        var oddNodes = false;
        var x = point.lng();
        var y = point.lat();
        for (var i=0; i < this.getVertexCount(); i++) {
          j++;
          if (j == this.getVertexCount()) {j = 0;}
          if (((this.getVertex(i).lat() < y) && (this.getVertex(j).lat() >= y))
          || ((this.getVertex(j).lat() < y) && (this.getVertex(i).lat() >= y))) {
            if ( this.getVertex(i).lng() + (y - this.getVertex(i).lat())
            /  (this.getVertex(j).lat()-this.getVertex(i).lat())
            *  (this.getVertex(j).lng() - this.getVertex(i).lng())<x ) {
              oddNodes = !oddNodes
            }
          }
        }
        return oddNodes;
      }



      GEvent.addListener(map, "click", function(overlay,point) {
        if (!overlay) {
          for (var i=0; i<polys.length; i++) {
            if (polys[i].Contains(point)) {
              map.openInfoWindowHtml(point,labels[i]);
              //i = 999; // Jump out of loop
            }
          }
        }
      });

      // Read the data from states.xml
      
      var request = GXmlHttp.create();
      request.open("GET", "/common/js/states.xml", true);
      request.onreadystatechange = function() {
        if (request.readyState == 4) {
          var xmlDoc = GXml.parse(request.responseText);
          
          // ========= Now process the polylines ===========
          var states = xmlDoc.documentElement.getElementsByTagName("state");

          // read each line
          for (var a = 0; a < states.length; a++) {
            // get any state attributes
            var label  = states[a].getAttribute("name");
            var colour = states[a].getAttribute("colour");
            // read each point on that line
            var points = states[a].getElementsByTagName("point");
            var pts = [];
            for (var i = 0; i < points.length; i++) {
               pts[i] = new GLatLng(parseFloat(points[i].getAttribute("lat")),
                                   parseFloat(points[i].getAttribute("lng")));
            }
            var poly = new GPolygon(pts,"#000000",1,1,colour,0.5,{clickable:false});
            polys.push(poly);
            labels.push(label);
            map.addOverlay(poly);
          }
          // ================================================           
        }
      }
      request.send(null);

    }
    
    // display a warning if the browser was not compatible
    else {
      alert("Sorry, the Google Maps API is not compatible with this browser");
    }
    

// This Javascript is based on code provided by the
// Blackpool Community Church Javascript Team
// http://www.commchurch.freeserve.co.uk/   
// http://www.econym.demon.co.uk/googlemaps/

