var map;

var gicons = [];
gicons["placement"] = new GIcon(G_DEFAULT_ICON, "/images/icons/map-icons/placements-new/image.png");

gicons["placement"].iconSize = new GSize(37, 58);
gicons["placement"].shadowSize = new GSize(66, 58);
gicons["placement"].iconAnchor = new GPoint(19, 58);
gicons["placement"].infoWindowAnchor = new GPoint(19, 25);
gicons["placement"].printImage = '/images/icons/map-icons/placements-new/printImage.gif';
gicons["placement"].mozPrintImage = '/images/icons/map-icons/placements-new/mozPrintImage.gif';
gicons["placement"].printShadow = '/images/icons/map-icons/placements-new/printShadow.gif';
gicons["placement"].transparent = '/images/icons/map-icons/placements-new/transparent.png';
gicons["placement"].imageMap = [23, 0, 25, 1, 27, 2, 29, 3, 30, 4, 31, 5, 32, 6, 33, 7, 33, 8, 34, 9, 34, 10, 35, 11, 35, 12, 35, 13, 35, 14, 36, 15, 36, 16, 36, 17, 36, 18, 36, 19, 36, 20, 35, 21, 35, 22, 35, 23, 35, 24, 34, 25, 34, 26, 33, 27, 33, 28, 32, 29, 31, 30, 30, 31, 29, 32, 28, 33, 27, 34, 26, 35, 25, 36, 24, 37, 23, 38, 22, 39, 22, 40, 21, 41, 21, 42, 20, 43, 20, 44, 20, 45, 19, 46, 19, 47, 19, 48, 18, 49, 18, 50, 18, 51, 18, 52, 18, 53, 18, 54, 18, 55, 18, 56, 18, 57, 18, 57, 18, 56, 18, 55, 17, 54, 17, 53, 17, 52, 17, 51, 17, 50, 17, 49, 16, 48, 16, 47, 16, 46, 16, 45, 15, 44, 15, 43, 14, 42, 14, 41, 13, 40, 13, 39, 12, 38, 11, 37, 11, 36, 10, 35, 9, 34, 7, 33, 6, 32, 5, 31, 4, 30, 3, 29, 3, 28, 2, 27, 1, 26, 1, 25, 1, 24, 0, 23, 0, 22, 0, 21, 0, 20, 0, 19, 0, 18, 0, 17, 0, 16, 0, 15, 0, 14, 0, 13, 0, 12, 1, 11, 1, 10, 2, 9, 2, 8, 3, 7, 4, 6, 4, 5, 5, 4, 7, 3, 8, 2, 10, 1, 12, 0];


function initialize() {
  if (GBrowserIsCompatible()) {
    map = new GMap2(document.getElementById("map_canvas"));
    map.setCenter(new GLatLng(36, 67), 2);
    map.addControl(new GSmallMapControl());
    map.addMapType(G_NORMAL_MAP);
    map.setMapType(G_NORMAL_MAP);
    addMarkersFromXML();
  }
}


function addMarkersFromXML() {
  var batch = [];

  mgr = new MarkerManager(map);

  var request = GXmlHttp.create();
  request.open('GET', '/xml/tefl-jobs-abroad.xml?=ud-2', true);
  request.onreadystatechange = function () {
    if (request.readyState == 4 && request.status == 200) {
      var xmlDoc = request.responseXML;
      var xmlrows = xmlDoc.documentElement.getElementsByTagName("Row");

      for (var i = 0; i < xmlrows.length; i++) {
        var xmlrow = xmlrows[i];

        //alert(xmlrows.length)
        //var type = markers[i].getAttribute("type");
        var xmlcellLongitude = xmlrow.getElementsByTagName("Longitude")[0];
        var xmlcellLatitude = xmlrow.getElementsByTagName("Latitude")[0];
        var point = new GLatLng(parseFloat(xmlcellLatitude.firstChild.data), parseFloat(xmlcellLongitude.firstChild.data));

        //get the type title
        var xmlcellInfoTitle = xmlrow.getElementsByTagName("Info_Title")[0];
        var celltextInfoTitle = xmlcellInfoTitle.firstChild.data;

        //get the Location name
        var xmlcellLocationName = xmlrow.getElementsByTagName("Location_Name")[0];
        var celltextLocationName = xmlcellLocationName.firstChild.data;

        //get the Page URL
        var xmlcellPageLink = xmlrow.getElementsByTagName("Page_Url")[0];
        var celltextPageLink = xmlcellPageLink.firstChild.data;

        //get the Contract Length
        var xmlcellSalary = xmlrow.getElementsByTagName("Salary")[0];
        var celltextSalary = xmlcellSalary.firstChild.data;

        //get the Quick Info
        var xmlcellQuickInfo = xmlrow.getElementsByTagName("Quick_Info")[0];
        var celltextQuickInfo = xmlcellQuickInfo.firstChild.data;

        //get the Icon Type
        var xmlcellIconType = xmlrow.getElementsByTagName("Icon_Type")[0];
        var icontype = xmlcellIconType.firstChild.data;

        var htmlString = "<h3>" + celltextInfoTitle + "</h3>" + "<p><strong>Location:</strong> " + celltextLocationName + "<br />" + "<strong>Page link:</strong> <a href=\"" + celltextPageLink + "\">Click here to visit the page</a><br />" + "<strong>Salary:</strong> " + celltextSalary + "</p>";

        if (icontype == "placement") {
          var marker = createMarker(point, htmlString, icontype);
          batch.push(marker);
        }

      }

      mgr.addMarkers(batch, 2);
      mgr.refresh();

    }
  }
  request.send(null);
}

//create an array to sort the markers into groups
var markerGroups = {
  "internship": [],
  "placement": [],
  "guide": []
};



function createMarker(point, htmlString, icontype) {
  var marker = new GMarker(point, gicons[icontype]);

  GEvent.addListener(marker, "click", function () {
    marker.openInfoWindowHtml(htmlString);
  });

  return marker;

}
