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_1() {
  if(GBrowserIsCompatible()) {
    if(!document.getElementById('wagmp_map_1')) return false;
    var map = new GMap2(document.getElementById('wagmp_map_1'));
    wagmp_map_1_obj = new WAMapRef(map);
    map.enableContinuousZoom();
    map.enableDoubleClickZoom();
    map.addControl(new GSmallMapControl());
    map.addControl(new GMapTypeControl());
    map.addControl(new GOverviewMapControl());
    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/traditionalpillow/pacifica.png';
    icon_0.shadow = 'http://google.webassist.com/google/markers/traditionalpillow/shadow.png';
    icon_0.iconSize = new GSize(34,35);
    icon_0.shadowSize = new GSize(34,35);
    icon_0.iconAnchor = new GPoint(9,33);
    icon_0.infoWindowAnchor = new GPoint(19,0);
    icon_0.printImage = 'http://google.webassist.com/google/markers/traditionalpillow/pacifica.gif';
    icon_0.mozPrintImage = 'http://google.webassist.com/google/markers/traditionalpillow/pacifica_mozprint.png';
    icon_0.printShadow = 'http://google.webassist.com/google/markers/traditionalpillow/shadow.gif';
    icon_0.transparent = 'http://google.webassist.com/google/markers/traditionalpillow/pacifica_transparent.png';
    
    var address_0 = {
      street: '',
      city: '',
      state: '',
      zip: '',
      country: '',
      infowindow: 'custom',
      infowindowtext: '<span style="font: 12px Verdana, Arial, Helvetica, sans-serif; color: black;"><strong>Middlewoods of Farmington</strong><br />509 Middle Rd.<br />Farmington, CT 06032</span>',
      full: '41.7280,-72.7947',
      isdefault: false,
      addressType: 'coordinates',
      loop: '',
      latitude: '41.7280',
      longitude: '-72.7947',
      markerStyle: 'Google Traditional (pillow)',
      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_1_obj.markers.push(marker);
          wagmp_map_1_obj.addresses.push(address_0);
          wagmp_map_1_obj.icons.push(icon_0);
          wagmp_map_1_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/traditionalpillow/pacifica.png';
    icon_1.shadow = 'http://google.webassist.com/google/markers/traditionalpillow/shadow.png';
    icon_1.iconSize = new GSize(34,35);
    icon_1.shadowSize = new GSize(34,35);
    icon_1.iconAnchor = new GPoint(9,33);
    icon_1.infoWindowAnchor = new GPoint(19,0);
    icon_1.printImage = 'http://google.webassist.com/google/markers/traditionalpillow/pacifica.gif';
    icon_1.mozPrintImage = 'http://google.webassist.com/google/markers/traditionalpillow/pacifica_mozprint.png';
    icon_1.printShadow = 'http://google.webassist.com/google/markers/traditionalpillow/shadow.gif';
    icon_1.transparent = 'http://google.webassist.com/google/markers/traditionalpillow/pacifica_transparent.png';
    
    var address_1 = {
      street: '',
      city: '',
      state: '',
      zip: '',
      country: '',   
	  infowindow: 'custom',
      infowindowtext: '<span style="font: 12px Verdana, Arial, Helvetica, sans-serif; color: black;"><strong>Wesley Village</strong><br />580 Long Hill Ave.<br />Shelton, CT 06484</span>',
      full: '41.2818,-73.0981',
      isdefault: false,
      addressType: 'coordinates',
      loop: '',
      latitude: '41.2818',
      longitude: '-73.0981',
      markerStyle: 'Google Traditional (pillow)',
      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);
          }
          wagmp_map_1_obj.markers.push(marker);
          wagmp_map_1_obj.addresses.push(address_1);
          wagmp_map_1_obj.icons.push(icon_1);
          wagmp_map_1_obj.points.push(point);
        }
        else {
          map.setCenter(new GLatLng(37.4419, -122.1419), 13);
        }
      }
    );
     waitForGeo();

    var icon_2 = new GIcon();
    icon_2.image = 'http://google.webassist.com/google/markers/traditionalpillow/pacifica.png';
    icon_2.shadow = 'http://google.webassist.com/google/markers/traditionalpillow/shadow.png';
    icon_2.iconSize = new GSize(34,35);
    icon_2.shadowSize = new GSize(34,35);
    icon_2.iconAnchor = new GPoint(9,33);
    icon_2.infoWindowAnchor = new GPoint(19,0);
    icon_2.printImage = 'http://google.webassist.com/google/markers/traditionalpillow/pacifica.gif';
    icon_2.mozPrintImage = 'http://google.webassist.com/google/markers/traditionalpillow/pacifica_mozprint.png';
    icon_2.printShadow = 'http://google.webassist.com/google/markers/traditionalpillow/shadow.gif';
    icon_2.transparent = 'http://google.webassist.com/google/markers/traditionalpillow/pacifica_transparent.png';
    
    var address_2 = {
      street: '27 Hospital Hill Road',
      city: 'Sharon',
      state: 'CT',
      zip: '06069',
      country: '',
      infowindow: 'custom',
      infowindowtext: '<span style="font: 12px Verdana, Arial, Helvetica, sans-serif; color: black;"><strong>Sharon Health Care Center</strong><br />27 Hospital Hill Road<br />Sharon, CT 06069</span>',
      full: '27 Hospital Hill Road, Sharon, CT, 06069',
      isdefault: false,
      addressType: 'address',
      loop: '',
      latitude: '',
      longitude: '',
      markerStyle: 'Google Traditional (pillow)',
      markerColor: 'Pacifica'      
    };
    
    geocoder.getLatLng (
      address_2.full,
      function(point) {
        if(point) {
          var marker = new GMarker(point, icon_2);
          GEvent.addListener(marker, 'click', function() {
            marker.openInfoWindowHtml(address_2.infowindowtext);
          });
          if(!fromAddress.enabled || 'address_2' != 'address_0') {
            map.setCenter(point, 13);
            map.addOverlay(marker);
          }
          wagmp_map_1_obj.markers.push(marker);
          wagmp_map_1_obj.addresses.push(address_2);
          wagmp_map_1_obj.icons.push(icon_2);
          wagmp_map_1_obj.points.push(point);
        }
        else {
          map.setCenter(new GLatLng(37.4419, -122.1419), 13);
        }
      }
    );
     waitForGeo();

    var icon_3 = new GIcon();
    icon_3.image = 'http://google.webassist.com/google/markers/traditionalpillow/pacifica.png';
    icon_3.shadow = 'http://google.webassist.com/google/markers/traditionalpillow/shadow.png';
    icon_3.iconSize = new GSize(34,35);
    icon_3.shadowSize = new GSize(34,35);
    icon_3.iconAnchor = new GPoint(9,33);
    icon_3.infoWindowAnchor = new GPoint(19,0);
    icon_3.printImage = 'http://google.webassist.com/google/markers/traditionalpillow/pacifica.gif';
    icon_3.mozPrintImage = 'http://google.webassist.com/google/markers/traditionalpillow/pacifica_mozprint.png';
    icon_3.printShadow = 'http://google.webassist.com/google/markers/traditionalpillow/shadow.gif';
    icon_3.transparent = 'http://google.webassist.com/google/markers/traditionalpillow/pacifica_transparent.png';
    
    var address_3 = {
      street: '',
      city: '',
      state: '',
      zip: '',
      country: '',
      infowindow: 'custom',
      infowindowtext: '<span style="font: 12px Verdana, Arial, Helvetica, sans-serif; color: black;"><strong>Middlewoods of Newington</strong><br />2125 Main St.<br />Newington, CT 06111</span>',
      full: '41.6720,-72.7193',
      isdefault: false,
      addressType: 'coordinates',
      loop: '',
      latitude: '41.6720',
      longitude: '-72.7193',
      markerStyle: 'Google Traditional (pillow)',
      markerColor: 'Pacifica'      
    };
    
    geocoder.getLatLng (
      address_3.full,
      function(point) {
        if(point) {
          var marker = new GMarker(point, icon_3);
          GEvent.addListener(marker, 'click', function() {
            marker.openInfoWindowHtml(address_3.infowindowtext);
          });
          if(!fromAddress.enabled || 'address_3' != 'address_0') {
            map.setCenter(point, 13);
            map.addOverlay(marker);
			map.setZoom(8);
          }
          wagmp_map_1_obj.markers.push(marker);
          wagmp_map_1_obj.addresses.push(address_3);
          wagmp_map_1_obj.icons.push(icon_3);
          wagmp_map_1_obj.points.push(point);
        }
        else {
          map.setCenter(new GLatLng(41.6720, -72.7193), 13);
        }
      }
    );
     waitForGeo();


  }
}