//var MapTypesControl = function(map) {
//   var activeTerrain = map.config.map.mapType == "G_PHYSICAL_MAP" ? "maptype-active" : "maptype-inactive";
//   var activeSatellite = map.config.map.mapType == "G_SATELLITE_MAP" ? "maptype-active" : "maptype-inactive";
//   var activeNormal = map.config.map.mapType == "G_NORMAL_MAP" ? "maptype-active" : "maptype-inactive";
//   
//   var html = '' +
//      '<div class="maptype-container">' +
//        '<div class="maptype-more" onclick="$(\'maptype-more\').toggle();">&nbsp;</div>' +
//        '<div class="maptype-button ' + activeTerrain + '" onclick="MapTypesControl.setMapType(\'' + map.div + '\', G_PHYSICAL_MAP, this)">' + MapToolkit.i18n["maptype: terrain"] + '</div>' +
//        '<div class="maptype-button ' + activeSatellite + '" onclick="MapTypesControl.setMapType(\'' + map.div + '\', G_SATELLITE_MAP, this)">' + MapToolkit.i18n["maptype: satellite"] + '</div>' +
//        '<div class="maptype-button ' + activeNormal + '" onclick="MapTypesControl.setMapType(\'' + map.div + '\', G_NORMAL_MAP, this)">' + MapToolkit.i18n["maptype: map"] + '</div>' +
//        '<div id="maptype-more" class="maptype-more-menu" style="display:none;">' +
//                '<ul>' +
//                        '<li onclick="$(\'maptype-more\').hide();MapTypesControl.setMapType(\'' + map.div + '\', G_HYBRID_MAP)">' + MapToolkit.i18n["maptype: satellite with labels"] + '</li>' +
//                '</ul>' +
//        '</div>' +
//      '</div>';
//   
//   this.initialize = function(map) {
//      var maptypes = document.createElement("div");
//      maptypes.innerHTML = html;
//      map.getContainer().appendChild(maptypes);
//      $(maptypes).pngFix && $(maptypes).pngFix();
//      return maptypes;
//   };
//
//   this.getDefaultPosition = function() {
//      var x = map.isFullscreen ? 220 : 207;
//      return new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(10, 10));
//   };
//   
//   return this;
//};
//
//MapTypesControl.prototype = new GControl();
//
//MapTypesControl.setMapType = function(div, mapType, obj) {
//   MapToolkit.getMap(div).gmap.setMapType(mapType);
//   $$(".maptype-button").each(function(i) {
//      if (obj == i) {
//         $ADD_CLASS(i, "maptype-active");
//         $REMOVE_CLASS(i, "maptype-inactive");
//      } else {
//         $REMOVE_CLASS(i, "maptype-active");
//         $ADD_CLASS(i, "maptype-inactive");
//      }
//   });
//};
//
//
//
//
//
//----------------------------------------------
var MapTypesControl = function(map) {
   var t = map.getCurrentMapTypeIndex();
   var activeNormal = (t == 0) ? "mtk-maptypes-active" : "mtk-maptypes-inactive";
   var activeSatellite = (t == 1) ? "mtk-maptypes-active" : "mtk-maptypes-inactive";
   var activeTerrain = (t == 2) ? "mtk-maptypes-active" : "mtk-maptypes-inactive";
   
   var html = '' +
      '<div class="mtk-maptypes-container">' +
        '<div class="mtk-maptypes-more" onclick="$VISIBLE(\'mtk-maptypes-more\') ? $BLINDUP(\'mtk-maptypes-more\', { duration: 0.2 }) : $BLINDDOWN(\'mtk-maptypes-more\', { duration: 0.2 });">&nbsp;</div>' +
        '<div class="mtk-maptypes-button ' + activeTerrain + '" onclick="MapTypesControl.setMapType(\'' + map.div + '\', G_PHYSICAL_MAP, this)">' + MapToolkit.i18n["maptype: terrain"] + '</div>' +
        '<div class="mtk-maptypes-button ' + activeSatellite + '" onclick="MapTypesControl.setMapType(\'' + map.div + '\', G_SATELLITE_MAP, this)">' + MapToolkit.i18n["maptype: satellite"] + '</div>' +
        '<div class="mtk-maptypes-button ' + activeNormal + '" onclick="MapTypesControl.setMapType(\'' + map.div + '\', G_NORMAL_MAP, this)">' + MapToolkit.i18n["maptype: map"] + '</div>' +
        '<div id="mtk-maptypes-more" class="mtk-maptypes-more-menu" style="display:none;">' +
                '<ul>' +
                        '<li onclick="$EL2(\'mtk-maptypes-more\').hide();MapTypesControl.setMapType(\'' + map.div + '\', G_HYBRID_MAP)">' + MapToolkit.i18n["maptype: satellite with labels"] + '</li>' +
                '</ul>' +
        '</div>' +
      '</div>';
   
   this.initialize = function(gmap) {
      var maptypes = document.createElement("div");
      maptypes.innerHTML = html;
      gmap.getContainer().appendChild(maptypes);
      $EL(maptypes).pngFix && $EL(maptypes).pngFix();
      return maptypes;
   };

   this.getDefaultPosition = function() {
      var offset = 10;
      if ($INARRAY(map.config.map.controls, "MapToolkit.FullscreenIconControl") != -1) offset += 24;
      return new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(offset, 10));
   };
   
   return this;
};

MapTypesControl.prototype = new GControl();

MapTypesControl.setMapType = function(div, mapType, obj) {
   var map = MapToolkit.getMap(div);
   map.gmap.setMapType(mapType);
   $EACH($CLASS("mtk-maptypes-button"), function(i) {
      if (obj == i) {
         $ADD_CLASS(i, "mtk-maptypes-active");
         $REMOVE_CLASS(i, "mtk-maptypes-inactive");
      } else {
         $REMOVE_CLASS(i, "mtk-maptypes-active");
         $ADD_CLASS(i, "mtk-maptypes-inactive");
      }
   });
};
MapToolkit.MapTypesControl = MapTypesControl;