var HABITATMAP_URL = "http://habitatmap.org";

if (!window.HMWidgetInstance) {

  function hmGoogleScriptLoaded() {
    HMWidgetInstance.scriptLoaded('googleMapsAsync');
  }

  var HMWidgetInstance = {
    
    maps: [],
    _waitingMaps: [],
    
    addMap: function(mapData) {
      var divId = this.maps.length;
      this.maps[divId] = mapData;
      this._createMapDiv(divId, mapData.width, mapData.height);
      if (this._allScriptsLoaded()) {
        HMWidget.loadMap(divId);
      } else {
        this._waitingMaps.push(divId);
      }
    },

    insertScripts: function(googleKey) {
      if (this._scriptsInserted) return;
      this._scriptsInserted = true;
      
      var head = document.getElementsByTagName('head')[0];
      var googleUrl = 'http://maps.google.com/maps?file=api&v=2.184&key='
        + googleKey + "&async=2&callback=hmGoogleScriptLoaded";
      this._insertScript(head, 'googleMaps', googleUrl);
      this._insertScript(head, 'widgetBundle', HABITATMAP_URL + '/javascripts/widget_bundle_packaged.js');
    },

    _insertScript: function(head, scriptId, url) {
      var scriptElement = document.createElement("script");
      scriptElement.setAttribute("type", "text/javascript");
      scriptElement.onload = function() { HMWidgetInstance.scriptLoaded(scriptId) };
      scriptElement.onreadystatechange = function() {
        if (this.readyState == "complete" || this.readyState == "loaded") {
          HMWidgetInstance.scriptLoaded(scriptId);
        }
      };
      scriptElement.src = url;
      head.appendChild(scriptElement);
    },

    scriptLoaded: function(scriptId) {
      if (this["_" + scriptId + "Loaded"]) return;
      this["_" + scriptId + "Loaded"] = true;
      if (scriptId == "widgetBundle") {
        HMWidget.initializeEnvironment();
      } else if (scriptId == "googleMapsAsync") {
        if (this._widgetBundleLoaded) {
          GMarkerExtensions.hmInstallExtensions();
          HMPolygonExtensions.hmInstallExtensions();
          HMMarkerClusterer.loadClusterMarker();
        }
      }
      if (this._allScriptsLoaded()) {
        HMUtils.observe(window, "unload", function() { GUnload() });
        this._processWaitingMaps();
      }
    },
    
    _allScriptsLoaded: function() {
      return this._googleMapsLoaded && this._googleMapsAsyncLoaded && this._widgetBundleLoaded;
    },
        
    _createMapDiv: function(id, width, height) {
      document.writeln("<div class='habitatmap_widget' id='habitatmap_widget_" + id
        + "' style='width: " + width + "px; height: " + height + "px;'>Loading...</div>");
    },

    _processWaitingMaps: function() {
      for (var i = 0; i < this._waitingMaps.length; i++) {
        HMWidget.loadMap(this._waitingMaps[i]);
      }
    }
  };
}


(function() {
  // putting this inside a function to prevent googleKey and IE from polluting the global namespace
  var googleKey = "ABQIAAAAluyj6vRmyyyLg0ghU7pSIxR50xG04QjWTP-P3PyOY8HFIbRjABRDlGarCv_LwbzX1g0t1G6ql_I3Ng";
  var IE = !!(window.attachEvent && navigator.userAgent.indexOf('Opera') === -1);

  if (IE) {
    window.attachEvent('onload', function() { HMWidgetInstance.insertScripts(googleKey) });
  } else {
    HMWidgetInstance.insertScripts(googleKey);
  }
})();

