  //
  var map = null;
  var label = null;
  var i = 0;
  //
  var baseIcon = null;
  var Icon1 = null;
  var Icon2 = null;
  var Icon3 = null;
  var Icon4 = null;
  var Icon5 = null;
  var Icon6 = null;
  var Icon7 = null;
  var Icon8 = null;
  var Icon9 = null;
  var Icon9 = null;
  var Icon10 = null;
  var Icon11 = null;
  var Icon12 = null;
  var Icon13 = null;
  var Icon14 = null;
  var Icon15 = null;
  // 
  var gmarkers = [];
  var images   = [];
  var htmls    = [];
  var labels   = [];
  //
  var mapped_results = [];
  //
  
  function generateMap () {
      
      /* Load Map */
      if (GBrowserIsCompatible()) {
          map = new GMap(document.getElementById("mapContainer"));
          map.enableDoubleClickZoom();
          map.centerAndZoom(new GPoint(-81.63322448730469, 30.331990661042567), 4);
          map.setMapType(G_NORMAL_MAP); //G_HYBRID_TYPE 
      }
      
      baseIcon            = new GIcon(G_DEFAULT_ICON);
      baseIcon.iconSize   = new GSize(20, 23);
      baseIcon.shadowSize = new GSize(0,0);
      baseIcon.iconAnchor = new GPoint(6, 6);
      Icon1 = new GIcon(baseIcon, '/idx/images/icons/iconr1.png');
      Icon2 = new GIcon(baseIcon, '/idx/images/icons/iconr2.png');
      Icon3 = new GIcon(baseIcon, '/idx/images/icons/iconr3.png');
      Icon4 = new GIcon(baseIcon, '/idx/images/icons/iconr4.png');
      Icon5 = new GIcon(baseIcon, '/idx/images/icons/iconr5.png');
      Icon6 = new GIcon(baseIcon, '/idx/images/icons/iconr6.png');
      Icon7 = new GIcon(baseIcon, '/idx/images/icons/iconr7.png');
      Icon8 = new GIcon(baseIcon, '/idx/images/icons/iconr8.png');
      Icon9 = new GIcon(baseIcon, '/idx/images/icons/iconr9.png');
      Icon10 = new GIcon(baseIcon, '/idx/images/icons/iconr10.png');
      Icon11 = new GIcon(baseIcon, '/idx/images/icons/iconr11.png');
      Icon12 = new GIcon(baseIcon, '/idx/images/icons/iconr12.png');
      Icon13 = new GIcon(baseIcon, '/idx/images/icons/iconr13.png');
      Icon14 = new GIcon(baseIcon, '/idx/images/icons/iconr14.png');
      Icon15 = new GIcon(baseIcon, '/idx/images/icons/iconr15.png');
          
      /* Add Map Controls */
      map.addControl(new GSmallMapControl());
      //map.addControl(new GOverviewMapControl());
      map.addControl(new GMapTypeControl());
      
      /* Tooltip Label */
      label = new BpLabel(map.getCenter(), '', null, 'nw', true);
      map.addOverlay(label);
      
      for (i = 0; i < gmarkers.length; i++) {
          /* Get Marker */
          marker = gmarkers[i];
          if (marker) {
              /* Set Tooltip */
              marker.setTooltip(label);
              /* Add Marker to Map */
              map.addOverlay(marker);
              /* Set Icon */
              iconToUse = eval('Icon' + i);
              marker.setIcon(iconToUse);
              /* Add Evem Listeners To Marker */
              var target = marker.getEventTarget();
              GEvent.bindDom(target, 'click', marker, onMouseClick);
              GEvent.bindDom(target, 'mouseover', marker, onMouseOver);
              GEvent.bindDom(target, 'mouseout', marker, onMouseOut);
          }
      }
      
  }
  
  function createMarker(point, name, html) {
      /* Create & Return BpMarker */
      var marker = new BpMarkerLight(point, { });
      /* Add Data To Collections */
      gmarkers[marker.getId()] = marker;
      htmls[marker.getId()]    = html;
      labels[marker.getId()]   = name;
      //map.panTo(point);
      /* Return Marker */
      return marker;
      
  }
    
  function centerMarker(index) {
      /* Zoom In */
      map.setZoom(15);
      /* Center Map On Marker */
      marker = gmarkers[index];
      map.panTo(marker.getPoint());
      /* Open Marker Window */
      ihtml  = htmls[marker.getId()];
      marker.openInfoWindowHtml(ihtml);
  }
  
  function onMouseOver() {
      // get tooltip text
      ilabel = labels[this.getId()];
      // show tooltip
      label.setHtml(ilabel);
      label.setPoint(this.getTooltipPoint());
      label.show();
  }

  function onMouseOut() {
      label.hide();
  }
  
  function onMouseClick() {
      ihtml  = htmls[this.getId()];
      this.openInfoWindowHtml(ihtml);
  }
  
  window.onunload = GUnload;
