	function showLightBox(val)
		{
			var id = (val != '') ? val : 0;
			GB_show('Contact','http://www.spata.co.uk/wp-content/themes/spata/contact.php?id='+id,400,550);
		}
		
	String.prototype.trim = function () {
		return this.replace(/^\s*/, '').replace(/\s*$/, '');
	}

	
	var markersGroup = {'Pool Installers' : [], 'Pool Maintenance' : [], 'Others': []};
	
	var map = null;
	var geocoder = null;
	var localSearch = null;
	var postcode_marker;
	
	/* zomm for the post code */
	var zoom = 9;
	
	/* icon for the zoom */
	var icon = new GIcon();
	icon.image = 'http://www.spata.co.uk/wp-content/themes/spata/images/blue_pushpin.png';
	icon.shadow = 'http://www.spata.co.uk/wp-content/themes/spata/images/pushpin_shadow.png';
	icon.iconSize = new GSize(32,32);
	icon.shadowSize = new GSize(59, 32);
	icon.iconAnchor = new GPoint(6,20);
	icon.infoWindowAnchor = new GPoint(16,0);
	
	/* custom marker section for each type */
	var pool_installers_icon = new GIcon(G_DEFAULT_ICON);
	pool_installers_icon.image = "http://www.spata.co.uk/wp-content/themes/spata/images/ltblue_dot.png";
	pool_installers_icon.shadow = "http://www.spata.co.uk/wp-content/themes/spata/images/msmarker.png";
	pool_installers_icon.iconSize = new GSize(32, 32);
	pool_installers_icon.shadowSize = new GSize(59, 32);
	pool_installers_icon.iconAnchor = new GPoint(15, 33);
	pool_installers_icon.infoWindowAnchor = new GPoint(16,0);
	
	var pool_maintenance_icon = new GIcon(G_DEFAULT_ICON);
	pool_maintenance_icon.image = 	"http://www.spata.co.uk/wp-content/themes/spata/images/yellow_dot.png";
	pool_maintenance_icon.shadow = "http://www.spata.co.uk/wp-content/themes/spata/images/msmarker.png";
	pool_maintenance_icon.iconSize = new GSize(32, 32);
	pool_maintenance_icon.shadowSize = new GSize(59, 32);
	pool_maintenance_icon.iconAnchor = new GPoint(15, 33);
	pool_maintenance_icon.infoWindowAnchor = new GPoint(16,0);
	/****************************************************/	
	
	function initialize()
		{
			if (GBrowserIsCompatible())
				{
					map = new GMap2(document.getElementById('map_canvas'));
					geocoder = new GClientGeocoder();
					localSearch = new GlocalSearch();
					
					map.setUIToDefault();
					
					var grayout = document.getElementById('grayout');
					var h = (typeof window.innerHeight != 'undefined' ? window.innerHeight : document.body.offsetHeight);
					grayout.style.height = h+'px';
					
					if (markers_arr.markers.length == 0)
						{
							map.setCenter(new GLatLng(54.622978,-2.592773), 5);
							grayout.style.display = 'none';
						}
					else
						{
							
							var bounds = new GLatLngBounds();
						//	alert('length: ' + json_data.markers.length);
							for (var i=0; i<markers_arr.markers.length; i++)
								{
									var latlng = markers_arr.markers[i]['point'].split(",");
									var lat = latlng[0];
									var lng = latlng[1];
									var point = new GLatLng(lat, lng);
									var html = markers_arr.markers[i]['html'];
									var type = markers_arr.markers[i]['type'];
									
									var marker = showMarker(type, point, html);
									
									map.addOverlay(marker);
									
									markersGroup[type].push(marker);
									
									bounds.extend(point);
								}
							map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
							grayout.style.display = 'none';
						}
				}
		}
	
	function usePointFromPostcode()
		{
			var grayout = document.getElementById('grayout');
			var h = (typeof window.innerHeight != 'undefined' ? window.innerHeight : document.body.offsetHeight);
			grayout.style.height = h+'px';
			
			var postcode = new String(document.getElementById('postcode').value);
			var type = document.getElementById('type').value;
			postcode = postcode.trim();
			
			if (postcode == '')
				{
					alert('Please enter PostCode to search.');
					document.getElementById('postcode').focus();
					return false;
				}
			
			if (type == '')
				{
					alert('Please select any Membership Type.');
					document.getElementById('type').focus();
					return false;
				}
					
			grayout.style.display = 'block';
				
			localSearch.setSearchCompleteCallback(null, 
				function() {
					
					if (localSearch.results[0])
					{		
						var resultLat = localSearch.results[0].lat;
						var resultLng = localSearch.results[0].lng;
						var point = new GLatLng(resultLat,resultLng);
						
						if (postcode_marker) map.removeOverlay(postcode_marker);
						
						postcode_marker = new GMarker(point, {icon : icon});
						map.addOverlay(postcode_marker);
						
						showHide(type);
						
						map.setCenter(point, zoom);
						
						grayout.style.display = 'none';
					} else {
						alert("Postcode not found!");
						grayout.style.display = 'none';
					}
				});	
				
			localSearch.execute(postcode + ", UK");

		}
		
		/* function for toggling makers of specific type */
		function showHide(type)
			{
				if (type == 'All Members')
					{
				//		alert('length: ' + markersGroup.length);
						for (index in markersGroup)
							{
								for (var i = 0; i < markersGroup[index].length; i++)
									{
										var marker = markersGroup[index][i];
										
										if (marker.isHidden()) 
											{
												marker.show();
												marker.closeInfoWindow();
											}
									}
							}
					}
				else
					{
						for (index in markersGroup)
							{
								if (type == index)
									{
										for (var i = 0; i < markersGroup[index].length; i++)
											{
												var marker = markersGroup[index][i];
												
												if (marker.isHidden()) 
													{
														marker.show();
														marker.closeInfoWindow();
													}
											}
									}
								else
									{
										for (var i = 0; i < markersGroup[index].length; i++)
											{
												var marker = markersGroup[index][i];
												
												marker.hide();
												marker.closeInfoWindow();
											}

									}
							}
					}
			}
			
		function showMarker(type, point, html)
			{
				var icon = null;
				if (type == 'Pool Installers')  icon = pool_installers_icon;
				if (type == 'Pool Maintenance')  icon = pool_maintenance_icon;
				
				
				var marker = new GMarker(point, {icon: icon});
				GEvent.addListener(marker, "click", function() {
				  marker.openInfoWindowHtml(html);
				});
				return marker;
			}
