var map;
var exml;
var geocoder;
var info_width = 300;
function mapAddress(id,address,zoom,kml) {
  createMap(id);
  setAddress(address,zoom);
  loadKml(kml,true);
}
function mapKml(id,kml) {
  createMap(id);
  loadKml(kml,false);
}
function createMap(id) {
    map = new GMap2(document.getElementById(id));
	map.setCenter(new GLatLng(0, 0), 1);
	map.addControl(new GSmallMapControl());
	map.addControl(new GScaleControl());
	geocoder = new GClientGeocoder();
}
function setAddress(address,zoom) {
    if (geocoder) {
        geocoder.getLatLng(
          address,
          function(point) {
            if (!point) {
              alert(address + " not found");
            } else {
              map.setCenter(point, zoom);
            }
          }
        );
  	}
}
function clickMarker(name) {
   var markers = exml.gmarkers;
  
   for (var i = 0 ; i < markers.length ; i++) {
	   if (markers[i].name == name) {
		   GEvent.trigger(markers[i], 'click');
	   }
   }
}
function clickMarkerRegex(name) {
   var markers = exml.gmarkers;
   var regName = new RegExp(name,"");
	  
   for (var i = 0 ; i < markers.length ; i++) {
	   if (markers[i].name.match(regName)) {
		    GEvent.trigger(markers[i], 'click');
	   }
   }
}
function addMarker(m,name,desc,image,len) {
   m.name = name;
   map.addOverlay(m);
}
function loadKml(loc,autozoom) {
 exml = new EGeoXml("exml", map, loc,{nozoom:autozoom, iwwidth:info_width, addmarker:addMarker});
 exml.parse();
}
