function displayLocation(LocId) {
    var marker = StreetcarEventHandler.MapMarkers[LocId];
        map.panTo(marker.getPoint());
        marker.click();
    }
    function showPopup(marker, locationName, locationId, isFavourite) {
        
        var html = "<h1>" + locationName + "</h1>" +
                "<ul><li><a href='/location.aspx?location=" + locationId + "'>Details</a></li>" +
                "<li><a href=\"/dashboard/availabilityViewer.aspx?l=" + locationId + "\">Book this car now</a></li></ul>"; 
        
        marker.openInfoWindowHtml(html);
    }
    function createMarker(point, icon, locationName, locationId, isFavourite)
    {
	    var marker = new GMarker(point, {icon: icon});	  	    
	    GEvent.addListener(marker, "click", 
	        function()
	        {
                showPopup(marker, locationName, locationId, isFavourite);
	        }
	    );
	    return marker;
    }
    
    var map;
    
    var StreetcarEventHandler = 
    {
        // Function to allow events to be attached to page elements
        addEvent: function(elm, evType, fn, useCapture) {
            // addEvent cross-browser event handling for IE5+, NS6 and Mozilla
            if (elm.addEventListener)
            {
                elm.addEventListener(evType, fn, useCapture); 
                return true;
            } 
            else if (elm.attachEvent)
            {
                var r = elm.attachEvent('on' + evType, fn);
                return r;
            }
            else
            {
                elm['on' + evType] = fn;
            }
        },
     
         // Function to to setup on page load
        load: function() 
        {
            if (GBrowserIsCompatible())
            {
                map = new GMap2(document.getElementById("map"));
                
                map.addControl(new GSmallMapControl());
                //map.addControl(new GOverviewMapControl()); 

		        map.enableDoubleClickZoom();
		        map.enableContinuousZoom();
		        map.enableScrollWheelZoom();
                map.getContainer().style.overflow="hidden";
                //StreetcarEventHandler.MarkerPopup = document.getElementById("map_marker_popup");
                //map.getPane(G_MAP_MAP_PANE).appendChild(StreetcarEventHandler.MarkerPopup);
 
                GEvent.addDomListener(map.getContainer(), "DOMMouseScroll", StreetcarEventHandler.wheelevent);
                StreetcarEventHandler.addEvent(map.getContainer(),'mousewheel', StreetcarEventHandler.wheelevent);
                //alert(initLongitude);
                //alert(initLatitude*-1);
                
                map.setCenter(new GLatLng(initLatitude,initLongitude),initZoomLevel);
                //map.setCenter(new GLatLng(21.22,33.44),initZoomLevel);
        
        //        var marker = new GMarker(map.getCenter());

                // common icons
                var scmarker = new GIcon();
                scmarker.image = "/Controls/GoogleMap/Images/marker_car.png";
                scmarker.smallImage = "/Controls/GoogleMap/Images/car.png";
                scmarker.iconSize = new GSize(27,28);
                scmarker.shadow = "/Controls/GoogleMap/Images/marker_car_shadow.png";
                scmarker.shadowSize = new GSize(41,28);
                scmarker.iconAnchor = new GPoint(10,34);
                scmarker.infoWindowAnchor = new GPoint(10,1);

                // Clusterer in /Resources/ provides functionality
                // for grouping 
                // http://www.acme.com/javascript/#Clusterer

                Clusterer.defaultIcon = new GIcon();
                Clusterer.defaultIcon.image = '/Controls/GoogleMap/Images/marker_group.png';
                Clusterer.defaultIcon.shadow = '/Controls/GoogleMap/Images/marker_group_shadow.png';
                Clusterer.defaultIcon.iconSize = new GSize( 48, 38 );
                Clusterer.defaultIcon.shadowSize = new GSize( 48, 38 );
                Clusterer.defaultIcon.iconAnchor = new GPoint( 13, 34 );
                Clusterer.defaultIcon.infoWindowAnchor = new GPoint( 13, 3 );
                Clusterer.defaultIcon.infoShadowAnchor = new GPoint( 27, 37 );

                var clusterer = new Clusterer(map);
                //clusterer.SetMaxVisibleMarkers(1);
                
                //GMarkerManager
                //var mgrOptions = { borderPadding: 100, trackMarkers: false };
                //var mgr = new GMarkerManager(map);
                
                GDownloadUrl("/LocationsXml.xml?r=" + Date(), 
                    function(data, responseCode)
                    {
                        var xml = GXml.parse(data);
                        var markers = xml.documentElement.getElementsByTagName("Table"); 
                        StreetcarEventHandler.MapMarkers = new Array(markers.length);
                        for (var i = 0; i < markers.length; i++)
                        {
                            var Lat = markers[i].getElementsByTagName("WLa")[0].childNodes[0].nodeValue;
                            var Long = markers[i].getElementsByTagName("WLo")[0].childNodes[0].nodeValue;
                            var LocName = markers[i].getElementsByTagName("LN")[0].childNodes[0].nodeValue;
                            var LocId = markers[i].getElementsByTagName("Id")[0].childNodes[0].nodeValue;
                            var Marker =  createMarker(new GLatLng(Lat,Long),scmarker,LocName,LocId,false);

                            StreetcarEventHandler.MapMarkers[LocId] = Marker;
                            clusterer.AddMarker(Marker);
                        }
                    }
                );
            }
        },// end load function
        wheelevent: function (e)
        {
            if (!e){
                e = window.event
            }
            if (e.preventDefault){
                e.preventDefault()
            }
            e.returnValue = false;
        }
        
    }

    StreetcarEventHandler.addEvent(window, 'load', StreetcarEventHandler.load, false);
    StreetcarEventHandler.addEvent(window, 'unload', GUnload, false);





