				var map = null;
				var i = 0;
				var baseIcon = null;
				var localSearch = null;
				var apikey = new Array();
				var htmlarray = new Array();
				var cou = 0;

				function initialise() {
					baseIcon = new GIcon(G_DEFAULT_ICON);
					map = new google.maps.Map2(document.getElementById("mapy"));
			        localSearch = new google.search.LocalSearch();
					var BranchLatlng = new google.maps.LatLng(branchlat,branchlon);
					map.setCenter(BranchLatlng,15);
					map.addOverlay(createMarker(BranchLatlng,2));
					localSearch.setRestriction(google.search.LocalSearch.RESTRICT_TYPE, google.search.LocalSearch.TYPE_KMLONLY_RESULTS);
					map.enableScrollWheelZoom();
			        map.addControl(new google.maps.SmallZoomControl3D());
			        for (var x = 0;x<i;x++) {
			        	if (apikey[x].length > 3) {
			        		usePointFromPostcode(x, placeMarkerAtPoint);
			        	}
					}
				}
				function usePointFromPostcode(counter, callbackFunction) {

					localSearch.setSearchCompleteCallback(null,
						function() {

							if (localSearch.results[0])
							{
								var resultLat = localSearch.results[0].lat;
								var resultLng = localSearch.results[0].lng;
								var point = new google.maps.LatLng(resultLat,resultLng);
								var title = localSearch.results[0].titleNoFormatting;
								callbackFunction(point,cou++);
							}else{
								//alert("Postcode not found!");
							}
						});

					localSearch.execute(unescape(apikey[counter]) + ", UK");
				}
				function usePointFromPostcodeA(counter, callbackFunction) {

					localSearch.setSearchCompleteCallback(null,fDA(counter,callbackFunction));

					localSearch.execute(unescape(apikey[counter]) + ", UK");
				}
				/**
				 *
				 * @access public
				 * @return void
				 **/
				function fDA(cou,callbackFunction) {
					return function (){
						if (localSearch.results[0]) {
							var resultLat = localSearch.results[0].lat;
							var resultLng = localSearch.results[0].lng;
							var point = new google.maps.LatLng(resultLat,resultLng);
							var title = localSearch.results[0].titleNoFormatting;
							var co=cou;
							callbackFunction(point,co);
						}else{
							//alert("Postcode not found!");
						}
					}
				}
				function placeMarkerAtPoint(point,count) {
					if (i<5) {
						map.setZoom(13);
						map.panTo(point);
					} else {
						map.setZoom(10);
					}
					var m = createMarker(point,1);
					//GEvent.addListener(m, 'click', function() {
					//		winOptions={ maxWidth:24 };
					//	    m.openInfoWindowHtml(htmlarray[count],winOptions);
					//	});
					map.addOverlay(m);
					//createNewMarker(point,1);
				}
				function createNewMarker(point,blue){
					if (blue==1) {
						var beachMarker = new google.maps.Marker({
						    position: point,
						    map: map
						});
					} else {
						var image = '/images/blue-dot2.png';
						var beachMarker = new google.maps.Marker({
					    	position: point,
					  		map: map,
							icon: image
					  	});
					}
				}
				function createMarker(point,index) {
					var thisIcon = new GIcon(baseIcon);
					if (index==2) {
						thisIcon.image = "/images/map-pinG2.png";
					    thisIcon.iconSize = new GSize(32, 32);
					}
					// Set up our GMarkerOptions object
					markerOptions = { icon:thisIcon };
					var marker = new GMarker(point, markerOptions);
					return marker;
				}
