var markerCoords = new Array();
    var images=new Array();
    var alternative=new Array();
    var geo = new GClientGeocoder(); 
    var address= new Array();
    var links=new Array();
    var version = 1;
    var localSearch = new GlocalSearch();
    
    function getAddress(search) {
        //alert(search);
        geo.getLocations(
            search, function (result)
            { 
                //alert(" result:" + result.Status.code+ " GEOS SUC="+ G_GEO_SUCCESS);
                if (result.Status.code == G_GEO_SUCCESS) {
                    var p = result.Placemark[0].Point.coordinates;
                    var lat=p[1];
                    var lng=p[0];
                    markerCoords.push([lat, lng]);
                    plotMarkersByCoords();
                } 
            }
        );
    }

    function plotCoords(lat, lng) {
        markerCoords.push([lat, lng]);
        plotMarkersByCoords();
    }

    function createMarker(map,point,display,imageFile,imageAlt,link) {
        var blueIcon = new GIcon(G_DEFAULT_ICON);
        markerOptions = { icon:blueIcon };
        if (link == "#") {
            blueIcon.image = "../../template/images/map_icon.png";
        } else {
            blueIcon.image = "../../template/images/map_icon.png";
        }
        var marker = new GMarker(point,markerOptions);   
        GEvent.addListener(marker, "click", function() {
            if (version == 1) 
                var myHtml = "<b>Property :</b><br/>"+display+"<br/><a href='../Property/view.jsp?id="+link+"'><img width='170' height='114' src='"+imageFile+"' alt='"+imageAlt+"' /></a>";
            else 
                var myHtml = "<b>Property :</b><br/><a href='propertyParticularsServNet.jsp?id="+link+"'>"+display+"</a>";
            if (link == "#") 
                var myHtml = "<b>Ideal address :</b><br/>"+display;
            map.openInfoWindowHtml(point, myHtml);
        });
        return marker;
    }
    
    function plotMarkersByCoords() {
        //alert("attempting to plot");
        if (GBrowserIsCompatible()) {
            var map = new GMap2(document.getElementById("map_box"));
            map.addControl(new GSmallMapControl());
             if (version == 1) map.addControl(new GMapTypeControl());
            map.setCenter(new GLatLng(54, -4.1), 5);
            map.setMapType(G_NORMAL_MAP);
            map.setCenter(new GLatLng(0,0),0);
            var bounds = new GLatLngBounds();
            
            for (var i = 0; i < markerCoords.length; i++) {
                    //alert("plotting lng: " + markerCoords[i][0] + " lng: " + markerCoords[i][1]);
                var point= new GLatLng(markerCoords[i][0],markerCoords[i][1]);
                map.addOverlay(createMarker(map,point,address[i],images[i],alternative[i],links[i]));
                bounds.extend(point);
            }
            map.setCenter(bounds.getCenter(),map.getBoundsZoomLevel(bounds)-1);
        }else {
        alert("Sorry, the Google Maps API is not compatible with this browser");
    }
}

function getAddressGeoCode(search) {
     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);
    		   markerCoords.push([resultLat , resultLng ]);
   		   plotMarkersByCoords();
   		   }else{
  		      //alert("Postcode not found!");
  		   }
  		  });  
     localSearch.execute(search);
}
