function WAMapRef(mapObj)  {
  this.obj = mapObj;
  this.directions = false;
  this.icons = [];
  this.markers = [];
  this.addresses = [];
  this.points = [];
  this.getPointByAddress = getPointByAddressFunc;
  return this;
}

function waitForGeo()  {
  var startDate = new Date();
  var endDate = new Date();
  while ((endDate-startDate) < 200)  {
    endDate = new Date();
  }
}

function WAMapPoint(theMarker, theAddress, theIcon)  {
  this.icon = theIcon;
  this.marker = theMarker;
  this.address = theAddress;
  return this;
}

function getPointByAddressFunc(value,attname)  {
  if (!attname) attname = "street";
  for (var x=0; x < this.addresses.length; x++) {
    if (eval("this.addresses[x]."+attname) == value)  {
      return WAMapPoint(this.markers[x],this.addresses[x],this.icons[x]);
    }
  }
  return false;
}


function wagmp_map_5() {
  if(GBrowserIsCompatible()) {
    if(!document.getElementById('wagmp_map_5')) return false;
    var map = new GMap2(document.getElementById('wagmp_map_5'));
    wagmp_map_5_obj = new WAMapRef(map);
    map.enableContinuousZoom();
    map.enableDoubleClickZoom();
    map.addControl(new GSmallMapControl());
    map.addControl(new GMapTypeControl());
    var geocoder = new GClientGeocoder();
    
    var fromAddress = {
      enabled: false,
      street: '',
      city: '',
      state: '',
      zip: '',
      country: '',
      full: ''
    };

    var icon_0 = new GIcon();
    icon_0.image = 'http://google.webassist.com/google/markers/flag/pacifica.png';
    icon_0.shadow = 'http://google.webassist.com/google/markers/flag/shadow.png';
    icon_0.iconSize = new GSize(31,35);
    icon_0.shadowSize = new GSize(31,35);
    icon_0.iconAnchor = new GPoint(4,27);
    icon_0.infoWindowAnchor = new GPoint(8,3);
    icon_0.printImage = 'http://google.webassist.com/google/markers/flag/pacifica.gif';
    icon_0.mozPrintImage = 'http://google.webassist.com/google/markers/flag/pacifica_mozprint.png';
    icon_0.printShadow = 'http://google.webassist.com/google/markers/flag/shadow.gif';
    icon_0.transparent = 'http://google.webassist.com/google/markers/flag/pacifica_transparent.png';
    
    var address_0 = {
      street: '711 E Indiantown Road, Suite C-2',
      city: 'Jupiter',
      state: 'FL',
      zip: '33458',
      country: 'USA',
      infowindow: 'custom',
      infowindowtext: '<span style="font: 12px Verdana, Arial, Helvetica, sans-serif; color: black;"><strong>Atlantic Smart Technologies - Showroom</strong><br />711 E Indiantown Road, Suite C-2<br />Jupiter, FL 33458 USA<br />Tel: 561 744-0014</span>',
      full: '711 E Indiantown Road, Suite C-2, Jupiter, FL, 33458, USA',
      isdefault: false,
      addressType: 'address',
      loop: '',
      latitude: '',
      longitude: '',
      markerStyle: 'Flag',
      markerColor: 'Pacifica'      
    };
    
    geocoder.getLatLng (
      address_0.full,
      function(point) {
        if(point) {
          var marker = new GMarker(point, icon_0);
          GEvent.addListener(marker, 'click', function() {
            marker.openInfoWindowHtml(address_0.infowindowtext);
          });
          if(!fromAddress.enabled || 'address_0' != 'address_0') {
            map.setCenter(point, 13);
            map.addOverlay(marker);
          }
          wagmp_map_5_obj.markers.push(marker);
          wagmp_map_5_obj.addresses.push(address_0);
          wagmp_map_5_obj.icons.push(icon_0);
          wagmp_map_5_obj.points.push(point);
        }
        else {
          map.setCenter(new GLatLng(37.4419, -122.1419), 13);
        }
      }
    );
     waitForGeo();

    var icon_1 = new GIcon();
    icon_1.image = 'http://google.webassist.com/google/markers/flag/pacifica.png';
    icon_1.shadow = 'http://google.webassist.com/google/markers/flag/shadow.png';
    icon_1.iconSize = new GSize(31,35);
    icon_1.shadowSize = new GSize(31,35);
    icon_1.iconAnchor = new GPoint(4,27);
    icon_1.infoWindowAnchor = new GPoint(8,3);
    icon_1.printImage = 'http://google.webassist.com/google/markers/flag/pacifica.gif';
    icon_1.mozPrintImage = 'http://google.webassist.com/google/markers/flag/pacifica_mozprint.png';
    icon_1.printShadow = 'http://google.webassist.com/google/markers/flag/shadow.gif';
    icon_1.transparent = 'http://google.webassist.com/google/markers/flag/pacifica_transparent.png';
    
    var address_1 = {
      street: '130 Juno Street',
      city: 'Jupiter',
      state: 'FL',
      zip: '33458',
      country: 'USA',
      infowindow: 'custom',
      infowindowtext: '<span style="font: 12px Verdana, Arial, Helvetica, sans-serif; color: black;"><strong>Atlantic Smart Technologies</strong><br />130 Juno Street<br />Jupiter, FL 33458 USA<br />Tel: 561 776-0066</span>',
      full: '130 Juno Street, Jupiter, FL, 33458, USA',
      isdefault: true,
      addressType: 'address',
      loop: '',
      latitude: '',
      longitude: '',
      markerStyle: 'Flag',
      markerColor: 'Pacifica'      
    };
    
    geocoder.getLatLng (
      address_1.full,
      function(point) {
        if(point) {
          var marker = new GMarker(point, icon_1);
          GEvent.addListener(marker, 'click', function() {
            marker.openInfoWindowHtml(address_1.infowindowtext);
          });
          if(!fromAddress.enabled || 'address_1' != 'address_0') {
            map.setCenter(point, 13);
            map.addOverlay(marker);
            marker.openInfoWindowHtml(address_1.infowindowtext);
          }
          wagmp_map_5_obj.markers.push(marker);
          wagmp_map_5_obj.addresses.push(address_1);
          wagmp_map_5_obj.icons.push(icon_1);
          wagmp_map_5_obj.points.push(point);
        }
        else {
          map.setCenter(new GLatLng(37.4419, -122.1419), 13);
        }
      }
    );
     waitForGeo();


  }
}
