    	function showmap(){
    	  	var baseIcon = new GIcon();
					baseIcon.iconSize = new GSize(44, 60);
					baseIcon.iconAnchor = new GPoint(0, 60);
					baseIcon.infoWindowAnchor = new GPoint(0, 2);
					baseIcon.infoShadowAnchor = new GPoint(23, 0);

					// define specific icons here
					var orange = new GIcon(baseIcon);
					orange.image = "/graphics/map-pins/purple_full_big.png";

				if (GBrowserIsCompatible()) {
	       map = new GMap2(document.getElementById("map"));
	       var center;
	       						  center = new GLatLng(51.594920, -2.103738);

	        map.setCenter(center, 1);
	        map.addControl(new GLargeMapControl());
					map.addControl(new GMapTypeControl());

					map.enableContinuousZoom();
	        map.enableDoubleClickZoom();
	        map.enableContinuousZoom();

	        gme = document.getElementById("map")
          if (gme) {
            if (gme.addEventListener)
  	            gme.addEventListener('DOMMouseScroll', gmap_onwheel, false);
	        gme.onmousewheel=gmap_onwheel;
          }


	        marker = new GMarker(center, {icon: orange, draggable: true});

	        GEvent.addListener(marker, "dragstart", function() {
	          map.closeInfoWindow();
	        });



					function poster() {
	          marker.openInfoWindowHtml('<div id="bubble_contents"><p><strong>Latitude: </strong>' + map.getCenter().lat() + '</p><p><strong>Longitude: </strong>' + map.getCenter().lng() + '</p></div>');
						try{
	          	$('longitude_holder').update(map.getCenter().lng());
	          	$('latitude_holder').update(map.getCenter().lat());
	          } catch(err) {}
	        }


					function moveThePin() {
					  try{
							if(map.isLoaded()) {
							  if(!map.getBounds().containsLatLng(marker.getLatLng())) {
	          			marker.setLatLng(new GLatLng(map.getCenter().lat(), map.getCenter().lng(), true));
	          			map.closeInfoWindow();
	          		}
	          	}
	          } catch(err){}
					}

					GEvent.addListener(marker, "click", poster);
	        GEvent.addListener(marker, "dragend", poster);
					GEvent.addListener(map, "moveend", moveThePin);

	        map.addOverlay(marker);
          map.setMapType(G_HYBRID_MAP);
		      map.savePosition();



					// request that tabular search results should be suppressed
				  var options = {
            suppressInitialResultSelection : true,
            suppressZoomToBounds : true,
				    resultList : google.maps.LocalSearch.RESULT_LIST_SUPPRESS,
						searchFormHint : "City, Place, Postcode.....",
            onSearchCompleteCallback : function(searcher){
                try {
                	marker.setLatLng(new GLatLng(searcher.results[0].lat, searcher.results[0].lng, true));
                	map.setCenter(new GLatLng(searcher.results[0].lat, searcher.results[0].lng) , 12);
                } catch(err) {}
            }

				  };



					// bind a search control to the map, suppress result list
          map.addControl(new google.maps.LocalSearch(options), new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(5,20)));
	      }


			}



			  gmap_onwheel = function(event) {
        ev=event || window.event;
        delta=gmap_decodewheel(ev);
        if (delta>0) {
        	marker.closeInfoWindow();
          map.zoomIn(null,null,true);
        }
        else {
          map.zoomOut(null,true);
        }

        if (ev.preventDefault) ev.preventDefault();
        ev.returnValue=false;
        return false;

    	}

    gmap_decodewheel = function(event) {
              var delta=0;
              if (event.wheelDelta) {
                delta=event.wheelDelta/120;
                 if (window.opera) delta=-delta;
              } else if (event.detail) {
                 delta = -event.detail/3;
              }
              return delta;
          }



			Event.observe(window, "load", showmap, true);
