function Markers(color){
map.closeInfoWindow();
   if (document.getElementById(color).checked==false) { // hide the marker
	
      for (var i=0;i<gmarkers.length;i++) {
        //alert(color + gmarkers[i].type);
         if (gmarkers[i].type==color)  {
            map.removeOverlay(gmarkers[i]);
         }
      }
   } else { // show the marker again
      for (var i=0;i<gmarkers.length;i++) {
         if (gmarkers[i].type==color)  {
            map.addOverlay(gmarkers[i]);
         }
      }
   }
}

//<![CDATA[
// global variables
var gmarkers=[];
var map;
var request;
var bounds = new GBounds(Number.MAX_VALUE, Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE); 
// Create our "tiny" marker icon 
var baseIcon = new GIcon(G_DEFAULT_ICON);
//baseIcon.image = "maps/icon3.png";
baseIcon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
baseIcon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";

//baseIcon.iconSize = new GSize(27, 27);
//baseIcon.shadowSize = new GSize(22, 20);
//baseIcon.iconAnchor = new GPoint(27, 27);
//baseIcon.infoWindowAnchor = new GPoint(5, 1);

baseIcon.iconSize = new GSize(12, 20);
baseIcon.shadowSize = new GSize(22, 20);
baseIcon.iconAnchor = new GPoint(6, 20);
baseIcon.infoWindowAnchor = new GPoint(5, 1);

baseIcon.imageMap = [4,0,0,4,0,7,3,11,4,19,7,19,8,11,11,7,11,4,7,0]; 
var icons=[];


function addMarker(lng, lat, road, desc, MemberID, place) {
   var point = new GPoint(lng, lat);
   bounds.extend(point);
   var mopts = new Object();
  var icon = new GIcon(baseIcon);
   mopts.clickable = true;
   mopts.icon = icon;
   var marker = new GMarker(point,mopts);
   gmarkers.push(marker);

   GEvent.addListener(marker, "click", function () {
   var text = '<div><table width="200"><tr><td>' + '<b>' + place + '</b><br>' + desc + '<br><div style="text-align:right;font-weight:bold;"><b><a href="MemberDetails.aspx?mid=' + MemberID + '" target="_parent">More Info</a></b></div></td></tr></table></div>'
   marker.openInfoWindowHtml(text);
    });
   map.addOverlay(marker);
     
}

function processXML() { 
   if (request.readyState == 4) {
      if (request.status != 200) {
         alert("file not found:"+request.status);
         return;
      }
      var xmlDoc = request.responseXML;
      if (!xmlDoc) {
         alert("invalid xml file");
         return;
      }
      var descriptions = [];
      markers = xmlDoc.documentElement.getElementsByTagName("row");
      for (var i=0; i < markers.length; i++) 
      {
         var color=undefined;
         
        try{
         if(!isNaN(parseFloat(markers[i].getAttribute("lng"))) && !isNaN(parseFloat(markers[i].getAttribute("lat"))))
            {
                addMarker(parseFloat(markers[i].getAttribute("lng")),
                    parseFloat(markers[i].getAttribute("lat")),
                    markers[i].getAttribute("road"),
		   		    markers[i].getAttribute("desc"),
                    markers[i].getAttribute("MemberID"),                   
                    markers[i].getAttribute("place"));
              
                descriptions.push(markers[i].getAttribute("desc"));
            }
        }
        catch(ex){}      
      }
      
      preCacheImage(descriptions);
      
   }
}
				  
function makeMap() {
   map = new GMap2(document.getElementById("MapDiv"));
   map.setCenter(new GLatLng(54.00366,-2.547855), 5);	
   map.setUIToDefault(); // set controls to mirror googlemaps.com
   request = GXmlHttp.create(); 
   request.open("GET", "maps/BAHAAccCentres.xml", true); 
   request.onreadystatechange = processXML;
   request.send(null);
}

function preCacheImage(descriptions)
{
    var cacheImage = new Image();
    var temp = document.createElement("div");
    temp.id = "tempImageDiv";
    temp.innerHTML = descriptions.join('');
    var images = temp.getElementsByTagName("img");
    
    for(var j = 0; j < images.length; j++)
    {
          cacheImage.src = images[j].src;
    }
}


			
  