var map, manager;
var centerLatitude = -28, centerLongitude = 134, startZoom = 4;


function createMarkerClickHandler(marker, header, body) {
  return function() {
    marker.openInfoWindowHtml(
      '<h3>' + header + '</h3>' +
      '<p style="color:#000080;">' + body + '</p>'
    );
    return false;
  };
}


function createMarker(pointData) {
  var latlng = new GLatLng(pointData.lat, pointData.lon);

  var icon = new GIcon();
  icon.image = '../../../Image/Travelworld/Geo/gmarker.red.png';
  icon.shadow = '../../../Image/Travelworld/Geo/gmarker.shadow.png';
  icon.iconSize = new GSize(24, 24);
  icon.shadowSize = new GSize(44, 24);
  icon.iconAnchor = new GPoint(16, 16);
  icon.infoWindowAnchor = new GPoint(25, 7);

  opts = {
    "icon": icon,
    "clickable": true,
//    "labelText": pointData.abbr,
    "labelOffset": new GSize(-16, -16)
  };
// marker = new GMarker(latlng);
  var marker = new LabeledMarker(latlng, opts);
  var handler = createMarkerClickHandler(marker, pointData.title, pointData.info);
	
  GEvent.addListener(marker, "click", handler);

//  var listItem = document.createElement('li');
 // listItem.innerHTML = '<div class="label">'+pointData.abbr+'</div><a href="' + pointData.wp + '">' + pointData.name + '</a>';
 // listItem.getElementsByTagName('a')[0].onclick = handler;

  //document.getElementById('sidebar-list').appendChild(listItem);

  return marker;
}

function windowHeight() {
  // Standard browsers (Mozilla, Safari, etc.)
  if (self.innerHeight) {
    return self.innerHeight;
  }
  // IE 6
  if (document.documentElement && document.documentElement.clientHeight) {
   return document.documentElement.clientHeight;
  }
  // IE 5
  if (document.body) {
    return document.body.clientHeight;
  }
  // Just in case. 
  return 0;
}

//function handleResize() {
 // var height = windowHeight() - 50 ; //document.getElementById('toolbar').offsetHeight - 30;
  //document.getElementById('map').style.height = height + 'px';
  //document.getElementById('sidebar').style.height = height + 'px';
//}

function init() {
  //handleResize();
	
  map = new GMap(document.getElementById("agent-map"));
  //map.addControl(new GSmallMapControl());
  //map.addControl(new GScaleControl());
  map.addControl(new GLargeMapControl());
  map.setCenter(new GLatLng(centerLatitude, centerLongitude), startZoom);
  map.addControl(new GMapTypeControl());
  map.enableScrollWheelZoom();
 
  manager = new MarkerManager(map);
	
  // This is a sorting trick, don't worry too much about it.
  markers.sort(function(a, b) { return (a.abbr > b.abbr) ? +1 : -1; }); 
	
  batch = [];
  for(id in markers) {
    batch.push(createMarker(markers[id]));
  }
  manager.addMarkers(batch, 3);
  manager.refresh();
}

//window.onresize = handleResize;
window.onload = init;
window.onunload = GUnload;

