function $(x){return document.getElementById(x);}

/**
  Main data structure: array of language points, each point an array:
  language name, village name, lat, lng, href to language archive.
  The last two "points" are Moscow and S.Petersburg, teated differently,
  have institutions rather than languages
  redo as object?
*/
var langPoints = [
  ['archi', 'Archi', 42.08, 46.8,'archi06/index.html'],
  ['khinalugh', 'Khinalugh', 41.16, 48.08,'#'],
  ['nganasan', 'Ust\' Avam', 71.25, 92.67,'#'],
  ['nganasan', 'Dudinka', 69.4, 86.16,'#'],
  ['enets','Potapovo', 68.67, 86.28, '#'],
  ['enets','Vorontsovo', 71.7, 83.57, '#'],
  ['alutor', 'Vyvenka', 60.187, 165.457,'#'],
  ['tofalar','Nizhneudinsk Region',54.88115,99.02080,'#'],
  ['MGU, RAN', 'Moscow', 55.707772,37.54921,'#'],
  ['SPBU, RAN', 'St. Petersburg', 60.012717,30.316772,'#']
];
60.18736650278566, 165.4570198059082
/*** ICONS, red, blue and green ***/
var ricon = new GIcon();
ricon.image = "IMG/markers/mm_8_red.png";
ricon.iconSize = new GSize(8, 20);
ricon.iconAnchor = new GPoint(6, 20);
ricon.infoWindowAnchor = new GPoint(5, 1);
ricon.shadow = "IMG/markers/mm_20_shadow.png";
ricon.shadowSize = new GSize(22, 20);
    // end icon
var bicon = new GIcon();
bicon.image = "IMG/markers/mm_8_blue.png";
bicon.iconSize = new GSize(8, 20);
bicon.iconAnchor = new GPoint(6, 20);
bicon.infoWindowAnchor = new GPoint(5, 1);
bicon.shadow = "IMG/markers/mm_20_shadow.png";
bicon.shadowSize = new GSize(22, 20);
    // end icon
var gicon = new GIcon();
gicon.image = "IMG/markers/mm_8_green.png";
gicon.iconSize = new GSize(8, 20);
gicon.iconAnchor = new GPoint(6, 20);
gicon.infoWindowAnchor = new GPoint(5, 1);
gicon.shadow = "IMG/markers/mm_20_shadow.png";
gicon.shadowSize = new GSize(22, 20);
// END ALL ICONS

function createMarker(point, icon, caption) {
  var marker = new GMarker(point,icon);
  GEvent.addListener(marker, "click", function() {
    marker.openInfoWindowHtml(caption);
  });
  return marker;
}

function createCaption(langPoint,capKind){ // Language or Institution
  var gCapt =
  "<div class='gcaption'>"+capKind+
  ": <a href='"+langPoint[4]+"' target='_blank'>"+
      langPoint[0]+
    "</a><br/>"+
    "Location: "+langPoint[1]+
    "</div>";
    return gCapt;
  }

function load() {
  var map = new GMap2(document.getElementById("map"));
  map.setCenter(new GLatLng(68,107), 2);
//  map.setMapType(map.getMapTypes()[2]);
  map.addControl(new GLargeMapControl( ));
  map.addControl(new GMapTypeControl());
//  alert(map.getMapTypes()[0]);

  GEvent.addListener(map, "moveend", function() {
    var center = map.getCenter();
    document.getElementById("message").innerHTML = center.toString();
  });

  var len=langPoints.length;
  for (var i=0; i<len-2; i++) {
    var pnt = new GLatLng(langPoints[i][2], langPoints[i][3]);
  var caption=createCaption(langPoints[i], "Language");

    if(i<1) { // materials aleady on site
      map.addOverlay(createMarker(pnt,gicon,caption));
    }
    else map.addOverlay(createMarker(pnt,ricon,caption));
  }
  for(var i=len-2;i<len;i++){
    var pnt = new GLatLng(langPoints[i][2], langPoints[i][3]);
  var caption=createCaption(langPoints[i], "Institutions");
    map.addOverlay(createMarker(pnt,bicon,caption));
  }
}

