 //<![CDATA[ 
    var markerHtml;
    var map;
    var mapWidth = 330;
    var mapHeight = 400;
    var localSearch;
    var gSelectedResults = [];
    var gCurrentResults = [];
    
    // Create our "tiny" marker icon
    var gSmallIcon;
    
    var localSearch; // = new GlocalSearch();

    function mapOnLoad(big)
    {
    /*    if(!big)
        {
            mapWidth = 320;
            mapHeight = 300;
            document.getElementById("map").style.width = "320px";
            document.getElementById("map").style.height = "300px";
        }*/
        map = new GMap2(document.getElementById("map"),{ size: new GSize(mapWidth,mapHeight) } );
        gSmallIcon = new GIcon();
        gSmallIcon.image = "http://labs.google.com/ridefinder/images/mm_20_yellow.png";
        gSmallIcon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
        gSmallIcon.iconSize = new GSize(12, 20);
        gSmallIcon.shadowSize = new GSize(22, 20);
        gSmallIcon.iconAnchor = new GPoint(6, 20);
        gSmallIcon.infoWindowAnchor = new GPoint(5, 1);

        map.addControl(new GMapTypeControl());
        map.addControl(new GSmallMapControl());
        map.addControl(new GScaleControl());
        
        if((glat==0)&&(gpostcode!=""))
          ;//  usePointFromPostcode(gpostcode,alert_postcode);
        else
        {
            var center = new GLatLng(glat, glong);
            map.setCenter(center, gzoom, G_HYBRID_MAP);
            
            var marker = new GMarker(center);
            map.addOverlay(marker);

            localSearch = new GlocalSearch();
            localSearch.setCenterPoint(map);
            localSearch.setSearchCompleteCallback(null, OnLocalSearch);
            localSearch.setResultSetSize(GSearch.LARGE_RESULTSET);
        }
    }
    function doSearch() {
      var cat = document.getElementById("catInput").value;
      localSearch.execute(cat);
    }
    
// Called when Local Search results are returned, we clear the old
    // results and load the new ones.
    function OnLocalSearch() {
      if (!localSearch.results) return;
      var searchWell = document.getElementById("searchwell");

      // Clear the map and the old search well
      searchWell.innerHTML = "";
      for (var i = 0; i < gCurrentResults.length; i++) {
        if (!gCurrentResults[i].selected()) {
          map.removeOverlay(gCurrentResults[i].marker());
        }
      }

      gCurrentResults = [];
      for (var i = 0; i < localSearch.results.length; i++) {
        gCurrentResults.push(new LocalResult(localSearch.results[i]));
      }

      var attribution = localSearch.getAttribution();
      if (attribution) {
        document.getElementById("searchwell").appendChild(attribution);
      }

      // move the map to the first result
      var first = localSearch.results[0];
    //  map.recenterOrPanToLatLng(new GPoint(parseFloat(first.lng), parseFloat(first.lat)));

    }

    // Cancel the form submission, executing an AJAX Search API search.
    function CaptureForm(searchForm) {
      localSearch.execute(searchForm.input.value);
      return false;
    }



    // A class representing a single Local Search result returned by the
    // Google AJAX Search API.
    function LocalResult(result) {
      this.result_ = result;
      this.resultNode_ = this.unselectedHtml();
  //    document.getElementById("searchwell").appendChild(this.resultNode_);
      map.addOverlay(this.marker(gSmallIcon));
    }
    
    
    // Returns the GMap marker for this result, creating it with the given
    // icon if it has not already been created.
    LocalResult.prototype.marker = function(opt_icon) {
      if (this.marker_) return this.marker_;
      var marker = new GMarker(new GLatLng(parseFloat(this.result_.lat),
                                         parseFloat(this.result_.lng)),
                               opt_icon);
      GEvent.bind(marker, "click", this, function() {
        marker.openInfoWindow(this.selected() ? this.selectedHtml() :
                                                this.unselectedHtml());
      });
      this.marker_ = marker;
      return marker;
    }

    // "Saves" this result if it has not already been saved
    LocalResult.prototype.select = function() {
      if (!this.selected()) {
        this.selected_ = true;

        // Remove the old marker and add the new marker
        gMap.removeOverlay(this.marker());
        this.marker_ = null;
        gMap.addOverlay(this.marker(G_DEFAULT_ICON));

        // Add our result to the saved set
        document.getElementById("selected").appendChild(this.selectedHtml());

        // Remove the old search result from the search well
        this.resultNode_.parentNode.removeChild(this.resultNode_);
      }
    }

    // Returns the HTML we display for a result before it has been "saved"
    LocalResult.prototype.unselectedHtml = function() {
      var container = document.createElement("div");
      container.className = "unselected";
      container.appendChild(this.result_.html.cloneNode(true));
   /*   var saveDiv = document.createElement("div");
      saveDiv.className = "select";
      saveDiv.innerHTML = "Save this location";
      GEvent.bindDom(saveDiv, "click", this, function() {
        gMap.closeInfoWindow();
        this.select();
        gSelectedResults.push(this);
      });
      container.appendChild(saveDiv);*/
      return container;
    }

    // Returns the HTML we display for a result after it has been "saved"
    LocalResult.prototype.selectedHtml = function() {
      return this.result_.html.cloneNode(true);
    }

    // Returns true if this result is currently "saved"
    LocalResult.prototype.selected = function() {
      return this.selected_;
    }

 //   GSearch.setOnLoadCallback(onLoad);
    
//]]>

