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: 617,
  height: 487,
  lat: 40.7108329903084,
  lng: -73.916015625,
  zoom: 12,
  markers: [{"name":"Bushwick High School - Academy of Urban Planning (interior walkway)","assigned_map_ids":[207],"lng":-73.9125609398,"id":1219,"lat":40.696322894},{"name":"Cooper Park SE Corner \n","assigned_map_ids":[207],"lng":-73.9359068871,"id":851,"lat":40.715338285},{"name":"Greenpoint Little League Field","assigned_map_ids":[207],"lng":-73.9360570908,"id":852,"lat":40.7209816717},{"name":"Heckscher Playground","assigned_map_ids":[207],"lng":-73.917979002,"id":1338,"lat":40.6951067979},{"name":"LIC Roots Garden -  future Greenstreet","assigned_map_ids":[207],"lng":-73.9383047819,"id":853,"lat":40.7432659333},{"name":"Reiff Playground Throughblock ","assigned_map_ids":[207],"lng":-73.9018589258,"id":854,"lat":40.7189244118},{"name":"Roosevelt Houses Basketball Court","assigned_map_ids":[207],"lng":-73.9344584942,"id":846,"lat":40.6935815624},{"name":"Saratoga Square","assigned_map_ids":[207],"lng":-73.9159807563,"id":1221,"lat":40.6850680731},{"name":"Washington Branch Library ","assigned_map_ids":[207],"lng":-73.9120513201,"id":1220,"lat":40.6975308338}],
  layers: [{"opacity":80,"name":"Newtown Creek Watershed","map_id":207,"weight":5,"fill_opacity":80,"id":109,"fill_color":"#00a0c6","color":"#0000ff","polies":[{"encoded_levels":"PECDDFDEEBCCFGECCFCGEDEFCHDDFCFFEBIDEFDDEDEHDDDDDCHDDCDEGCDCCCCFHDCFCCEFDCDDCCBEEBFCFDDEGAHAEDEEGFEGEEEEGFEDCEDDKDCFEFFFGFDDDEGFHFCBBGBBDFBDBDC@ECLDDGCDGBDBIEDEFFCDCCCDDGCDFDIEFFDHEEEFECCFHFFFHFJDFEGCFDHEFHDFCBDDD?FEEDEFGDDDGP","encoded_points":"gnswFrflbMhEsDvBt@dAWJ~AzCk@kDoFq@yLdCa@IgAs@[v@{@i@{M`J_AOgFkCXkC|BwIt@SsIjBeJlHu@xA~CnPaB`A`D^aBjKgFkBcIsBZi@eGpCeA~JQwB_e@zE{TtA[pCiBxExF~AyAjAtGvIaDY}BjC}@l@rDfCj@tWwJpA|IiAvCjC|@x@zHcA|CfAl@pDrPzA{Bz@dAnK_FjLaBMwE|Ea@c@sIcAY~@_Ae@}I}@c@n@mAmByJbIoC~DdC`@hD~@fAl@}BY_Dx@gAlA`K|@cBvApAx@kB~ApAj@mBtAZj@gAv@QpAxFhL_DfCoAzCzFbArG~Bu@aAoAlAaDpFIN~GM|NfAY`S}BS{D|Z{DXrDnQaBoAoQzZiDSkDbMwATjDjT`@ExH|H`@\\}NzD_FzAdE|AeCLcE|CFFeCpDPHuBwAOmBma@kHYr@kUuIe@p@o[kTgAh@c^aI}Ly@nAaB}E|AyCcG}GhJaU_DcWwN~@yJ_HaUuSyImGmC}CmAsFkBiPaDoQoBq[wA}@gBQcAeAmBaF{Bk@kCaD_EmEcAmCgB{P}j@lQgAhDoGfAsIsRsB?uBcGmCZqNxF{DFqZxCl@`ItGIpA`BHfHhLZTbExBlGa@lCz@fAaAjDRrGbBhBz@rRMbGwBvJvBlEuQzWsGzTsJhBoXgOqHmTiG`E{Bu@}RrKqIdV_FP?bIiE?DoCyBwCaAeEcHzMxGrIeJhWtNtDyEfYeRmGck@nO|Gn]MlPhKnAy@xO_XlCgBY\\oEgE{DwC|c@fH~m@gMlNtO|UdI~Xq@P`A`Dh@fFaCbBpBvHa@zDsA|KlElAa@vE|DnAc@~EzJ|BwAlQvCt@U|BhD|@rHtNnFcN","type":"Polyline"}],"user_id":1,"display_on_index":true}],
  mapIds: [207],
  colorIds: [0],
  mapType: "terrain",
  nopol: false,
  nogrp: true
});
