
 
function initializeMap(center){
	if (!center) {
		var points = gMapHelper.areas[$("#PostArea").val()].split(",");
	}
	else {
		var points = center.split(",");
	}
	gMapHelper.showClickMap(points[0], points[1]);
	return false;
} 
 
 $(document).ready(function() {
	 $("#PostArea").change(handleAreaChange); 
 });
 
 var gMapHelper = {
	
	map: false,
	marker: false,
	latitude: false,
	longitude: false,
	markers:[],
	visible:false,
	
	showClickMap : function (latitude, longitude){
		if (GBrowserIsCompatible()) {
			document.getElementById('map_canvas').style.display = 'block';
			gMapHelper.map = new GMap2(document.getElementById("map_canvas"));
			gMapHelper.map.disableScrollWheelZoom();
			var point = new GLatLng(latitude, longitude);
			gMapHelper.map.setCenter(point, 14);
			gMapHelper.map.setUIToDefault();
			gMapHelper.addClickListener();
			gMapHelper.visible = true;
		}
	},
	
	showAreaMap : function (latitude, longitude, points, zoom){
		if (GBrowserIsCompatible()) {
			document.getElementById('map_canvas').style.display = 'block';
			gMapHelper.map = new GMap2(document.getElementById("map_canvas"));
			gMapHelper.map.disableScrollWheelZoom();
			var centerPoint = new GLatLng(latitude, longitude);
			gMapHelper.map.setCenter(centerPoint, zoom || 14);
			gMapHelper.map.setUIToDefault();
		}
		var marker;
		$(points).each(function(index, point){
			var markerPoint = new GLatLng(point.latitude, point.longitude);
			var marker = new GMarker(markerPoint);
			GEvent.addListener(marker, "click", function() {
 			 	marker.openInfoWindowHtml(point.html);
  			});

			gMapHelper.markers.push(marker);
			gMapHelper.map.addOverlay(marker);
		});



	},
	
	showBusinessMap:  function(latitude, longitude){
			
	    var map = new GMap2(document.getElementById("map_canvas"));		

		map.setCenter(new GLatLng(latitude, longitude), 14);
		map.addControl(new GSmallMapControl());
		
		var point = new GLatLng(latitude, longitude);
		map.addOverlay(new GMarker(point));
	
		var streetViewContainer = document.getElementById("street_view");
		streetViewContainer.style.display = 'block';
		
		streetViewFrame = '<iframe width="298" height="250" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps/sv?cbp=12,149.89070933459743,,0,5&amp;cbll='+latitude+','+longitude+'&amp;v=1&amp;panoid=uvsxjCdeM0FpbA1XBJR5tg&amp;gl=&amp;hl=en"></iframe>';
		streetViewContainer.style.display = 'none';
		streetViewContainer.innerHTML = streetViewFrame;

	},
	
	addClickListener: function (){
		GEvent.addListener(gMapHelper.map,"click", function(overlay, latlng) {     
		  if (latlng) { 
			gMapHelper.updateFromLatLng(latlng);
		  }
		});
	},

	updateFromLatLng: function (latlng){
	    gMapHelper.longitude = latlng.x;
		gMapHelper.latitude = latlng.y;
		var point = new GLatLng(gMapHelper.latitude, gMapHelper.longitude);
		gMapHelper.updateMarker(point);
		$("#PostLongitude").val(gMapHelper.longitude);
		$("#PostLatitude").val(gMapHelper.latitude);

	},

	updateMarker : function (point){
		if (!gMapHelper.marker) {
			/*var letteredIcon = new GIcon(G_DEFAULT_ICON);
			letteredIcon.iconSize = new GSize(20, 20);
			letteredIcon.image = "images/icons/silk/pencil.png";*/
			markerOptions = {
				//icon: letteredIcon,
				draggable: true
			};
			gMapHelper.marker = new GMarker(point, markerOptions);
			gMapHelper.map.addOverlay(gMapHelper.marker);
			GEvent.addListener(gMapHelper.marker, "dragend", function(latlng) {
 				gMapHelper.updateFromLatLng(latlng);
  			});

		} else {
			gMapHelper.marker.setLatLng(point);	
		}
	},
	
	
	plotPostcode: function (postcode){
		
		google.load('search', '1');
		
		function OnLoad(){
			// Create a search control
			var searchControl = new google.search.SearchControl();
			
			// Add in a full set of searchers
			var localSearch = new google.search.LocalSearch();
			searchControl.addSearcher(localSearch);
			
			localSearch.setSearchCompleteCallback(null, function(status){
				if(localSearch.results.length > 0){
					latitide = localSearch.results[0].lat;
					longitude = localSearch.results[0].lng;
					gMapHelper.showBusinessMap(latitide, longitude);	
				} else {
					document.getElementById("map_canvas").style.height = "1px";
				}
			});
			
			// Set the Local Search center point
			localSearch.execute(postcode + ", UK");
		}
		google.setOnLoadCallback(OnLoad);
	}


	
}