function createBaseIcon()
{
	//Create a base icon
	var baseIcon = new GIcon();
	baseIcon.iconSize = new GSize(90, 34);
	baseIcon.iconAnchor = new GPoint(45, 34);
	baseIcon.infoWindowAnchor = new GPoint(45, 0);
	return baseIcon;
}

function createIcon(baseIcon, iconPath)
{

	// Create a new marker icon
	var icon = new GIcon(baseIcon);
	icon.image = iconPath;
	return icon;
}

function createMarker(point, baseIcon, iconPath, infoText) 
{

	//Create a marker for mapped points
	var icon = createIcon(baseIcon, iconPath);
	var marker = new GMarker(point, icon);
	
	//Add an event listener
    GEvent.addListener(marker, "click", function() {marker.openInfoWindowHtml(infoText);});
    return marker;
}

//Add markers based on the xml file
function createLocationsMapSingleMarker(lat, lng, zoomLevel, infoText) 
{
    
	if (GBrowserIsCompatible()) 
	{
		//Create the map with the controls we want
		var map = new GMap2(document.getElementById("LocationMap"));
		map.addControl(new GSmallMapControl());
		//map.addControl(new GMapTypeControl());

		//Centre the map on the current location
        map.setCenter(new GLatLng(lat, lng), zoomLevel);
		
		//Create the icon
		var baseIcon = createBaseIcon();
		var iconPath = "/images/ShopImages/icon.png";
		
		//Now add a marker to the map for this location
    var point = new GLatLng(lat, lng);
		var marker = createMarker(point, baseIcon, iconPath, infoText);
		map.addOverlay(marker);		
		
    //Open the info window that relates to the current item
		marker.openInfoWindowHtml(infoText);
        
	}
	else
	{

		//Do something different as their browser doesnt support google maps
		//TODO Customise
            
	}

}

function createLocationsMapFromXml(centreLat, centreLng, zoomLevel, xmlFileName)
{   
   
	if (GBrowserIsCompatible()) 
	{
		  
         
      //Create the map with the controls we want
		var map = new GMap2(document.getElementById("LocationMap"));
		map.addControl(new GSmallMapControl());
		//map.addControl(new GMapTypeControl());
		
		//Create the base icon
		var baseIcon = createBaseIcon();
		
		//Centre the map on the current location
		map.setCenter(new GLatLng(centreLat, centreLng), zoomLevel);
	     
	    var currentMarker;
	    var currentInfo;
	    
		//Create pointers for the map from the xml file
		GDownloadUrl(xmlFileName, function(data, responseCode) 
		{
		   
			//Parse the xml file
			var xml = GXml.parse(data);
			
			var markers = xml.documentElement.getElementsByTagName("marker");
			for (var i = 0; i < markers.length; i++) 
			{
			    if (parseFloat(markers[i].getAttribute("lat")) > 0)
			    {
				    //Add a new marker for each element
				    var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
										    parseFloat(markers[i].getAttribute("lng")));
    			
    				
				    var iconPath = "/images/ShopImages/icon.png";
				    var infoText = markers[i].getAttribute("info");
				    var detailedInfoText = GXml.value(markers[i].getElementsByTagName("infowindow")[0]);
				    if (detailedInfoText!="")
				    {
					    infoText = detailedInfoText;
				    }
    			
				    var marker = createMarker(point, baseIcon, iconPath, infoText);
				    map.addOverlay(marker);
    				
				    if (centreLat == markers[i].getAttribute("lat"))
				    {				   
				        currentMarker = marker;
				        currentInfo = infoText;				    
				    }
				}
			}
			
			//open info window by default tony 18/06/08
		    currentMarker.openInfoWindowHtml(currentInfo);
		}); 
	}
	else
	{

		//Do something different as their browser doesnt support google maps
		//TODO Customise
            
	}
}