HMWidgetInstance.addMap({
  width: 647,
  height: 510,
  lat: 40.728527124206,
  lng: -73.9424514770508,
  zoom: 13,
  markers: [{"name":"101-105 West Street","assigned_map_ids":[77],"lng":-73.9595532417,"id":81,"lat":40.7302426196},{"name":"21-03 44th Avenue","assigned_map_ids":[78],"lng":-73.9458417892,"id":717,"lat":40.7495571826},{"name":"353 McKibbin Street","assigned_map_ids":[77],"lng":-73.9342010021,"id":82,"lat":40.706563251},{"name":"58th Rd. Creek Access Point","assigned_map_ids":[122],"lng":-73.9238637686,"id":284,"lat":40.7199977727},{"name":"5th Street Lofts","assigned_map_ids":[77],"lng":-73.954923749,"id":87,"lat":40.7466839275},{"name":"Acme Architectural Products - 72 Anthony","assigned_map_ids":[78],"lng":-73.9355581999,"id":286,"lat":40.7235755175},{"name":"Acme Architectural Products - 95 Lombardy","assigned_map_ids":[78],"lng":-73.937022686,"id":131,"lat":40.7229900815},{"name":"Allocco Recycling - Kingsland Ave","assigned_map_ids":[79],"lng":-73.9441144466,"id":73,"lat":40.7352425078},{"name":"Allocco Recycling - Scholes St.","assigned_map_ids":[79],"lng":-73.9241480827,"id":125,"lat":40.7119878061},{"name":"Amtrak Sunnyside Rail Yard","assigned_map_ids":[78],"lng":-73.9282894135,"id":102,"lat":40.7497278671},{"name":"Ansbacher Color \u0026 Dye Factory","assigned_map_ids":[78],"lng":-73.9518284798,"id":104,"lat":40.7151512482},{"name":"Apollo St. Creek Access Point ","assigned_map_ids":[122],"lng":-73.9374732971,"id":253,"lat":40.7291450328},{"name":"Astoria Carting Co. Inc.","assigned_map_ids":[79],"lng":-73.9330101013,"id":112,"lat":40.7256407644},{"name":"Bayside Oil - Bushwick Inlet","assigned_map_ids":[77],"lng":-73.9601755142,"id":83,"lat":40.7246569343},{"name":"Beginning with Children Charter School - formerly Pfizer Citric Block","assigned_map_ids":[77],"lng":-73.9481431246,"id":475,"lat":40.7003411407},{"name":"BFI 105-115 Thames St.","assigned_map_ids":[79],"lng":-73.928874135,"id":113,"lat":40.7055018733},{"name":"BFI Scholes St./Scott Ave.","assigned_map_ids":[79],"lng":-73.9229249954,"id":114,"lat":40.7120528655},{"name":"City Recycling","assigned_map_ids":[79],"lng":-73.9325487614,"id":115,"lat":40.7247382431},{"name":"Cooper Tank, formerly Equity Works MGP","assigned_map_ids":[78,79],"lng":-73.9338228106,"id":116,"lat":40.7169849999},{"name":"ExxonMobil Greenpoint Oil Spill","assigned_map_ids":[77],"lng":-73.9418506622,"id":98,"lat":40.7311450662},{"name":"Former Nuhart Plastic Manufacturing aka Duraflex Hart","assigned_map_ids":[78],"lng":-73.9580404758,"id":1494,"lat":40.7359172607},{"name":"Formerly W.L.K. Corp.","assigned_map_ids":[78],"lng":-73.913397789,"id":716,"lat":40.7195830672},{"name":"Future Site of Bushwick Inlet Park - formerly Williamsburg Works MGP","assigned_map_ids":[78],"lng":-73.9600467682,"id":462,"lat":40.7234128969},{"name":"Gaseteria, formerly B.C.F. Oil Refining, Inc.","assigned_map_ids":[78],"lng":-73.9294910431,"id":103,"lat":40.7181153139},{"name":"Hi-Tech Resource Recovery","assigned_map_ids":[79],"lng":-73.9281392097,"id":117,"lat":40.7107760623},{"name":"IESI NY - 548 Varick","assigned_map_ids":[79],"lng":-73.9340078831,"id":118,"lat":40.7254659527},{"name":"Information Technology High School","assigned_map_ids":[77],"lng":-73.9466571808,"id":79,"lat":40.7485696422},{"name":"Klink Cosmo Cleaners","assigned_map_ids":[78],"lng":-73.9369475842,"id":287,"lat":40.7202091903},{"name":"LIRR/NY\u0026A English Kills RR Bridge","assigned_map_ids":[122],"lng":-73.9306390285,"id":149,"lat":40.7091739241},{"name":"M \u0026 A Linens - formerly Maspeth Electric Substation","assigned_map_ids":[77],"lng":-73.9123034477,"id":86,"lat":40.7211442982},{"name":"Manhattan Ave. Street End Park - yet to be officially named","assigned_map_ids":[122],"lng":-73.9551115036,"id":76,"lat":40.7390511136},{"name":"Maspeth Project","assigned_map_ids":[77],"lng":-73.9189445972,"id":85,"lat":40.7244455309},{"name":"Maspeth Recycling","assigned_map_ids":[79],"lng":-73.9235687256,"id":119,"lat":40.7215996504},{"name":"McGuinness cul-de-sac Vista ","assigned_map_ids":[122],"lng":-73.9529496431,"id":1454,"lat":40.7388804017},{"name":"Meeker Ave. Creek Access Point","assigned_map_ids":[122],"lng":-73.932326138,"id":767,"lat":40.7281388958},{"name":"National Grid Greenpoint Energy Center","assigned_map_ids":[78,77,79],"lng":-73.9293622971,"id":99,"lat":40.721241874},{"name":"New Style Recycling Corp.","assigned_map_ids":[79],"lng":-73.91882658,"id":120,"lat":40.7172330201},{"name":"New York Paving, Inc.","assigned_map_ids":[79],"lng":-73.9391469955,"id":121,"lat":40.7330149617},{"name":"Newtown Creek Nature Walk","assigned_map_ids":[122],"lng":-73.9464962482,"id":77,"lat":40.7368440186},{"name":"Newtown Creek/Maspeth Ave Vista","assigned_map_ids":[122],"lng":-73.9247703552,"id":1449,"lat":40.7198188805},{"name":"Northfork Bank - Formerly ACCO Brands, Inc.","assigned_map_ids":[77],"lng":-73.9328491688,"id":84,"lat":40.7458263973},{"name":"Outlet City - formerly West Chemical Co.","assigned_map_ids":[77],"lng":-73.9372909069,"id":88,"lat":40.7482810988},{"name":"Paragon Paint and Varnish Corp","assigned_map_ids":[77],"lng":-73.9529255033,"id":89,"lat":40.7471695854},{"name":"Parking lot - formerly Pfizer Organics Suciac Block","assigned_map_ids":[77],"lng":-73.9492535591,"id":90,"lat":40.7008291704},{"name":"Pebble Lane Associates","assigned_map_ids":[79],"lng":-73.9231932163,"id":122,"lat":40.719168359},{"name":"Peter Jay Sharp Center, Formerly Cornish Knit Goods","assigned_map_ids":[77],"lng":-73.9288043976,"id":80,"lat":40.7078970656},{"name":"Pfizer Site B","assigned_map_ids":[77],"lng":-73.9475369453,"id":476,"lat":40.7017076148},{"name":"Phelps Dodge - Laurel Hill Development","assigned_map_ids":[78],"lng":-73.9260578156,"id":100,"lat":40.726738409},{"name":"Point Recycling Ltd.","assigned_map_ids":[79],"lng":-73.9395546913,"id":124,"lat":40.7277953829},{"name":"Popular Hand Laundry","assigned_map_ids":[77],"lng":-73.930284977,"id":91,"lat":40.7071813635},{"name":"Quanta Resources","assigned_map_ids":[78,77],"lng":-73.9364326,"id":108,"lat":40.7321206704},{"name":"Queens Plaza Residential Development","assigned_map_ids":[77],"lng":-73.9385730028,"id":92,"lat":40.7482323307},{"name":"Queens West","assigned_map_ids":[77],"lng":-73.9567637444,"id":93,"lat":40.7472569628},{"name":"Queens West / Hunters Point - West of Center Blvd","assigned_map_ids":[77],"lng":-73.9579439163,"id":688,"lat":40.7453143124},{"name":"Review Avenue Development I","assigned_map_ids":[77],"lng":-73.9370119572,"id":107,"lat":40.7328930136},{"name":"Riverview Condos \u0026 Riverview Gardens Senior Housing","assigned_map_ids":[77],"lng":-73.9582121372,"id":750,"lat":40.7439162192},{"name":"Riverview North Condos","assigned_map_ids":[77],"lng":-73.9566028118,"id":748,"lat":40.7450663968},{"name":"Roehr Chemicals, Inc.","assigned_map_ids":[78],"lng":-73.9351987839,"id":109,"lat":40.7347466007},{"name":"Scholes St. Holder Manufactured Gas Plant","assigned_map_ids":[77],"lng":-73.9345657825,"id":291,"lat":40.7098733394},{"name":"Spic and Span Cleaners \u0026 Dyers and Norman Cleaners \u0026 Dyers","assigned_map_ids":[78],"lng":-73.9422315359,"id":285,"lat":40.7275514673},{"name":"Standard Motor Products, Inc.","assigned_map_ids":[78],"lng":-73.9254462719,"id":110,"lat":40.7518410677},{"name":"Technical Metal Finishers","assigned_map_ids":[78],"lng":-73.922984004,"id":111,"lat":40.7050098112},{"name":"Vernon Blvd Power Plant - future Silvercup West Site","assigned_map_ids":[77],"lng":-73.9505839348,"id":94,"lat":40.7539054373},{"name":"Vernon Blvd. Park","assigned_map_ids":[122],"lng":-73.9549773932,"id":78,"lat":40.7398111828},{"name":"Waste Management NY - 123 Varick","assigned_map_ids":[79],"lng":-73.9287614822,"id":126,"lat":40.7099221356},{"name":"Waste Management NY - 215 Varick","assigned_map_ids":[79],"lng":-73.9301347733,"id":129,"lat":40.7126546624},{"name":"Waste Management NY - 3850 Review Ave.","assigned_map_ids":[79],"lng":-73.9362609386,"id":127,"lat":40.730218229},{"name":"Waste Management NY Scott Ave./BQE","assigned_map_ids":[79],"lng":-73.9309716225,"id":128,"lat":40.7267546702}],
  layers: [{"opacity":80,"name":"greeenpoint","map_id":73,"weight":20,"fill_opacity":80,"id":157,"fill_color":"#00a0c6","color":"#00ff00","polies":[{"encoded_levels":"PJIKHIHP","encoded_points":"cdowF~_kbMg|BtoBol@uoH|nCwmC~_AlEtZbbDgOhwCsp@zK","type":"Polyline"}],"user_id":1,"display_on_index":true}],
  mapIds: [78,122,77,79,73],
  colorIds: [0,1,2,3,4],
  mapType: "terrain",
  nopol: false,
  nogrp: true
});
